From cd472ca87df84249020be6d9683f8cbf009f78f2 Mon Sep 17 00:00:00 2001 From: Julien Malard Date: Fri, 9 Mar 2018 11:14:39 -0500 Subject: [PATCH 01/12] Added a few Pakistani and all officially recognised Guatemalan languages. --- readthedocs/projects/constants.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/readthedocs/projects/constants.py b/readthedocs/projects/constants.py index 8837f13b086..83649e69202 100644 --- a/readthedocs/projects/constants.py +++ b/readthedocs/projects/constants.py @@ -114,7 +114,9 @@ LANGUAGES = ( ('aa', 'Afar'), ('ab', 'Abkhaz'), + ('acr', 'Achi'), ('af', 'Afrikaans'), + ('agu', 'Awakateko'), ('am', 'Amharic'), ('ar', 'Arabic'), ('as', 'Assamese'), @@ -129,6 +131,10 @@ ('bo', 'Tibetan'), ('br', 'Breton'), ('ca', 'Catalan'), + ('caa', 'Ch\'orti\''), + ('cac', 'Chuj'), + ('cab', 'Garífuna'), + ('cak', 'Kaqchikel'), ('co', 'Corsican'), ('cs', 'Czech'), ('cy', 'Welsh'), @@ -164,14 +170,20 @@ ('ik', 'Inupiaq'), ('is', 'Icelandic'), ('it', 'Italian'), + ('itz', 'Itza\''), ('iu', 'Inuktitut'), + ('ixl', 'Ixil'), ('ja', 'Japanese'), + ('jac', 'Popti\''), ('jv', 'Javanese'), ('ka', 'Georgian'), + ('kjb', 'Q\'anjob\'al'), + ('kek', 'Q\'eqchi\''), ('kk', 'Kazakh'), ('kl', 'Kalaallisut'), ('km', 'Khmer'), ('kn', 'Kannada'), + ('knj', 'Akateko'), ('ko', 'Korean'), ('ks', 'Kashmiri'), ('ku', 'Kurdish'), @@ -181,11 +193,13 @@ ('lo', 'Lao'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), + ('mam', 'Mam'), ('mg', 'Malagasy'), ('mi', 'Maori'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), + ('mop', 'Mopan'), ('mr', 'Marathi'), ('ms', 'Malay'), ('mt', 'Maltese'), @@ -199,9 +213,15 @@ ('or', 'Oriya'), ('pa', 'Panjabi'), ('pl', 'Polish'), + ('pnb', 'Western Punjabi'), + ('poc', 'Poqomam'), + ('poh', 'Poqomchi'), ('ps', 'Pashto'), ('pt', 'Portuguese'), ('qu', 'Quechua'), + ('quc', 'K\'iche\''), + ('qum', 'Sipakapense'), + ('quv', 'Sakapulteko'), ('rm', 'Romansh'), ('rn', 'Kirundi'), ('ro', 'Romanian'), @@ -212,6 +232,7 @@ ('sg', 'Sango'), ('si', 'Sinhala'), ('sk', 'Slovak'), + ('skr', 'Saraiki'), ('sl', 'Slovenian'), ('sm', 'Samoan'), ('sn', 'Shona'), @@ -235,15 +256,19 @@ ('tr', 'Turkish'), ('ts', 'Tsonga'), ('tt', 'Tatar'), + ('ttc', 'Tektiteko'), + ('tzj', 'Tz\'utujil'), ('tw', 'Twi'), ('ug', 'Uyghur'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), + ('usp', 'Uspanteko'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('vo', 'Volapuk'), ('wo', 'Wolof'), ('xh', 'Xhosa'), + ('xin', 'Xinka'), ('yi', 'Yiddish'), ('yo', 'Yoruba'), ('za', 'Zhuang'), From 249b19403b555497880a92e6e77be1886ecce099 Mon Sep 17 00:00:00 2001 From: Julien Malard Date: Thu, 15 Mar 2018 16:12:18 -0400 Subject: [PATCH 02/12] Migrations updated for new languages. --- .../migrations/0005_auto_20180315_1604.py | 61 ++++++++++++ .../migrations/0002_auto_20180315_1604.py | 25 +++++ .../migrations/0002_auto_20180315_1604.py | 20 ++++ .../migrations/0003_auto_20180315_1604.py | 56 +++++++++++ .../migrations/0009_auto_20180315_1604.py | 31 ++++++ .../migrations/0024_auto_20180315_1604.py | 95 +++++++++++++++++++ .../migrations/0002_auto_20180315_1604.py | 25 +++++ 7 files changed, 313 insertions(+) create mode 100644 readthedocs/builds/migrations/0005_auto_20180315_1604.py create mode 100644 readthedocs/comments/migrations/0002_auto_20180315_1604.py create mode 100644 readthedocs/gold/migrations/0002_auto_20180315_1604.py create mode 100644 readthedocs/integrations/migrations/0003_auto_20180315_1604.py create mode 100644 readthedocs/oauth/migrations/0009_auto_20180315_1604.py create mode 100644 readthedocs/projects/migrations/0024_auto_20180315_1604.py create mode 100644 readthedocs/redirects/migrations/0002_auto_20180315_1604.py diff --git a/readthedocs/builds/migrations/0005_auto_20180315_1604.py b/readthedocs/builds/migrations/0005_auto_20180315_1604.py new file mode 100644 index 00000000000..959f4ad3960 --- /dev/null +++ b/readthedocs/builds/migrations/0005_auto_20180315_1604.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.12 on 2018-03-15 16:04 +from __future__ import unicode_literals + +from django.db import migrations, models +import readthedocs.builds.version_slug + + +class Migration(migrations.Migration): + + dependencies = [ + ('builds', '0004_add-apiversion-proxy-model'), + ] + + operations = [ + migrations.AlterField( + model_name='build', + name='error', + field=models.TextField(blank=True, default='', verbose_name='Error'), + ), + migrations.AlterField( + model_name='build', + name='output', + field=models.TextField(blank=True, default='', verbose_name='Output'), + ), + migrations.AlterField( + model_name='build', + name='state', + field=models.CharField(choices=[('triggered', 'Triggered'), ('cloning', 'Cloning'), ('installing', 'Installing'), ('building', 'Building'), ('finished', 'Finished')], default='finished', max_length=55, verbose_name='State'), + ), + migrations.AlterField( + model_name='build', + name='type', + field=models.CharField(choices=[('html', 'HTML'), ('pdf', 'PDF'), ('epub', 'Epub'), ('man', 'Manpage'), ('dash', 'Dash')], default='html', max_length=55, verbose_name='Type'), + ), + migrations.AlterField( + model_name='version', + name='privacy_level', + field=models.CharField(choices=[('public', 'Public'), ('protected', 'Protected'), ('private', 'Private')], default='public', help_text='Level of privacy for this Version.', max_length=20, verbose_name='Privacy Level'), + ), + migrations.AlterField( + model_name='version', + name='slug', + field=readthedocs.builds.version_slug.VersionSlugField(db_index=True, max_length=255, populate_from='verbose_name', verbose_name='Slug'), + ), + migrations.AlterField( + model_name='version', + name='type', + field=models.CharField(choices=[('branch', 'Branch'), ('tag', 'Tag'), ('unknown', 'Unknown')], default='unknown', max_length=20, verbose_name='Type'), + ), + migrations.AlterField( + model_name='versionalias', + name='from_slug', + field=models.CharField(default='', max_length=255, verbose_name='From slug'), + ), + migrations.AlterField( + model_name='versionalias', + name='to_slug', + field=models.CharField(blank=True, default='', max_length=255, verbose_name='To slug'), + ), + ] diff --git a/readthedocs/comments/migrations/0002_auto_20180315_1604.py b/readthedocs/comments/migrations/0002_auto_20180315_1604.py new file mode 100644 index 00000000000..f15721890d5 --- /dev/null +++ b/readthedocs/comments/migrations/0002_auto_20180315_1604.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.12 on 2018-03-15 16:04 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('comments', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='moderationaction', + name='decision', + field=models.IntegerField(choices=[(0, 'No Decision'), (1, 'Publish'), (2, 'Hide')]), + ), + migrations.AlterField( + model_name='nodesnapshot', + name='date', + field=models.DateTimeField(auto_now_add=True, verbose_name='Publication date'), + ), + ] diff --git a/readthedocs/gold/migrations/0002_auto_20180315_1604.py b/readthedocs/gold/migrations/0002_auto_20180315_1604.py new file mode 100644 index 00000000000..eb03ebe26de --- /dev/null +++ b/readthedocs/gold/migrations/0002_auto_20180315_1604.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.12 on 2018-03-15 16:04 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('gold', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='golduser', + name='level', + field=models.CharField(choices=[('v1-org-5', '$5/mo'), ('v1-org-10', '$10/mo'), ('v1-org-15', '$15/mo'), ('v1-org-20', '$20/mo'), ('v1-org-50', '$50/mo'), ('v1-org-100', '$100/mo')], default='v1-org-5', max_length=20, verbose_name='Level'), + ), + ] diff --git a/readthedocs/integrations/migrations/0003_auto_20180315_1604.py b/readthedocs/integrations/migrations/0003_auto_20180315_1604.py new file mode 100644 index 00000000000..0d0f547956f --- /dev/null +++ b/readthedocs/integrations/migrations/0003_auto_20180315_1604.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.12 on 2018-03-15 16:04 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('integrations', '0002_add-webhook'), + ] + + operations = [ + migrations.CreateModel( + name='BitbucketWebhook', + fields=[ + ], + options={ + 'proxy': True, + }, + bases=('integrations.integration',), + ), + migrations.CreateModel( + name='GenericAPIWebhook', + fields=[ + ], + options={ + 'proxy': True, + }, + bases=('integrations.integration',), + ), + migrations.CreateModel( + name='GitHubWebhook', + fields=[ + ], + options={ + 'proxy': True, + }, + bases=('integrations.integration',), + ), + migrations.CreateModel( + name='GitLabWebhook', + fields=[ + ], + options={ + 'proxy': True, + }, + bases=('integrations.integration',), + ), + migrations.AlterField( + model_name='integration', + name='integration_type', + field=models.CharField(choices=[('github_webhook', 'GitHub incoming webhook'), ('bitbucket_webhook', 'Bitbucket incoming webhook'), ('gitlab_webhook', 'GitLab incoming webhook'), ('api_webhook', 'Generic API incoming webhook')], max_length=32, verbose_name='Integration type'), + ), + ] diff --git a/readthedocs/oauth/migrations/0009_auto_20180315_1604.py b/readthedocs/oauth/migrations/0009_auto_20180315_1604.py new file mode 100644 index 00000000000..1c920d5feca --- /dev/null +++ b/readthedocs/oauth/migrations/0009_auto_20180315_1604.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.12 on 2018-03-15 16:04 +from __future__ import unicode_literals + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('oauth', '0008_add-project-relation'), + ] + + operations = [ + migrations.AlterField( + model_name='remoterepository', + name='clone_url', + field=models.URLField(blank=True, max_length=512, validators=[django.core.validators.URLValidator(schemes=['http', 'https', 'ssh', 'git', 'svn'])], verbose_name='Repository clone URL'), + ), + migrations.AlterField( + model_name='remoterepository', + name='ssh_url', + field=models.URLField(blank=True, max_length=512, validators=[django.core.validators.URLValidator(schemes=['ssh'])], verbose_name='SSH URL'), + ), + migrations.AlterField( + model_name='remoterepository', + name='vcs', + field=models.CharField(blank=True, choices=[('git', 'Git'), ('svn', 'Subversion'), ('hg', 'Mercurial'), ('bzr', 'Bazaar')], max_length=200, verbose_name='vcs'), + ), + ] diff --git a/readthedocs/projects/migrations/0024_auto_20180315_1604.py b/readthedocs/projects/migrations/0024_auto_20180315_1604.py new file mode 100644 index 00000000000..61fd65e143c --- /dev/null +++ b/readthedocs/projects/migrations/0024_auto_20180315_1604.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.12 on 2018-03-15 16:04 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('projects', '0023_migrate-alias-slug'), + ] + + operations = [ + migrations.AlterField( + model_name='domain', + name='canonical', + field=models.BooleanField(default=False, help_text='This Domain is the primary one where the documentation is served from'), + ), + migrations.AlterField( + model_name='domain', + name='count', + field=models.IntegerField(default=0, help_text='Number of times this domain has been hit'), + ), + migrations.AlterField( + model_name='project', + name='allow_promos', + field=models.BooleanField(default=True, help_text='If unchecked, users will still see community ads.', verbose_name='Allow paid advertising'), + ), + migrations.AlterField( + model_name='project', + name='comment_moderation', + field=models.BooleanField(default=False, verbose_name='Comment Moderation'), + ), + migrations.AlterField( + model_name='project', + name='conf_py_file', + field=models.CharField(blank=True, default='', help_text='Path from project root to conf.py file (ex. docs/conf.py). Leave blank if you want us to find it for you.', max_length=255, verbose_name='Python configuration file'), + ), + migrations.AlterField( + model_name='project', + name='default_version', + field=models.CharField(default='latest', help_text='The version of your project that / redirects to', max_length=255, verbose_name='Default version'), + ), + migrations.AlterField( + model_name='project', + name='documentation_type', + field=models.CharField(choices=[('auto', 'Automatically Choose'), ('sphinx', 'Sphinx Html'), ('mkdocs', 'Mkdocs (Markdown)'), ('sphinx_htmldir', 'Sphinx HtmlDir'), ('sphinx_singlehtml', 'Sphinx Single Page HTML')], default='sphinx', help_text='Type of documentation you are building. More info.', max_length=20, verbose_name='Documentation type'), + ), + migrations.AlterField( + model_name='project', + name='has_valid_webhook', + field=models.BooleanField(default=False, help_text='This project has been built with a webhook'), + ), + migrations.AlterField( + model_name='project', + name='language', + field=models.CharField(choices=[('aa', 'Afar'), ('ab', 'Abkhaz'), ('acr', 'Achi'), ('af', 'Afrikaans'), ('agu', 'Awakateko'), ('am', 'Amharic'), ('ar', 'Arabic'), ('as', 'Assamese'), ('ay', 'Aymara'), ('az', 'Azerbaijani'), ('ba', 'Bashkir'), ('be', 'Belarusian'), ('bg', 'Bulgarian'), ('bh', 'Bihari'), ('bi', 'Bislama'), ('bn', 'Bengali'), ('bo', 'Tibetan'), ('br', 'Breton'), ('ca', 'Catalan'), ('caa', "Ch'orti'"), ('cac', 'Chuj'), ('cab', 'Garífuna'), ('cak', 'Kaqchikel'), ('co', 'Corsican'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dz', 'Dzongkha'), ('el', 'Greek'), ('en', 'English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Iranian'), ('fi', 'Finnish'), ('fj', 'Fijian'), ('fo', 'Faroese'), ('fr', 'French'), ('fy', 'Western Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('gn', 'Guarani'), ('gu', 'Gujarati'), ('ha', 'Hausa'), ('hi', 'Hindi'), ('he', 'Hebrew'), ('hr', 'Croatian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ie', 'Interlingue'), ('ik', 'Inupiaq'), ('is', 'Icelandic'), ('it', 'Italian'), ('itz', "Itza'"), ('iu', 'Inuktitut'), ('ixl', 'Ixil'), ('ja', 'Japanese'), ('jac', "Popti'"), ('jv', 'Javanese'), ('ka', 'Georgian'), ('kjb', "Q'anjob'al"), ('kek', "Q'eqchi'"), ('kk', 'Kazakh'), ('kl', 'Kalaallisut'), ('km', 'Khmer'), ('kn', 'Kannada'), ('knj', 'Akateko'), ('ko', 'Korean'), ('ks', 'Kashmiri'), ('ku', 'Kurdish'), ('ky', 'Kyrgyz'), ('la', 'Latin'), ('ln', 'Lingala'), ('lo', 'Lao'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mam', 'Mam'), ('mg', 'Malagasy'), ('mi', 'Maori'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mop', 'Mopan'), ('mr', 'Marathi'), ('ms', 'Malay'), ('mt', 'Maltese'), ('my', 'Burmese'), ('na', 'Nauru'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('no', 'Norwegian'), ('oc', 'Occitan'), ('om', 'Oromo'), ('or', 'Oriya'), ('pa', 'Panjabi'), ('pl', 'Polish'), ('pnb', 'Western Punjabi'), ('poc', 'Poqomam'), ('poh', 'Poqomchi'), ('ps', 'Pashto'), ('pt', 'Portuguese'), ('qu', 'Quechua'), ('quc', "K'iche'"), ('qum', 'Sipakapense'), ('quv', 'Sakapulteko'), ('rm', 'Romansh'), ('rn', 'Kirundi'), ('ro', 'Romanian'), ('ru', 'Russian'), ('rw', 'Kinyarwanda'), ('sa', 'Sanskrit'), ('sd', 'Sindhi'), ('sg', 'Sango'), ('si', 'Sinhala'), ('sk', 'Slovak'), ('skr', 'Saraiki'), ('sl', 'Slovenian'), ('sm', 'Samoan'), ('sn', 'Shona'), ('so', 'Somali'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('ss', 'Swati'), ('st', 'Southern Sotho'), ('su', 'Sudanese'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('ti', 'Tigrinya'), ('tk', 'Turkmen'), ('tl', 'Tagalog'), ('tn', 'Tswana'), ('to', 'Tonga'), ('tr', 'Turkish'), ('ts', 'Tsonga'), ('tt', 'Tatar'), ('ttc', 'Tektiteko'), ('tzj', "Tz'utujil"), ('tw', 'Twi'), ('ug', 'Uyghur'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('usp', 'Uspanteko'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('vo', 'Volapuk'), ('wo', 'Wolof'), ('xh', 'Xhosa'), ('xin', 'Xinka'), ('yi', 'Yiddish'), ('yo', 'Yoruba'), ('za', 'Zhuang'), ('zh', 'Chinese'), ('zu', 'Zulu'), ('nb_NO', 'Norwegian Bokmal'), ('pt_BR', 'Brazilian Portuguese'), ('uk_UA', 'Ukrainian'), ('zh_CN', 'Simplified Chinese'), ('zh_TW', 'Traditional Chinese')], default='en', help_text="The language the project documentation is rendered in. Note: this affects your project's URL.", max_length=20, verbose_name='Language'), + ), + migrations.AlterField( + model_name='project', + name='privacy_level', + field=models.CharField(choices=[('public', 'Public'), ('protected', 'Protected'), ('private', 'Private')], default='public', help_text='(Beta) Level of privacy that you want on the repository. Protected means public but not in listings.', max_length=20, verbose_name='Privacy Level'), + ), + migrations.AlterField( + model_name='project', + name='programming_language', + field=models.CharField(blank=True, choices=[('words', 'Only Words'), ('py', 'Python'), ('js', 'JavaScript'), ('php', 'PHP'), ('ruby', 'Ruby'), ('perl', 'Perl'), ('java', 'Java'), ('go', 'Go'), ('julia', 'Julia'), ('c', 'C'), ('csharp', 'C#'), ('cpp', 'C++'), ('objc', 'Objective-C'), ('css', 'CSS'), ('ts', 'TypeScript'), ('swift', 'Swift'), ('vb', 'Visual Basic'), ('r', 'R'), ('scala', 'Scala'), ('groovy', 'Groovy'), ('coffee', 'CoffeeScript'), ('lua', 'Lua'), ('haskell', 'Haskell'), ('other', 'Other')], default='words', help_text='The primary programming language the project is written in.', max_length=20, verbose_name='Programming Language'), + ), + migrations.AlterField( + model_name='project', + name='python_interpreter', + field=models.CharField(choices=[('python', 'CPython 2.x'), ('python3', 'CPython 3.x')], default='python', help_text='(Beta) The Python interpreter used to create the virtual environment.', max_length=20, verbose_name='Python Interpreter'), + ), + migrations.AlterField( + model_name='project', + name='repo_type', + field=models.CharField(choices=[('git', 'Git'), ('svn', 'Subversion'), ('hg', 'Mercurial'), ('bzr', 'Bazaar')], default='git', max_length=10, verbose_name='Repository type'), + ), + migrations.AlterField( + model_name='project', + name='suffix', + field=models.CharField(default='.rst', editable=False, max_length=10, verbose_name='Suffix'), + ), + migrations.AlterField( + model_name='project', + name='theme', + field=models.CharField(choices=[('default', 'Default'), ('sphinxdoc', 'Sphinx Docs'), ('traditional', 'Traditional'), ('nature', 'Nature'), ('haiku', 'Haiku')], default='default', help_text='Examples', max_length=20, verbose_name='Theme'), + ), + migrations.AlterField( + model_name='project', + name='version_privacy_level', + field=models.CharField(choices=[('public', 'Public'), ('protected', 'Protected'), ('private', 'Private')], default='public', help_text='(Beta) Default level of privacy you want on built versions of documentation.', max_length=20, verbose_name='Version Privacy Level'), + ), + ] diff --git a/readthedocs/redirects/migrations/0002_auto_20180315_1604.py b/readthedocs/redirects/migrations/0002_auto_20180315_1604.py new file mode 100644 index 00000000000..e43919d61e5 --- /dev/null +++ b/readthedocs/redirects/migrations/0002_auto_20180315_1604.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.12 on 2018-03-15 16:04 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('redirects', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='redirect', + name='redirect_type', + field=models.CharField(choices=[('prefix', 'Prefix Redirect'), ('page', 'Page Redirect'), ('exact', 'Exact Redirect'), ('sphinx_html', 'Sphinx HTMLDir -> HTML'), ('sphinx_htmldir', 'Sphinx HTML -> HTMLDir')], help_text='The type of redirect you wish to use.', max_length=255, verbose_name='Redirect Type'), + ), + migrations.AlterField( + model_name='redirect', + name='to_url', + field=models.CharField(blank=True, db_index=True, help_text='Absolute or relative URL. Examples: /tutorial/install.html', max_length=255, verbose_name='To URL'), + ), + ] From 6c3b2e38f0ab22ea1b1d397488478a7b86189554 Mon Sep 17 00:00:00 2001 From: Julien Malard Date: Fri, 16 Mar 2018 10:19:55 -0400 Subject: [PATCH 03/12] Revert "Migrations updated for new languages." This reverts commit 249b194 --- .../migrations/0005_auto_20180315_1604.py | 61 ------------ .../migrations/0002_auto_20180315_1604.py | 25 ----- .../migrations/0002_auto_20180315_1604.py | 20 ---- .../migrations/0003_auto_20180315_1604.py | 56 ----------- .../migrations/0009_auto_20180315_1604.py | 31 ------ .../migrations/0024_auto_20180315_1604.py | 95 ------------------- .../migrations/0002_auto_20180315_1604.py | 25 ----- 7 files changed, 313 deletions(-) delete mode 100644 readthedocs/builds/migrations/0005_auto_20180315_1604.py delete mode 100644 readthedocs/comments/migrations/0002_auto_20180315_1604.py delete mode 100644 readthedocs/gold/migrations/0002_auto_20180315_1604.py delete mode 100644 readthedocs/integrations/migrations/0003_auto_20180315_1604.py delete mode 100644 readthedocs/oauth/migrations/0009_auto_20180315_1604.py delete mode 100644 readthedocs/projects/migrations/0024_auto_20180315_1604.py delete mode 100644 readthedocs/redirects/migrations/0002_auto_20180315_1604.py diff --git a/readthedocs/builds/migrations/0005_auto_20180315_1604.py b/readthedocs/builds/migrations/0005_auto_20180315_1604.py deleted file mode 100644 index 959f4ad3960..00000000000 --- a/readthedocs/builds/migrations/0005_auto_20180315_1604.py +++ /dev/null @@ -1,61 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.12 on 2018-03-15 16:04 -from __future__ import unicode_literals - -from django.db import migrations, models -import readthedocs.builds.version_slug - - -class Migration(migrations.Migration): - - dependencies = [ - ('builds', '0004_add-apiversion-proxy-model'), - ] - - operations = [ - migrations.AlterField( - model_name='build', - name='error', - field=models.TextField(blank=True, default='', verbose_name='Error'), - ), - migrations.AlterField( - model_name='build', - name='output', - field=models.TextField(blank=True, default='', verbose_name='Output'), - ), - migrations.AlterField( - model_name='build', - name='state', - field=models.CharField(choices=[('triggered', 'Triggered'), ('cloning', 'Cloning'), ('installing', 'Installing'), ('building', 'Building'), ('finished', 'Finished')], default='finished', max_length=55, verbose_name='State'), - ), - migrations.AlterField( - model_name='build', - name='type', - field=models.CharField(choices=[('html', 'HTML'), ('pdf', 'PDF'), ('epub', 'Epub'), ('man', 'Manpage'), ('dash', 'Dash')], default='html', max_length=55, verbose_name='Type'), - ), - migrations.AlterField( - model_name='version', - name='privacy_level', - field=models.CharField(choices=[('public', 'Public'), ('protected', 'Protected'), ('private', 'Private')], default='public', help_text='Level of privacy for this Version.', max_length=20, verbose_name='Privacy Level'), - ), - migrations.AlterField( - model_name='version', - name='slug', - field=readthedocs.builds.version_slug.VersionSlugField(db_index=True, max_length=255, populate_from='verbose_name', verbose_name='Slug'), - ), - migrations.AlterField( - model_name='version', - name='type', - field=models.CharField(choices=[('branch', 'Branch'), ('tag', 'Tag'), ('unknown', 'Unknown')], default='unknown', max_length=20, verbose_name='Type'), - ), - migrations.AlterField( - model_name='versionalias', - name='from_slug', - field=models.CharField(default='', max_length=255, verbose_name='From slug'), - ), - migrations.AlterField( - model_name='versionalias', - name='to_slug', - field=models.CharField(blank=True, default='', max_length=255, verbose_name='To slug'), - ), - ] diff --git a/readthedocs/comments/migrations/0002_auto_20180315_1604.py b/readthedocs/comments/migrations/0002_auto_20180315_1604.py deleted file mode 100644 index f15721890d5..00000000000 --- a/readthedocs/comments/migrations/0002_auto_20180315_1604.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.12 on 2018-03-15 16:04 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('comments', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='moderationaction', - name='decision', - field=models.IntegerField(choices=[(0, 'No Decision'), (1, 'Publish'), (2, 'Hide')]), - ), - migrations.AlterField( - model_name='nodesnapshot', - name='date', - field=models.DateTimeField(auto_now_add=True, verbose_name='Publication date'), - ), - ] diff --git a/readthedocs/gold/migrations/0002_auto_20180315_1604.py b/readthedocs/gold/migrations/0002_auto_20180315_1604.py deleted file mode 100644 index eb03ebe26de..00000000000 --- a/readthedocs/gold/migrations/0002_auto_20180315_1604.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.12 on 2018-03-15 16:04 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('gold', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='golduser', - name='level', - field=models.CharField(choices=[('v1-org-5', '$5/mo'), ('v1-org-10', '$10/mo'), ('v1-org-15', '$15/mo'), ('v1-org-20', '$20/mo'), ('v1-org-50', '$50/mo'), ('v1-org-100', '$100/mo')], default='v1-org-5', max_length=20, verbose_name='Level'), - ), - ] diff --git a/readthedocs/integrations/migrations/0003_auto_20180315_1604.py b/readthedocs/integrations/migrations/0003_auto_20180315_1604.py deleted file mode 100644 index 0d0f547956f..00000000000 --- a/readthedocs/integrations/migrations/0003_auto_20180315_1604.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.12 on 2018-03-15 16:04 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('integrations', '0002_add-webhook'), - ] - - operations = [ - migrations.CreateModel( - name='BitbucketWebhook', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('integrations.integration',), - ), - migrations.CreateModel( - name='GenericAPIWebhook', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('integrations.integration',), - ), - migrations.CreateModel( - name='GitHubWebhook', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('integrations.integration',), - ), - migrations.CreateModel( - name='GitLabWebhook', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('integrations.integration',), - ), - migrations.AlterField( - model_name='integration', - name='integration_type', - field=models.CharField(choices=[('github_webhook', 'GitHub incoming webhook'), ('bitbucket_webhook', 'Bitbucket incoming webhook'), ('gitlab_webhook', 'GitLab incoming webhook'), ('api_webhook', 'Generic API incoming webhook')], max_length=32, verbose_name='Integration type'), - ), - ] diff --git a/readthedocs/oauth/migrations/0009_auto_20180315_1604.py b/readthedocs/oauth/migrations/0009_auto_20180315_1604.py deleted file mode 100644 index 1c920d5feca..00000000000 --- a/readthedocs/oauth/migrations/0009_auto_20180315_1604.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.12 on 2018-03-15 16:04 -from __future__ import unicode_literals - -import django.core.validators -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('oauth', '0008_add-project-relation'), - ] - - operations = [ - migrations.AlterField( - model_name='remoterepository', - name='clone_url', - field=models.URLField(blank=True, max_length=512, validators=[django.core.validators.URLValidator(schemes=['http', 'https', 'ssh', 'git', 'svn'])], verbose_name='Repository clone URL'), - ), - migrations.AlterField( - model_name='remoterepository', - name='ssh_url', - field=models.URLField(blank=True, max_length=512, validators=[django.core.validators.URLValidator(schemes=['ssh'])], verbose_name='SSH URL'), - ), - migrations.AlterField( - model_name='remoterepository', - name='vcs', - field=models.CharField(blank=True, choices=[('git', 'Git'), ('svn', 'Subversion'), ('hg', 'Mercurial'), ('bzr', 'Bazaar')], max_length=200, verbose_name='vcs'), - ), - ] diff --git a/readthedocs/projects/migrations/0024_auto_20180315_1604.py b/readthedocs/projects/migrations/0024_auto_20180315_1604.py deleted file mode 100644 index 61fd65e143c..00000000000 --- a/readthedocs/projects/migrations/0024_auto_20180315_1604.py +++ /dev/null @@ -1,95 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.12 on 2018-03-15 16:04 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('projects', '0023_migrate-alias-slug'), - ] - - operations = [ - migrations.AlterField( - model_name='domain', - name='canonical', - field=models.BooleanField(default=False, help_text='This Domain is the primary one where the documentation is served from'), - ), - migrations.AlterField( - model_name='domain', - name='count', - field=models.IntegerField(default=0, help_text='Number of times this domain has been hit'), - ), - migrations.AlterField( - model_name='project', - name='allow_promos', - field=models.BooleanField(default=True, help_text='If unchecked, users will still see community ads.', verbose_name='Allow paid advertising'), - ), - migrations.AlterField( - model_name='project', - name='comment_moderation', - field=models.BooleanField(default=False, verbose_name='Comment Moderation'), - ), - migrations.AlterField( - model_name='project', - name='conf_py_file', - field=models.CharField(blank=True, default='', help_text='Path from project root to conf.py file (ex. docs/conf.py). Leave blank if you want us to find it for you.', max_length=255, verbose_name='Python configuration file'), - ), - migrations.AlterField( - model_name='project', - name='default_version', - field=models.CharField(default='latest', help_text='The version of your project that / redirects to', max_length=255, verbose_name='Default version'), - ), - migrations.AlterField( - model_name='project', - name='documentation_type', - field=models.CharField(choices=[('auto', 'Automatically Choose'), ('sphinx', 'Sphinx Html'), ('mkdocs', 'Mkdocs (Markdown)'), ('sphinx_htmldir', 'Sphinx HtmlDir'), ('sphinx_singlehtml', 'Sphinx Single Page HTML')], default='sphinx', help_text='Type of documentation you are building. More info.', max_length=20, verbose_name='Documentation type'), - ), - migrations.AlterField( - model_name='project', - name='has_valid_webhook', - field=models.BooleanField(default=False, help_text='This project has been built with a webhook'), - ), - migrations.AlterField( - model_name='project', - name='language', - field=models.CharField(choices=[('aa', 'Afar'), ('ab', 'Abkhaz'), ('acr', 'Achi'), ('af', 'Afrikaans'), ('agu', 'Awakateko'), ('am', 'Amharic'), ('ar', 'Arabic'), ('as', 'Assamese'), ('ay', 'Aymara'), ('az', 'Azerbaijani'), ('ba', 'Bashkir'), ('be', 'Belarusian'), ('bg', 'Bulgarian'), ('bh', 'Bihari'), ('bi', 'Bislama'), ('bn', 'Bengali'), ('bo', 'Tibetan'), ('br', 'Breton'), ('ca', 'Catalan'), ('caa', "Ch'orti'"), ('cac', 'Chuj'), ('cab', 'Garífuna'), ('cak', 'Kaqchikel'), ('co', 'Corsican'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dz', 'Dzongkha'), ('el', 'Greek'), ('en', 'English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Iranian'), ('fi', 'Finnish'), ('fj', 'Fijian'), ('fo', 'Faroese'), ('fr', 'French'), ('fy', 'Western Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('gn', 'Guarani'), ('gu', 'Gujarati'), ('ha', 'Hausa'), ('hi', 'Hindi'), ('he', 'Hebrew'), ('hr', 'Croatian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ie', 'Interlingue'), ('ik', 'Inupiaq'), ('is', 'Icelandic'), ('it', 'Italian'), ('itz', "Itza'"), ('iu', 'Inuktitut'), ('ixl', 'Ixil'), ('ja', 'Japanese'), ('jac', "Popti'"), ('jv', 'Javanese'), ('ka', 'Georgian'), ('kjb', "Q'anjob'al"), ('kek', "Q'eqchi'"), ('kk', 'Kazakh'), ('kl', 'Kalaallisut'), ('km', 'Khmer'), ('kn', 'Kannada'), ('knj', 'Akateko'), ('ko', 'Korean'), ('ks', 'Kashmiri'), ('ku', 'Kurdish'), ('ky', 'Kyrgyz'), ('la', 'Latin'), ('ln', 'Lingala'), ('lo', 'Lao'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mam', 'Mam'), ('mg', 'Malagasy'), ('mi', 'Maori'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mop', 'Mopan'), ('mr', 'Marathi'), ('ms', 'Malay'), ('mt', 'Maltese'), ('my', 'Burmese'), ('na', 'Nauru'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('no', 'Norwegian'), ('oc', 'Occitan'), ('om', 'Oromo'), ('or', 'Oriya'), ('pa', 'Panjabi'), ('pl', 'Polish'), ('pnb', 'Western Punjabi'), ('poc', 'Poqomam'), ('poh', 'Poqomchi'), ('ps', 'Pashto'), ('pt', 'Portuguese'), ('qu', 'Quechua'), ('quc', "K'iche'"), ('qum', 'Sipakapense'), ('quv', 'Sakapulteko'), ('rm', 'Romansh'), ('rn', 'Kirundi'), ('ro', 'Romanian'), ('ru', 'Russian'), ('rw', 'Kinyarwanda'), ('sa', 'Sanskrit'), ('sd', 'Sindhi'), ('sg', 'Sango'), ('si', 'Sinhala'), ('sk', 'Slovak'), ('skr', 'Saraiki'), ('sl', 'Slovenian'), ('sm', 'Samoan'), ('sn', 'Shona'), ('so', 'Somali'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('ss', 'Swati'), ('st', 'Southern Sotho'), ('su', 'Sudanese'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('ti', 'Tigrinya'), ('tk', 'Turkmen'), ('tl', 'Tagalog'), ('tn', 'Tswana'), ('to', 'Tonga'), ('tr', 'Turkish'), ('ts', 'Tsonga'), ('tt', 'Tatar'), ('ttc', 'Tektiteko'), ('tzj', "Tz'utujil"), ('tw', 'Twi'), ('ug', 'Uyghur'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('usp', 'Uspanteko'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('vo', 'Volapuk'), ('wo', 'Wolof'), ('xh', 'Xhosa'), ('xin', 'Xinka'), ('yi', 'Yiddish'), ('yo', 'Yoruba'), ('za', 'Zhuang'), ('zh', 'Chinese'), ('zu', 'Zulu'), ('nb_NO', 'Norwegian Bokmal'), ('pt_BR', 'Brazilian Portuguese'), ('uk_UA', 'Ukrainian'), ('zh_CN', 'Simplified Chinese'), ('zh_TW', 'Traditional Chinese')], default='en', help_text="The language the project documentation is rendered in. Note: this affects your project's URL.", max_length=20, verbose_name='Language'), - ), - migrations.AlterField( - model_name='project', - name='privacy_level', - field=models.CharField(choices=[('public', 'Public'), ('protected', 'Protected'), ('private', 'Private')], default='public', help_text='(Beta) Level of privacy that you want on the repository. Protected means public but not in listings.', max_length=20, verbose_name='Privacy Level'), - ), - migrations.AlterField( - model_name='project', - name='programming_language', - field=models.CharField(blank=True, choices=[('words', 'Only Words'), ('py', 'Python'), ('js', 'JavaScript'), ('php', 'PHP'), ('ruby', 'Ruby'), ('perl', 'Perl'), ('java', 'Java'), ('go', 'Go'), ('julia', 'Julia'), ('c', 'C'), ('csharp', 'C#'), ('cpp', 'C++'), ('objc', 'Objective-C'), ('css', 'CSS'), ('ts', 'TypeScript'), ('swift', 'Swift'), ('vb', 'Visual Basic'), ('r', 'R'), ('scala', 'Scala'), ('groovy', 'Groovy'), ('coffee', 'CoffeeScript'), ('lua', 'Lua'), ('haskell', 'Haskell'), ('other', 'Other')], default='words', help_text='The primary programming language the project is written in.', max_length=20, verbose_name='Programming Language'), - ), - migrations.AlterField( - model_name='project', - name='python_interpreter', - field=models.CharField(choices=[('python', 'CPython 2.x'), ('python3', 'CPython 3.x')], default='python', help_text='(Beta) The Python interpreter used to create the virtual environment.', max_length=20, verbose_name='Python Interpreter'), - ), - migrations.AlterField( - model_name='project', - name='repo_type', - field=models.CharField(choices=[('git', 'Git'), ('svn', 'Subversion'), ('hg', 'Mercurial'), ('bzr', 'Bazaar')], default='git', max_length=10, verbose_name='Repository type'), - ), - migrations.AlterField( - model_name='project', - name='suffix', - field=models.CharField(default='.rst', editable=False, max_length=10, verbose_name='Suffix'), - ), - migrations.AlterField( - model_name='project', - name='theme', - field=models.CharField(choices=[('default', 'Default'), ('sphinxdoc', 'Sphinx Docs'), ('traditional', 'Traditional'), ('nature', 'Nature'), ('haiku', 'Haiku')], default='default', help_text='Examples', max_length=20, verbose_name='Theme'), - ), - migrations.AlterField( - model_name='project', - name='version_privacy_level', - field=models.CharField(choices=[('public', 'Public'), ('protected', 'Protected'), ('private', 'Private')], default='public', help_text='(Beta) Default level of privacy you want on built versions of documentation.', max_length=20, verbose_name='Version Privacy Level'), - ), - ] diff --git a/readthedocs/redirects/migrations/0002_auto_20180315_1604.py b/readthedocs/redirects/migrations/0002_auto_20180315_1604.py deleted file mode 100644 index e43919d61e5..00000000000 --- a/readthedocs/redirects/migrations/0002_auto_20180315_1604.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.12 on 2018-03-15 16:04 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('redirects', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='redirect', - name='redirect_type', - field=models.CharField(choices=[('prefix', 'Prefix Redirect'), ('page', 'Page Redirect'), ('exact', 'Exact Redirect'), ('sphinx_html', 'Sphinx HTMLDir -> HTML'), ('sphinx_htmldir', 'Sphinx HTML -> HTMLDir')], help_text='The type of redirect you wish to use.', max_length=255, verbose_name='Redirect Type'), - ), - migrations.AlterField( - model_name='redirect', - name='to_url', - field=models.CharField(blank=True, db_index=True, help_text='Absolute or relative URL. Examples: /tutorial/install.html', max_length=255, verbose_name='To URL'), - ), - ] From bcb77d27a3e2e05b3222c231f0dbbcd1d1394ed6 Mon Sep 17 00:00:00 2001 From: Julien Malard Date: Fri, 16 Mar 2018 11:04:45 -0400 Subject: [PATCH 04/12] Migrations --- .../migrations/0005_auto_20180316_1023.py | 61 ++++++++++++ .../migrations/0002_auto_20180316_1023.py | 25 +++++ .../migrations/0002_auto_20180316_1023.py | 20 ++++ .../migrations/0003_auto_20180316_1023.py | 56 +++++++++++ .../migrations/0009_auto_20180316_1023.py | 31 ++++++ .../migrations/0024_auto_20180316_1023.py | 95 +++++++++++++++++++ .../migrations/0002_auto_20180316_1023.py | 25 +++++ 7 files changed, 313 insertions(+) create mode 100644 readthedocs/builds/migrations/0005_auto_20180316_1023.py create mode 100644 readthedocs/comments/migrations/0002_auto_20180316_1023.py create mode 100644 readthedocs/gold/migrations/0002_auto_20180316_1023.py create mode 100644 readthedocs/integrations/migrations/0003_auto_20180316_1023.py create mode 100644 readthedocs/oauth/migrations/0009_auto_20180316_1023.py create mode 100644 readthedocs/projects/migrations/0024_auto_20180316_1023.py create mode 100644 readthedocs/redirects/migrations/0002_auto_20180316_1023.py diff --git a/readthedocs/builds/migrations/0005_auto_20180316_1023.py b/readthedocs/builds/migrations/0005_auto_20180316_1023.py new file mode 100644 index 00000000000..d7ab1546220 --- /dev/null +++ b/readthedocs/builds/migrations/0005_auto_20180316_1023.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.12 on 2018-03-16 10:23 +from __future__ import unicode_literals + +from django.db import migrations, models +import readthedocs.builds.version_slug + + +class Migration(migrations.Migration): + + dependencies = [ + ('builds', '0004_add-apiversion-proxy-model'), + ] + + operations = [ + migrations.AlterField( + model_name='build', + name='error', + field=models.TextField(blank=True, default='', verbose_name='Error'), + ), + migrations.AlterField( + model_name='build', + name='output', + field=models.TextField(blank=True, default='', verbose_name='Output'), + ), + migrations.AlterField( + model_name='build', + name='state', + field=models.CharField(choices=[('triggered', 'Triggered'), ('cloning', 'Cloning'), ('installing', 'Installing'), ('building', 'Building'), ('finished', 'Finished')], default='finished', max_length=55, verbose_name='State'), + ), + migrations.AlterField( + model_name='build', + name='type', + field=models.CharField(choices=[('html', 'HTML'), ('pdf', 'PDF'), ('epub', 'Epub'), ('man', 'Manpage'), ('dash', 'Dash')], default='html', max_length=55, verbose_name='Type'), + ), + migrations.AlterField( + model_name='version', + name='privacy_level', + field=models.CharField(choices=[('public', 'Public'), ('protected', 'Protected'), ('private', 'Private')], default='public', help_text='Level of privacy for this Version.', max_length=20, verbose_name='Privacy Level'), + ), + migrations.AlterField( + model_name='version', + name='slug', + field=readthedocs.builds.version_slug.VersionSlugField(db_index=True, max_length=255, populate_from='verbose_name', verbose_name='Slug'), + ), + migrations.AlterField( + model_name='version', + name='type', + field=models.CharField(choices=[('branch', 'Branch'), ('tag', 'Tag'), ('unknown', 'Unknown')], default='unknown', max_length=20, verbose_name='Type'), + ), + migrations.AlterField( + model_name='versionalias', + name='from_slug', + field=models.CharField(default='', max_length=255, verbose_name='From slug'), + ), + migrations.AlterField( + model_name='versionalias', + name='to_slug', + field=models.CharField(blank=True, default='', max_length=255, verbose_name='To slug'), + ), + ] diff --git a/readthedocs/comments/migrations/0002_auto_20180316_1023.py b/readthedocs/comments/migrations/0002_auto_20180316_1023.py new file mode 100644 index 00000000000..549e176f232 --- /dev/null +++ b/readthedocs/comments/migrations/0002_auto_20180316_1023.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.12 on 2018-03-16 10:23 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('comments', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='moderationaction', + name='decision', + field=models.IntegerField(choices=[(0, 'No Decision'), (1, 'Publish'), (2, 'Hide')]), + ), + migrations.AlterField( + model_name='nodesnapshot', + name='date', + field=models.DateTimeField(auto_now_add=True, verbose_name='Publication date'), + ), + ] diff --git a/readthedocs/gold/migrations/0002_auto_20180316_1023.py b/readthedocs/gold/migrations/0002_auto_20180316_1023.py new file mode 100644 index 00000000000..959b8137d72 --- /dev/null +++ b/readthedocs/gold/migrations/0002_auto_20180316_1023.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.12 on 2018-03-16 10:23 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('gold', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='golduser', + name='level', + field=models.CharField(choices=[('v1-org-5', '$5/mo'), ('v1-org-10', '$10/mo'), ('v1-org-15', '$15/mo'), ('v1-org-20', '$20/mo'), ('v1-org-50', '$50/mo'), ('v1-org-100', '$100/mo')], default='v1-org-5', max_length=20, verbose_name='Level'), + ), + ] diff --git a/readthedocs/integrations/migrations/0003_auto_20180316_1023.py b/readthedocs/integrations/migrations/0003_auto_20180316_1023.py new file mode 100644 index 00000000000..379b28ffaad --- /dev/null +++ b/readthedocs/integrations/migrations/0003_auto_20180316_1023.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.12 on 2018-03-16 10:23 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('integrations', '0002_add-webhook'), + ] + + operations = [ + migrations.CreateModel( + name='BitbucketWebhook', + fields=[ + ], + options={ + 'proxy': True, + }, + bases=('integrations.integration',), + ), + migrations.CreateModel( + name='GenericAPIWebhook', + fields=[ + ], + options={ + 'proxy': True, + }, + bases=('integrations.integration',), + ), + migrations.CreateModel( + name='GitHubWebhook', + fields=[ + ], + options={ + 'proxy': True, + }, + bases=('integrations.integration',), + ), + migrations.CreateModel( + name='GitLabWebhook', + fields=[ + ], + options={ + 'proxy': True, + }, + bases=('integrations.integration',), + ), + migrations.AlterField( + model_name='integration', + name='integration_type', + field=models.CharField(choices=[('github_webhook', 'GitHub incoming webhook'), ('bitbucket_webhook', 'Bitbucket incoming webhook'), ('gitlab_webhook', 'GitLab incoming webhook'), ('api_webhook', 'Generic API incoming webhook')], max_length=32, verbose_name='Integration type'), + ), + ] diff --git a/readthedocs/oauth/migrations/0009_auto_20180316_1023.py b/readthedocs/oauth/migrations/0009_auto_20180316_1023.py new file mode 100644 index 00000000000..b220a597b27 --- /dev/null +++ b/readthedocs/oauth/migrations/0009_auto_20180316_1023.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.12 on 2018-03-16 10:23 +from __future__ import unicode_literals + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('oauth', '0008_add-project-relation'), + ] + + operations = [ + migrations.AlterField( + model_name='remoterepository', + name='clone_url', + field=models.URLField(blank=True, max_length=512, validators=[django.core.validators.URLValidator(schemes=['http', 'https', 'ssh', 'git', 'svn'])], verbose_name='Repository clone URL'), + ), + migrations.AlterField( + model_name='remoterepository', + name='ssh_url', + field=models.URLField(blank=True, max_length=512, validators=[django.core.validators.URLValidator(schemes=['ssh'])], verbose_name='SSH URL'), + ), + migrations.AlterField( + model_name='remoterepository', + name='vcs', + field=models.CharField(blank=True, choices=[('git', 'Git'), ('svn', 'Subversion'), ('hg', 'Mercurial'), ('bzr', 'Bazaar')], max_length=200, verbose_name='vcs'), + ), + ] diff --git a/readthedocs/projects/migrations/0024_auto_20180316_1023.py b/readthedocs/projects/migrations/0024_auto_20180316_1023.py new file mode 100644 index 00000000000..148baff7b9f --- /dev/null +++ b/readthedocs/projects/migrations/0024_auto_20180316_1023.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.12 on 2018-03-16 10:23 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('projects', '0023_migrate-alias-slug'), + ] + + operations = [ + migrations.AlterField( + model_name='domain', + name='canonical', + field=models.BooleanField(default=False, help_text='This Domain is the primary one where the documentation is served from'), + ), + migrations.AlterField( + model_name='domain', + name='count', + field=models.IntegerField(default=0, help_text='Number of times this domain has been hit'), + ), + migrations.AlterField( + model_name='project', + name='allow_promos', + field=models.BooleanField(default=True, help_text='If unchecked, users will still see community ads.', verbose_name='Allow paid advertising'), + ), + migrations.AlterField( + model_name='project', + name='comment_moderation', + field=models.BooleanField(default=False, verbose_name='Comment Moderation'), + ), + migrations.AlterField( + model_name='project', + name='conf_py_file', + field=models.CharField(blank=True, default='', help_text='Path from project root to conf.py file (ex. docs/conf.py). Leave blank if you want us to find it for you.', max_length=255, verbose_name='Python configuration file'), + ), + migrations.AlterField( + model_name='project', + name='default_version', + field=models.CharField(default='latest', help_text='The version of your project that / redirects to', max_length=255, verbose_name='Default version'), + ), + migrations.AlterField( + model_name='project', + name='documentation_type', + field=models.CharField(choices=[('auto', 'Automatically Choose'), ('sphinx', 'Sphinx Html'), ('mkdocs', 'Mkdocs (Markdown)'), ('sphinx_htmldir', 'Sphinx HtmlDir'), ('sphinx_singlehtml', 'Sphinx Single Page HTML')], default='sphinx', help_text='Type of documentation you are building. More info.', max_length=20, verbose_name='Documentation type'), + ), + migrations.AlterField( + model_name='project', + name='has_valid_webhook', + field=models.BooleanField(default=False, help_text='This project has been built with a webhook'), + ), + migrations.AlterField( + model_name='project', + name='language', + field=models.CharField(choices=[('aa', 'Afar'), ('ab', 'Abkhaz'), ('acr', 'Achi'), ('af', 'Afrikaans'), ('agu', 'Awakateko'), ('am', 'Amharic'), ('ar', 'Arabic'), ('as', 'Assamese'), ('ay', 'Aymara'), ('az', 'Azerbaijani'), ('ba', 'Bashkir'), ('be', 'Belarusian'), ('bg', 'Bulgarian'), ('bh', 'Bihari'), ('bi', 'Bislama'), ('bn', 'Bengali'), ('bo', 'Tibetan'), ('br', 'Breton'), ('ca', 'Catalan'), ('caa', "Ch'orti'"), ('cac', 'Chuj'), ('cab', 'Garífuna'), ('cak', 'Kaqchikel'), ('co', 'Corsican'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dz', 'Dzongkha'), ('el', 'Greek'), ('en', 'English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Iranian'), ('fi', 'Finnish'), ('fj', 'Fijian'), ('fo', 'Faroese'), ('fr', 'French'), ('fy', 'Western Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('gn', 'Guarani'), ('gu', 'Gujarati'), ('ha', 'Hausa'), ('hi', 'Hindi'), ('he', 'Hebrew'), ('hr', 'Croatian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ie', 'Interlingue'), ('ik', 'Inupiaq'), ('is', 'Icelandic'), ('it', 'Italian'), ('itz', "Itza'"), ('iu', 'Inuktitut'), ('ixl', 'Ixil'), ('ja', 'Japanese'), ('jac', "Popti'"), ('jv', 'Javanese'), ('ka', 'Georgian'), ('kjb', "Q'anjob'al"), ('kek', "Q'eqchi'"), ('kk', 'Kazakh'), ('kl', 'Kalaallisut'), ('km', 'Khmer'), ('kn', 'Kannada'), ('knj', 'Akateko'), ('ko', 'Korean'), ('ks', 'Kashmiri'), ('ku', 'Kurdish'), ('ky', 'Kyrgyz'), ('la', 'Latin'), ('ln', 'Lingala'), ('lo', 'Lao'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mam', 'Mam'), ('mg', 'Malagasy'), ('mi', 'Maori'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mop', 'Mopan'), ('mr', 'Marathi'), ('ms', 'Malay'), ('mt', 'Maltese'), ('my', 'Burmese'), ('na', 'Nauru'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('no', 'Norwegian'), ('oc', 'Occitan'), ('om', 'Oromo'), ('or', 'Oriya'), ('pa', 'Panjabi'), ('pl', 'Polish'), ('pnb', 'Western Punjabi'), ('poc', 'Poqomam'), ('poh', 'Poqomchi'), ('ps', 'Pashto'), ('pt', 'Portuguese'), ('qu', 'Quechua'), ('quc', "K'iche'"), ('qum', 'Sipakapense'), ('quv', 'Sakapulteko'), ('rm', 'Romansh'), ('rn', 'Kirundi'), ('ro', 'Romanian'), ('ru', 'Russian'), ('rw', 'Kinyarwanda'), ('sa', 'Sanskrit'), ('sd', 'Sindhi'), ('sg', 'Sango'), ('si', 'Sinhala'), ('sk', 'Slovak'), ('skr', 'Saraiki'), ('sl', 'Slovenian'), ('sm', 'Samoan'), ('sn', 'Shona'), ('so', 'Somali'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('ss', 'Swati'), ('st', 'Southern Sotho'), ('su', 'Sudanese'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('ti', 'Tigrinya'), ('tk', 'Turkmen'), ('tl', 'Tagalog'), ('tn', 'Tswana'), ('to', 'Tonga'), ('tr', 'Turkish'), ('ts', 'Tsonga'), ('tt', 'Tatar'), ('ttc', 'Tektiteko'), ('tzj', "Tz'utujil"), ('tw', 'Twi'), ('ug', 'Uyghur'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('usp', 'Uspanteko'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('vo', 'Volapuk'), ('wo', 'Wolof'), ('xh', 'Xhosa'), ('xin', 'Xinka'), ('yi', 'Yiddish'), ('yo', 'Yoruba'), ('za', 'Zhuang'), ('zh', 'Chinese'), ('zu', 'Zulu'), ('nb_NO', 'Norwegian Bokmal'), ('pt_BR', 'Brazilian Portuguese'), ('uk_UA', 'Ukrainian'), ('zh_CN', 'Simplified Chinese'), ('zh_TW', 'Traditional Chinese')], default='en', help_text="The language the project documentation is rendered in. Note: this affects your project's URL.", max_length=20, verbose_name='Language'), + ), + migrations.AlterField( + model_name='project', + name='privacy_level', + field=models.CharField(choices=[('public', 'Public'), ('protected', 'Protected'), ('private', 'Private')], default='public', help_text='(Beta) Level of privacy that you want on the repository. Protected means public but not in listings.', max_length=20, verbose_name='Privacy Level'), + ), + migrations.AlterField( + model_name='project', + name='programming_language', + field=models.CharField(blank=True, choices=[('words', 'Only Words'), ('py', 'Python'), ('js', 'JavaScript'), ('php', 'PHP'), ('ruby', 'Ruby'), ('perl', 'Perl'), ('java', 'Java'), ('go', 'Go'), ('julia', 'Julia'), ('c', 'C'), ('csharp', 'C#'), ('cpp', 'C++'), ('objc', 'Objective-C'), ('css', 'CSS'), ('ts', 'TypeScript'), ('swift', 'Swift'), ('vb', 'Visual Basic'), ('r', 'R'), ('scala', 'Scala'), ('groovy', 'Groovy'), ('coffee', 'CoffeeScript'), ('lua', 'Lua'), ('haskell', 'Haskell'), ('other', 'Other')], default='words', help_text='The primary programming language the project is written in.', max_length=20, verbose_name='Programming Language'), + ), + migrations.AlterField( + model_name='project', + name='python_interpreter', + field=models.CharField(choices=[('python', 'CPython 2.x'), ('python3', 'CPython 3.x')], default='python', help_text='(Beta) The Python interpreter used to create the virtual environment.', max_length=20, verbose_name='Python Interpreter'), + ), + migrations.AlterField( + model_name='project', + name='repo_type', + field=models.CharField(choices=[('git', 'Git'), ('svn', 'Subversion'), ('hg', 'Mercurial'), ('bzr', 'Bazaar')], default='git', max_length=10, verbose_name='Repository type'), + ), + migrations.AlterField( + model_name='project', + name='suffix', + field=models.CharField(default='.rst', editable=False, max_length=10, verbose_name='Suffix'), + ), + migrations.AlterField( + model_name='project', + name='theme', + field=models.CharField(choices=[('default', 'Default'), ('sphinxdoc', 'Sphinx Docs'), ('traditional', 'Traditional'), ('nature', 'Nature'), ('haiku', 'Haiku')], default='default', help_text='Examples', max_length=20, verbose_name='Theme'), + ), + migrations.AlterField( + model_name='project', + name='version_privacy_level', + field=models.CharField(choices=[('public', 'Public'), ('protected', 'Protected'), ('private', 'Private')], default='public', help_text='(Beta) Default level of privacy you want on built versions of documentation.', max_length=20, verbose_name='Version Privacy Level'), + ), + ] diff --git a/readthedocs/redirects/migrations/0002_auto_20180316_1023.py b/readthedocs/redirects/migrations/0002_auto_20180316_1023.py new file mode 100644 index 00000000000..24e2874687e --- /dev/null +++ b/readthedocs/redirects/migrations/0002_auto_20180316_1023.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.12 on 2018-03-16 10:23 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('redirects', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='redirect', + name='redirect_type', + field=models.CharField(choices=[('prefix', 'Prefix Redirect'), ('page', 'Page Redirect'), ('exact', 'Exact Redirect'), ('sphinx_html', 'Sphinx HTMLDir -> HTML'), ('sphinx_htmldir', 'Sphinx HTML -> HTMLDir')], help_text='The type of redirect you wish to use.', max_length=255, verbose_name='Redirect Type'), + ), + migrations.AlterField( + model_name='redirect', + name='to_url', + field=models.CharField(blank=True, db_index=True, help_text='Absolute or relative URL. Examples: /tutorial/install.html', max_length=255, verbose_name='To URL'), + ), + ] From b4e891d3b1e7bc4c59dc2994ffae4d54678cd00a Mon Sep 17 00:00:00 2001 From: Julien Malard Date: Tue, 12 Jun 2018 14:56:07 +0000 Subject: [PATCH 05/12] Delete 0005_auto_20180316_1023.py --- .../migrations/0005_auto_20180316_1023.py | 61 ------------------- 1 file changed, 61 deletions(-) delete mode 100644 readthedocs/builds/migrations/0005_auto_20180316_1023.py diff --git a/readthedocs/builds/migrations/0005_auto_20180316_1023.py b/readthedocs/builds/migrations/0005_auto_20180316_1023.py deleted file mode 100644 index d7ab1546220..00000000000 --- a/readthedocs/builds/migrations/0005_auto_20180316_1023.py +++ /dev/null @@ -1,61 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.12 on 2018-03-16 10:23 -from __future__ import unicode_literals - -from django.db import migrations, models -import readthedocs.builds.version_slug - - -class Migration(migrations.Migration): - - dependencies = [ - ('builds', '0004_add-apiversion-proxy-model'), - ] - - operations = [ - migrations.AlterField( - model_name='build', - name='error', - field=models.TextField(blank=True, default='', verbose_name='Error'), - ), - migrations.AlterField( - model_name='build', - name='output', - field=models.TextField(blank=True, default='', verbose_name='Output'), - ), - migrations.AlterField( - model_name='build', - name='state', - field=models.CharField(choices=[('triggered', 'Triggered'), ('cloning', 'Cloning'), ('installing', 'Installing'), ('building', 'Building'), ('finished', 'Finished')], default='finished', max_length=55, verbose_name='State'), - ), - migrations.AlterField( - model_name='build', - name='type', - field=models.CharField(choices=[('html', 'HTML'), ('pdf', 'PDF'), ('epub', 'Epub'), ('man', 'Manpage'), ('dash', 'Dash')], default='html', max_length=55, verbose_name='Type'), - ), - migrations.AlterField( - model_name='version', - name='privacy_level', - field=models.CharField(choices=[('public', 'Public'), ('protected', 'Protected'), ('private', 'Private')], default='public', help_text='Level of privacy for this Version.', max_length=20, verbose_name='Privacy Level'), - ), - migrations.AlterField( - model_name='version', - name='slug', - field=readthedocs.builds.version_slug.VersionSlugField(db_index=True, max_length=255, populate_from='verbose_name', verbose_name='Slug'), - ), - migrations.AlterField( - model_name='version', - name='type', - field=models.CharField(choices=[('branch', 'Branch'), ('tag', 'Tag'), ('unknown', 'Unknown')], default='unknown', max_length=20, verbose_name='Type'), - ), - migrations.AlterField( - model_name='versionalias', - name='from_slug', - field=models.CharField(default='', max_length=255, verbose_name='From slug'), - ), - migrations.AlterField( - model_name='versionalias', - name='to_slug', - field=models.CharField(blank=True, default='', max_length=255, verbose_name='To slug'), - ), - ] From 4e16ca66017ab2ceeb56d5e34e48ca7c39a6bad0 Mon Sep 17 00:00:00 2001 From: Julien Malard Date: Tue, 12 Jun 2018 14:56:34 +0000 Subject: [PATCH 06/12] Delete 0002_auto_20180316_1023.py --- .../migrations/0002_auto_20180316_1023.py | 25 ------------------- 1 file changed, 25 deletions(-) delete mode 100644 readthedocs/comments/migrations/0002_auto_20180316_1023.py diff --git a/readthedocs/comments/migrations/0002_auto_20180316_1023.py b/readthedocs/comments/migrations/0002_auto_20180316_1023.py deleted file mode 100644 index 549e176f232..00000000000 --- a/readthedocs/comments/migrations/0002_auto_20180316_1023.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.12 on 2018-03-16 10:23 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('comments', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='moderationaction', - name='decision', - field=models.IntegerField(choices=[(0, 'No Decision'), (1, 'Publish'), (2, 'Hide')]), - ), - migrations.AlterField( - model_name='nodesnapshot', - name='date', - field=models.DateTimeField(auto_now_add=True, verbose_name='Publication date'), - ), - ] From 155cda6b632e65a94cf43bcfba6c635cdc66ad46 Mon Sep 17 00:00:00 2001 From: Julien Malard Date: Tue, 12 Jun 2018 14:57:05 +0000 Subject: [PATCH 07/12] Delete 0002_auto_20180316_1023.py --- .../migrations/0002_auto_20180316_1023.py | 20 ------------------- 1 file changed, 20 deletions(-) delete mode 100644 readthedocs/gold/migrations/0002_auto_20180316_1023.py diff --git a/readthedocs/gold/migrations/0002_auto_20180316_1023.py b/readthedocs/gold/migrations/0002_auto_20180316_1023.py deleted file mode 100644 index 959b8137d72..00000000000 --- a/readthedocs/gold/migrations/0002_auto_20180316_1023.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.12 on 2018-03-16 10:23 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('gold', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='golduser', - name='level', - field=models.CharField(choices=[('v1-org-5', '$5/mo'), ('v1-org-10', '$10/mo'), ('v1-org-15', '$15/mo'), ('v1-org-20', '$20/mo'), ('v1-org-50', '$50/mo'), ('v1-org-100', '$100/mo')], default='v1-org-5', max_length=20, verbose_name='Level'), - ), - ] From cb9457efad452adf617cd45643121cf92230bd86 Mon Sep 17 00:00:00 2001 From: Julien Malard Date: Tue, 12 Jun 2018 14:57:24 +0000 Subject: [PATCH 08/12] Delete 0003_auto_20180316_1023.py --- .../migrations/0003_auto_20180316_1023.py | 56 ------------------- 1 file changed, 56 deletions(-) delete mode 100644 readthedocs/integrations/migrations/0003_auto_20180316_1023.py diff --git a/readthedocs/integrations/migrations/0003_auto_20180316_1023.py b/readthedocs/integrations/migrations/0003_auto_20180316_1023.py deleted file mode 100644 index 379b28ffaad..00000000000 --- a/readthedocs/integrations/migrations/0003_auto_20180316_1023.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.12 on 2018-03-16 10:23 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('integrations', '0002_add-webhook'), - ] - - operations = [ - migrations.CreateModel( - name='BitbucketWebhook', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('integrations.integration',), - ), - migrations.CreateModel( - name='GenericAPIWebhook', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('integrations.integration',), - ), - migrations.CreateModel( - name='GitHubWebhook', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('integrations.integration',), - ), - migrations.CreateModel( - name='GitLabWebhook', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('integrations.integration',), - ), - migrations.AlterField( - model_name='integration', - name='integration_type', - field=models.CharField(choices=[('github_webhook', 'GitHub incoming webhook'), ('bitbucket_webhook', 'Bitbucket incoming webhook'), ('gitlab_webhook', 'GitLab incoming webhook'), ('api_webhook', 'Generic API incoming webhook')], max_length=32, verbose_name='Integration type'), - ), - ] From 287593d5cc8bfd1e6a72e8c551ff050b5221efcb Mon Sep 17 00:00:00 2001 From: Julien Malard Date: Tue, 12 Jun 2018 14:57:53 +0000 Subject: [PATCH 09/12] Delete 0009_auto_20180316_1023.py --- .../migrations/0009_auto_20180316_1023.py | 31 ------------------- 1 file changed, 31 deletions(-) delete mode 100644 readthedocs/oauth/migrations/0009_auto_20180316_1023.py diff --git a/readthedocs/oauth/migrations/0009_auto_20180316_1023.py b/readthedocs/oauth/migrations/0009_auto_20180316_1023.py deleted file mode 100644 index b220a597b27..00000000000 --- a/readthedocs/oauth/migrations/0009_auto_20180316_1023.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.12 on 2018-03-16 10:23 -from __future__ import unicode_literals - -import django.core.validators -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('oauth', '0008_add-project-relation'), - ] - - operations = [ - migrations.AlterField( - model_name='remoterepository', - name='clone_url', - field=models.URLField(blank=True, max_length=512, validators=[django.core.validators.URLValidator(schemes=['http', 'https', 'ssh', 'git', 'svn'])], verbose_name='Repository clone URL'), - ), - migrations.AlterField( - model_name='remoterepository', - name='ssh_url', - field=models.URLField(blank=True, max_length=512, validators=[django.core.validators.URLValidator(schemes=['ssh'])], verbose_name='SSH URL'), - ), - migrations.AlterField( - model_name='remoterepository', - name='vcs', - field=models.CharField(blank=True, choices=[('git', 'Git'), ('svn', 'Subversion'), ('hg', 'Mercurial'), ('bzr', 'Bazaar')], max_length=200, verbose_name='vcs'), - ), - ] From e9e66bf068bcb2e59c2bb9973c12d510fe485086 Mon Sep 17 00:00:00 2001 From: Julien Malard Date: Tue, 12 Jun 2018 14:59:02 +0000 Subject: [PATCH 10/12] Update 0024_auto_20180316_1023.py --- .../migrations/0024_auto_20180316_1023.py | 75 ------------------- 1 file changed, 75 deletions(-) diff --git a/readthedocs/projects/migrations/0024_auto_20180316_1023.py b/readthedocs/projects/migrations/0024_auto_20180316_1023.py index 148baff7b9f..194cfff3f7a 100644 --- a/readthedocs/projects/migrations/0024_auto_20180316_1023.py +++ b/readthedocs/projects/migrations/0024_auto_20180316_1023.py @@ -12,84 +12,9 @@ class Migration(migrations.Migration): ] operations = [ - migrations.AlterField( - model_name='domain', - name='canonical', - field=models.BooleanField(default=False, help_text='This Domain is the primary one where the documentation is served from'), - ), - migrations.AlterField( - model_name='domain', - name='count', - field=models.IntegerField(default=0, help_text='Number of times this domain has been hit'), - ), - migrations.AlterField( - model_name='project', - name='allow_promos', - field=models.BooleanField(default=True, help_text='If unchecked, users will still see community ads.', verbose_name='Allow paid advertising'), - ), - migrations.AlterField( - model_name='project', - name='comment_moderation', - field=models.BooleanField(default=False, verbose_name='Comment Moderation'), - ), - migrations.AlterField( - model_name='project', - name='conf_py_file', - field=models.CharField(blank=True, default='', help_text='Path from project root to conf.py file (ex. docs/conf.py). Leave blank if you want us to find it for you.', max_length=255, verbose_name='Python configuration file'), - ), - migrations.AlterField( - model_name='project', - name='default_version', - field=models.CharField(default='latest', help_text='The version of your project that / redirects to', max_length=255, verbose_name='Default version'), - ), - migrations.AlterField( - model_name='project', - name='documentation_type', - field=models.CharField(choices=[('auto', 'Automatically Choose'), ('sphinx', 'Sphinx Html'), ('mkdocs', 'Mkdocs (Markdown)'), ('sphinx_htmldir', 'Sphinx HtmlDir'), ('sphinx_singlehtml', 'Sphinx Single Page HTML')], default='sphinx', help_text='Type of documentation you are building. More info.', max_length=20, verbose_name='Documentation type'), - ), - migrations.AlterField( - model_name='project', - name='has_valid_webhook', - field=models.BooleanField(default=False, help_text='This project has been built with a webhook'), - ), migrations.AlterField( model_name='project', name='language', field=models.CharField(choices=[('aa', 'Afar'), ('ab', 'Abkhaz'), ('acr', 'Achi'), ('af', 'Afrikaans'), ('agu', 'Awakateko'), ('am', 'Amharic'), ('ar', 'Arabic'), ('as', 'Assamese'), ('ay', 'Aymara'), ('az', 'Azerbaijani'), ('ba', 'Bashkir'), ('be', 'Belarusian'), ('bg', 'Bulgarian'), ('bh', 'Bihari'), ('bi', 'Bislama'), ('bn', 'Bengali'), ('bo', 'Tibetan'), ('br', 'Breton'), ('ca', 'Catalan'), ('caa', "Ch'orti'"), ('cac', 'Chuj'), ('cab', 'Garífuna'), ('cak', 'Kaqchikel'), ('co', 'Corsican'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dz', 'Dzongkha'), ('el', 'Greek'), ('en', 'English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Iranian'), ('fi', 'Finnish'), ('fj', 'Fijian'), ('fo', 'Faroese'), ('fr', 'French'), ('fy', 'Western Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('gn', 'Guarani'), ('gu', 'Gujarati'), ('ha', 'Hausa'), ('hi', 'Hindi'), ('he', 'Hebrew'), ('hr', 'Croatian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ie', 'Interlingue'), ('ik', 'Inupiaq'), ('is', 'Icelandic'), ('it', 'Italian'), ('itz', "Itza'"), ('iu', 'Inuktitut'), ('ixl', 'Ixil'), ('ja', 'Japanese'), ('jac', "Popti'"), ('jv', 'Javanese'), ('ka', 'Georgian'), ('kjb', "Q'anjob'al"), ('kek', "Q'eqchi'"), ('kk', 'Kazakh'), ('kl', 'Kalaallisut'), ('km', 'Khmer'), ('kn', 'Kannada'), ('knj', 'Akateko'), ('ko', 'Korean'), ('ks', 'Kashmiri'), ('ku', 'Kurdish'), ('ky', 'Kyrgyz'), ('la', 'Latin'), ('ln', 'Lingala'), ('lo', 'Lao'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mam', 'Mam'), ('mg', 'Malagasy'), ('mi', 'Maori'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mop', 'Mopan'), ('mr', 'Marathi'), ('ms', 'Malay'), ('mt', 'Maltese'), ('my', 'Burmese'), ('na', 'Nauru'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('no', 'Norwegian'), ('oc', 'Occitan'), ('om', 'Oromo'), ('or', 'Oriya'), ('pa', 'Panjabi'), ('pl', 'Polish'), ('pnb', 'Western Punjabi'), ('poc', 'Poqomam'), ('poh', 'Poqomchi'), ('ps', 'Pashto'), ('pt', 'Portuguese'), ('qu', 'Quechua'), ('quc', "K'iche'"), ('qum', 'Sipakapense'), ('quv', 'Sakapulteko'), ('rm', 'Romansh'), ('rn', 'Kirundi'), ('ro', 'Romanian'), ('ru', 'Russian'), ('rw', 'Kinyarwanda'), ('sa', 'Sanskrit'), ('sd', 'Sindhi'), ('sg', 'Sango'), ('si', 'Sinhala'), ('sk', 'Slovak'), ('skr', 'Saraiki'), ('sl', 'Slovenian'), ('sm', 'Samoan'), ('sn', 'Shona'), ('so', 'Somali'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('ss', 'Swati'), ('st', 'Southern Sotho'), ('su', 'Sudanese'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('ti', 'Tigrinya'), ('tk', 'Turkmen'), ('tl', 'Tagalog'), ('tn', 'Tswana'), ('to', 'Tonga'), ('tr', 'Turkish'), ('ts', 'Tsonga'), ('tt', 'Tatar'), ('ttc', 'Tektiteko'), ('tzj', "Tz'utujil"), ('tw', 'Twi'), ('ug', 'Uyghur'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('usp', 'Uspanteko'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('vo', 'Volapuk'), ('wo', 'Wolof'), ('xh', 'Xhosa'), ('xin', 'Xinka'), ('yi', 'Yiddish'), ('yo', 'Yoruba'), ('za', 'Zhuang'), ('zh', 'Chinese'), ('zu', 'Zulu'), ('nb_NO', 'Norwegian Bokmal'), ('pt_BR', 'Brazilian Portuguese'), ('uk_UA', 'Ukrainian'), ('zh_CN', 'Simplified Chinese'), ('zh_TW', 'Traditional Chinese')], default='en', help_text="The language the project documentation is rendered in. Note: this affects your project's URL.", max_length=20, verbose_name='Language'), ), - migrations.AlterField( - model_name='project', - name='privacy_level', - field=models.CharField(choices=[('public', 'Public'), ('protected', 'Protected'), ('private', 'Private')], default='public', help_text='(Beta) Level of privacy that you want on the repository. Protected means public but not in listings.', max_length=20, verbose_name='Privacy Level'), - ), - migrations.AlterField( - model_name='project', - name='programming_language', - field=models.CharField(blank=True, choices=[('words', 'Only Words'), ('py', 'Python'), ('js', 'JavaScript'), ('php', 'PHP'), ('ruby', 'Ruby'), ('perl', 'Perl'), ('java', 'Java'), ('go', 'Go'), ('julia', 'Julia'), ('c', 'C'), ('csharp', 'C#'), ('cpp', 'C++'), ('objc', 'Objective-C'), ('css', 'CSS'), ('ts', 'TypeScript'), ('swift', 'Swift'), ('vb', 'Visual Basic'), ('r', 'R'), ('scala', 'Scala'), ('groovy', 'Groovy'), ('coffee', 'CoffeeScript'), ('lua', 'Lua'), ('haskell', 'Haskell'), ('other', 'Other')], default='words', help_text='The primary programming language the project is written in.', max_length=20, verbose_name='Programming Language'), - ), - migrations.AlterField( - model_name='project', - name='python_interpreter', - field=models.CharField(choices=[('python', 'CPython 2.x'), ('python3', 'CPython 3.x')], default='python', help_text='(Beta) The Python interpreter used to create the virtual environment.', max_length=20, verbose_name='Python Interpreter'), - ), - migrations.AlterField( - model_name='project', - name='repo_type', - field=models.CharField(choices=[('git', 'Git'), ('svn', 'Subversion'), ('hg', 'Mercurial'), ('bzr', 'Bazaar')], default='git', max_length=10, verbose_name='Repository type'), - ), - migrations.AlterField( - model_name='project', - name='suffix', - field=models.CharField(default='.rst', editable=False, max_length=10, verbose_name='Suffix'), - ), - migrations.AlterField( - model_name='project', - name='theme', - field=models.CharField(choices=[('default', 'Default'), ('sphinxdoc', 'Sphinx Docs'), ('traditional', 'Traditional'), ('nature', 'Nature'), ('haiku', 'Haiku')], default='default', help_text='Examples', max_length=20, verbose_name='Theme'), - ), - migrations.AlterField( - model_name='project', - name='version_privacy_level', - field=models.CharField(choices=[('public', 'Public'), ('protected', 'Protected'), ('private', 'Private')], default='public', help_text='(Beta) Default level of privacy you want on built versions of documentation.', max_length=20, verbose_name='Version Privacy Level'), - ), ] From 46819604a3f0bdda89c515ba151ef27960eee5d7 Mon Sep 17 00:00:00 2001 From: Julien Malard Date: Tue, 12 Jun 2018 14:59:23 +0000 Subject: [PATCH 11/12] Delete 0002_auto_20180316_1023.py --- .../migrations/0002_auto_20180316_1023.py | 25 ------------------- 1 file changed, 25 deletions(-) delete mode 100644 readthedocs/redirects/migrations/0002_auto_20180316_1023.py diff --git a/readthedocs/redirects/migrations/0002_auto_20180316_1023.py b/readthedocs/redirects/migrations/0002_auto_20180316_1023.py deleted file mode 100644 index 24e2874687e..00000000000 --- a/readthedocs/redirects/migrations/0002_auto_20180316_1023.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.12 on 2018-03-16 10:23 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('redirects', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='redirect', - name='redirect_type', - field=models.CharField(choices=[('prefix', 'Prefix Redirect'), ('page', 'Page Redirect'), ('exact', 'Exact Redirect'), ('sphinx_html', 'Sphinx HTMLDir -> HTML'), ('sphinx_htmldir', 'Sphinx HTML -> HTMLDir')], help_text='The type of redirect you wish to use.', max_length=255, verbose_name='Redirect Type'), - ), - migrations.AlterField( - model_name='redirect', - name='to_url', - field=models.CharField(blank=True, db_index=True, help_text='Absolute or relative URL. Examples: /tutorial/install.html', max_length=255, verbose_name='To URL'), - ), - ] From 1d1a34367ac970b5da6190a98d0d03f3a3a5f3f9 Mon Sep 17 00:00:00 2001 From: Eric Holscher Date: Thu, 1 Nov 2018 13:39:02 -0500 Subject: [PATCH 12/12] Update migration name --- ...to_20180316_1023.py => 0029_add_additional_languages.py} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename readthedocs/projects/migrations/{0024_auto_20180316_1023.py => 0029_add_additional_languages.py} (88%) diff --git a/readthedocs/projects/migrations/0024_auto_20180316_1023.py b/readthedocs/projects/migrations/0029_add_additional_languages.py similarity index 88% rename from readthedocs/projects/migrations/0024_auto_20180316_1023.py rename to readthedocs/projects/migrations/0029_add_additional_languages.py index 194cfff3f7a..b4cfc77535b 100644 --- a/readthedocs/projects/migrations/0024_auto_20180316_1023.py +++ b/readthedocs/projects/migrations/0029_add_additional_languages.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.9.12 on 2018-03-16 10:23 +# Generated by Django 1.11.16 on 2018-11-01 13:38 from __future__ import unicode_literals from django.db import migrations, models @@ -8,13 +8,13 @@ class Migration(migrations.Migration): dependencies = [ - ('projects', '0023_migrate-alias-slug'), + ('projects', '0028_remove_comments_and_update_old_migration'), ] operations = [ migrations.AlterField( model_name='project', name='language', - field=models.CharField(choices=[('aa', 'Afar'), ('ab', 'Abkhaz'), ('acr', 'Achi'), ('af', 'Afrikaans'), ('agu', 'Awakateko'), ('am', 'Amharic'), ('ar', 'Arabic'), ('as', 'Assamese'), ('ay', 'Aymara'), ('az', 'Azerbaijani'), ('ba', 'Bashkir'), ('be', 'Belarusian'), ('bg', 'Bulgarian'), ('bh', 'Bihari'), ('bi', 'Bislama'), ('bn', 'Bengali'), ('bo', 'Tibetan'), ('br', 'Breton'), ('ca', 'Catalan'), ('caa', "Ch'orti'"), ('cac', 'Chuj'), ('cab', 'Garífuna'), ('cak', 'Kaqchikel'), ('co', 'Corsican'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dz', 'Dzongkha'), ('el', 'Greek'), ('en', 'English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Iranian'), ('fi', 'Finnish'), ('fj', 'Fijian'), ('fo', 'Faroese'), ('fr', 'French'), ('fy', 'Western Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('gn', 'Guarani'), ('gu', 'Gujarati'), ('ha', 'Hausa'), ('hi', 'Hindi'), ('he', 'Hebrew'), ('hr', 'Croatian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ie', 'Interlingue'), ('ik', 'Inupiaq'), ('is', 'Icelandic'), ('it', 'Italian'), ('itz', "Itza'"), ('iu', 'Inuktitut'), ('ixl', 'Ixil'), ('ja', 'Japanese'), ('jac', "Popti'"), ('jv', 'Javanese'), ('ka', 'Georgian'), ('kjb', "Q'anjob'al"), ('kek', "Q'eqchi'"), ('kk', 'Kazakh'), ('kl', 'Kalaallisut'), ('km', 'Khmer'), ('kn', 'Kannada'), ('knj', 'Akateko'), ('ko', 'Korean'), ('ks', 'Kashmiri'), ('ku', 'Kurdish'), ('ky', 'Kyrgyz'), ('la', 'Latin'), ('ln', 'Lingala'), ('lo', 'Lao'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mam', 'Mam'), ('mg', 'Malagasy'), ('mi', 'Maori'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mop', 'Mopan'), ('mr', 'Marathi'), ('ms', 'Malay'), ('mt', 'Maltese'), ('my', 'Burmese'), ('na', 'Nauru'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('no', 'Norwegian'), ('oc', 'Occitan'), ('om', 'Oromo'), ('or', 'Oriya'), ('pa', 'Panjabi'), ('pl', 'Polish'), ('pnb', 'Western Punjabi'), ('poc', 'Poqomam'), ('poh', 'Poqomchi'), ('ps', 'Pashto'), ('pt', 'Portuguese'), ('qu', 'Quechua'), ('quc', "K'iche'"), ('qum', 'Sipakapense'), ('quv', 'Sakapulteko'), ('rm', 'Romansh'), ('rn', 'Kirundi'), ('ro', 'Romanian'), ('ru', 'Russian'), ('rw', 'Kinyarwanda'), ('sa', 'Sanskrit'), ('sd', 'Sindhi'), ('sg', 'Sango'), ('si', 'Sinhala'), ('sk', 'Slovak'), ('skr', 'Saraiki'), ('sl', 'Slovenian'), ('sm', 'Samoan'), ('sn', 'Shona'), ('so', 'Somali'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('ss', 'Swati'), ('st', 'Southern Sotho'), ('su', 'Sudanese'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('ti', 'Tigrinya'), ('tk', 'Turkmen'), ('tl', 'Tagalog'), ('tn', 'Tswana'), ('to', 'Tonga'), ('tr', 'Turkish'), ('ts', 'Tsonga'), ('tt', 'Tatar'), ('ttc', 'Tektiteko'), ('tzj', "Tz'utujil"), ('tw', 'Twi'), ('ug', 'Uyghur'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('usp', 'Uspanteko'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('vo', 'Volapuk'), ('wo', 'Wolof'), ('xh', 'Xhosa'), ('xin', 'Xinka'), ('yi', 'Yiddish'), ('yo', 'Yoruba'), ('za', 'Zhuang'), ('zh', 'Chinese'), ('zu', 'Zulu'), ('nb_NO', 'Norwegian Bokmal'), ('pt_BR', 'Brazilian Portuguese'), ('uk_UA', 'Ukrainian'), ('zh_CN', 'Simplified Chinese'), ('zh_TW', 'Traditional Chinese')], default='en', help_text="The language the project documentation is rendered in. Note: this affects your project's URL.", max_length=20, verbose_name='Language'), + field=models.CharField(choices=[('aa', 'Afar'), ('ab', 'Abkhaz'), ('acr', 'Achi'), ('af', 'Afrikaans'), ('agu', 'Awakateko'), ('am', 'Amharic'), ('ar', 'Arabic'), ('as', 'Assamese'), ('ay', 'Aymara'), ('az', 'Azerbaijani'), ('ba', 'Bashkir'), ('be', 'Belarusian'), ('bg', 'Bulgarian'), ('bh', 'Bihari'), ('bi', 'Bislama'), ('bn', 'Bengali'), ('bo', 'Tibetan'), ('br', 'Breton'), ('ca', 'Catalan'), ('caa', "Ch'orti'"), ('cac', 'Chuj'), ('cab', 'Garífuna'), ('cak', 'Kaqchikel'), ('co', 'Corsican'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dz', 'Dzongkha'), ('el', 'Greek'), ('en', 'English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Iranian'), ('fi', 'Finnish'), ('fj', 'Fijian'), ('fo', 'Faroese'), ('fr', 'French'), ('fy', 'Western Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('gn', 'Guarani'), ('gu', 'Gujarati'), ('ha', 'Hausa'), ('hi', 'Hindi'), ('he', 'Hebrew'), ('hr', 'Croatian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ie', 'Interlingue'), ('ik', 'Inupiaq'), ('is', 'Icelandic'), ('it', 'Italian'), ('itz', "Itza'"), ('iu', 'Inuktitut'), ('ixl', 'Ixil'), ('ja', 'Japanese'), ('jac', "Popti'"), ('jv', 'Javanese'), ('ka', 'Georgian'), ('kjb', "Q'anjob'al"), ('kek', "Q'eqchi'"), ('kk', 'Kazakh'), ('kl', 'Kalaallisut'), ('km', 'Khmer'), ('kn', 'Kannada'), ('knj', 'Akateko'), ('ko', 'Korean'), ('ks', 'Kashmiri'), ('ku', 'Kurdish'), ('ky', 'Kyrgyz'), ('la', 'Latin'), ('ln', 'Lingala'), ('lo', 'Lao'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mam', 'Mam'), ('mg', 'Malagasy'), ('mi', 'Maori'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mop', 'Mopan'), ('mr', 'Marathi'), ('ms', 'Malay'), ('mt', 'Maltese'), ('my', 'Burmese'), ('na', 'Nauru'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('no', 'Norwegian'), ('oc', 'Occitan'), ('om', 'Oromo'), ('or', 'Oriya'), ('pa', 'Panjabi'), ('pl', 'Polish'), ('pnb', 'Western Punjabi'), ('poc', 'Poqomam'), ('poh', 'Poqomchi'), ('ps', 'Pashto'), ('pt', 'Portuguese'), ('qu', 'Quechua'), ('quc', "K'iche'"), ('qum', 'Sipakapense'), ('quv', 'Sakapulteko'), ('rm', 'Romansh'), ('rn', 'Kirundi'), ('ro', 'Romanian'), ('ru', 'Russian'), ('rw', 'Kinyarwanda'), ('sa', 'Sanskrit'), ('sd', 'Sindhi'), ('sg', 'Sango'), ('si', 'Sinhala'), ('sk', 'Slovak'), ('skr', 'Saraiki'), ('sl', 'Slovenian'), ('sm', 'Samoan'), ('sn', 'Shona'), ('so', 'Somali'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('ss', 'Swati'), ('st', 'Southern Sotho'), ('su', 'Sudanese'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('ti', 'Tigrinya'), ('tk', 'Turkmen'), ('tl', 'Tagalog'), ('tn', 'Tswana'), ('to', 'Tonga'), ('tr', 'Turkish'), ('ts', 'Tsonga'), ('tt', 'Tatar'), ('ttc', 'Tektiteko'), ('tzj', "Tz'utujil"), ('tw', 'Twi'), ('ug', 'Uyghur'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('usp', 'Uspanteko'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('vo', 'Volapuk'), ('wo', 'Wolof'), ('xh', 'Xhosa'), ('xin', 'Xinka'), ('yi', 'Yiddish'), ('yo', 'Yoruba'), ('za', 'Zhuang'), ('zh', 'Chinese'), ('zu', 'Zulu'), ('nb_NO', 'Norwegian Bokmal'), ('pt_BR', 'Brazilian Portuguese'), ('es_MX', 'Mexican Spanish'), ('uk_UA', 'Ukrainian'), ('zh_CN', 'Simplified Chinese'), ('zh_TW', 'Traditional Chinese')], default='en', help_text="The language the project documentation is rendered in. Note: this affects your project's URL.", max_length=20, verbose_name='Language'), ), ]