:py:mod:`oioioi.quizzes.problem_sources` ======================================== .. py:module:: oioioi.quizzes.problem_sources Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: oioioi.quizzes.problem_sources.EmptyQuizSource .. py:class:: EmptyQuizSource Bases: :py:obj:`oioioi.problems.problem_sources.ProblemSource` .. py:attribute:: key :annotation: = emptyquiz_source .. py:attribute:: problem_controller_class :annotation: = oioioi.quizzes.controllers.QuizProblemController .. py:attribute:: short_description .. py:method:: view(request, contest, existing_problem=None) Renders the view where the user can upload the file or point out where to get the problem from. If the request method is ``GET``, it should return rendered HTML, which will be injected in an appropriate div element. :class:`~django.template.response.TemplateResponse` is fine, too. If the request method is ``POST``, it should start the unpacking process. If no errors occur, it should return :class:`~django.http.HttpResponseRedirect` (e.g. to a view with problem packages queued for processing). :param request: Django request :param contest: :class:`~oioioi.contests.models.Contest` where the problem is going to be attached (or is already attached); may be ``None``. :param existing_problem: :class:`~oioioi.problems.models.Problem` to update (if problem update was requested)