2020-01-21 06:35:58 +00:00
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-04-18 02:06
import django . core . validators
import django . utils . timezone
import jsonfield . fields
import mptt . fields
import sortedm2m . fields
from django . conf import settings
from django . db import migrations , models
import judge . models . interface
import judge . utils . problem_data
class Migration ( migrations . Migration ) :
2022-05-14 17:57:27 +00:00
replaces = [
( " judge " , " 0001_initial " ) ,
( " judge " , " 0002_license " ) ,
( " judge " , " 0003_license_key " ) ,
( " judge " , " 0004_language_limit " ) ,
( " judge " , " 0005_nav_path_len " ) ,
( " judge " , " 0006_language_extension " ) ,
( " judge " , " 0007_test_site_perm " ) ,
( " judge " , " 0008_contestproblem_order " ) ,
( " judge " , " 0009_solution_problem " ) ,
( " judge " , " 0010_comment_page_index " ) ,
( " judge " , " 0011_organization_is_open " ) ,
( " judge " , " 0012_organization_perms " ) ,
( " judge " , " 0013_private_contests " ) ,
( " judge " , " 0014_multi_organization " ) ,
( " judge " , " 0015_remove_single_organization " ) ,
( " judge " , " 0016_organizationrequest " ) ,
( " judge " , " 0017_edit_public_problem_perm " ) ,
( " judge " , " 0018_django_1_9 " ) ,
( " judge " , " 0019_og_images " ) ,
( " judge " , " 0020_profile_user_script " ) ,
( " judge " , " 0021_output_prefix_override " ) ,
( " judge " , " 0022_judge_last_ping " ) ,
( " judge " , " 0023_contest_tag " ) ,
( " judge " , " 0024_submission_judge " ) ,
( " judge " , " 0025_submission_rejudge_flag " ) ,
( " judge " , " 0026_change_public_visibility_perm " ) ,
( " judge " , " 0027_bridge_revert " ) ,
( " judge " , " 0028_judge_ip " ) ,
( " judge " , " 0029_problem_translation " ) ,
( " judge " , " 0030_remove_contest_profile " ) ,
( " judge " , " 0031_judge_versions " ) ,
( " judge " , " 0032_hide_problem_tags_in_contest " ) ,
( " judge " , " 0033_proper_pretest_support " ) ,
( " judge " , " 0034_submission_is_pretested " ) ,
( " judge " , " 0035_contest_spectate_mode " ) ,
( " judge " , " 0036_contest_participation_unique " ) ,
( " judge " , " 0037_user_count_ac_rate_field " ) ,
( " judge " , " 0038_profile_problem_count " ) ,
( " judge " , " 0039_remove_contest_is_external " ) ,
( " judge " , " 0040_profile_math_engine " ) ,
( " judge " , " 0041_virtual_contest_participation " ) ,
( " judge " , " 0042_remove_spectate_field " ) ,
( " judge " , " 0043_contest_user_count " ) ,
( " judge " , " 0044_organization_slots " ) ,
( " judge " , " 0045_organization_access_code " ) ,
( " judge " , " 0046_blogpost_authors " ) ,
( " judge " , " 0047_site_managed_data " ) ,
( " judge " , " 0048_site_managed_checkers " ) ,
( " judge " , " 0049_contest_summary " ) ,
( " judge " , " 0050_problem_tester_field " ) ,
( " judge " , " 0051_was_rejudged_field " ) ,
( " judge " , " 0052_switch_to_durationfield " ) ,
( " judge " , " 0053_opengraph_problems " ) ,
( " judge " , " 0054_tickets " ) ,
( " judge " , " 0055_add_performance_points " ) ,
( " judge " , " 0056_ticket_is_open " ) ,
( " judge " , " 0057_blue_pretests " ) ,
( " judge " , " 0058_problem_curator_field " ) ,
( " judge " , " 0059_problem_is_manually_managed " ) ,
( " judge " , " 0060_contest_clarifications " ) ,
( " judge " , " 0061_language_template " ) ,
( " judge " , " 0062_add_contest_submission_limit " ) ,
( " judge " , " 0063_new_solutions " ) ,
( " judge " , " 0064_unique_solution " ) ,
( " judge " , " 0065_blogpost_perms " ) ,
( " judge " , " 0066_submission_date_index " ) ,
( " judge " , " 0067_contest_access_code " ) ,
( " judge " , " 0068_hide_scoreboard " ) ,
( " judge " , " 0069_judge_blocking " ) ,
( " judge " , " 0070_organization_slug " ) ,
( " judge " , " 0071_organization_private_problems " ) ,
( " judge " , " 0072_contest_logo_override_image " ) ,
( " judge " , " 0073_comment_lock " ) ,
( " judge " , " 0074_totp " ) ,
( " judge " , " 0075_organization_admin_reverse " ) ,
( " judge " , " 0076_problem_statistics " ) ,
( " judge " , " 0077_remove_organization_key " ) ,
( " judge " , " 0078_add_user_notes " ) ,
( " judge " , " 0079_remove_comment_title " ) ,
( " judge " , " 0080_contest_banned_users " ) ,
( " judge " , " 0081_unlisted_users " ) ,
( " judge " , " 0082_remove_profile_name " ) ,
( " judge " , " 0083_extended_feedback " ) ,
( " judge " , " 0084_contest_formats " ) ,
]
2020-01-21 06:35:58 +00:00
initial = True
dependencies = [
migrations . swappable_dependency ( settings . AUTH_USER_MODEL ) ,
2022-05-14 17:57:27 +00:00
( " contenttypes " , " 0002_remove_content_type_name " ) ,
2020-01-21 06:35:58 +00:00
]
operations = [
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " BlogPost " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
( " title " , models . CharField ( max_length = 100 , verbose_name = " post title " ) ) ,
( " slug " , models . SlugField ( verbose_name = " slug " ) ) ,
(
" visible " ,
models . BooleanField (
default = False , verbose_name = " public visibility "
) ,
) ,
( " sticky " , models . BooleanField ( default = False , verbose_name = " sticky " ) ) ,
( " publish_on " , models . DateTimeField ( verbose_name = " publish after " ) ) ,
( " content " , models . TextField ( verbose_name = " post content " ) ) ,
( " summary " , models . TextField ( blank = True , verbose_name = " post summary " ) ) ,
(
" og_image " ,
models . CharField (
blank = True ,
default = " " ,
max_length = 150 ,
verbose_name = " openGraph image " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " blog posts " ,
" permissions " : ( ( " edit_all_post " , " Edit all posts " ) , ) ,
" verbose_name " : " blog post " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " Comment " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" time " ,
models . DateTimeField ( auto_now_add = True , verbose_name = " posted time " ) ,
) ,
(
" page " ,
models . CharField (
db_index = True ,
max_length = 30 ,
validators = [
django . core . validators . RegexValidator (
" ^[pcs]:[a-z0-9]+$|^b: \\ d+$ " ,
" Page code must be ^[pcs]:[a-z0-9]+$|^b: \\ d+$ " ,
)
] ,
verbose_name = " associated page " ,
) ,
) ,
( " score " , models . IntegerField ( default = 0 , verbose_name = " votes " ) ) ,
(
" body " ,
models . TextField ( max_length = 8192 , verbose_name = " body of comment " ) ,
) ,
(
" hidden " ,
models . BooleanField ( default = 0 , verbose_name = " hide the comment " ) ,
) ,
( " lft " , models . PositiveIntegerField ( db_index = True , editable = False ) ) ,
( " rght " , models . PositiveIntegerField ( db_index = True , editable = False ) ) ,
( " tree_id " , models . PositiveIntegerField ( db_index = True , editable = False ) ) ,
( " level " , models . PositiveIntegerField ( db_index = True , editable = False ) ) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " comments " ,
" verbose_name " : " comment " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " CommentLock " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" page " ,
models . CharField (
db_index = True ,
max_length = 30 ,
validators = [
django . core . validators . RegexValidator (
" ^[pcs]:[a-z0-9]+$|^b: \\ d+$ " ,
" Page code must be ^[pcs]:[a-z0-9]+$|^b: \\ d+$ " ,
)
] ,
verbose_name = " associated page " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" permissions " : ( ( " override_comment_lock " , " Override comment lock " ) , ) ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " CommentVote " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
( " score " , models . IntegerField ( ) ) ,
(
" comment " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " votes " ,
to = " judge.Comment " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " comment votes " ,
" verbose_name " : " comment vote " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " Contest " ,
fields = [
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" key " ,
models . CharField (
max_length = 20 ,
unique = True ,
validators = [
django . core . validators . RegexValidator (
" ^[a-z0-9]+$ " , " Contest id must be ^[a-z0-9]+$ "
)
] ,
verbose_name = " contest id " ,
) ,
) ,
(
" name " ,
models . CharField (
db_index = True , max_length = 100 , verbose_name = " contest name "
) ,
) ,
(
" description " ,
models . TextField ( blank = True , verbose_name = " description " ) ,
) ,
(
" start_time " ,
models . DateTimeField ( db_index = True , verbose_name = " start time " ) ,
) ,
(
" end_time " ,
models . DateTimeField ( db_index = True , verbose_name = " end time " ) ,
) ,
(
" time_limit " ,
models . DurationField (
blank = True , null = True , verbose_name = " time limit "
) ,
) ,
(
" is_public " ,
models . BooleanField (
default = False ,
help_text = " Should be set even for organization-private contests, where it determines whether the contest is visible to members of the specified organizations. " ,
verbose_name = " publicly visible " ,
) ,
) ,
(
" is_rated " ,
models . BooleanField (
default = False ,
help_text = " Whether this contest can be rated. " ,
verbose_name = " contest rated " ,
) ,
) ,
(
" hide_scoreboard " ,
models . BooleanField (
default = False ,
help_text = " Whether the scoreboard should remain hidden for the duration of the contest. " ,
verbose_name = " hide scoreboard " ,
) ,
) ,
(
" use_clarifications " ,
models . BooleanField (
default = True ,
help_text = " Use clarification system instead of comments. " ,
verbose_name = " no comments " ,
) ,
) ,
(
" rate_all " ,
models . BooleanField (
default = False ,
help_text = " Rate all users who joined. " ,
verbose_name = " rate all " ,
) ,
) ,
(
" is_private " ,
models . BooleanField (
default = False , verbose_name = " private to organizations "
) ,
) ,
(
" hide_problem_tags " ,
models . BooleanField (
default = False ,
help_text = " Whether problem tags should be hidden by default. " ,
verbose_name = " hide problem tags " ,
) ,
) ,
(
" run_pretests_only " ,
models . BooleanField (
default = False ,
help_text = " Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends. " ,
verbose_name = " run pretests only " ,
) ,
) ,
(
" og_image " ,
models . CharField (
blank = True ,
default = " " ,
max_length = 150 ,
verbose_name = " OpenGraph image " ,
) ,
) ,
(
" logo_override_image " ,
models . CharField (
blank = True ,
default = " " ,
help_text = " This image will replace the default site logo for users inside the contest. " ,
max_length = 150 ,
verbose_name = " Logo override image " ,
) ,
) ,
(
" user_count " ,
models . IntegerField (
default = 0 , verbose_name = " the amount of live participants "
) ,
) ,
(
" summary " ,
models . TextField (
blank = True ,
help_text = " Plain-text, shown in meta description tag, e.g. for social media. " ,
verbose_name = " contest summary " ,
) ,
) ,
(
" access_code " ,
models . CharField (
blank = True ,
default = " " ,
help_text = " An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable. " ,
max_length = 255 ,
verbose_name = " access code " ,
) ,
) ,
(
" format_name " ,
models . CharField (
choices = [ ( " default " , " Default " ) ] ,
default = " default " ,
help_text = " The contest format module to use. " ,
max_length = 32 ,
verbose_name = " contest format " ,
) ,
) ,
(
" format_config " ,
jsonfield . fields . JSONField (
blank = True ,
help_text = " A JSON object to serve as the configuration for the chosen contest format module. Leave empty to use None. Exact format depends on the contest format selected. " ,
null = True ,
verbose_name = " contest format configuration " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " contests " ,
" permissions " : (
( " see_private_contest " , " See private contests " ) ,
( " edit_own_contest " , " Edit own contests " ) ,
( " edit_all_contest " , " Edit all contests " ) ,
( " contest_rating " , " Rate contests " ) ,
( " contest_access_code " , " Contest access codes " ) ,
) ,
" verbose_name " : " contest " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " ContestParticipation " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" real_start " ,
models . DateTimeField (
db_column = " start " ,
default = django . utils . timezone . now ,
verbose_name = " start time " ,
) ,
) ,
(
" score " ,
models . IntegerField ( db_index = True , default = 0 , verbose_name = " score " ) ,
) ,
(
" cumtime " ,
models . PositiveIntegerField (
default = 0 , verbose_name = " cumulative time "
) ,
) ,
(
" virtual " ,
models . IntegerField (
default = 0 ,
help_text = " 0 means non-virtual, otherwise the n-th virtual participation " ,
verbose_name = " virtual participation id " ,
) ,
) ,
(
" format_data " ,
jsonfield . fields . JSONField (
blank = True ,
null = True ,
verbose_name = " contest format specific data " ,
) ,
) ,
(
" contest " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " users " ,
to = " judge.Contest " ,
verbose_name = " associated contest " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " contest participations " ,
" verbose_name " : " contest participation " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " ContestProblem " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
( " points " , models . IntegerField ( verbose_name = " points " ) ) ,
( " partial " , models . BooleanField ( default = True , verbose_name = " partial " ) ) ,
(
" is_pretested " ,
models . BooleanField ( default = False , verbose_name = " is pretested " ) ,
) ,
(
" order " ,
models . PositiveIntegerField ( db_index = True , verbose_name = " order " ) ,
) ,
(
" output_prefix_override " ,
models . IntegerField (
blank = True ,
null = True ,
verbose_name = " output prefix length override " ,
) ,
) ,
(
" max_submissions " ,
models . IntegerField (
default = 0 ,
help_text = " Maximum number of submissions for this problem, or 0 for no limit. " ,
validators = [
django . core . validators . MinValueValidator (
0 , " Why include a problem you can ' t submit to? "
)
] ,
) ,
) ,
(
" contest " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " contest_problems " ,
to = " judge.Contest " ,
verbose_name = " contest " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " contest problems " ,
" verbose_name " : " contest problem " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " ContestSubmission " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
( " points " , models . FloatField ( default = 0.0 , verbose_name = " points " ) ) ,
(
" is_pretest " ,
models . BooleanField (
default = False ,
help_text = " Whether this submission was ran only on pretests. " ,
verbose_name = " is pretested " ,
) ,
) ,
(
" participation " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " submissions " ,
related_query_name = " submission " ,
to = " judge.ContestParticipation " ,
verbose_name = " participation " ,
) ,
) ,
(
" problem " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " submissions " ,
related_query_name = " submission " ,
to = " judge.ContestProblem " ,
verbose_name = " problem " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " contest submissions " ,
" verbose_name " : " contest submission " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " ContestTag " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" name " ,
models . CharField (
max_length = 20 ,
unique = True ,
validators = [
django . core . validators . RegexValidator (
" ^[a-z-]+$ " ,
message = " Lowercase letters and hyphens only. " ,
)
] ,
verbose_name = " tag name " ,
) ,
) ,
(
" color " ,
models . CharField (
max_length = 7 ,
validators = [
django . core . validators . RegexValidator (
" ^#(?:[A-Fa-f0-9] {3} ) { 1,2}$ " , " Invalid colour. "
)
] ,
verbose_name = " tag colour " ,
) ,
) ,
(
" description " ,
models . TextField ( blank = True , verbose_name = " tag description " ) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " contest tags " ,
" verbose_name " : " contest tag " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " Judge " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" name " ,
models . CharField (
help_text = " Server name, hostname-style " ,
max_length = 50 ,
unique = True ,
) ,
) ,
(
" created " ,
models . DateTimeField (
auto_now_add = True , verbose_name = " time of creation "
) ,
) ,
(
" auth_key " ,
models . CharField (
help_text = " A key to authenticated this judge " ,
max_length = 100 ,
verbose_name = " authentication key " ,
) ,
) ,
(
" is_blocked " ,
models . BooleanField (
default = False ,
help_text = " Whether this judge should be blocked from connecting, even if its key is correct. " ,
verbose_name = " block judge " ,
) ,
) ,
(
" online " ,
models . BooleanField (
default = False , verbose_name = " judge online status "
) ,
) ,
(
" start_time " ,
models . DateTimeField ( null = True , verbose_name = " judge start time " ) ,
) ,
( " ping " , models . FloatField ( null = True , verbose_name = " response time " ) ) ,
(
" load " ,
models . FloatField (
help_text = " Load for the last minute, divided by processors to be fair. " ,
null = True ,
verbose_name = " system load " ,
) ,
) ,
(
" description " ,
models . TextField ( blank = True , verbose_name = " description " ) ,
) ,
(
" last_ip " ,
models . GenericIPAddressField (
blank = True , null = True , verbose_name = " Last connected IP "
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" ordering " : [ " name " ] ,
" verbose_name_plural " : " judges " ,
" verbose_name " : " judge " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " Language " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" key " ,
models . CharField (
help_text = " The identifier for this language; the same as its executor id for judges. " ,
max_length = 6 ,
unique = True ,
verbose_name = " short identifier " ,
) ,
) ,
(
" name " ,
models . CharField (
help_text = ' Longer name for the language, e.g. " Python 2 " or " C++11 " . ' ,
max_length = 20 ,
verbose_name = " long name " ,
) ,
) ,
(
" short_name " ,
models . CharField (
blank = True ,
help_text = ' More readable, but short, name to display publicly; e.g. " PY2 " or " C++11 " . If left blank, it will default to the short identifier. ' ,
max_length = 10 ,
null = True ,
verbose_name = " short name " ,
) ,
) ,
(
" common_name " ,
models . CharField (
help_text = ' Common name for the language. For example, the common name for C++03, C++11, and C++14 would be " C++ " ' ,
max_length = 10 ,
verbose_name = " common name " ,
) ,
) ,
(
" ace " ,
models . CharField (
help_text = ' Language ID for Ace.js editor highlighting, appended to " mode- " to determine the Ace JavaScript file to use, e.g., " python " . ' ,
max_length = 20 ,
verbose_name = " ace mode name " ,
) ,
) ,
(
" pygments " ,
models . CharField (
help_text = " Language ID for Pygments highlighting in source windows. " ,
max_length = 20 ,
verbose_name = " pygments name " ,
) ,
) ,
(
" template " ,
models . TextField (
blank = True ,
help_text = " Code template to display in submission editor. " ,
verbose_name = " code template " ,
) ,
) ,
(
" info " ,
models . CharField (
blank = True ,
help_text = " Do not set this unless you know what you ' re doing! It will override the usually more specific, judge-provided runtime info! " ,
max_length = 50 ,
verbose_name = " runtime info override " ,
) ,
) ,
(
" description " ,
models . TextField (
blank = True ,
help_text = " Use field this to inform users of quirks with your environment, additional restrictions, etc. " ,
verbose_name = " language description " ,
) ,
) ,
(
" extension " ,
models . CharField (
help_text = ' The extension of source files, e.g., " py " or " cpp " . ' ,
max_length = 10 ,
verbose_name = " extension " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" ordering " : [ " key " ] ,
" verbose_name_plural " : " languages " ,
" verbose_name " : " language " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " LanguageLimit " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
( " time_limit " , models . FloatField ( verbose_name = " time limit " ) ) ,
( " memory_limit " , models . IntegerField ( verbose_name = " memory limit " ) ) ,
(
" language " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
to = " judge.Language " ,
verbose_name = " language " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " language-specific resource limits " ,
" verbose_name " : " language-specific resource limit " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " License " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" key " ,
models . CharField (
max_length = 20 ,
unique = True ,
validators = [
django . core . validators . RegexValidator (
" ^[- \\ w.]+$ " , " License key must be ^[- \\ w.]+$ "
)
] ,
verbose_name = " key " ,
) ,
) ,
( " link " , models . CharField ( max_length = 256 , verbose_name = " link " ) ) ,
( " name " , models . CharField ( max_length = 256 , verbose_name = " full name " ) ) ,
(
" display " ,
models . CharField (
blank = True ,
help_text = " Displayed on pages under this license " ,
max_length = 256 ,
verbose_name = " short name " ,
) ,
) ,
(
" icon " ,
models . CharField (
blank = True ,
help_text = " URL to the icon " ,
max_length = 256 ,
verbose_name = " icon " ,
) ,
) ,
( " text " , models . TextField ( verbose_name = " license text " ) ) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " licenses " ,
" verbose_name " : " license " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " MiscConfig " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
( " key " , models . CharField ( db_index = True , max_length = 30 ) ) ,
( " value " , models . TextField ( blank = True ) ) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " miscellaneous configuration " ,
" verbose_name " : " configuration item " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " NavigationBar " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" order " ,
models . PositiveIntegerField ( db_index = True , verbose_name = " order " ) ,
) ,
(
" key " ,
models . CharField (
max_length = 10 , unique = True , verbose_name = " identifier "
) ,
) ,
( " label " , models . CharField ( max_length = 20 , verbose_name = " label " ) ) ,
( " path " , models . CharField ( max_length = 255 , verbose_name = " link path " ) ) ,
(
" regex " ,
models . TextField (
validators = [ judge . models . interface . validate_regex ] ,
verbose_name = " highlight regex " ,
) ,
) ,
( " lft " , models . PositiveIntegerField ( db_index = True , editable = False ) ) ,
( " rght " , models . PositiveIntegerField ( db_index = True , editable = False ) ) ,
( " tree_id " , models . PositiveIntegerField ( db_index = True , editable = False ) ) ,
( " level " , models . PositiveIntegerField ( db_index = True , editable = False ) ) ,
(
" parent " ,
mptt . fields . TreeForeignKey (
blank = True ,
null = True ,
on_delete = django . db . models . deletion . CASCADE ,
related_name = " children " ,
to = " judge.NavigationBar " ,
verbose_name = " parent item " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " navigation bar " ,
" verbose_name " : " navigation item " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " Organization " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" name " ,
models . CharField ( max_length = 128 , verbose_name = " organization title " ) ,
) ,
(
" slug " ,
models . SlugField (
help_text = " Organization name shown in URL " ,
max_length = 128 ,
verbose_name = " organization slug " ,
) ,
) ,
(
" short_name " ,
models . CharField (
help_text = " Displayed beside user name during contests " ,
max_length = 20 ,
verbose_name = " short name " ,
) ,
) ,
( " about " , models . TextField ( verbose_name = " organization description " ) ) ,
(
" creation_date " ,
models . DateTimeField (
auto_now_add = True , verbose_name = " creation date "
) ,
) ,
(
" is_open " ,
models . BooleanField (
default = True ,
help_text = " Allow joining organization " ,
verbose_name = " is open organization? " ,
) ,
) ,
(
" slots " ,
models . IntegerField (
blank = True ,
help_text = " Maximum amount of users in this organization, only applicable to private organizations " ,
null = True ,
verbose_name = " maximum size " ,
) ,
) ,
(
" access_code " ,
models . CharField (
blank = True ,
help_text = " Student access code " ,
max_length = 7 ,
null = True ,
verbose_name = " access code " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" ordering " : [ " name " ] ,
" verbose_name_plural " : " organizations " ,
" permissions " : (
( " organization_admin " , " Administer organizations " ) ,
( " edit_all_organization " , " Edit all organizations " ) ,
) ,
" verbose_name " : " organization " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " OrganizationRequest " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" time " ,
models . DateTimeField (
auto_now_add = True , verbose_name = " request time "
) ,
) ,
(
" state " ,
models . CharField (
choices = [
( " P " , " Pending " ) ,
( " A " , " Approved " ) ,
( " R " , " Rejected " ) ,
] ,
max_length = 1 ,
verbose_name = " state " ,
) ,
) ,
( " reason " , models . TextField ( verbose_name = " reason " ) ) ,
(
" organization " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " requests " ,
to = " judge.Organization " ,
verbose_name = " organization " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " organization join requests " ,
" verbose_name " : " organization join request " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " PrivateMessage " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" title " ,
models . CharField ( max_length = 50 , verbose_name = " message title " ) ,
) ,
( " content " , models . TextField ( verbose_name = " message body " ) ) ,
(
" timestamp " ,
models . DateTimeField (
auto_now_add = True , verbose_name = " message timestamp "
) ,
) ,
( " read " , models . BooleanField ( default = False , verbose_name = " read " ) ) ,
2020-01-21 06:35:58 +00:00
] ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " PrivateMessageThread " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" messages " ,
models . ManyToManyField (
to = " judge.PrivateMessage " , verbose_name = " messages in the thread "
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " Problem " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" code " ,
models . CharField (
max_length = 20 ,
unique = True ,
validators = [
django . core . validators . RegexValidator (
" ^[a-z0-9]+$ " , " Problem code must be ^[a-z0-9]+$ "
)
] ,
verbose_name = " problem code " ,
) ,
) ,
(
" name " ,
models . CharField (
db_index = True , max_length = 100 , verbose_name = " problem name "
) ,
) ,
( " description " , models . TextField ( verbose_name = " problem body " ) ) ,
(
" time_limit " ,
models . FloatField (
help_text = " The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported. " ,
verbose_name = " time limit " ,
) ,
) ,
(
" memory_limit " ,
models . IntegerField (
help_text = " The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes). " ,
verbose_name = " memory limit " ,
) ,
) ,
( " short_circuit " , models . BooleanField ( default = False ) ) ,
( " points " , models . FloatField ( verbose_name = " points " ) ) ,
(
" partial " ,
models . BooleanField (
default = False , verbose_name = " allows partial points "
) ,
) ,
(
" is_public " ,
models . BooleanField (
db_index = True , default = False , verbose_name = " publicly visible "
) ,
) ,
(
" is_manually_managed " ,
models . BooleanField (
db_index = True ,
default = False ,
help_text = " Whether judges should be allowed to manage data or not " ,
verbose_name = " manually managed " ,
) ,
) ,
(
" date " ,
models . DateTimeField (
blank = True ,
db_index = True ,
help_text = " Doesn ' t have magic ability to auto-publish due to backward compatibility " ,
null = True ,
verbose_name = " date of publishing " ,
) ,
) ,
(
" og_image " ,
models . CharField (
blank = True , max_length = 150 , verbose_name = " OpenGraph image "
) ,
) ,
(
" summary " ,
models . TextField (
blank = True ,
help_text = " Plain-text, shown in meta description tag, e.g. for social media. " ,
verbose_name = " problem summary " ,
) ,
) ,
(
" user_count " ,
models . IntegerField (
default = 0 ,
help_text = " The number of users who solved the problem. " ,
verbose_name = " number of users " ,
) ,
) ,
( " ac_rate " , models . FloatField ( default = 0 , verbose_name = " solve rate " ) ) ,
(
" is_organization_private " ,
models . BooleanField (
default = False , verbose_name = " private to organizations "
) ,
) ,
(
" allowed_languages " ,
models . ManyToManyField (
to = " judge.Language " , verbose_name = " allowed languages "
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " problems " ,
" permissions " : (
( " see_private_problem " , " See hidden problems " ) ,
( " edit_own_problem " , " Edit own problems " ) ,
( " edit_all_problem " , " Edit all problems " ) ,
( " edit_public_problem " , " Edit all public problems " ) ,
( " clone_problem " , " Clone problem " ) ,
( " change_public_visibility " , " Change is_public field " ) ,
( " change_manually_managed " , " Change is_manually_managed field " ) ,
( " see_organization_problem " , " See organization-private problems " ) ,
) ,
" verbose_name " : " problem " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " ProblemClarification " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
( " description " , models . TextField ( verbose_name = " clarification body " ) ) ,
(
" date " ,
models . DateTimeField (
auto_now_add = True , verbose_name = " clarification timestamp "
) ,
) ,
(
" problem " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
to = " judge.Problem " ,
verbose_name = " clarified problem " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " ProblemData " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" zipfile " ,
models . FileField (
blank = True ,
null = True ,
storage = judge . utils . problem_data . ProblemDataStorage ( ) ,
upload_to = judge . models . problem_data . problem_directory_file ,
verbose_name = " data zip file " ,
) ,
) ,
(
" generator " ,
models . FileField (
blank = True ,
null = True ,
storage = judge . utils . problem_data . ProblemDataStorage ( ) ,
upload_to = judge . models . problem_data . problem_directory_file ,
verbose_name = " generator file " ,
) ,
) ,
(
" output_prefix " ,
models . IntegerField (
blank = True , null = True , verbose_name = " output prefix length "
) ,
) ,
(
" output_limit " ,
models . IntegerField (
blank = True , null = True , verbose_name = " output limit length "
) ,
) ,
(
" feedback " ,
models . TextField (
blank = True , verbose_name = " init.yml generation feedback "
) ,
) ,
(
" checker " ,
models . CharField (
blank = True ,
choices = [
( " standard " , " Standard " ) ,
( " floats " , " Floats " ) ,
( " floatsabs " , " Floats (absolute) " ) ,
( " floatsrel " , " Floats (relative) " ) ,
( " rstripped " , " Non-trailing spaces " ) ,
( " sorted " , " Unordered " ) ,
( " identical " , " Byte identical " ) ,
( " linecount " , " Line-by-line " ) ,
] ,
max_length = 10 ,
verbose_name = " checker " ,
) ,
) ,
(
" checker_args " ,
models . TextField (
blank = True ,
help_text = " checker arguments as a JSON object " ,
verbose_name = " checker arguments " ,
) ,
) ,
(
" problem " ,
models . OneToOneField (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " data_files " ,
to = " judge.Problem " ,
verbose_name = " problem " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " ProblemGroup " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" name " ,
models . CharField (
max_length = 20 , unique = True , verbose_name = " problem group ID "
) ,
) ,
(
" full_name " ,
models . CharField ( max_length = 100 , verbose_name = " problem group name " ) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" ordering " : [ " full_name " ] ,
" verbose_name_plural " : " problem groups " ,
" verbose_name " : " problem group " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " ProblemTestCase " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
( " order " , models . IntegerField ( verbose_name = " case position " ) ) ,
(
" type " ,
models . CharField (
choices = [
( " C " , " Normal case " ) ,
( " S " , " Batch start " ) ,
( " E " , " Batch end " ) ,
] ,
default = " C " ,
max_length = 1 ,
verbose_name = " case type " ,
) ,
) ,
(
" input_file " ,
models . CharField (
blank = True , max_length = 100 , verbose_name = " input file name "
) ,
) ,
(
" output_file " ,
models . CharField (
blank = True , max_length = 100 , verbose_name = " output file name "
) ,
) ,
(
" generator_args " ,
models . TextField ( blank = True , verbose_name = " generator arguments " ) ,
) ,
(
" points " ,
models . IntegerField (
blank = True , null = True , verbose_name = " point value "
) ,
) ,
( " is_pretest " , models . BooleanField ( verbose_name = " case is pretest? " ) ) ,
(
" output_prefix " ,
models . IntegerField (
blank = True , null = True , verbose_name = " output prefix length "
) ,
) ,
(
" output_limit " ,
models . IntegerField (
blank = True , null = True , verbose_name = " output limit length "
) ,
) ,
(
" checker " ,
models . CharField (
blank = True ,
choices = [
( " standard " , " Standard " ) ,
( " floats " , " Floats " ) ,
( " floatsabs " , " Floats (absolute) " ) ,
( " floatsrel " , " Floats (relative) " ) ,
( " rstripped " , " Non-trailing spaces " ) ,
( " sorted " , " Unordered " ) ,
( " identical " , " Byte identical " ) ,
( " linecount " , " Line-by-line " ) ,
] ,
max_length = 10 ,
verbose_name = " checker " ,
) ,
) ,
(
" checker_args " ,
models . TextField (
blank = True ,
help_text = " checker arguments as a JSON object " ,
verbose_name = " checker arguments " ,
) ,
) ,
(
" dataset " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " cases " ,
to = " judge.Problem " ,
verbose_name = " problem data set " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " ProblemTranslation " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" language " ,
models . CharField (
choices = [
( " de " , " German " ) ,
( " en " , " English " ) ,
( " es " , " Spanish " ) ,
( " fr " , " French " ) ,
( " hr " , " Croatian " ) ,
( " hu " , " Hungarian " ) ,
( " ko " , " Korean " ) ,
( " ro " , " Romanian " ) ,
( " ru " , " Russian " ) ,
( " sr-latn " , " Serbian (Latin) " ) ,
( " tr " , " Turkish " ) ,
( " vi " , " Vietnamese " ) ,
( " zh-hans " , " Simplified Chinese " ) ,
] ,
max_length = 7 ,
verbose_name = " language " ,
) ,
) ,
(
" name " ,
models . CharField (
db_index = True , max_length = 100 , verbose_name = " translated name "
) ,
) ,
(
" description " ,
models . TextField ( verbose_name = " translated description " ) ,
) ,
(
" problem " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " translations " ,
to = " judge.Problem " ,
verbose_name = " problem " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " problem translations " ,
" verbose_name " : " problem translation " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " ProblemType " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" name " ,
models . CharField (
max_length = 20 , unique = True , verbose_name = " problem category ID "
) ,
) ,
(
" full_name " ,
models . CharField (
max_length = 100 , verbose_name = " problem category name "
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" ordering " : [ " full_name " ] ,
" verbose_name_plural " : " problem types " ,
" verbose_name " : " problem type " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " Profile " ,
fields = [
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" about " ,
models . TextField (
blank = True , null = True , verbose_name = " self-description "
) ,
) ,
(
" timezone " ,
models . CharField (
choices = [
(
" Africa " ,
[
( " Africa/Abidjan " , " Abidjan " ) ,
( " Africa/Accra " , " Accra " ) ,
( " Africa/Addis_Ababa " , " Addis_Ababa " ) ,
( " Africa/Algiers " , " Algiers " ) ,
( " Africa/Asmara " , " Asmara " ) ,
( " Africa/Asmera " , " Asmera " ) ,
( " Africa/Bamako " , " Bamako " ) ,
( " Africa/Bangui " , " Bangui " ) ,
( " Africa/Banjul " , " Banjul " ) ,
( " Africa/Bissau " , " Bissau " ) ,
( " Africa/Blantyre " , " Blantyre " ) ,
( " Africa/Brazzaville " , " Brazzaville " ) ,
( " Africa/Bujumbura " , " Bujumbura " ) ,
( " Africa/Cairo " , " Cairo " ) ,
( " Africa/Casablanca " , " Casablanca " ) ,
( " Africa/Ceuta " , " Ceuta " ) ,
( " Africa/Conakry " , " Conakry " ) ,
( " Africa/Dakar " , " Dakar " ) ,
( " Africa/Dar_es_Salaam " , " Dar_es_Salaam " ) ,
( " Africa/Djibouti " , " Djibouti " ) ,
( " Africa/Douala " , " Douala " ) ,
( " Africa/El_Aaiun " , " El_Aaiun " ) ,
( " Africa/Freetown " , " Freetown " ) ,
( " Africa/Gaborone " , " Gaborone " ) ,
( " Africa/Harare " , " Harare " ) ,
( " Africa/Johannesburg " , " Johannesburg " ) ,
( " Africa/Juba " , " Juba " ) ,
( " Africa/Kampala " , " Kampala " ) ,
( " Africa/Khartoum " , " Khartoum " ) ,
( " Africa/Kigali " , " Kigali " ) ,
( " Africa/Kinshasa " , " Kinshasa " ) ,
( " Africa/Lagos " , " Lagos " ) ,
( " Africa/Libreville " , " Libreville " ) ,
( " Africa/Lome " , " Lome " ) ,
( " Africa/Luanda " , " Luanda " ) ,
( " Africa/Lubumbashi " , " Lubumbashi " ) ,
( " Africa/Lusaka " , " Lusaka " ) ,
( " Africa/Malabo " , " Malabo " ) ,
( " Africa/Maputo " , " Maputo " ) ,
( " Africa/Maseru " , " Maseru " ) ,
( " Africa/Mbabane " , " Mbabane " ) ,
( " Africa/Mogadishu " , " Mogadishu " ) ,
( " Africa/Monrovia " , " Monrovia " ) ,
( " Africa/Nairobi " , " Nairobi " ) ,
( " Africa/Ndjamena " , " Ndjamena " ) ,
( " Africa/Niamey " , " Niamey " ) ,
( " Africa/Nouakchott " , " Nouakchott " ) ,
( " Africa/Ouagadougou " , " Ouagadougou " ) ,
( " Africa/Porto-Novo " , " Porto-Novo " ) ,
( " Africa/Sao_Tome " , " Sao_Tome " ) ,
( " Africa/Timbuktu " , " Timbuktu " ) ,
( " Africa/Tripoli " , " Tripoli " ) ,
( " Africa/Tunis " , " Tunis " ) ,
( " Africa/Windhoek " , " Windhoek " ) ,
] ,
) ,
(
" America " ,
[
( " America/Adak " , " Adak " ) ,
( " America/Anchorage " , " Anchorage " ) ,
( " America/Anguilla " , " Anguilla " ) ,
( " America/Antigua " , " Antigua " ) ,
( " America/Araguaina " , " Araguaina " ) ,
(
" America/Argentina/Buenos_Aires " ,
" Argentina/Buenos_Aires " ,
) ,
(
" America/Argentina/Catamarca " ,
" Argentina/Catamarca " ,
) ,
(
" America/Argentina/ComodRivadavia " ,
" Argentina/ComodRivadavia " ,
) ,
( " America/Argentina/Cordoba " , " Argentina/Cordoba " ) ,
( " America/Argentina/Jujuy " , " Argentina/Jujuy " ) ,
(
" America/Argentina/La_Rioja " ,
" Argentina/La_Rioja " ,
) ,
( " America/Argentina/Mendoza " , " Argentina/Mendoza " ) ,
(
" America/Argentina/Rio_Gallegos " ,
" Argentina/Rio_Gallegos " ,
) ,
( " America/Argentina/Salta " , " Argentina/Salta " ) ,
(
" America/Argentina/San_Juan " ,
" Argentina/San_Juan " ,
) ,
(
" America/Argentina/San_Luis " ,
" Argentina/San_Luis " ,
) ,
( " America/Argentina/Tucuman " , " Argentina/Tucuman " ) ,
( " America/Argentina/Ushuaia " , " Argentina/Ushuaia " ) ,
( " America/Aruba " , " Aruba " ) ,
( " America/Asuncion " , " Asuncion " ) ,
( " America/Atikokan " , " Atikokan " ) ,
( " America/Atka " , " Atka " ) ,
( " America/Bahia " , " Bahia " ) ,
( " America/Bahia_Banderas " , " Bahia_Banderas " ) ,
( " America/Barbados " , " Barbados " ) ,
( " America/Belem " , " Belem " ) ,
( " America/Belize " , " Belize " ) ,
( " America/Blanc-Sablon " , " Blanc-Sablon " ) ,
( " America/Boa_Vista " , " Boa_Vista " ) ,
( " America/Bogota " , " Bogota " ) ,
( " America/Boise " , " Boise " ) ,
( " America/Buenos_Aires " , " Buenos_Aires " ) ,
( " America/Cambridge_Bay " , " Cambridge_Bay " ) ,
( " America/Campo_Grande " , " Campo_Grande " ) ,
( " America/Cancun " , " Cancun " ) ,
( " America/Caracas " , " Caracas " ) ,
( " America/Catamarca " , " Catamarca " ) ,
( " America/Cayenne " , " Cayenne " ) ,
( " America/Cayman " , " Cayman " ) ,
( " America/Chicago " , " Chicago " ) ,
( " America/Chihuahua " , " Chihuahua " ) ,
( " America/Coral_Harbour " , " Coral_Harbour " ) ,
( " America/Cordoba " , " Cordoba " ) ,
( " America/Costa_Rica " , " Costa_Rica " ) ,
( " America/Creston " , " Creston " ) ,
( " America/Cuiaba " , " Cuiaba " ) ,
( " America/Curacao " , " Curacao " ) ,
( " America/Danmarkshavn " , " Danmarkshavn " ) ,
( " America/Dawson " , " Dawson " ) ,
( " America/Dawson_Creek " , " Dawson_Creek " ) ,
( " America/Denver " , " Denver " ) ,
( " America/Detroit " , " Detroit " ) ,
( " America/Dominica " , " Dominica " ) ,
( " America/Edmonton " , " Edmonton " ) ,
( " America/Eirunepe " , " Eirunepe " ) ,
( " America/El_Salvador " , " El_Salvador " ) ,
( " America/Ensenada " , " Ensenada " ) ,
( " America/Fort_Nelson " , " Fort_Nelson " ) ,
( " America/Fort_Wayne " , " Fort_Wayne " ) ,
( " America/Fortaleza " , " Fortaleza " ) ,
( " America/Glace_Bay " , " Glace_Bay " ) ,
( " America/Godthab " , " Godthab " ) ,
( " America/Goose_Bay " , " Goose_Bay " ) ,
( " America/Grand_Turk " , " Grand_Turk " ) ,
( " America/Grenada " , " Grenada " ) ,
( " America/Guadeloupe " , " Guadeloupe " ) ,
( " America/Guatemala " , " Guatemala " ) ,
( " America/Guayaquil " , " Guayaquil " ) ,
( " America/Guyana " , " Guyana " ) ,
( " America/Halifax " , " Halifax " ) ,
( " America/Havana " , " Havana " ) ,
( " America/Hermosillo " , " Hermosillo " ) ,
(
" America/Indiana/Indianapolis " ,
" Indiana/Indianapolis " ,
) ,
( " America/Indiana/Knox " , " Indiana/Knox " ) ,
( " America/Indiana/Marengo " , " Indiana/Marengo " ) ,
(
" America/Indiana/Petersburg " ,
" Indiana/Petersburg " ,
) ,
( " America/Indiana/Tell_City " , " Indiana/Tell_City " ) ,
( " America/Indiana/Vevay " , " Indiana/Vevay " ) ,
( " America/Indiana/Vincennes " , " Indiana/Vincennes " ) ,
( " America/Indiana/Winamac " , " Indiana/Winamac " ) ,
( " America/Indianapolis " , " Indianapolis " ) ,
( " America/Inuvik " , " Inuvik " ) ,
( " America/Iqaluit " , " Iqaluit " ) ,
( " America/Jamaica " , " Jamaica " ) ,
( " America/Jujuy " , " Jujuy " ) ,
( " America/Juneau " , " Juneau " ) ,
(
" America/Kentucky/Louisville " ,
" Kentucky/Louisville " ,
) ,
(
" America/Kentucky/Monticello " ,
" Kentucky/Monticello " ,
) ,
( " America/Knox_IN " , " Knox_IN " ) ,
( " America/Kralendijk " , " Kralendijk " ) ,
( " America/La_Paz " , " La_Paz " ) ,
( " America/Lima " , " Lima " ) ,
( " America/Los_Angeles " , " Los_Angeles " ) ,
( " America/Louisville " , " Louisville " ) ,
( " America/Lower_Princes " , " Lower_Princes " ) ,
( " America/Maceio " , " Maceio " ) ,
( " America/Managua " , " Managua " ) ,
( " America/Manaus " , " Manaus " ) ,
( " America/Marigot " , " Marigot " ) ,
( " America/Martinique " , " Martinique " ) ,
( " America/Matamoros " , " Matamoros " ) ,
( " America/Mazatlan " , " Mazatlan " ) ,
( " America/Mendoza " , " Mendoza " ) ,
( " America/Menominee " , " Menominee " ) ,
( " America/Merida " , " Merida " ) ,
( " America/Metlakatla " , " Metlakatla " ) ,
( " America/Mexico_City " , " Mexico_City " ) ,
( " America/Miquelon " , " Miquelon " ) ,
( " America/Moncton " , " Moncton " ) ,
( " America/Monterrey " , " Monterrey " ) ,
( " America/Montevideo " , " Montevideo " ) ,
( " America/Montreal " , " Montreal " ) ,
( " America/Montserrat " , " Montserrat " ) ,
( " America/Nassau " , " Nassau " ) ,
( " America/New_York " , " New_York " ) ,
( " America/Nipigon " , " Nipigon " ) ,
( " America/Nome " , " Nome " ) ,
( " America/Noronha " , " Noronha " ) ,
(
" America/North_Dakota/Beulah " ,
" North_Dakota/Beulah " ,
) ,
(
" America/North_Dakota/Center " ,
" North_Dakota/Center " ,
) ,
(
" America/North_Dakota/New_Salem " ,
" North_Dakota/New_Salem " ,
) ,
( " America/Ojinaga " , " Ojinaga " ) ,
( " America/Panama " , " Panama " ) ,
( " America/Pangnirtung " , " Pangnirtung " ) ,
( " America/Paramaribo " , " Paramaribo " ) ,
( " America/Phoenix " , " Phoenix " ) ,
( " America/Port-au-Prince " , " Port-au-Prince " ) ,
( " America/Port_of_Spain " , " Port_of_Spain " ) ,
( " America/Porto_Acre " , " Porto_Acre " ) ,
( " America/Porto_Velho " , " Porto_Velho " ) ,
( " America/Puerto_Rico " , " Puerto_Rico " ) ,
( " America/Punta_Arenas " , " Punta_Arenas " ) ,
( " America/Rainy_River " , " Rainy_River " ) ,
( " America/Rankin_Inlet " , " Rankin_Inlet " ) ,
( " America/Recife " , " Recife " ) ,
( " America/Regina " , " Regina " ) ,
( " America/Resolute " , " Resolute " ) ,
( " America/Rio_Branco " , " Rio_Branco " ) ,
( " America/Rosario " , " Rosario " ) ,
( " America/Santa_Isabel " , " Santa_Isabel " ) ,
( " America/Santarem " , " Santarem " ) ,
( " America/Santiago " , " Santiago " ) ,
( " America/Santo_Domingo " , " Santo_Domingo " ) ,
( " America/Sao_Paulo " , " Sao_Paulo " ) ,
( " America/Scoresbysund " , " Scoresbysund " ) ,
( " America/Shiprock " , " Shiprock " ) ,
( " America/Sitka " , " Sitka " ) ,
( " America/St_Barthelemy " , " St_Barthelemy " ) ,
( " America/St_Johns " , " St_Johns " ) ,
( " America/St_Kitts " , " St_Kitts " ) ,
( " America/St_Lucia " , " St_Lucia " ) ,
( " America/St_Thomas " , " St_Thomas " ) ,
( " America/St_Vincent " , " St_Vincent " ) ,
( " America/Swift_Current " , " Swift_Current " ) ,
( " America/Tegucigalpa " , " Tegucigalpa " ) ,
( " America/Thule " , " Thule " ) ,
( " America/Thunder_Bay " , " Thunder_Bay " ) ,
( " America/Tijuana " , " Tijuana " ) ,
( " America/Toronto " , " Toronto " ) ,
( " America/Tortola " , " Tortola " ) ,
( " America/Vancouver " , " Vancouver " ) ,
( " America/Virgin " , " Virgin " ) ,
( " America/Whitehorse " , " Whitehorse " ) ,
( " America/Winnipeg " , " Winnipeg " ) ,
( " America/Yakutat " , " Yakutat " ) ,
( " America/Yellowknife " , " Yellowknife " ) ,
] ,
) ,
(
" Antarctica " ,
[
( " Antarctica/Casey " , " Casey " ) ,
( " Antarctica/Davis " , " Davis " ) ,
( " Antarctica/DumontDUrville " , " DumontDUrville " ) ,
( " Antarctica/Macquarie " , " Macquarie " ) ,
( " Antarctica/Mawson " , " Mawson " ) ,
( " Antarctica/McMurdo " , " McMurdo " ) ,
( " Antarctica/Palmer " , " Palmer " ) ,
( " Antarctica/Rothera " , " Rothera " ) ,
( " Antarctica/South_Pole " , " South_Pole " ) ,
( " Antarctica/Syowa " , " Syowa " ) ,
( " Antarctica/Troll " , " Troll " ) ,
( " Antarctica/Vostok " , " Vostok " ) ,
] ,
) ,
( " Arctic " , [ ( " Arctic/Longyearbyen " , " Longyearbyen " ) ] ) ,
(
" Asia " ,
[
( " Asia/Aden " , " Aden " ) ,
( " Asia/Almaty " , " Almaty " ) ,
( " Asia/Amman " , " Amman " ) ,
( " Asia/Anadyr " , " Anadyr " ) ,
( " Asia/Aqtau " , " Aqtau " ) ,
( " Asia/Aqtobe " , " Aqtobe " ) ,
( " Asia/Ashgabat " , " Ashgabat " ) ,
( " Asia/Ashkhabad " , " Ashkhabad " ) ,
( " Asia/Atyrau " , " Atyrau " ) ,
( " Asia/Baghdad " , " Baghdad " ) ,
( " Asia/Bahrain " , " Bahrain " ) ,
( " Asia/Baku " , " Baku " ) ,
( " Asia/Bangkok " , " Bangkok " ) ,
( " Asia/Barnaul " , " Barnaul " ) ,
( " Asia/Beirut " , " Beirut " ) ,
( " Asia/Bishkek " , " Bishkek " ) ,
( " Asia/Brunei " , " Brunei " ) ,
( " Asia/Calcutta " , " Calcutta " ) ,
( " Asia/Chita " , " Chita " ) ,
( " Asia/Choibalsan " , " Choibalsan " ) ,
( " Asia/Chongqing " , " Chongqing " ) ,
( " Asia/Chungking " , " Chungking " ) ,
( " Asia/Colombo " , " Colombo " ) ,
( " Asia/Dacca " , " Dacca " ) ,
( " Asia/Damascus " , " Damascus " ) ,
( " Asia/Dhaka " , " Dhaka " ) ,
( " Asia/Dili " , " Dili " ) ,
( " Asia/Dubai " , " Dubai " ) ,
( " Asia/Dushanbe " , " Dushanbe " ) ,
( " Asia/Famagusta " , " Famagusta " ) ,
( " Asia/Gaza " , " Gaza " ) ,
( " Asia/Harbin " , " Harbin " ) ,
( " Asia/Hebron " , " Hebron " ) ,
( " Asia/Ho_Chi_Minh " , " Ho_Chi_Minh " ) ,
( " Asia/Hong_Kong " , " Hong_Kong " ) ,
( " Asia/Hovd " , " Hovd " ) ,
( " Asia/Irkutsk " , " Irkutsk " ) ,
( " Asia/Istanbul " , " Istanbul " ) ,
( " Asia/Jakarta " , " Jakarta " ) ,
( " Asia/Jayapura " , " Jayapura " ) ,
( " Asia/Jerusalem " , " Jerusalem " ) ,
( " Asia/Kabul " , " Kabul " ) ,
( " Asia/Kamchatka " , " Kamchatka " ) ,
( " Asia/Karachi " , " Karachi " ) ,
( " Asia/Kashgar " , " Kashgar " ) ,
( " Asia/Kathmandu " , " Kathmandu " ) ,
( " Asia/Katmandu " , " Katmandu " ) ,
( " Asia/Khandyga " , " Khandyga " ) ,
( " Asia/Kolkata " , " Kolkata " ) ,
( " Asia/Krasnoyarsk " , " Krasnoyarsk " ) ,
( " Asia/Kuala_Lumpur " , " Kuala_Lumpur " ) ,
( " Asia/Kuching " , " Kuching " ) ,
( " Asia/Kuwait " , " Kuwait " ) ,
( " Asia/Macao " , " Macao " ) ,
( " Asia/Macau " , " Macau " ) ,
( " Asia/Magadan " , " Magadan " ) ,
( " Asia/Makassar " , " Makassar " ) ,
( " Asia/Manila " , " Manila " ) ,
( " Asia/Muscat " , " Muscat " ) ,
( " Asia/Nicosia " , " Nicosia " ) ,
( " Asia/Novokuznetsk " , " Novokuznetsk " ) ,
( " Asia/Novosibirsk " , " Novosibirsk " ) ,
( " Asia/Omsk " , " Omsk " ) ,
( " Asia/Oral " , " Oral " ) ,
( " Asia/Phnom_Penh " , " Phnom_Penh " ) ,
( " Asia/Pontianak " , " Pontianak " ) ,
( " Asia/Pyongyang " , " Pyongyang " ) ,
( " Asia/Qatar " , " Qatar " ) ,
( " Asia/Qostanay " , " Qostanay " ) ,
( " Asia/Qyzylorda " , " Qyzylorda " ) ,
( " Asia/Rangoon " , " Rangoon " ) ,
( " Asia/Riyadh " , " Riyadh " ) ,
( " Asia/Saigon " , " Saigon " ) ,
( " Asia/Sakhalin " , " Sakhalin " ) ,
( " Asia/Samarkand " , " Samarkand " ) ,
( " Asia/Seoul " , " Seoul " ) ,
( " Asia/Shanghai " , " Shanghai " ) ,
( " Asia/Singapore " , " Singapore " ) ,
( " Asia/Srednekolymsk " , " Srednekolymsk " ) ,
( " Asia/Taipei " , " Taipei " ) ,
( " Asia/Tashkent " , " Tashkent " ) ,
( " Asia/Tbilisi " , " Tbilisi " ) ,
( " Asia/Tehran " , " Tehran " ) ,
( " Asia/Tel_Aviv " , " Tel_Aviv " ) ,
( " Asia/Thimbu " , " Thimbu " ) ,
( " Asia/Thimphu " , " Thimphu " ) ,
( " Asia/Tokyo " , " Tokyo " ) ,
( " Asia/Tomsk " , " Tomsk " ) ,
( " Asia/Ujung_Pandang " , " Ujung_Pandang " ) ,
( " Asia/Ulaanbaatar " , " Ulaanbaatar " ) ,
( " Asia/Ulan_Bator " , " Ulan_Bator " ) ,
( " Asia/Urumqi " , " Urumqi " ) ,
( " Asia/Ust-Nera " , " Ust-Nera " ) ,
( " Asia/Vientiane " , " Vientiane " ) ,
( " Asia/Vladivostok " , " Vladivostok " ) ,
( " Asia/Yakutsk " , " Yakutsk " ) ,
( " Asia/Yangon " , " Yangon " ) ,
( " Asia/Yekaterinburg " , " Yekaterinburg " ) ,
( " Asia/Yerevan " , " Yerevan " ) ,
] ,
) ,
(
" Atlantic " ,
[
( " Atlantic/Azores " , " Azores " ) ,
( " Atlantic/Bermuda " , " Bermuda " ) ,
( " Atlantic/Canary " , " Canary " ) ,
( " Atlantic/Cape_Verde " , " Cape_Verde " ) ,
( " Atlantic/Faeroe " , " Faeroe " ) ,
( " Atlantic/Faroe " , " Faroe " ) ,
( " Atlantic/Jan_Mayen " , " Jan_Mayen " ) ,
( " Atlantic/Madeira " , " Madeira " ) ,
( " Atlantic/Reykjavik " , " Reykjavik " ) ,
( " Atlantic/South_Georgia " , " South_Georgia " ) ,
( " Atlantic/St_Helena " , " St_Helena " ) ,
( " Atlantic/Stanley " , " Stanley " ) ,
] ,
) ,
(
" Australia " ,
[
( " Australia/ACT " , " ACT " ) ,
( " Australia/Adelaide " , " Adelaide " ) ,
( " Australia/Brisbane " , " Brisbane " ) ,
( " Australia/Broken_Hill " , " Broken_Hill " ) ,
( " Australia/Canberra " , " Canberra " ) ,
( " Australia/Currie " , " Currie " ) ,
( " Australia/Darwin " , " Darwin " ) ,
( " Australia/Eucla " , " Eucla " ) ,
( " Australia/Hobart " , " Hobart " ) ,
( " Australia/LHI " , " LHI " ) ,
( " Australia/Lindeman " , " Lindeman " ) ,
( " Australia/Lord_Howe " , " Lord_Howe " ) ,
( " Australia/Melbourne " , " Melbourne " ) ,
( " Australia/NSW " , " NSW " ) ,
( " Australia/North " , " North " ) ,
( " Australia/Perth " , " Perth " ) ,
( " Australia/Queensland " , " Queensland " ) ,
( " Australia/South " , " South " ) ,
( " Australia/Sydney " , " Sydney " ) ,
( " Australia/Tasmania " , " Tasmania " ) ,
( " Australia/Victoria " , " Victoria " ) ,
( " Australia/West " , " West " ) ,
( " Australia/Yancowinna " , " Yancowinna " ) ,
] ,
) ,
(
" Brazil " ,
[
( " Brazil/Acre " , " Acre " ) ,
( " Brazil/DeNoronha " , " DeNoronha " ) ,
( " Brazil/East " , " East " ) ,
( " Brazil/West " , " West " ) ,
] ,
) ,
(
" Canada " ,
[
( " Canada/Atlantic " , " Atlantic " ) ,
( " Canada/Central " , " Central " ) ,
( " Canada/Eastern " , " Eastern " ) ,
( " Canada/Mountain " , " Mountain " ) ,
( " Canada/Newfoundland " , " Newfoundland " ) ,
( " Canada/Pacific " , " Pacific " ) ,
( " Canada/Saskatchewan " , " Saskatchewan " ) ,
( " Canada/Yukon " , " Yukon " ) ,
] ,
) ,
(
" Chile " ,
[
( " Chile/Continental " , " Continental " ) ,
( " Chile/EasterIsland " , " EasterIsland " ) ,
] ,
) ,
(
" Etc " ,
[
( " Etc/Greenwich " , " Greenwich " ) ,
( " Etc/UCT " , " UCT " ) ,
( " Etc/UTC " , " UTC " ) ,
( " Etc/Universal " , " Universal " ) ,
( " Etc/Zulu " , " Zulu " ) ,
] ,
) ,
(
" Europe " ,
[
( " Europe/Amsterdam " , " Amsterdam " ) ,
( " Europe/Andorra " , " Andorra " ) ,
( " Europe/Astrakhan " , " Astrakhan " ) ,
( " Europe/Athens " , " Athens " ) ,
( " Europe/Belfast " , " Belfast " ) ,
( " Europe/Belgrade " , " Belgrade " ) ,
( " Europe/Berlin " , " Berlin " ) ,
( " Europe/Bratislava " , " Bratislava " ) ,
( " Europe/Brussels " , " Brussels " ) ,
( " Europe/Bucharest " , " Bucharest " ) ,
( " Europe/Budapest " , " Budapest " ) ,
( " Europe/Busingen " , " Busingen " ) ,
( " Europe/Chisinau " , " Chisinau " ) ,
( " Europe/Copenhagen " , " Copenhagen " ) ,
( " Europe/Dublin " , " Dublin " ) ,
( " Europe/Gibraltar " , " Gibraltar " ) ,
( " Europe/Guernsey " , " Guernsey " ) ,
( " Europe/Helsinki " , " Helsinki " ) ,
( " Europe/Isle_of_Man " , " Isle_of_Man " ) ,
( " Europe/Istanbul " , " Istanbul " ) ,
( " Europe/Jersey " , " Jersey " ) ,
( " Europe/Kaliningrad " , " Kaliningrad " ) ,
( " Europe/Kiev " , " Kiev " ) ,
( " Europe/Kirov " , " Kirov " ) ,
( " Europe/Lisbon " , " Lisbon " ) ,
( " Europe/Ljubljana " , " Ljubljana " ) ,
( " Europe/London " , " London " ) ,
( " Europe/Luxembourg " , " Luxembourg " ) ,
( " Europe/Madrid " , " Madrid " ) ,
( " Europe/Malta " , " Malta " ) ,
( " Europe/Mariehamn " , " Mariehamn " ) ,
( " Europe/Minsk " , " Minsk " ) ,
( " Europe/Monaco " , " Monaco " ) ,
( " Europe/Moscow " , " Moscow " ) ,
( " Europe/Nicosia " , " Nicosia " ) ,
( " Europe/Oslo " , " Oslo " ) ,
( " Europe/Paris " , " Paris " ) ,
( " Europe/Podgorica " , " Podgorica " ) ,
( " Europe/Prague " , " Prague " ) ,
( " Europe/Riga " , " Riga " ) ,
( " Europe/Rome " , " Rome " ) ,
( " Europe/Samara " , " Samara " ) ,
( " Europe/San_Marino " , " San_Marino " ) ,
( " Europe/Sarajevo " , " Sarajevo " ) ,
( " Europe/Saratov " , " Saratov " ) ,
( " Europe/Simferopol " , " Simferopol " ) ,
( " Europe/Skopje " , " Skopje " ) ,
( " Europe/Sofia " , " Sofia " ) ,
( " Europe/Stockholm " , " Stockholm " ) ,
( " Europe/Tallinn " , " Tallinn " ) ,
( " Europe/Tirane " , " Tirane " ) ,
( " Europe/Tiraspol " , " Tiraspol " ) ,
( " Europe/Ulyanovsk " , " Ulyanovsk " ) ,
( " Europe/Uzhgorod " , " Uzhgorod " ) ,
( " Europe/Vaduz " , " Vaduz " ) ,
( " Europe/Vatican " , " Vatican " ) ,
( " Europe/Vienna " , " Vienna " ) ,
( " Europe/Vilnius " , " Vilnius " ) ,
( " Europe/Volgograd " , " Volgograd " ) ,
( " Europe/Warsaw " , " Warsaw " ) ,
( " Europe/Zagreb " , " Zagreb " ) ,
( " Europe/Zaporozhye " , " Zaporozhye " ) ,
( " Europe/Zurich " , " Zurich " ) ,
] ,
) ,
(
" Indian " ,
[
( " Indian/Antananarivo " , " Antananarivo " ) ,
( " Indian/Chagos " , " Chagos " ) ,
( " Indian/Christmas " , " Christmas " ) ,
( " Indian/Cocos " , " Cocos " ) ,
( " Indian/Comoro " , " Comoro " ) ,
( " Indian/Kerguelen " , " Kerguelen " ) ,
( " Indian/Mahe " , " Mahe " ) ,
( " Indian/Maldives " , " Maldives " ) ,
( " Indian/Mauritius " , " Mauritius " ) ,
( " Indian/Mayotte " , " Mayotte " ) ,
( " Indian/Reunion " , " Reunion " ) ,
] ,
) ,
(
" Mexico " ,
[
( " Mexico/BajaNorte " , " BajaNorte " ) ,
( " Mexico/BajaSur " , " BajaSur " ) ,
( " Mexico/General " , " General " ) ,
] ,
) ,
(
" Other " ,
[
( " CET " , " CET " ) ,
( " CST6CDT " , " CST6CDT " ) ,
( " Cuba " , " Cuba " ) ,
( " EET " , " EET " ) ,
( " EST " , " EST " ) ,
( " EST5EDT " , " EST5EDT " ) ,
( " Egypt " , " Egypt " ) ,
( " Eire " , " Eire " ) ,
( " GB " , " GB " ) ,
( " GB-Eire " , " GB-Eire " ) ,
( " Greenwich " , " Greenwich " ) ,
( " HST " , " HST " ) ,
( " Hongkong " , " Hongkong " ) ,
( " Iceland " , " Iceland " ) ,
( " Iran " , " Iran " ) ,
( " Israel " , " Israel " ) ,
( " Jamaica " , " Jamaica " ) ,
( " Japan " , " Japan " ) ,
( " Kwajalein " , " Kwajalein " ) ,
( " Libya " , " Libya " ) ,
( " MET " , " MET " ) ,
( " MST " , " MST " ) ,
( " MST7MDT " , " MST7MDT " ) ,
( " NZ " , " NZ " ) ,
( " NZ-CHAT " , " NZ-CHAT " ) ,
( " Navajo " , " Navajo " ) ,
( " PRC " , " PRC " ) ,
( " PST8PDT " , " PST8PDT " ) ,
( " Poland " , " Poland " ) ,
( " Portugal " , " Portugal " ) ,
( " ROC " , " ROC " ) ,
( " ROK " , " ROK " ) ,
( " Singapore " , " Singapore " ) ,
( " Turkey " , " Turkey " ) ,
( " UCT " , " UCT " ) ,
( " UTC " , " UTC " ) ,
( " Universal " , " Universal " ) ,
( " W-SU " , " W-SU " ) ,
( " WET " , " WET " ) ,
( " Zulu " , " Zulu " ) ,
] ,
) ,
(
" Pacific " ,
[
( " Pacific/Apia " , " Apia " ) ,
( " Pacific/Auckland " , " Auckland " ) ,
( " Pacific/Bougainville " , " Bougainville " ) ,
( " Pacific/Chatham " , " Chatham " ) ,
( " Pacific/Chuuk " , " Chuuk " ) ,
( " Pacific/Easter " , " Easter " ) ,
( " Pacific/Efate " , " Efate " ) ,
( " Pacific/Enderbury " , " Enderbury " ) ,
( " Pacific/Fakaofo " , " Fakaofo " ) ,
( " Pacific/Fiji " , " Fiji " ) ,
( " Pacific/Funafuti " , " Funafuti " ) ,
( " Pacific/Galapagos " , " Galapagos " ) ,
( " Pacific/Gambier " , " Gambier " ) ,
( " Pacific/Guadalcanal " , " Guadalcanal " ) ,
( " Pacific/Guam " , " Guam " ) ,
( " Pacific/Honolulu " , " Honolulu " ) ,
( " Pacific/Johnston " , " Johnston " ) ,
( " Pacific/Kiritimati " , " Kiritimati " ) ,
( " Pacific/Kosrae " , " Kosrae " ) ,
( " Pacific/Kwajalein " , " Kwajalein " ) ,
( " Pacific/Majuro " , " Majuro " ) ,
( " Pacific/Marquesas " , " Marquesas " ) ,
( " Pacific/Midway " , " Midway " ) ,
( " Pacific/Nauru " , " Nauru " ) ,
( " Pacific/Niue " , " Niue " ) ,
( " Pacific/Norfolk " , " Norfolk " ) ,
( " Pacific/Noumea " , " Noumea " ) ,
( " Pacific/Pago_Pago " , " Pago_Pago " ) ,
( " Pacific/Palau " , " Palau " ) ,
( " Pacific/Pitcairn " , " Pitcairn " ) ,
( " Pacific/Pohnpei " , " Pohnpei " ) ,
( " Pacific/Ponape " , " Ponape " ) ,
( " Pacific/Port_Moresby " , " Port_Moresby " ) ,
( " Pacific/Rarotonga " , " Rarotonga " ) ,
( " Pacific/Saipan " , " Saipan " ) ,
( " Pacific/Samoa " , " Samoa " ) ,
( " Pacific/Tahiti " , " Tahiti " ) ,
( " Pacific/Tarawa " , " Tarawa " ) ,
( " Pacific/Tongatapu " , " Tongatapu " ) ,
( " Pacific/Truk " , " Truk " ) ,
( " Pacific/Wake " , " Wake " ) ,
( " Pacific/Wallis " , " Wallis " ) ,
( " Pacific/Yap " , " Yap " ) ,
] ,
) ,
(
" US " ,
[
( " US/Alaska " , " Alaska " ) ,
( " US/Aleutian " , " Aleutian " ) ,
( " US/Arizona " , " Arizona " ) ,
( " US/Central " , " Central " ) ,
( " US/East-Indiana " , " East-Indiana " ) ,
( " US/Eastern " , " Eastern " ) ,
( " US/Hawaii " , " Hawaii " ) ,
( " US/Indiana-Starke " , " Indiana-Starke " ) ,
( " US/Michigan " , " Michigan " ) ,
( " US/Mountain " , " Mountain " ) ,
( " US/Pacific " , " Pacific " ) ,
( " US/Samoa " , " Samoa " ) ,
] ,
) ,
] ,
default = " America/Toronto " ,
max_length = 50 ,
verbose_name = " location " ,
) ,
) ,
( " points " , models . FloatField ( db_index = True , default = 0 ) ) ,
( " performance_points " , models . FloatField ( db_index = True , default = 0 ) ) ,
( " problem_count " , models . IntegerField ( db_index = True , default = 0 ) ) ,
(
" ace_theme " ,
models . CharField (
choices = [
( " ambiance " , " Ambiance " ) ,
( " chaos " , " Chaos " ) ,
( " chrome " , " Chrome " ) ,
( " clouds " , " Clouds " ) ,
( " clouds_midnight " , " Clouds Midnight " ) ,
( " cobalt " , " Cobalt " ) ,
( " crimson_editor " , " Crimson Editor " ) ,
( " dawn " , " Dawn " ) ,
( " dreamweaver " , " Dreamweaver " ) ,
( " eclipse " , " Eclipse " ) ,
( " github " , " Github " ) ,
( " idle_fingers " , " Idle Fingers " ) ,
( " katzenmilch " , " Katzenmilch " ) ,
( " kr_theme " , " KR Theme " ) ,
( " kuroir " , " Kuroir " ) ,
( " merbivore " , " Merbivore " ) ,
( " merbivore_soft " , " Merbivore Soft " ) ,
( " mono_industrial " , " Mono Industrial " ) ,
( " monokai " , " Monokai " ) ,
( " pastel_on_dark " , " Pastel on Dark " ) ,
( " solarized_dark " , " Solarized Dark " ) ,
( " solarized_light " , " Solarized Light " ) ,
( " terminal " , " Terminal " ) ,
( " textmate " , " Textmate " ) ,
( " tomorrow " , " Tomorrow " ) ,
( " tomorrow_night " , " Tomorrow Night " ) ,
( " tomorrow_night_blue " , " Tomorrow Night Blue " ) ,
( " tomorrow_night_bright " , " Tomorrow Night Bright " ) ,
( " tomorrow_night_eighties " , " Tomorrow Night Eighties " ) ,
( " twilight " , " Twilight " ) ,
( " vibrant_ink " , " Vibrant Ink " ) ,
( " xcode " , " XCode " ) ,
] ,
default = " github " ,
max_length = 30 ,
) ,
) ,
(
" last_access " ,
models . DateTimeField (
default = django . utils . timezone . now ,
verbose_name = " last access time " ,
) ,
) ,
(
" ip " ,
models . GenericIPAddressField (
blank = True , null = True , verbose_name = " last IP "
) ,
) ,
(
" display_rank " ,
models . CharField (
choices = [
( " user " , " Normal User " ) ,
( " setter " , " Problem Setter " ) ,
( " admin " , " Admin " ) ,
] ,
default = " user " ,
max_length = 10 ,
verbose_name = " display rank " ,
) ,
) ,
(
" mute " ,
models . BooleanField (
default = False ,
help_text = " Some users are at their best when silent. " ,
verbose_name = " comment mute " ,
) ,
) ,
(
" is_unlisted " ,
models . BooleanField (
default = False ,
help_text = " User will not be ranked. " ,
verbose_name = " unlisted user " ,
) ,
) ,
( " rating " , models . IntegerField ( default = None , null = True ) ) ,
(
" user_script " ,
models . TextField (
blank = True ,
default = " " ,
help_text = " User-defined JavaScript for site customization. " ,
max_length = 65536 ,
verbose_name = " user script " ,
) ,
) ,
(
" math_engine " ,
models . CharField (
choices = [
( " tex " , " Leave as LaTeX " ) ,
( " svg " , " SVG with PNG fallback " ) ,
( " mml " , " MathML only " ) ,
( " jax " , " MathJax with SVG/PNG fallback " ) ,
( " auto " , " Detect best quality " ) ,
] ,
default = " auto " ,
help_text = " the rendering engine used to render math " ,
max_length = 4 ,
verbose_name = " math engine " ,
) ,
) ,
(
" is_totp_enabled " ,
models . BooleanField (
default = False ,
help_text = " check to enable TOTP-based two factor authentication " ,
verbose_name = " 2FA enabled " ,
) ,
) ,
(
" totp_key " ,
judge . models . profile . EncryptedNullCharField (
blank = True ,
help_text = " 32 character base32-encoded key for TOTP " ,
max_length = 32 ,
null = True ,
validators = [
django . core . validators . RegexValidator (
" ^$|^[A-Z2-7] {32} $ " , " TOTP key must be empty or base32 "
)
] ,
verbose_name = " TOTP key " ,
) ,
) ,
(
" notes " ,
models . TextField (
blank = True ,
help_text = " Notes for administrators regarding this user. " ,
null = True ,
verbose_name = " internal notes " ,
) ,
) ,
(
" current_contest " ,
models . OneToOneField (
blank = True ,
null = True ,
on_delete = django . db . models . deletion . SET_NULL ,
related_name = " + " ,
to = " judge.ContestParticipation " ,
verbose_name = " current contest " ,
) ,
) ,
(
" language " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
to = " judge.Language " ,
verbose_name = " preferred language " ,
) ,
) ,
(
" organizations " ,
sortedm2m . fields . SortedManyToManyField (
blank = True ,
help_text = None ,
related_name = " members " ,
related_query_name = " member " ,
to = " judge.Organization " ,
verbose_name = " organization " ,
) ,
) ,
(
" user " ,
models . OneToOneField (
on_delete = django . db . models . deletion . CASCADE ,
to = settings . AUTH_USER_MODEL ,
verbose_name = " user associated " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " user profiles " ,
" permissions " : (
( " test_site " , " Shows in-progress development stuff " ) ,
( " totp " , " Edit TOTP settings " ) ,
) ,
" verbose_name " : " user profile " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " Rating " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
( " rank " , models . IntegerField ( verbose_name = " rank " ) ) ,
( " rating " , models . IntegerField ( verbose_name = " rating " ) ) ,
( " volatility " , models . IntegerField ( verbose_name = " volatility " ) ) ,
(
" last_rated " ,
models . DateTimeField ( db_index = True , verbose_name = " last rated " ) ,
) ,
(
" contest " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " ratings " ,
to = " judge.Contest " ,
verbose_name = " contest " ,
) ,
) ,
(
" participation " ,
models . OneToOneField (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " rating " ,
to = " judge.ContestParticipation " ,
verbose_name = " participation " ,
) ,
) ,
(
" user " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " ratings " ,
to = " judge.Profile " ,
verbose_name = " user " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " contest ratings " ,
" verbose_name " : " contest rating " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " RuntimeVersion " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
( " name " , models . CharField ( max_length = 64 , verbose_name = " runtime name " ) ) ,
(
" version " ,
models . CharField (
blank = True , max_length = 64 , verbose_name = " runtime version "
) ,
) ,
(
" priority " ,
models . IntegerField (
default = 0 , verbose_name = " order in which to display this runtime "
) ,
) ,
(
" judge " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
to = " judge.Judge " ,
verbose_name = " judge on which this runtime exists " ,
) ,
) ,
(
" language " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
to = " judge.Language " ,
verbose_name = " language to which this runtime belongs " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " Solution " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" is_public " ,
models . BooleanField (
default = False , verbose_name = " public visibility "
) ,
) ,
( " publish_on " , models . DateTimeField ( verbose_name = " publish date " ) ) ,
( " content " , models . TextField ( verbose_name = " editorial content " ) ) ,
(
" authors " ,
models . ManyToManyField (
blank = True , to = " judge.Profile " , verbose_name = " authors "
) ,
) ,
(
" problem " ,
models . OneToOneField (
blank = True ,
null = True ,
on_delete = django . db . models . deletion . SET_NULL ,
related_name = " solution " ,
to = " judge.Problem " ,
verbose_name = " associated problem " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " solutions " ,
" permissions " : ( ( " see_private_solution " , " See hidden solutions " ) , ) ,
" verbose_name " : " solution " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " Submission " ,
fields = [
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" date " ,
models . DateTimeField (
auto_now_add = True , db_index = True , verbose_name = " submission time "
) ,
) ,
(
" time " ,
models . FloatField (
db_index = True , null = True , verbose_name = " execution time "
) ,
) ,
( " memory " , models . FloatField ( null = True , verbose_name = " memory usage " ) ) ,
(
" points " ,
models . FloatField (
db_index = True , null = True , verbose_name = " points granted "
) ,
) ,
(
" source " ,
models . TextField ( max_length = 65536 , verbose_name = " source code " ) ,
) ,
(
" status " ,
models . CharField (
choices = [
( " QU " , " Queued " ) ,
( " P " , " Processing " ) ,
( " G " , " Grading " ) ,
( " D " , " Completed " ) ,
( " IE " , " Internal Error " ) ,
( " CE " , " Compile Error " ) ,
( " AB " , " Aborted " ) ,
] ,
db_index = True ,
default = " QU " ,
max_length = 2 ,
verbose_name = " status " ,
) ,
) ,
(
" result " ,
models . CharField (
blank = True ,
choices = [
( " AC " , " Accepted " ) ,
( " WA " , " Wrong Answer " ) ,
( " TLE " , " Time Limit Exceeded " ) ,
( " MLE " , " Memory Limit Exceeded " ) ,
( " OLE " , " Output Limit Exceeded " ) ,
( " IR " , " Invalid Return " ) ,
( " RTE " , " Runtime Error " ) ,
( " CE " , " Compile Error " ) ,
( " IE " , " Internal Error " ) ,
( " SC " , " Short circuit " ) ,
( " AB " , " Aborted " ) ,
] ,
db_index = True ,
default = None ,
max_length = 3 ,
null = True ,
verbose_name = " result " ,
) ,
) ,
(
" error " ,
models . TextField (
blank = True , null = True , verbose_name = " compile errors "
) ,
) ,
( " current_testcase " , models . IntegerField ( default = 0 ) ) ,
(
" batch " ,
models . BooleanField ( default = False , verbose_name = " batched cases " ) ,
) ,
(
" case_points " ,
models . FloatField ( default = 0 , verbose_name = " test case points " ) ,
) ,
(
" case_total " ,
models . FloatField ( default = 0 , verbose_name = " test case total points " ) ,
) ,
(
" was_rejudged " ,
models . BooleanField (
default = False , verbose_name = " was rejudged by admin "
) ,
) ,
(
" is_pretested " ,
models . BooleanField (
default = False , verbose_name = " was ran on pretests only "
) ,
) ,
(
" judged_on " ,
models . ForeignKey (
blank = True ,
null = True ,
on_delete = django . db . models . deletion . SET_NULL ,
to = " judge.Judge " ,
verbose_name = " judged on " ,
) ,
) ,
(
" language " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
to = " judge.Language " ,
verbose_name = " submission language " ,
) ,
) ,
(
" problem " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE , to = " judge.Problem "
) ,
) ,
(
" user " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE , to = " judge.Profile "
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " submissions " ,
" permissions " : (
( " abort_any_submission " , " Abort any submission " ) ,
( " rejudge_submission " , " Rejudge the submission " ) ,
( " rejudge_submission_lot " , " Rejudge a lot of submissions " ) ,
( " spam_submission " , " Submit without limit " ) ,
( " view_all_submission " , " View all submission " ) ,
( " resubmit_other " , " Resubmit others ' submission " ) ,
) ,
" verbose_name " : " submission " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " SubmissionTestCase " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
( " case " , models . IntegerField ( verbose_name = " test case ID " ) ) ,
(
" status " ,
models . CharField (
choices = [
( " AC " , " Accepted " ) ,
( " WA " , " Wrong Answer " ) ,
( " TLE " , " Time Limit Exceeded " ) ,
( " MLE " , " Memory Limit Exceeded " ) ,
( " OLE " , " Output Limit Exceeded " ) ,
( " IR " , " Invalid Return " ) ,
( " RTE " , " Runtime Error " ) ,
( " CE " , " Compile Error " ) ,
( " IE " , " Internal Error " ) ,
( " SC " , " Short circuit " ) ,
( " AB " , " Aborted " ) ,
] ,
max_length = 3 ,
verbose_name = " status flag " ,
) ,
) ,
( " time " , models . FloatField ( null = True , verbose_name = " execution time " ) ) ,
( " memory " , models . FloatField ( null = True , verbose_name = " memory usage " ) ) ,
( " points " , models . FloatField ( null = True , verbose_name = " points granted " ) ) ,
( " total " , models . FloatField ( null = True , verbose_name = " points possible " ) ) ,
( " batch " , models . IntegerField ( null = True , verbose_name = " batch number " ) ) ,
(
" feedback " ,
models . CharField (
blank = True , max_length = 50 , verbose_name = " judging feedback "
) ,
) ,
(
" extended_feedback " ,
models . TextField (
blank = True , verbose_name = " extended judging feedback "
) ,
) ,
( " output " , models . TextField ( blank = True , verbose_name = " program output " ) ) ,
(
" submission " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " test_cases " ,
to = " judge.Submission " ,
verbose_name = " associated submission " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
options = {
2022-05-14 17:57:27 +00:00
" verbose_name_plural " : " submission test cases " ,
" verbose_name " : " submission test case " ,
2020-01-21 06:35:58 +00:00
} ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " Ticket " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
(
" title " ,
models . CharField ( max_length = 100 , verbose_name = " ticket title " ) ,
) ,
(
" time " ,
models . DateTimeField (
auto_now_add = True , verbose_name = " creation time "
) ,
) ,
(
" notes " ,
models . TextField (
blank = True ,
help_text = " Staff notes for this issue to aid in processing. " ,
verbose_name = " quick notes " ,
) ,
) ,
(
" object_id " ,
models . PositiveIntegerField ( verbose_name = " linked item ID " ) ,
) ,
(
" is_open " ,
models . BooleanField ( default = True , verbose_name = " is ticket open? " ) ,
) ,
(
" assignees " ,
models . ManyToManyField (
related_name = " assigned_tickets " ,
to = " judge.Profile " ,
verbose_name = " assignees " ,
) ,
) ,
(
" content_type " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
to = " contenttypes.ContentType " ,
verbose_name = " linked item type " ,
) ,
) ,
(
" user " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " tickets " ,
to = " judge.Profile " ,
verbose_name = " ticket creator " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
) ,
migrations . CreateModel (
2022-05-14 17:57:27 +00:00
name = " TicketMessage " ,
2020-01-21 06:35:58 +00:00
fields = [
2022-05-14 17:57:27 +00:00
(
" id " ,
models . AutoField (
auto_created = True ,
primary_key = True ,
serialize = False ,
verbose_name = " ID " ,
) ,
) ,
( " body " , models . TextField ( verbose_name = " message body " ) ) ,
(
" time " ,
models . DateTimeField (
auto_now_add = True , verbose_name = " message time "
) ,
) ,
(
" ticket " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " messages " ,
related_query_name = " message " ,
to = " judge.Ticket " ,
verbose_name = " ticket " ,
) ,
) ,
(
" user " ,
models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " ticket_messages " ,
to = " judge.Profile " ,
verbose_name = " poster " ,
) ,
) ,
2020-01-21 06:35:58 +00:00
] ,
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " problem " ,
name = " authors " ,
field = models . ManyToManyField (
blank = True ,
related_name = " authored_problems " ,
to = " judge.Profile " ,
verbose_name = " creators " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " problem " ,
name = " banned_users " ,
field = models . ManyToManyField (
blank = True ,
help_text = " Bans the selected users from submitting to this problem. " ,
to = " judge.Profile " ,
verbose_name = " personae non gratae " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " problem " ,
name = " curators " ,
field = models . ManyToManyField (
blank = True ,
help_text = " These users will be able to edit a problem, but not be publicly shown as an author. " ,
related_name = " curated_problems " ,
to = " judge.Profile " ,
verbose_name = " curators " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " problem " ,
name = " group " ,
field = models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
to = " judge.ProblemGroup " ,
verbose_name = " problem group " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " problem " ,
name = " license " ,
field = models . ForeignKey (
blank = True ,
null = True ,
on_delete = django . db . models . deletion . SET_NULL ,
to = " judge.License " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " problem " ,
name = " organizations " ,
field = models . ManyToManyField (
blank = True ,
help_text = " If private, only these organizations may see the problem. " ,
to = " judge.Organization " ,
verbose_name = " organizations " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " problem " ,
name = " testers " ,
field = models . ManyToManyField (
blank = True ,
help_text = " These users will be able to view a private problem, but not edit it. " ,
related_name = " tested_problems " ,
to = " judge.Profile " ,
verbose_name = " testers " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " problem " ,
name = " types " ,
field = models . ManyToManyField (
to = " judge.ProblemType " , verbose_name = " problem types "
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " privatemessage " ,
name = " sender " ,
field = models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " sent_messages " ,
to = " judge.Profile " ,
verbose_name = " sender " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " privatemessage " ,
name = " target " ,
field = models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " received_messages " ,
to = " judge.Profile " ,
verbose_name = " target " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " organizationrequest " ,
name = " user " ,
field = models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " requests " ,
to = " judge.Profile " ,
verbose_name = " user " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " organization " ,
name = " admins " ,
field = models . ManyToManyField (
help_text = " Those who can edit this organization " ,
related_name = " admin_of " ,
to = " judge.Profile " ,
verbose_name = " administrators " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " organization " ,
name = " registrant " ,
field = models . ForeignKey (
help_text = " User who registered this organization " ,
on_delete = django . db . models . deletion . CASCADE ,
related_name = " registrant+ " ,
to = " judge.Profile " ,
verbose_name = " registrant " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " languagelimit " ,
name = " problem " ,
field = models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " language_limits " ,
to = " judge.Problem " ,
verbose_name = " problem " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " judge " ,
name = " problems " ,
field = models . ManyToManyField (
related_name = " judges " , to = " judge.Problem " , verbose_name = " problems "
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " judge " ,
name = " runtimes " ,
field = models . ManyToManyField (
related_name = " judges " , to = " judge.Language " , verbose_name = " judges "
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " contestsubmission " ,
name = " submission " ,
field = models . OneToOneField (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " contest " ,
to = " judge.Submission " ,
verbose_name = " submission " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " contestproblem " ,
name = " problem " ,
field = models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " contests " ,
to = " judge.Problem " ,
verbose_name = " problem " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " contestparticipation " ,
name = " user " ,
field = models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " contest_history " ,
to = " judge.Profile " ,
verbose_name = " user " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " contest " ,
name = " banned_users " ,
field = models . ManyToManyField (
blank = True ,
help_text = " Bans the selected users from joining this contest. " ,
to = " judge.Profile " ,
verbose_name = " personae non gratae " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " contest " ,
name = " organizations " ,
field = models . ManyToManyField (
blank = True ,
help_text = " If private, only these organizations may see the contest " ,
to = " judge.Organization " ,
verbose_name = " organizations " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " contest " ,
name = " organizers " ,
field = models . ManyToManyField (
help_text = " These people will be able to edit the contest. " ,
related_name = " _contest_organizers_+ " ,
to = " judge.Profile " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " contest " ,
name = " problems " ,
field = models . ManyToManyField (
through = " judge.ContestProblem " ,
to = " judge.Problem " ,
verbose_name = " problems " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " contest " ,
name = " rate_exclude " ,
field = models . ManyToManyField (
blank = True ,
related_name = " _contest_rate_exclude_+ " ,
to = " judge.Profile " ,
verbose_name = " exclude from ratings " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " contest " ,
name = " tags " ,
field = models . ManyToManyField (
blank = True ,
related_name = " contests " ,
to = " judge.ContestTag " ,
verbose_name = " contest tags " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " commentvote " ,
name = " voter " ,
field = models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
related_name = " voted_comments " ,
to = " judge.Profile " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " comment " ,
name = " author " ,
field = models . ForeignKey (
on_delete = django . db . models . deletion . CASCADE ,
to = " judge.Profile " ,
verbose_name = " commenter " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " comment " ,
name = " parent " ,
field = mptt . fields . TreeForeignKey (
blank = True ,
null = True ,
on_delete = django . db . models . deletion . CASCADE ,
related_name = " replies " ,
to = " judge.Comment " ,
verbose_name = " parent " ,
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AddField (
2022-05-14 17:57:27 +00:00
model_name = " blogpost " ,
name = " authors " ,
field = models . ManyToManyField (
blank = True , to = " judge.Profile " , verbose_name = " authors "
) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AlterUniqueTogether (
2022-05-14 17:57:27 +00:00
name = " rating " ,
unique_together = set ( [ ( " user " , " contest " ) ] ) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AlterUniqueTogether (
2022-05-14 17:57:27 +00:00
name = " problemtranslation " ,
unique_together = set ( [ ( " problem " , " language " ) ] ) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AlterUniqueTogether (
2022-05-14 17:57:27 +00:00
name = " languagelimit " ,
unique_together = set ( [ ( " problem " , " language " ) ] ) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AlterUniqueTogether (
2022-05-14 17:57:27 +00:00
name = " contestproblem " ,
unique_together = set ( [ ( " problem " , " contest " ) ] ) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AlterUniqueTogether (
2022-05-14 17:57:27 +00:00
name = " contestparticipation " ,
unique_together = set ( [ ( " contest " , " user " , " virtual " ) ] ) ,
2020-01-21 06:35:58 +00:00
) ,
migrations . AlterUniqueTogether (
2022-05-14 17:57:27 +00:00
name = " commentvote " ,
unique_together = set ( [ ( " voter " , " comment " ) ] ) ,
2020-01-21 06:35:58 +00:00
) ,
]