:py:mod:`oioioi.contests.handlers` ================================== .. py:module:: oioioi.contests.handlers Module Contents --------------- Functions ~~~~~~~~~ .. autoapisummary:: oioioi.contests.handlers._get_submission_or_skip oioioi.contests.handlers.wait_for_submission_in_db oioioi.contests.handlers.update_report_statuses oioioi.contests.handlers.update_submission_score oioioi.contests.handlers.update_user_results oioioi.contests.handlers.update_problem_statistics oioioi.contests.handlers.call_submission_judged oioioi.contests.handlers.create_error_report oioioi.contests.handlers.mail_admins_on_error Attributes ~~~~~~~~~~ .. autoapisummary:: oioioi.contests.handlers.logger oioioi.contests.handlers.WAIT_FOR_SUBMISSION_RETRIES oioioi.contests.handlers.WAIT_FOR_SUBMISSION_SLEEP_SECONDS .. py:data:: logger .. py:data:: WAIT_FOR_SUBMISSION_RETRIES :annotation: = 9 .. py:data:: WAIT_FOR_SUBMISSION_SLEEP_SECONDS :annotation: = 1 .. py:function:: _get_submission_or_skip(*args, **kwargs) .. py:function:: wait_for_submission_in_db(env, **kwargs) Celery may start handling a submission before it is actually saved in the DB. This is a workaround for this. .. py:function:: update_report_statuses(env, submission, **kwargs) .. py:function:: update_submission_score(env, submission, **kwargs) .. py:function:: update_user_results(env, **kwargs) .. py:function:: update_problem_statistics(env, submission, **kwargs) .. py:function:: call_submission_judged(env, submission, **kwargs) .. py:function:: create_error_report(env, submission, exc_info, **kwargs) Builds a :class:`oioioi.contests.models.SubmissionReport` for an evaulation which have failed. USES * `env['submission_id']` .. py:function:: mail_admins_on_error(env, submission, exc_info, **kwargs) Sends email to all admins defined in settings.ADMINS on each grading error occurrence. USES * `env['submission_id']`