diff --git a/TODO.md b/TODO.md index 6d794be..c3cbaaf 100644 --- a/TODO.md +++ b/TODO.md @@ -170,10 +170,10 @@ django-admin.py compilemessages -l ca https://docs.djangoproject.com/en/1.7/topics/i18n/translation/#joining-strings-string-concat -from django.utils.translation import ugettext +from django.utils.translation import gettext from django.utils import translation translation.activate('ca') -ugettext("Description") +gettext("Description") * saas validate_creation generic approach, for all backends. standard output diff --git a/docs/create-services.md b/docs/create-services.md index d022423..b3abef4 100644 --- a/docs/create-services.md +++ b/docs/create-services.md @@ -59,7 +59,7 @@ ```python import os import textwrap - from django.utils.translation import ugettext_lazy as _ + from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController, replace from orchestra.contrib.resources import ServiceMonitor diff --git a/orchestra/admin/__init__.py b/orchestra/admin/__init__.py index 508aee4..393f475 100644 --- a/orchestra/admin/__init__.py +++ b/orchestra/admin/__init__.py @@ -6,7 +6,7 @@ from django.contrib import admin from django.urls import reverse from django.shortcuts import render, redirect from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from .dashboard import * from .options import * diff --git a/orchestra/admin/actions.py b/orchestra/admin/actions.py index e97d7e4..9bec048 100644 --- a/orchestra/admin/actions.py +++ b/orchestra/admin/actions.py @@ -3,7 +3,7 @@ from functools import partial from django.contrib import admin from django.core.mail import send_mass_mail from django.shortcuts import render -from django.utils.translation import ungettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext_lazy as _ from .. import settings @@ -81,7 +81,7 @@ class SendEmail(object): if extra_to: emails.append((subject, message, email_from, extra_to)) send_mass_mail(emails, fail_silently=False) - msg = ungettext( + msg = ngettext( _("Message has been sent to one %s.") % self.opts.verbose_name_plural, _("Message has been sent to %i %s.") % (num, self.opts.verbose_name_plural), num @@ -124,7 +124,7 @@ def base_disable(modeladmin, request, queryset, disable=True): 'verbose_name_plural': opts.verbose_name_plural, 'num': num } - msg = ungettext( + msg = ngettext( _("Selected %(verbose_name)s and related services has been %(action_name)s.") % context, _("%(num)s selected %(verbose_name_plural)s and related services have been %(action_name)s.") % context, num) diff --git a/orchestra/admin/dashboard.py b/orchestra/admin/dashboard.py index 9237470..7e73628 100644 --- a/orchestra/admin/dashboard.py +++ b/orchestra/admin/dashboard.py @@ -1,5 +1,5 @@ from django.urls import reverse -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from fluent_dashboard import dashboard, appsettings from fluent_dashboard.modules import CmsAppIconList diff --git a/orchestra/admin/decorators.py b/orchestra/admin/decorators.py index 3755662..87f0375 100644 --- a/orchestra/admin/decorators.py +++ b/orchestra/admin/decorators.py @@ -4,10 +4,10 @@ from django.contrib import messages from django.contrib.admin import helpers from django.core.exceptions import ValidationError from django.template.response import TemplateResponse -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.utils.html import format_html from django.utils.text import capfirst -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ def admin_field(method): @@ -68,10 +68,10 @@ def action_with_confirmation(action_name=None, extra_context=None, validator=Non action_value = func.__name__ if len(queryset) == 1: - objects_name = force_text(opts.verbose_name) + objects_name = force_str(opts.verbose_name) obj = queryset.get() else: - objects_name = force_text(opts.verbose_name_plural) + objects_name = force_str(opts.verbose_name_plural) obj = None if not action_name: action_name = func.__name__ diff --git a/orchestra/admin/forms.py b/orchestra/admin/forms.py index 1e3741e..f74df5e 100644 --- a/orchestra/admin/forms.py +++ b/orchestra/admin/forms.py @@ -6,7 +6,7 @@ from django.contrib.admin import helpers from django.core import validators from django.forms.models import modelformset_factory, BaseModelFormSet from django.template import Template, Context -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.forms.widgets import SpanWidget diff --git a/orchestra/admin/menu.py b/orchestra/admin/menu.py index 1c16f76..f849829 100644 --- a/orchestra/admin/menu.py +++ b/orchestra/admin/menu.py @@ -3,7 +3,7 @@ from copy import deepcopy from admin_tools.menu import items, Menu from django.urls import reverse from django.utils.text import capfirst -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.core import services, accounts, administration @@ -73,7 +73,7 @@ class OrchestraMenu(Menu): self.children = [ # items.MenuItem( # mark_safe('{site_name} v{version}'.format( -# site_name=force_text(settings.SITE_VERBOSE_NAME), +# site_name=force_str(settings.SITE_VERBOSE_NAME), # version_style="text-transform:none; float:none; font-size:smaller; background:none;", # version=get_version())), # reverse('admin:index') diff --git a/orchestra/admin/options.py b/orchestra/admin/options.py index f8b2036..3849bc2 100644 --- a/orchestra/admin/options.py +++ b/orchestra/admin/options.py @@ -1,7 +1,7 @@ from urllib import parse from django import forms -from django.conf.urls import url +from django.urls import re_path as url from django.contrib import admin, messages from django.contrib.admin.options import IS_POPUP_VAR from django.contrib.admin.utils import unquote @@ -12,9 +12,9 @@ from django.forms.models import BaseInlineFormSet from django.shortcuts import get_object_or_404 from django.template.response import TemplateResponse from django.utils.decorators import method_decorator -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.utils.html import escape -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django.views.decorators.debug import sensitive_post_parameters from orchestra.models.utils import has_db_field @@ -230,7 +230,7 @@ class ExtendedModelAdmin(ChangeViewActionsMixin, if obj is None: opts = self.model._meta raise Http404(_('%(name)s object with primary key %(key)r does not exist.') % { - 'name': force_text(opts.verbose_name), 'key': escape(object_id)}) + 'name': force_str(opts.verbose_name), 'key': escape(object_id)}) return obj diff --git a/orchestra/api/options.py b/orchestra/api/options.py index 4d429a0..9e2a913 100644 --- a/orchestra/api/options.py +++ b/orchestra/api/options.py @@ -1,8 +1,8 @@ from django.contrib.admin.options import get_content_type_for_model from django.conf import settings as django_settings -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.utils.module_loading import autodiscover_modules -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from rest_framework.routers import DefaultRouter from orchestra import settings @@ -52,7 +52,7 @@ class LogApiMixin(object): user_id=request.user.pk, content_type_id=get_content_type_for_model(instance).pk, object_id=instance.pk, - object_repr=force_text(instance), + object_repr=force_str(instance), action_flag=action, change_message=message, ) diff --git a/orchestra/api/serializers.py b/orchestra/api/serializers.py index 0100577..4b6f466 100644 --- a/orchestra/api/serializers.py +++ b/orchestra/api/serializers.py @@ -3,7 +3,7 @@ import copy from django.core.exceptions import ValidationError from django.db import models from django.forms import widgets -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from rest_framework.utils import model_meta diff --git a/orchestra/bin/celerybeat b/orchestra/bin/celerybeat old mode 100755 new mode 100644 diff --git a/orchestra/bin/celeryd b/orchestra/bin/celeryd old mode 100755 new mode 100644 diff --git a/orchestra/bin/celeryevcam b/orchestra/bin/celeryevcam old mode 100755 new mode 100644 diff --git a/orchestra/bin/django_bash_completion.sh b/orchestra/bin/django_bash_completion.sh old mode 100755 new mode 100644 diff --git a/orchestra/bin/orchestra-admin b/orchestra/bin/orchestra-admin old mode 100755 new mode 100644 diff --git a/orchestra/bin/orchestra-beat b/orchestra/bin/orchestra-beat old mode 100755 new mode 100644 diff --git a/orchestra/bin/sieve-test b/orchestra/bin/sieve-test old mode 100755 new mode 100644 diff --git a/orchestra/conf/project_template/manage.py b/orchestra/conf/project_template/manage.py old mode 100755 new mode 100644 diff --git a/orchestra/contrib/accounts/actions.py b/orchestra/contrib/accounts/actions.py index b4bcff2..0bf45a0 100644 --- a/orchestra/contrib/accounts/actions.py +++ b/orchestra/contrib/accounts/actions.py @@ -9,10 +9,10 @@ from django.db import router from django.shortcuts import redirect, render from django.template.response import TemplateResponse from django.utils import timezone -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.utils.html import format_html from django.utils.text import capfirst -from django.utils.translation import ungettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext_lazy as _ from orchestra.core import services @@ -84,7 +84,7 @@ def delete_related_services(modeladmin, request, queryset): def format(obj, account=False): has_admin = obj.__class__ in admin_site._registry opts = obj._meta - no_edit_link = '%s: %s' % (capfirst(opts.verbose_name), force_text(obj)) + no_edit_link = '%s: %s' % (capfirst(opts.verbose_name), force_str(obj)) if has_admin: try: @@ -154,7 +154,7 @@ def delete_related_services(modeladmin, request, queryset): if accounts: relateds = len(to_delete) for obj in to_delete: - obj_display = force_text(obj) + obj_display = force_str(obj) modeladmin.log_deletion(request, obj, obj_display) obj.delete() context = { @@ -167,9 +167,9 @@ def delete_related_services(modeladmin, request, queryset): return None if len(queryset) == 1: - objects_name = force_text(opts.verbose_name) + objects_name = force_str(opts.verbose_name) else: - objects_name = force_text(opts.verbose_name_plural) + objects_name = force_str(opts.verbose_name_plural) model_count = {} for model, objs in collector.model_objs.items(): @@ -214,7 +214,7 @@ def disable_selected(modeladmin, request, queryset, disable=True): account.disable() if disable else account.enable() modeladmin.log_change(request, account, verbose_action_name.capitalize()) n += 1 - modeladmin.message_user(request, ungettext( + modeladmin.message_user(request, ngettext( _("One account has been successfully %s.") % verbose_action_name, _("%i accounts have been successfully %s.") % (n, verbose_action_name), n) @@ -227,7 +227,7 @@ def disable_selected(modeladmin, request, queryset, disable=True): def format(obj): has_admin = obj.__class__ in admin_site._registry opts = obj._meta - no_edit_link = '%s: %s' % (capfirst(opts.verbose_name), force_text(obj)) + no_edit_link = '%s: %s' % (capfirst(opts.verbose_name), force_str(obj)) if has_admin: try: admin_url = reverse( @@ -258,9 +258,9 @@ def disable_selected(modeladmin, request, queryset, disable=True): display.append([format(account), current]) if len(queryset) == 1: - objects_name = force_text(opts.verbose_name) + objects_name = force_str(opts.verbose_name) else: - objects_name = force_text(opts.verbose_name_plural) + objects_name = force_str(opts.verbose_name_plural) context = dict( admin_site.each_context(request), diff --git a/orchestra/contrib/accounts/admin.py b/orchestra/contrib/accounts/admin.py index e44c656..b2d6442 100644 --- a/orchestra/contrib/accounts/admin.py +++ b/orchestra/contrib/accounts/admin.py @@ -4,7 +4,7 @@ from urllib.parse import parse_qsl from django import forms from django.apps import apps -from django.conf.urls import url +from django.urls import re_path as url from django.contrib import admin, messages from django.contrib.admin.utils import unquote from django.contrib.auth import admin as auth @@ -12,7 +12,7 @@ from django.urls import reverse from django.http import HttpResponseRedirect from django.templatetags.static import static from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin import ExtendedModelAdmin, ChangePasswordAdminMixin from orchestra.admin.actions import SendEmail diff --git a/orchestra/contrib/accounts/api.py b/orchestra/contrib/accounts/api.py index bef27d2..e602f90 100644 --- a/orchestra/contrib/accounts/api.py +++ b/orchestra/contrib/accounts/api.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import viewsets, exceptions from orchestra.api import router, SetPasswordApiMixin, LogApiMixin diff --git a/orchestra/contrib/accounts/apps.py b/orchestra/contrib/accounts/apps.py index 81e7366..4501614 100644 --- a/orchestra/contrib/accounts/apps.py +++ b/orchestra/contrib/accounts/apps.py @@ -1,6 +1,6 @@ from django.apps import AppConfig from django.db.models.signals import post_migrate -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.core import services, accounts diff --git a/orchestra/contrib/accounts/filters.py b/orchestra/contrib/accounts/filters.py index d45ff8f..ff4be0a 100644 --- a/orchestra/contrib/accounts/filters.py +++ b/orchestra/contrib/accounts/filters.py @@ -1,6 +1,6 @@ from django.contrib.admin import SimpleListFilter from django.db.models import Q -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class IsActiveListFilter(SimpleListFilter): diff --git a/orchestra/contrib/accounts/forms.py b/orchestra/contrib/accounts/forms.py index a420c26..4368996 100644 --- a/orchestra/contrib/accounts/forms.py +++ b/orchestra/contrib/accounts/forms.py @@ -4,7 +4,7 @@ from collections import OrderedDict from django import forms from django.core.exceptions import ValidationError from django.apps import apps -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.forms import UserCreationForm diff --git a/orchestra/contrib/accounts/migrations/0001_initial.py b/orchestra/contrib/accounts/migrations/0001_initial.py deleted file mode 100644 index a855bc5..0000000 --- a/orchestra/contrib/accounts/migrations/0001_initial.py +++ /dev/null @@ -1,45 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.core.validators -import django.db.models.deletion -import django.utils.timezone -import django.contrib.auth.models - - -class Migration(migrations.Migration): - - dependencies = [ - # Permissions and contenttypes - ('auth', '0006_require_contenttypes_0002'), - ('systemusers', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='Account', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('password', models.CharField(verbose_name='password', max_length=128)), - ('last_login', models.DateTimeField(blank=True, verbose_name='last login', null=True)), - ('username', models.CharField(help_text='Required. 64 characters or fewer. Letters, digits and ./-/_ only.', unique=True, validators=[django.core.validators.RegexValidator('^[\\w.-]+$', 'Enter a valid username.', 'invalid')], max_length=32, verbose_name='username')), - ('short_name', models.CharField(blank=True, verbose_name='short name', max_length=64)), - ('full_name', models.CharField(verbose_name='full name', max_length=256)), - ('email', models.EmailField(help_text='Used for password recovery', max_length=254, verbose_name='email address')), - ('type', models.CharField(verbose_name='type', choices=[('INDIVIDUAL', 'Individual'), ('ASSOCIATION', 'Association'), ('CUSTOMER', 'Customer'), ('COMPANY', 'Company'), ('PUBLICBODY', 'Public body'), ('STAFF', 'Staff'), ('FRIEND', 'Friend')], max_length=32, default='INDIVIDUAL')), - ('language', models.CharField(verbose_name='language', choices=[('EN', 'English')], max_length=2, default='EN')), - ('comments', models.TextField(blank=True, verbose_name='comments', max_length=256)), - ('is_superuser', models.BooleanField(help_text='Designates that this user has all permissions without explicitly assigning them.', default=False, verbose_name='superuser status')), - ('is_active', models.BooleanField(help_text='Designates whether this account should be treated as active. Unselect this instead of deleting accounts.', default=True, verbose_name='active')), - ('date_joined', models.DateTimeField(verbose_name='date joined', default=django.utils.timezone.now)), - ('main_systemuser', models.ForeignKey(to='systemusers.SystemUser', editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='accounts_main')), - ], - options={ - 'abstract': False, - }, - managers=[ - ('objects', django.contrib.auth.models.UserManager()), - ], - ), - ] diff --git a/orchestra/contrib/accounts/migrations/0001_squashed_0004_auto_20210422_1108.py b/orchestra/contrib/accounts/migrations/0001_squashed_0004_auto_20210422_1108.py deleted file mode 100644 index 6981009..0000000 --- a/orchestra/contrib/accounts/migrations/0001_squashed_0004_auto_20210422_1108.py +++ /dev/null @@ -1,86 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:08 -from __future__ import unicode_literals - -import django.contrib.auth.models -import django.core.validators -from django.db import migrations, models -import django.db.models.deletion -import django.utils.timezone -import orchestra.contrib.accounts.models - - -class Migration(migrations.Migration): - - replaces = [('accounts', '0001_initial'), ('accounts', '0002_auto_20170528_2005'), ('accounts', '0003_auto_20210330_1049'), ('accounts', '0004_auto_20210422_1108')] - - initial = True - - dependencies = [ - ('systemusers', '0001_initial'), - ('auth', '0006_require_contenttypes_0002'), - ] - - operations = [ - migrations.CreateModel( - name='Account', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('password', models.CharField(max_length=128, verbose_name='password')), - ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), - ('username', models.CharField(help_text='Required. 64 characters or fewer. Letters, digits and ./-/_ only.', max_length=32, unique=True, validators=[django.core.validators.RegexValidator('^[\\w.-]+$', 'Enter a valid username.', 'invalid')], verbose_name='username')), - ('short_name', models.CharField(blank=True, max_length=64, verbose_name='short name')), - ('full_name', models.CharField(max_length=256, verbose_name='full name')), - ('email', models.EmailField(help_text='Used for password recovery', max_length=254, verbose_name='email address')), - ('type', models.CharField(choices=[('INDIVIDUAL', 'Individual'), ('ASSOCIATION', 'Association'), ('CUSTOMER', 'Customer'), ('COMPANY', 'Company'), ('PUBLICBODY', 'Public body'), ('STAFF', 'Staff'), ('FRIEND', 'Friend')], default='INDIVIDUAL', max_length=32, verbose_name='type')), - ('language', models.CharField(choices=[('EN', 'English')], default='EN', max_length=2, verbose_name='language')), - ('comments', models.TextField(blank=True, max_length=256, verbose_name='comments')), - ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), - ('is_active', models.BooleanField(default=True, help_text='Designates whether this account should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), - ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), - ('main_systemuser', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='accounts_main', to='systemusers.SystemUser')), - ], - options={ - 'abstract': False, - }, - managers=[ - ('objects', django.contrib.auth.models.UserManager()), - ], - ), - migrations.AlterModelManagers( - name='account', - managers=[ - ('objects', orchestra.contrib.accounts.models.AccountManager()), - ], - ), - migrations.AlterField( - model_name='account', - name='language', - field=models.CharField(choices=[('CA', 'Catalan'), ('ES', 'Spanish'), ('EN', 'English')], default='CA', max_length=2, verbose_name='language'), - ), - migrations.AlterField( - model_name='account', - name='type', - field=models.CharField(choices=[('INDIVIDUAL', 'Individual'), ('ASSOCIATION', 'Association'), ('CUSTOMER', 'Customer'), ('STAFF', 'Staff'), ('FRIEND', 'Friend')], default='INDIVIDUAL', max_length=32, verbose_name='type'), - ), - migrations.AlterField( - model_name='account', - name='username', - field=models.CharField(help_text='Required. 32 characters or fewer. Letters, digits and ./-/_ only.', max_length=32, unique=True, validators=[django.core.validators.RegexValidator('^[\\w.-]+$', 'Enter a valid username.', 'invalid')], verbose_name='username'), - ), - migrations.AlterField( - model_name='account', - name='language', - field=models.CharField(choices=[('EN', 'English')], default='EN', max_length=2, verbose_name='language'), - ), - migrations.AlterField( - model_name='account', - name='type', - field=models.CharField(choices=[('INDIVIDUAL', 'Individual'), ('ASSOCIATION', 'Association'), ('CUSTOMER', 'Customer'), ('COMPANY', 'Company'), ('PUBLICBODY', 'Public body'), ('STAFF', 'Staff'), ('FRIEND', 'Friend')], default='INDIVIDUAL', max_length=32, verbose_name='type'), - ), - migrations.AlterField( - model_name='account', - name='main_systemuser', - field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='accounts_main', to='systemusers.SystemUser'), - ), - ] diff --git a/orchestra/contrib/accounts/migrations/0002_auto_20170528_2005.py b/orchestra/contrib/accounts/migrations/0002_auto_20170528_2005.py deleted file mode 100644 index 68142a2..0000000 --- a/orchestra/contrib/accounts/migrations/0002_auto_20170528_2005.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:05 -from __future__ import unicode_literals - -import django.core.validators -from django.db import migrations, models -import orchestra.contrib.accounts.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('accounts', '0001_initial'), - ] - - operations = [ - migrations.AlterModelManagers( - name='account', - managers=[ - ('objects', orchestra.contrib.accounts.models.AccountManager()), - ], - ), - migrations.AlterField( - model_name='account', - name='language', - field=models.CharField(choices=[('CA', 'Catalan'), ('ES', 'Spanish'), ('EN', 'English')], default='CA', max_length=2, verbose_name='language'), - ), - migrations.AlterField( - model_name='account', - name='type', - field=models.CharField(choices=[('INDIVIDUAL', 'Individual'), ('ASSOCIATION', 'Association'), ('CUSTOMER', 'Customer'), ('STAFF', 'Staff'), ('FRIEND', 'Friend')], default='INDIVIDUAL', max_length=32, verbose_name='type'), - ), - migrations.AlterField( - model_name='account', - name='username', - field=models.CharField(help_text='Required. 32 characters or fewer. Letters, digits and ./-/_ only.', max_length=32, unique=True, validators=[django.core.validators.RegexValidator('^[\\w.-]+$', 'Enter a valid username.', 'invalid')], verbose_name='username'), - ), - ] diff --git a/orchestra/contrib/accounts/migrations/0003_auto_20210330_1049.py b/orchestra/contrib/accounts/migrations/0003_auto_20210330_1049.py deleted file mode 100644 index ae8dc55..0000000 --- a/orchestra/contrib/accounts/migrations/0003_auto_20210330_1049.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-03-30 10:49 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('accounts', '0002_auto_20170528_2005'), - ] - - operations = [ - migrations.AlterField( - model_name='account', - name='language', - field=models.CharField(choices=[('EN', 'English')], default='EN', max_length=2, verbose_name='language'), - ), - migrations.AlterField( - model_name='account', - name='type', - field=models.CharField(choices=[('INDIVIDUAL', 'Individual'), ('ASSOCIATION', 'Association'), ('CUSTOMER', 'Customer'), ('COMPANY', 'Company'), ('PUBLICBODY', 'Public body'), ('STAFF', 'Staff'), ('FRIEND', 'Friend')], default='INDIVIDUAL', max_length=32, verbose_name='type'), - ), - ] diff --git a/orchestra/contrib/accounts/migrations/__init__.py b/orchestra/contrib/accounts/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/accounts/models.py b/orchestra/contrib/accounts/models.py index 9f0d564..b8c6a39 100644 --- a/orchestra/contrib/accounts/models.py +++ b/orchestra/contrib/accounts/models.py @@ -5,7 +5,7 @@ from django.db import models from django.db.models import signals from django.apps import apps from django.utils import timezone, translation -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ #from orchestra.contrib.orchestration.middlewares import OperationsMiddleware #from orchestra.contrib.orchestration import Operation diff --git a/orchestra/contrib/accounts/settings.py b/orchestra/contrib/accounts/settings.py index 9ec510e..b8a2594 100644 --- a/orchestra/contrib/accounts/settings.py +++ b/orchestra/contrib/accounts/settings.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.settings import Setting from orchestra.settings import ORCHESTRA_BASE_DOMAIN diff --git a/orchestra/contrib/bills/actions.py b/orchestra/contrib/bills/actions.py index 37723b4..64c9ed5 100644 --- a/orchestra/contrib/bills/actions.py +++ b/orchestra/contrib/bills/actions.py @@ -12,7 +12,7 @@ from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import render, redirect from django.utils import translation, timezone from django.utils.safestring import mark_safe -from django.utils.translation import ungettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext_lazy as _ from orchestra.admin.decorators import action_with_confirmation from orchestra.admin.forms import AdminFormSet @@ -69,7 +69,7 @@ def close_bills(modeladmin, request, queryset, action='close_bills'): 'url': url, 'num': num, } - message = ungettext( + message = ngettext( _('One related transaction has been created') % context, _('%(num)i related transactions have been created') % context, num) @@ -111,7 +111,7 @@ def send_bills_action(modeladmin, request, queryset): bill.send() modeladmin.log_change(request, bill, 'Sent') num += 1 - messages.success(request, ungettext( + messages.success(request, ngettext( _("One bill has been sent."), _("%i bills have been sent.") % num, num)) @@ -135,7 +135,7 @@ def download_bills(modeladmin, request, queryset): pdf = bill.as_pdf() archive.writestr('%s.pdf' % bill.number, pdf) archive.close() - response = HttpResponse(bytesio.getvalue(), content_type='application/pdf') + response = HttpResponse(bytesio.getvalue(), content_type='application/zip') response['Content-Disposition'] = 'attachment; filename="orchestra-bills.zip"' return response bill = queryset[0] @@ -299,7 +299,7 @@ def amend_bills(modeladmin, request, queryset): 'url': amend_url, 'num': num, } - messages.success(request, mark_safe(ungettext( + messages.success(request, mark_safe(ngettext( _('One amendment bill have been generated.') % context, _('%(num)i amendment bills have been generated.') % context, num diff --git a/orchestra/contrib/bills/admin.py b/orchestra/contrib/bills/admin.py index ec2f94e..ac453db 100644 --- a/orchestra/contrib/bills/admin.py +++ b/orchestra/contrib/bills/admin.py @@ -1,5 +1,5 @@ from django import forms -from django.conf.urls import url +from django.urls import re_path as url from django.contrib import admin, messages from django.contrib.admin.utils import unquote from django.urls import reverse @@ -9,7 +9,7 @@ from django.db.models.functions import Coalesce from django.templatetags.static import static from django.utils.html import format_html from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django.shortcuts import redirect from orchestra.admin import ExtendedModelAdmin diff --git a/orchestra/contrib/bills/filters.py b/orchestra/contrib/bills/filters.py index a4beb32..adcf575 100644 --- a/orchestra/contrib/bills/filters.py +++ b/orchestra/contrib/bills/filters.py @@ -2,7 +2,7 @@ from django.contrib.admin import SimpleListFilter from django.urls import reverse from django.db.models import Q from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from . models import Bill diff --git a/orchestra/contrib/bills/forms.py b/orchestra/contrib/bills/forms.py index 7105e63..b475992 100644 --- a/orchestra/contrib/bills/forms.py +++ b/orchestra/contrib/bills/forms.py @@ -1,5 +1,5 @@ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin.utils import admin_link from orchestra.forms import SpanWidget diff --git a/orchestra/contrib/bills/helpers.py b/orchestra/contrib/bills/helpers.py index 23c72fc..d255e93 100644 --- a/orchestra/contrib/bills/helpers.py +++ b/orchestra/contrib/bills/helpers.py @@ -1,10 +1,10 @@ from django.contrib import messages from django.urls import reverse -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.utils.html import format_html from django.utils.safestring import mark_safe from django.utils.text import capfirst -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin.utils import change_url @@ -16,14 +16,14 @@ def validate_contact(request, bill, error=True): valid = True send = messages.error if error else messages.warning if not hasattr(bill.account, 'billcontact'): - account = force_text(bill.account) + account = force_str(bill.account) url = reverse('admin:accounts_account_change', args=(bill.account_id,)) message = msg.format(relation=_("Related"), account=account, url=url) send(request, mark_safe(message)) valid = False main = type(bill).account.field.related_model.objects.get_main() if not hasattr(main, 'billcontact'): - account = force_text(main) + account = force_str(main) url = reverse('admin:accounts_account_change', args=(main.id,)) message = msg.format(relation=_("Main"), account=account, url=url) send(request, mark_safe(message)) diff --git a/orchestra/contrib/bills/migrations/0001_initial.py b/orchestra/contrib/bills/migrations/0001_initial.py deleted file mode 100644 index ba1d9dc..0000000 --- a/orchestra/contrib/bills/migrations/0001_initial.py +++ /dev/null @@ -1,127 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -from django.conf import settings -import django.core.validators -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('orders', '__first__'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Bill', - fields=[ - ('id', models.AutoField(auto_created=True, verbose_name='ID', serialize=False, primary_key=True)), - ('number', models.CharField(unique=True, verbose_name='number', blank=True, max_length=16)), - ('type', models.CharField(verbose_name='type', choices=[('INVOICE', 'Invoice'), ('AMENDMENTINVOICE', 'Amendment invoice'), ('FEE', 'Fee'), ('AMENDMENTFEE', 'Amendment Fee'), ('PROFORMA', 'Pro forma')], max_length=16)), - ('created_on', models.DateField(auto_now_add=True, verbose_name='created on')), - ('closed_on', models.DateField(verbose_name='closed on', null=True, blank=True)), - ('is_open', models.BooleanField(default=True, verbose_name='open')), - ('is_sent', models.BooleanField(default=False, verbose_name='sent')), - ('due_on', models.DateField(verbose_name='due on', null=True, blank=True)), - ('updated_on', models.DateField(verbose_name='updated on', auto_now=True)), - ('total', models.DecimalField(default=0, decimal_places=2, max_digits=12)), - ('comments', models.TextField(verbose_name='comments', blank=True)), - ('html', models.TextField(verbose_name='HTML', blank=True)), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='bill', to=settings.AUTH_USER_MODEL, verbose_name='account')), - ], - options={ - 'get_latest_by': 'id', - }, - ), - migrations.CreateModel( - name='BillContact', - fields=[ - ('id', models.AutoField(auto_created=True, verbose_name='ID', serialize=False, primary_key=True)), - ('name', models.CharField(verbose_name='name', blank=True, max_length=256, help_text='Account full name will be used when left blank.')), - ('address', models.TextField(verbose_name='address')), - ('city', models.CharField(default='Barcelona', verbose_name='city', max_length=128)), - ('zipcode', models.CharField(verbose_name='zip code', validators=[django.core.validators.RegexValidator('^[0-9A-Z]{3,10}$', 'Enter a valid zipcode.')], max_length=10)), - ('country', models.CharField(default='ES', verbose_name='country', choices=[('PR', 'Puerto Rico'), ('BV', 'Bouvet Island'), ('BT', 'Bhutan'), ('MY', 'Malaysia'), ('AQ', 'Antarctica'), ('MT', 'Malta'), ('BE', 'Belgium'), ('SM', 'San Marino'), ('AZ', 'Azerbaijan'), ('CA', 'Canada'), ('HR', 'Croatia'), ('GH', 'Ghana'), ('MZ', 'Mozambique'), ('PA', 'Panama'), ('GR', 'Greece'), ('AE', 'United Arab Emirates'), ('CK', 'Cook Islands'), ('SK', 'Slovakia'), ('PN', 'Pitcairn'), ('ZA', 'South Africa'), ('AU', 'Australia'), ('BF', 'Burkina Faso'), ('FI', 'Finland'), ('MC', 'Monaco'), ('RE', 'Réunion'), ('TV', 'Tuvalu'), ('HN', 'Honduras'), ('IL', 'Israel'), ('SV', 'El Salvador'), ('VN', 'Viet Nam'), ('MV', 'Maldives'), ('BA', 'Bosnia and Herzegovina'), ('UA', 'Ukraine'), ('BW', 'Botswana'), ('UZ', 'Uzbekistan'), ('ID', 'Indonesia'), ('LY', 'Libya'), ('MM', 'Myanmar'), ('TZ', 'Tanzania, United Republic of'), ('GL', 'Greenland'), ('LV', 'Latvia'), ('DZ', 'Algeria'), ('AO', 'Angola'), ('GE', 'Georgia'), ('SO', 'Somalia'), ('CX', 'Christmas Island'), ('NP', 'Nepal'), ('AI', 'Anguilla'), ('GP', 'Guadeloupe'), ('UY', 'Uruguay'), ('LC', 'Saint Lucia'), ('EH', 'Western Sahara'), ('IO', 'British Indian Ocean Territory'), ('TH', 'Thailand'), ('AR', 'Argentina'), ('PY', 'Paraguay'), ('AW', 'Aruba'), ('IE', 'Ireland'), ('CF', 'Central African Republic'), ('TW', 'Taiwan (Province of China)'), ('KZ', 'Kazakhstan'), ('TJ', 'Tajikistan'), ('RW', 'Rwanda'), ('SR', 'Suriname'), ('AT', 'Austria'), ('GN', 'Guinea'), ('SS', 'South Sudan'), ('IT', 'Italy'), ('BO', 'Bolivia (Plurinational State of)'), ('GD', 'Grenada'), ('KE', 'Kenya'), ('GS', 'South Georgia and the South Sandwich Islands'), ('TG', 'Togo'), ('CY', 'Cyprus'), ('TT', 'Trinidad and Tobago'), ('CM', 'Cameroon'), ('QA', 'Qatar'), ('GM', 'Gambia'), ('WS', 'Samoa'), ('DJ', 'Djibouti'), ('PL', 'Poland'), ('CV', 'Cabo Verde'), ('PE', 'Peru'), ('TN', 'Tunisia'), ('HT', 'Haiti'), ('AF', 'Afghanistan'), ('YT', 'Mayotte'), ('NR', 'Nauru'), ('LS', 'Lesotho'), ('LR', 'Liberia'), ('IR', 'Iran (Islamic Republic of)'), ('EE', 'Estonia'), ('ER', 'Eritrea'), ('RU', 'Russian Federation'), ('LB', 'Lebanon'), ('CU', 'Cuba'), ('CZ', 'Czech Republic'), ('AX', 'Åland Islands'), ('CD', 'Congo (the Democratic Republic of the)'), ('HK', 'Hong Kong'), ('PS', 'Palestine, State of'), ('FK', 'Falkland Islands [Malvinas]'), ('MR', 'Mauritania'), ('MG', 'Madagascar'), ('MH', 'Marshall Islands'), ('LK', 'Sri Lanka'), ('NA', 'Namibia'), ('SI', 'Slovenia'), ('BY', 'Belarus'), ('MX', 'Mexico'), ('ZW', 'Zimbabwe'), ('CI', "Côte d'Ivoire"), ('GU', 'Guam'), ('PW', 'Palau'), ('SC', 'Seychelles'), ('GT', 'Guatemala'), ('CL', 'Chile'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('BH', 'Bahrain'), ('SB', 'Solomon Islands'), ('KM', 'Comoros'), ('MF', 'Saint Martin (French part)'), ('FO', 'Faroe Islands'), ('BD', 'Bangladesh'), ('AM', 'Armenia'), ('BJ', 'Benin'), ('SA', 'Saudi Arabia'), ('NU', 'Niue'), ('VI', 'Virgin Islands (U.S.)'), ('CN', 'China'), ('EC', 'Ecuador'), ('CC', 'Cocos (Keeling) Islands'), ('BS', 'Bahamas'), ('JM', 'Jamaica'), ('RO', 'Romania'), ('KI', 'Kiribati'), ('GY', 'Guyana'), ('TL', 'Timor-Leste'), ('AS', 'American Samoa'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('BN', 'Brunei Darussalam'), ('ET', 'Ethiopia'), ('FJ', 'Fiji'), ('BG', 'Bulgaria'), ('VG', 'Virgin Islands (British)'), ('AD', 'Andorra'), ('KN', 'Saint Kitts and Nevis'), ('MA', 'Morocco'), ('MU', 'Mauritius'), ('DK', 'Denmark'), ('TO', 'Tonga'), ('CO', 'Colombia'), ('GA', 'Gabon'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('MD', 'Moldova (the Republic of)'), ('VA', 'Holy See'), ('KY', 'Cayman Islands'), ('LU', 'Luxembourg'), ('AL', 'Albania'), ('LI', 'Liechtenstein'), ('KP', "Korea (the Democratic People's Republic of)"), ('BZ', 'Belize'), ('ME', 'Montenegro'), ('NC', 'New Caledonia'), ('VC', 'Saint Vincent and the Grenadines'), ('UM', 'United States Minor Outlying Islands'), ('IQ', 'Iraq'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('KW', 'Kuwait'), ('MS', 'Montserrat'), ('SD', 'Sudan'), ('JP', 'Japan'), ('DE', 'Germany'), ('SN', 'Senegal'), ('PK', 'Pakistan'), ('MO', 'Macao'), ('RS', 'Serbia'), ('KR', 'Korea (the Republic of)'), ('BL', 'Saint Barthélemy'), ('MP', 'Northern Mariana Islands'), ('AG', 'Antigua and Barbuda'), ('FM', 'Micronesia (Federated States of)'), ('HM', 'Heard Island and McDonald Islands'), ('BR', 'Brazil'), ('PF', 'French Polynesia'), ('MQ', 'Martinique'), ('VU', 'Vanuatu'), ('LT', 'Lithuania'), ('ES', 'Spain'), ('ML', 'Mali'), ('NE', 'Niger'), ('EG', 'Egypt'), ('WF', 'Wallis and Futuna'), ('ZM', 'Zambia'), ('US', 'United States of America'), ('DO', 'Dominican Republic'), ('NO', 'Norway'), ('UG', 'Uganda'), ('GQ', 'Equatorial Guinea'), ('GW', 'Guinea-Bissau'), ('JE', 'Jersey'), ('HU', 'Hungary'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('JO', 'Jordan'), ('ST', 'Sao Tome and Principe'), ('SJ', 'Svalbard and Jan Mayen'), ('MN', 'Mongolia'), ('BB', 'Barbados'), ('CH', 'Switzerland'), ('KG', 'Kyrgyzstan'), ('PG', 'Papua New Guinea'), ('NG', 'Nigeria'), ('GF', 'French Guiana'), ('CR', 'Costa Rica'), ('LA', "Lao People's Democratic Republic"), ('CG', 'Congo'), ('NI', 'Nicaragua'), ('TK', 'Tokelau'), ('SE', 'Sweden'), ('NF', 'Norfolk Island'), ('PT', 'Portugal'), ('FR', 'France'), ('SZ', 'Swaziland'), ('YE', 'Yemen'), ('NL', 'Netherlands'), ('GI', 'Gibraltar'), ('TR', 'Turkey'), ('OM', 'Oman'), ('TF', 'French Southern Territories'), ('PM', 'Saint Pierre and Miquelon'), ('TC', 'Turks and Caicos Islands'), ('SL', 'Sierra Leone'), ('SX', 'Sint Maarten (Dutch part)'), ('DM', 'Dominica'), ('KH', 'Cambodia'), ('SG', 'Singapore'), ('BM', 'Bermuda'), ('CW', 'Curaçao'), ('GG', 'Guernsey'), ('TD', 'Chad'), ('IN', 'India'), ('BI', 'Burundi'), ('TM', 'Turkmenistan'), ('IS', 'Iceland'), ('MW', 'Malawi'), ('SY', 'Syrian Arab Republic'), ('NZ', 'New Zealand'), ('IM', 'Isle of Man'), ('PH', 'Philippines')], max_length=20)), - ('vat', models.CharField(verbose_name='VAT number', max_length=64)), - ('account', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='billcontact', to=settings.AUTH_USER_MODEL, verbose_name='account')), - ], - ), - migrations.CreateModel( - name='BillLine', - fields=[ - ('id', models.AutoField(auto_created=True, verbose_name='ID', serialize=False, primary_key=True)), - ('description', models.CharField(verbose_name='description', max_length=256)), - ('rate', models.DecimalField(decimal_places=2, verbose_name='rate', null=True, blank=True, max_digits=12)), - ('quantity', models.DecimalField(verbose_name='quantity', decimal_places=2, max_digits=12)), - ('verbose_quantity', models.CharField(verbose_name='Verbose quantity', max_length=16)), - ('subtotal', models.DecimalField(verbose_name='subtotal', decimal_places=2, max_digits=12)), - ('tax', models.DecimalField(verbose_name='tax', decimal_places=2, max_digits=4)), - ('start_on', models.DateField(verbose_name='start')), - ('end_on', models.DateField(verbose_name='end', null=True)), - ('order_billed_on', models.DateField(verbose_name='order billed', null=True, blank=True)), - ('order_billed_until', models.DateField(verbose_name='order billed until', null=True, blank=True)), - ('created_on', models.DateField(auto_now_add=True, verbose_name='created')), - ('amended_line', models.ForeignKey(blank=True, on_delete=django.db.models.deletion.CASCADE, to='bills.BillLine', verbose_name='amended line', null=True, related_name='amendment_lines')), - ('bill', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lines', to='bills.Bill', verbose_name='bill')), - ('order', models.ForeignKey(blank=True, to='orders.Order', null=True, on_delete=django.db.models.deletion.SET_NULL, help_text='Informative link back to the order')), - ], - ), - migrations.CreateModel( - name='BillSubline', - fields=[ - ('id', models.AutoField(auto_created=True, verbose_name='ID', serialize=False, primary_key=True)), - ('description', models.CharField(verbose_name='description', max_length=256)), - ('total', models.DecimalField(decimal_places=2, max_digits=12)), - ('type', models.CharField(default='OTHER', verbose_name='type', choices=[('VOLUME', 'Volume'), ('COMPENSATION', 'Compensation'), ('OTHER', 'Other')], max_length=16)), - ('line', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sublines', to='bills.BillLine', verbose_name='bill line')), - ], - ), - migrations.CreateModel( - name='AmendmentFee', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('bills.bill',), - ), - migrations.CreateModel( - name='AmendmentInvoice', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('bills.bill',), - ), - migrations.CreateModel( - name='Fee', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('bills.bill',), - ), - migrations.CreateModel( - name='Invoice', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('bills.bill',), - ), - migrations.CreateModel( - name='ProForma', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('bills.bill',), - ), - ] diff --git a/orchestra/contrib/bills/migrations/0001_squashed_0017_auto_20210422_1108.py b/orchestra/contrib/bills/migrations/0001_squashed_0017_auto_20210422_1108.py deleted file mode 100644 index 7070870..0000000 --- a/orchestra/contrib/bills/migrations/0001_squashed_0017_auto_20210422_1108.py +++ /dev/null @@ -1,189 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:08 -from __future__ import unicode_literals - -from django.conf import settings -import django.core.validators -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - replaces = [('bills', '0001_initial'), ('bills', '0002_auto_20150429_1417'), ('bills', '0003_auto_20150612_0944'), ('bills', '0004_auto_20150618_1311'), ('bills', '0005_auto_20150623_1031'), ('bills', '0006_auto_20150709_1016'), ('bills', '0007_auto_20170528_2011'), ('bills', '0008_auto_20170625_1813'), ('bills', '0009_auto_20170625_1840'), ('bills', '0010_auto_20170625_1840'), ('bills', '0011_auto_20170625_1840'), ('bills', '0012_auto_20170625_1841'), ('bills', '0013_auto_20190805_1134'), ('bills', '0014_auto_20200204_1217'), ('bills', '0015_auto_20200204_1218'), ('bills', '0016_auto_20210330_1049'), ('bills', '0017_auto_20210422_1108')] - - initial = True - - dependencies = [ - ('orders', '__first__'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Bill', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('number', models.CharField(blank=True, max_length=16, unique=True, verbose_name='number')), - ('type', models.CharField(choices=[('INVOICE', 'Invoice'), ('AMENDMENTINVOICE', 'Amendment invoice'), ('FEE', 'Fee'), ('AMENDMENTFEE', 'Amendment Fee'), ('PROFORMA', 'Pro forma')], max_length=16, verbose_name='type')), - ('created_on', models.DateField(auto_now_add=True, verbose_name='created on')), - ('closed_on', models.DateField(blank=True, null=True, verbose_name='closed on')), - ('is_open', models.BooleanField(default=True, verbose_name='open')), - ('is_sent', models.BooleanField(default=False, verbose_name='sent')), - ('due_on', models.DateField(blank=True, null=True, verbose_name='due on')), - ('updated_on', models.DateField(auto_now=True, verbose_name='updated on')), - ('total', models.DecimalField(decimal_places=2, default=0, max_digits=12)), - ('comments', models.TextField(blank=True, verbose_name='comments')), - ('html', models.TextField(blank=True, verbose_name='HTML')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='bill', to=settings.AUTH_USER_MODEL, verbose_name='account')), - ], - options={ - 'get_latest_by': 'id', - }, - ), - migrations.CreateModel( - name='BillContact', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(blank=True, help_text='Account full name will be used when left blank.', max_length=256, verbose_name='name')), - ('address', models.TextField(verbose_name='address')), - ('city', models.CharField(default='Barcelona', max_length=128, verbose_name='city')), - ('zipcode', models.CharField(max_length=10, validators=[django.core.validators.RegexValidator('^[0-9A-Z]{3,10}$', 'Enter a valid zipcode.')], verbose_name='zip code')), - ('country', models.CharField(choices=[('AF', 'Afghanistan'), ('AX', 'Åland Islands'), ('AL', 'Albania'), ('DZ', 'Algeria'), ('AS', 'American Samoa'), ('AD', 'Andorra'), ('AO', 'Angola'), ('AI', 'Anguilla'), ('AQ', 'Antarctica'), ('AG', 'Antigua and Barbuda'), ('AR', 'Argentina'), ('AM', 'Armenia'), ('AW', 'Aruba'), ('AU', 'Australia'), ('AT', 'Austria'), ('AZ', 'Azerbaijan'), ('BS', 'Bahamas'), ('BH', 'Bahrain'), ('BD', 'Bangladesh'), ('BB', 'Barbados'), ('BY', 'Belarus'), ('BE', 'Belgium'), ('BZ', 'Belize'), ('BJ', 'Benin'), ('BM', 'Bermuda'), ('BT', 'Bhutan'), ('BO', 'Bolivia (Plurinational State of)'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('BA', 'Bosnia and Herzegovina'), ('BW', 'Botswana'), ('BV', 'Bouvet Island'), ('BR', 'Brazil'), ('IO', 'British Indian Ocean Territory'), ('BN', 'Brunei Darussalam'), ('BG', 'Bulgaria'), ('BF', 'Burkina Faso'), ('BI', 'Burundi'), ('CV', 'Cabo Verde'), ('KH', 'Cambodia'), ('CM', 'Cameroon'), ('CA', 'Canada'), ('KY', 'Cayman Islands'), ('CF', 'Central African Republic'), ('TD', 'Chad'), ('CL', 'Chile'), ('CN', 'China'), ('CX', 'Christmas Island'), ('CC', 'Cocos (Keeling) Islands'), ('CO', 'Colombia'), ('KM', 'Comoros'), ('CG', 'Congo'), ('CD', 'Congo (the Democratic Republic of the)'), ('CK', 'Cook Islands'), ('CR', 'Costa Rica'), ('CI', "Côte d'Ivoire"), ('HR', 'Croatia'), ('CU', 'Cuba'), ('CW', 'Curaçao'), ('CY', 'Cyprus'), ('CZ', 'Czechia'), ('DK', 'Denmark'), ('DJ', 'Djibouti'), ('DM', 'Dominica'), ('DO', 'Dominican Republic'), ('EC', 'Ecuador'), ('EG', 'Egypt'), ('SV', 'El Salvador'), ('GQ', 'Equatorial Guinea'), ('ER', 'Eritrea'), ('EE', 'Estonia'), ('SZ', 'Eswatini'), ('ET', 'Ethiopia'), ('FK', 'Falkland Islands (Malvinas)'), ('FO', 'Faroe Islands'), ('FJ', 'Fiji'), ('FI', 'Finland'), ('FR', 'France'), ('GF', 'French Guiana'), ('PF', 'French Polynesia'), ('TF', 'French Southern Territories'), ('GA', 'Gabon'), ('GM', 'Gambia'), ('GE', 'Georgia'), ('DE', 'Germany'), ('GH', 'Ghana'), ('GI', 'Gibraltar'), ('GR', 'Greece'), ('GL', 'Greenland'), ('GD', 'Grenada'), ('GP', 'Guadeloupe'), ('GU', 'Guam'), ('GT', 'Guatemala'), ('GG', 'Guernsey'), ('GN', 'Guinea'), ('GW', 'Guinea-Bissau'), ('GY', 'Guyana'), ('HT', 'Haiti'), ('HM', 'Heard Island and McDonald Islands'), ('VA', 'Holy See'), ('HN', 'Honduras'), ('HK', 'Hong Kong'), ('HU', 'Hungary'), ('IS', 'Iceland'), ('IN', 'India'), ('ID', 'Indonesia'), ('IR', 'Iran (Islamic Republic of)'), ('IQ', 'Iraq'), ('IE', 'Ireland'), ('IM', 'Isle of Man'), ('IL', 'Israel'), ('IT', 'Italy'), ('JM', 'Jamaica'), ('JP', 'Japan'), ('JE', 'Jersey'), ('JO', 'Jordan'), ('KZ', 'Kazakhstan'), ('KE', 'Kenya'), ('KI', 'Kiribati'), ('KP', "Korea (the Democratic People's Republic of)"), ('KR', 'Korea (the Republic of)'), ('KW', 'Kuwait'), ('KG', 'Kyrgyzstan'), ('LA', "Lao People's Democratic Republic"), ('LV', 'Latvia'), ('LB', 'Lebanon'), ('LS', 'Lesotho'), ('LR', 'Liberia'), ('LY', 'Libya'), ('LI', 'Liechtenstein'), ('LT', 'Lithuania'), ('LU', 'Luxembourg'), ('MO', 'Macao'), ('MG', 'Madagascar'), ('MW', 'Malawi'), ('MY', 'Malaysia'), ('MV', 'Maldives'), ('ML', 'Mali'), ('MT', 'Malta'), ('MH', 'Marshall Islands'), ('MQ', 'Martinique'), ('MR', 'Mauritania'), ('MU', 'Mauritius'), ('YT', 'Mayotte'), ('MX', 'Mexico'), ('FM', 'Micronesia (Federated States of)'), ('MD', 'Moldova (the Republic of)'), ('MC', 'Monaco'), ('MN', 'Mongolia'), ('ME', 'Montenegro'), ('MS', 'Montserrat'), ('MA', 'Morocco'), ('MZ', 'Mozambique'), ('MM', 'Myanmar'), ('NA', 'Namibia'), ('NR', 'Nauru'), ('NP', 'Nepal'), ('NL', 'Netherlands'), ('NC', 'New Caledonia'), ('NZ', 'New Zealand'), ('NI', 'Nicaragua'), ('NE', 'Niger'), ('NG', 'Nigeria'), ('NU', 'Niue'), ('NF', 'Norfolk Island'), ('MK', 'North Macedonia'), ('MP', 'Northern Mariana Islands'), ('NO', 'Norway'), ('OM', 'Oman'), ('PK', 'Pakistan'), ('PW', 'Palau'), ('PS', 'Palestine, State of'), ('PA', 'Panama'), ('PG', 'Papua New Guinea'), ('PY', 'Paraguay'), ('PE', 'Peru'), ('PH', 'Philippines'), ('PN', 'Pitcairn'), ('PL', 'Poland'), ('PT', 'Portugal'), ('PR', 'Puerto Rico'), ('QA', 'Qatar'), ('RE', 'Réunion'), ('RO', 'Romania'), ('RU', 'Russian Federation'), ('RW', 'Rwanda'), ('BL', 'Saint Barthélemy'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('KN', 'Saint Kitts and Nevis'), ('LC', 'Saint Lucia'), ('MF', 'Saint Martin (French part)'), ('PM', 'Saint Pierre and Miquelon'), ('VC', 'Saint Vincent and the Grenadines'), ('WS', 'Samoa'), ('SM', 'San Marino'), ('ST', 'Sao Tome and Principe'), ('SA', 'Saudi Arabia'), ('SN', 'Senegal'), ('RS', 'Serbia'), ('SC', 'Seychelles'), ('SL', 'Sierra Leone'), ('SG', 'Singapore'), ('SX', 'Sint Maarten (Dutch part)'), ('SK', 'Slovakia'), ('SI', 'Slovenia'), ('SB', 'Solomon Islands'), ('SO', 'Somalia'), ('ZA', 'South Africa'), ('GS', 'South Georgia and the South Sandwich Islands'), ('SS', 'South Sudan'), ('ES', 'Spain'), ('LK', 'Sri Lanka'), ('SD', 'Sudan'), ('SR', 'Suriname'), ('SJ', 'Svalbard and Jan Mayen'), ('SE', 'Sweden'), ('CH', 'Switzerland'), ('SY', 'Syrian Arab Republic'), ('TW', 'Taiwan (Province of China)'), ('TJ', 'Tajikistan'), ('TZ', 'Tanzania, the United Republic of'), ('TH', 'Thailand'), ('TL', 'Timor-Leste'), ('TG', 'Togo'), ('TK', 'Tokelau'), ('TO', 'Tonga'), ('TT', 'Trinidad and Tobago'), ('TN', 'Tunisia'), ('TR', 'Turkey'), ('TM', 'Turkmenistan'), ('TC', 'Turks and Caicos Islands'), ('TV', 'Tuvalu'), ('UG', 'Uganda'), ('UA', 'Ukraine'), ('AE', 'United Arab Emirates'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('UM', 'United States Minor Outlying Islands'), ('US', 'United States of America'), ('UY', 'Uruguay'), ('UZ', 'Uzbekistan'), ('VU', 'Vanuatu'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('VN', 'Viet Nam'), ('VG', 'Virgin Islands (British)'), ('VI', 'Virgin Islands (U.S.)'), ('WF', 'Wallis and Futuna'), ('EH', 'Western Sahara'), ('YE', 'Yemen'), ('ZM', 'Zambia'), ('ZW', 'Zimbabwe')], default='ES', max_length=20, verbose_name='country')), - ('vat', models.CharField(max_length=64, verbose_name='VAT number')), - ('account', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='billcontact', to=settings.AUTH_USER_MODEL, verbose_name='account')), - ], - ), - migrations.CreateModel( - name='BillLine', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('description', models.CharField(max_length=256, verbose_name='description')), - ('rate', models.DecimalField(blank=True, decimal_places=2, max_digits=12, null=True, verbose_name='rate')), - ('quantity', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='quantity')), - ('verbose_quantity', models.CharField(max_length=16, verbose_name='Verbose quantity')), - ('subtotal', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='subtotal')), - ('tax', models.DecimalField(decimal_places=2, max_digits=4, verbose_name='tax')), - ('start_on', models.DateField(verbose_name='start')), - ('end_on', models.DateField(null=True, verbose_name='end')), - ('order_billed_on', models.DateField(blank=True, null=True, verbose_name='order billed')), - ('order_billed_until', models.DateField(blank=True, null=True, verbose_name='order billed until')), - ('created_on', models.DateField(auto_now_add=True, verbose_name='created')), - ('amended_line', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='amendment_lines', to='bills.BillLine', verbose_name='amended line')), - ('bill', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lines', to='bills.Bill', verbose_name='bill')), - ('order', models.ForeignKey(blank=True, help_text='Informative link back to the order', null=True, on_delete=django.db.models.deletion.SET_NULL, to='orders.Order')), - ], - ), - migrations.CreateModel( - name='BillSubline', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('description', models.CharField(max_length=256, verbose_name='description')), - ('total', models.DecimalField(decimal_places=2, max_digits=12)), - ('type', models.CharField(choices=[('VOLUME', 'Volume'), ('COMPENSATION', 'Compensation'), ('OTHER', 'Other')], default='OTHER', max_length=16, verbose_name='type')), - ('line', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sublines', to='bills.BillLine', verbose_name='bill line')), - ], - ), - migrations.CreateModel( - name='AmendmentFee', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('bills.bill',), - ), - migrations.CreateModel( - name='AmendmentInvoice', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('bills.bill',), - ), - migrations.CreateModel( - name='Fee', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('bills.bill',), - ), - migrations.CreateModel( - name='Invoice', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('bills.bill',), - ), - migrations.CreateModel( - name='ProForma', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('bills.bill',), - ), - migrations.RemoveField( - model_name='bill', - name='total', - ), - migrations.AlterField( - model_name='billline', - name='quantity', - field=models.DecimalField(blank=True, decimal_places=2, max_digits=12, null=True, verbose_name='quantity'), - ), - migrations.AddField( - model_name='bill', - name='amend_of', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='amends', to='bills.Bill', verbose_name='amend of'), - ), - migrations.AlterField( - model_name='bill', - name='closed_on', - field=models.DateField(blank=True, db_index=True, null=True, verbose_name='closed on'), - ), - migrations.AlterField( - model_name='billline', - name='end_on', - field=models.DateField(blank=True, null=True, verbose_name='end'), - ), - migrations.AlterModelOptions( - name='billline', - options={'get_latest_by': 'id'}, - ), - migrations.AlterField( - model_name='billline', - name='order', - field=models.ForeignKey(blank=True, help_text='Informative link back to the order', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lines', to='orders.Order'), - ), - migrations.AlterField( - model_name='billline', - name='verbose_quantity', - field=models.CharField(blank=True, max_length=16, verbose_name='Verbose quantity'), - ), - migrations.CreateModel( - name='AbonoInvoice', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('bills.bill',), - ), - migrations.AlterField( - model_name='bill', - name='type', - field=models.CharField(choices=[('INVOICE', 'Invoice'), ('AMENDMENTINVOICE', 'Amendment invoice'), ('FEE', 'Fee'), ('AMENDMENTFEE', 'Amendment Fee'), ('ABONOINVOICE', 'Abono Invoice'), ('PROFORMA', 'Pro forma')], max_length=16, verbose_name='type'), - ), - migrations.AlterField( - model_name='bill', - name='amend_of', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='amends', to='bills.Bill', verbose_name='amend of'), - ), - ] diff --git a/orchestra/contrib/bills/migrations/0002_auto_20150429_1417.py b/orchestra/contrib/bills/migrations/0002_auto_20150429_1417.py deleted file mode 100644 index 36d0969..0000000 --- a/orchestra/contrib/bills/migrations/0002_auto_20150429_1417.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('bills', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='billcontact', - name='country', - field=models.CharField(choices=[('EE', 'Estonia'), ('PH', 'Philippines'), ('BT', 'Bhutan'), ('LA', "Lao People's Democratic Republic"), ('DJ', 'Djibouti'), ('TK', 'Tokelau'), ('IM', 'Isle of Man'), ('SR', 'Suriname'), ('KP', "Korea (the Democratic People's Republic of)"), ('JP', 'Japan'), ('KN', 'Saint Kitts and Nevis'), ('SY', 'Syrian Arab Republic'), ('AG', 'Antigua and Barbuda'), ('RW', 'Rwanda'), ('PA', 'Panama'), ('CA', 'Canada'), ('MR', 'Mauritania'), ('HK', 'Hong Kong'), ('UM', 'United States Minor Outlying Islands'), ('BB', 'Barbados'), ('NF', 'Norfolk Island'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('GS', 'South Georgia and the South Sandwich Islands'), ('FK', 'Falkland Islands [Malvinas]'), ('TF', 'French Southern Territories'), ('TV', 'Tuvalu'), ('SX', 'Sint Maarten (Dutch part)'), ('PW', 'Palau'), ('QA', 'Qatar'), ('GT', 'Guatemala'), ('KG', 'Kyrgyzstan'), ('HT', 'Haiti'), ('NG', 'Nigeria'), ('TG', 'Togo'), ('GR', 'Greece'), ('GF', 'French Guiana'), ('HN', 'Honduras'), ('CV', 'Cabo Verde'), ('DM', 'Dominica'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('ME', 'Montenegro'), ('SG', 'Singapore'), ('MT', 'Malta'), ('GG', 'Guernsey'), ('MW', 'Malawi'), ('GH', 'Ghana'), ('GN', 'Guinea'), ('EG', 'Egypt'), ('MD', 'Moldova (the Republic of)'), ('NE', 'Niger'), ('NR', 'Nauru'), ('IE', 'Ireland'), ('CY', 'Cyprus'), ('BH', 'Bahrain'), ('BY', 'Belarus'), ('TC', 'Turks and Caicos Islands'), ('CF', 'Central African Republic'), ('CI', "Côte d'Ivoire"), ('LK', 'Sri Lanka'), ('GW', 'Guinea-Bissau'), ('SZ', 'Swaziland'), ('YE', 'Yemen'), ('AQ', 'Antarctica'), ('WS', 'Samoa'), ('PN', 'Pitcairn'), ('AE', 'United Arab Emirates'), ('LV', 'Latvia'), ('CZ', 'Czech Republic'), ('JO', 'Jordan'), ('LU', 'Luxembourg'), ('RU', 'Russian Federation'), ('SN', 'Senegal'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('SS', 'South Sudan'), ('LI', 'Liechtenstein'), ('GM', 'Gambia'), ('SO', 'Somalia'), ('AT', 'Austria'), ('AL', 'Albania'), ('MM', 'Myanmar'), ('MC', 'Monaco'), ('AZ', 'Azerbaijan'), ('KY', 'Cayman Islands'), ('HU', 'Hungary'), ('SE', 'Sweden'), ('US', 'United States of America'), ('MS', 'Montserrat'), ('MX', 'Mexico'), ('IR', 'Iran (Islamic Republic of)'), ('SK', 'Slovakia'), ('IO', 'British Indian Ocean Territory'), ('SV', 'El Salvador'), ('ST', 'Sao Tome and Principe'), ('ZW', 'Zimbabwe'), ('MN', 'Mongolia'), ('MG', 'Madagascar'), ('LB', 'Lebanon'), ('PR', 'Puerto Rico'), ('JE', 'Jersey'), ('BD', 'Bangladesh'), ('HM', 'Heard Island and McDonald Islands'), ('RO', 'Romania'), ('TN', 'Tunisia'), ('AD', 'Andorra'), ('SJ', 'Svalbard and Jan Mayen'), ('PL', 'Poland'), ('AF', 'Afghanistan'), ('NC', 'New Caledonia'), ('FI', 'Finland'), ('GD', 'Grenada'), ('GY', 'Guyana'), ('ZA', 'South Africa'), ('MA', 'Morocco'), ('AS', 'American Samoa'), ('PY', 'Paraguay'), ('ZM', 'Zambia'), ('PG', 'Papua New Guinea'), ('CH', 'Switzerland'), ('LY', 'Libya'), ('KZ', 'Kazakhstan'), ('SL', 'Sierra Leone'), ('DO', 'Dominican Republic'), ('TZ', 'Tanzania, United Republic of'), ('LC', 'Saint Lucia'), ('NI', 'Nicaragua'), ('TH', 'Thailand'), ('BI', 'Burundi'), ('SD', 'Sudan'), ('BW', 'Botswana'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('TJ', 'Tajikistan'), ('CM', 'Cameroon'), ('EC', 'Ecuador'), ('ER', 'Eritrea'), ('CX', 'Christmas Island'), ('MO', 'Macao'), ('MH', 'Marshall Islands'), ('AU', 'Australia'), ('DK', 'Denmark'), ('TT', 'Trinidad and Tobago'), ('BE', 'Belgium'), ('SI', 'Slovenia'), ('PM', 'Saint Pierre and Miquelon'), ('KH', 'Cambodia'), ('CW', 'Curaçao'), ('EH', 'Western Sahara'), ('TO', 'Tonga'), ('AO', 'Angola'), ('OM', 'Oman'), ('GE', 'Georgia'), ('MF', 'Saint Martin (French part)'), ('IT', 'Italy'), ('UA', 'Ukraine'), ('BA', 'Bosnia and Herzegovina'), ('WF', 'Wallis and Futuna'), ('FM', 'Micronesia (Federated States of)'), ('BO', 'Bolivia (Plurinational State of)'), ('PF', 'French Polynesia'), ('DE', 'Germany'), ('BZ', 'Belize'), ('IS', 'Iceland'), ('MY', 'Malaysia'), ('IQ', 'Iraq'), ('KR', 'Korea (the Republic of)'), ('CN', 'China'), ('SB', 'Solomon Islands'), ('TL', 'Timor-Leste'), ('TD', 'Chad'), ('PE', 'Peru'), ('BL', 'Saint Barthélemy'), ('CL', 'Chile'), ('KI', 'Kiribati'), ('PT', 'Portugal'), ('ES', 'Spain'), ('IL', 'Israel'), ('MU', 'Mauritius'), ('HR', 'Croatia'), ('PK', 'Pakistan'), ('PS', 'Palestine, State of'), ('NL', 'Netherlands'), ('CG', 'Congo'), ('MQ', 'Martinique'), ('BG', 'Bulgaria'), ('FR', 'France'), ('VI', 'Virgin Islands (U.S.)'), ('LT', 'Lithuania'), ('BN', 'Brunei Darussalam'), ('ET', 'Ethiopia'), ('NU', 'Niue'), ('AR', 'Argentina'), ('DZ', 'Algeria'), ('RS', 'Serbia'), ('UZ', 'Uzbekistan'), ('SM', 'San Marino'), ('JM', 'Jamaica'), ('VN', 'Viet Nam'), ('AM', 'Armenia'), ('KE', 'Kenya'), ('CO', 'Colombia'), ('LS', 'Lesotho'), ('GP', 'Guadeloupe'), ('GA', 'Gabon'), ('KM', 'Comoros'), ('BS', 'Bahamas'), ('TW', 'Taiwan (Province of China)'), ('RE', 'Réunion'), ('AW', 'Aruba'), ('BV', 'Bouvet Island'), ('UG', 'Uganda'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('BF', 'Burkina Faso'), ('NP', 'Nepal'), ('VG', 'Virgin Islands (British)'), ('SA', 'Saudi Arabia'), ('AX', 'Åland Islands'), ('TM', 'Turkmenistan'), ('IN', 'India'), ('CC', 'Cocos (Keeling) Islands'), ('FO', 'Faroe Islands'), ('BJ', 'Benin'), ('BM', 'Bermuda'), ('ID', 'Indonesia'), ('NA', 'Namibia'), ('TR', 'Turkey'), ('GI', 'Gibraltar'), ('GQ', 'Equatorial Guinea'), ('GU', 'Guam'), ('ML', 'Mali'), ('SC', 'Seychelles'), ('MP', 'Northern Mariana Islands'), ('LR', 'Liberia'), ('CK', 'Cook Islands'), ('VA', 'Holy See'), ('FJ', 'Fiji'), ('YT', 'Mayotte'), ('NZ', 'New Zealand'), ('CU', 'Cuba'), ('AI', 'Anguilla'), ('VC', 'Saint Vincent and the Grenadines'), ('MV', 'Maldives'), ('GL', 'Greenland'), ('NO', 'Norway'), ('BR', 'Brazil'), ('CD', 'Congo (the Democratic Republic of the)'), ('CR', 'Costa Rica'), ('VU', 'Vanuatu'), ('MZ', 'Mozambique'), ('KW', 'Kuwait'), ('UY', 'Uruguay')], verbose_name='country', max_length=20, default='ES'), - ), - ] diff --git a/orchestra/contrib/bills/migrations/0003_auto_20150612_0944.py b/orchestra/contrib/bills/migrations/0003_auto_20150612_0944.py deleted file mode 100644 index 1b6691c..0000000 --- a/orchestra/contrib/bills/migrations/0003_auto_20150612_0944.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('bills', '0002_auto_20150429_1417'), - ] - - operations = [ - migrations.AlterField( - model_name='bill', - name='total', - field=models.DecimalField(null=True, decimal_places=2, max_digits=12), - ), - migrations.AlterField( - model_name='billcontact', - name='country', - field=models.CharField(choices=[('MX', 'Mexico'), ('RE', 'Réunion'), ('RW', 'Rwanda'), ('RS', 'Serbia'), ('KM', 'Comoros'), ('KP', "Korea (the Democratic People's Republic of)"), ('GA', 'Gabon'), ('CG', 'Congo'), ('RU', 'Russian Federation'), ('CM', 'Cameroon'), ('DO', 'Dominican Republic'), ('AG', 'Antigua and Barbuda'), ('SC', 'Seychelles'), ('TW', 'Taiwan (Province of China)'), ('SJ', 'Svalbard and Jan Mayen'), ('SM', 'San Marino'), ('ZA', 'South Africa'), ('TC', 'Turks and Caicos Islands'), ('AI', 'Anguilla'), ('EG', 'Egypt'), ('CI', "Côte d'Ivoire"), ('SV', 'El Salvador'), ('BN', 'Brunei Darussalam'), ('CF', 'Central African Republic'), ('QA', 'Qatar'), ('BO', 'Bolivia (Plurinational State of)'), ('IQ', 'Iraq'), ('AS', 'American Samoa'), ('TG', 'Togo'), ('FM', 'Micronesia (Federated States of)'), ('IL', 'Israel'), ('BF', 'Burkina Faso'), ('SI', 'Slovenia'), ('PT', 'Portugal'), ('FI', 'Finland'), ('BA', 'Bosnia and Herzegovina'), ('CX', 'Christmas Island'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('GI', 'Gibraltar'), ('UY', 'Uruguay'), ('NR', 'Nauru'), ('BI', 'Burundi'), ('MO', 'Macao'), ('BV', 'Bouvet Island'), ('TD', 'Chad'), ('CW', 'Curaçao'), ('UG', 'Uganda'), ('GD', 'Grenada'), ('HM', 'Heard Island and McDonald Islands'), ('PA', 'Panama'), ('SA', 'Saudi Arabia'), ('PK', 'Pakistan'), ('LU', 'Luxembourg'), ('LC', 'Saint Lucia'), ('PS', 'Palestine, State of'), ('TM', 'Turkmenistan'), ('BL', 'Saint Barthélemy'), ('IR', 'Iran (Islamic Republic of)'), ('SO', 'Somalia'), ('CO', 'Colombia'), ('BE', 'Belgium'), ('MT', 'Malta'), ('ZM', 'Zambia'), ('VN', 'Viet Nam'), ('MG', 'Madagascar'), ('AX', 'Åland Islands'), ('ME', 'Montenegro'), ('BD', 'Bangladesh'), ('CK', 'Cook Islands'), ('US', 'United States of America'), ('HT', 'Haiti'), ('MQ', 'Martinique'), ('JP', 'Japan'), ('BZ', 'Belize'), ('CZ', 'Czech Republic'), ('IO', 'British Indian Ocean Territory'), ('RO', 'Romania'), ('BB', 'Barbados'), ('EH', 'Western Sahara'), ('HN', 'Honduras'), ('IS', 'Iceland'), ('ZW', 'Zimbabwe'), ('YE', 'Yemen'), ('ER', 'Eritrea'), ('CU', 'Cuba'), ('TT', 'Trinidad and Tobago'), ('AR', 'Argentina'), ('GU', 'Guam'), ('BT', 'Bhutan'), ('AM', 'Armenia'), ('GG', 'Guernsey'), ('LT', 'Lithuania'), ('KZ', 'Kazakhstan'), ('MU', 'Mauritius'), ('FO', 'Faroe Islands'), ('SB', 'Solomon Islands'), ('TJ', 'Tajikistan'), ('NF', 'Norfolk Island'), ('GP', 'Guadeloupe'), ('AD', 'Andorra'), ('PR', 'Puerto Rico'), ('AO', 'Angola'), ('BY', 'Belarus'), ('CY', 'Cyprus'), ('IM', 'Isle of Man'), ('DK', 'Denmark'), ('FK', 'Falkland Islands [Malvinas]'), ('MH', 'Marshall Islands'), ('CD', 'Congo (the Democratic Republic of the)'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('UM', 'United States Minor Outlying Islands'), ('CN', 'China'), ('FJ', 'Fiji'), ('DZ', 'Algeria'), ('DM', 'Dominica'), ('MZ', 'Mozambique'), ('GL', 'Greenland'), ('AQ', 'Antarctica'), ('GS', 'South Georgia and the South Sandwich Islands'), ('GQ', 'Equatorial Guinea'), ('MP', 'Northern Mariana Islands'), ('SX', 'Sint Maarten (Dutch part)'), ('GT', 'Guatemala'), ('CA', 'Canada'), ('IN', 'India'), ('MF', 'Saint Martin (French part)'), ('VA', 'Holy See'), ('MA', 'Morocco'), ('PF', 'French Polynesia'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('NP', 'Nepal'), ('LI', 'Liechtenstein'), ('GE', 'Georgia'), ('TL', 'Timor-Leste'), ('WS', 'Samoa'), ('TV', 'Tuvalu'), ('TO', 'Tonga'), ('ID', 'Indonesia'), ('VG', 'Virgin Islands (British)'), ('LR', 'Liberia'), ('BW', 'Botswana'), ('PG', 'Papua New Guinea'), ('AZ', 'Azerbaijan'), ('CH', 'Switzerland'), ('AF', 'Afghanistan'), ('HK', 'Hong Kong'), ('NE', 'Niger'), ('JO', 'Jordan'), ('ST', 'Sao Tome and Principe'), ('NU', 'Niue'), ('ET', 'Ethiopia'), ('KW', 'Kuwait'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('SZ', 'Swaziland'), ('PN', 'Pitcairn'), ('MD', 'Moldova (the Republic of)'), ('PW', 'Palau'), ('LB', 'Lebanon'), ('MS', 'Montserrat'), ('SE', 'Sweden'), ('VI', 'Virgin Islands (U.S.)'), ('GN', 'Guinea'), ('TZ', 'Tanzania, United Republic of'), ('TR', 'Turkey'), ('PY', 'Paraguay'), ('NI', 'Nicaragua'), ('IT', 'Italy'), ('SN', 'Senegal'), ('CV', 'Cabo Verde'), ('BS', 'Bahamas'), ('BR', 'Brazil'), ('DJ', 'Djibouti'), ('AL', 'Albania'), ('GF', 'French Guiana'), ('KI', 'Kiribati'), ('VU', 'Vanuatu'), ('GM', 'Gambia'), ('SS', 'South Sudan'), ('TF', 'French Southern Territories'), ('BH', 'Bahrain'), ('MN', 'Mongolia'), ('KN', 'Saint Kitts and Nevis'), ('NL', 'Netherlands'), ('LK', 'Sri Lanka'), ('PE', 'Peru'), ('TK', 'Tokelau'), ('YT', 'Mayotte'), ('TN', 'Tunisia'), ('SG', 'Singapore'), ('BJ', 'Benin'), ('GH', 'Ghana'), ('KR', 'Korea (the Republic of)'), ('CR', 'Costa Rica'), ('JM', 'Jamaica'), ('AU', 'Australia'), ('KE', 'Kenya'), ('MM', 'Myanmar'), ('NA', 'Namibia'), ('UZ', 'Uzbekistan'), ('GR', 'Greece'), ('MR', 'Mauritania'), ('PL', 'Poland'), ('SY', 'Syrian Arab Republic'), ('MY', 'Malaysia'), ('EE', 'Estonia'), ('NZ', 'New Zealand'), ('MC', 'Monaco'), ('HU', 'Hungary'), ('SD', 'Sudan'), ('NG', 'Nigeria'), ('LA', "Lao People's Democratic Republic"), ('SK', 'Slovakia'), ('GY', 'Guyana'), ('UA', 'Ukraine'), ('BM', 'Bermuda'), ('AE', 'United Arab Emirates'), ('VC', 'Saint Vincent and the Grenadines'), ('AW', 'Aruba'), ('JE', 'Jersey'), ('PH', 'Philippines'), ('KH', 'Cambodia'), ('PM', 'Saint Pierre and Miquelon'), ('MW', 'Malawi'), ('HR', 'Croatia'), ('CL', 'Chile'), ('CC', 'Cocos (Keeling) Islands'), ('NC', 'New Caledonia'), ('LS', 'Lesotho'), ('SR', 'Suriname'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('ES', 'Spain'), ('DE', 'Germany'), ('EC', 'Ecuador'), ('LV', 'Latvia'), ('LY', 'Libya'), ('NO', 'Norway'), ('WF', 'Wallis and Futuna'), ('GW', 'Guinea-Bissau'), ('ML', 'Mali'), ('FR', 'France'), ('TH', 'Thailand'), ('AT', 'Austria'), ('SL', 'Sierra Leone'), ('IE', 'Ireland'), ('KY', 'Cayman Islands'), ('BG', 'Bulgaria'), ('KG', 'Kyrgyzstan'), ('MV', 'Maldives'), ('OM', 'Oman')], max_length=20, verbose_name='country', default='ES'), - ), - ] diff --git a/orchestra/contrib/bills/migrations/0004_auto_20150618_1311.py b/orchestra/contrib/bills/migrations/0004_auto_20150618_1311.py deleted file mode 100644 index d3ec1ef..0000000 --- a/orchestra/contrib/bills/migrations/0004_auto_20150618_1311.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('bills', '0003_auto_20150612_0944'), - ] - - operations = [ - migrations.AlterField( - model_name='billcontact', - name='country', - field=models.CharField(max_length=20, verbose_name='country', default='ES', choices=[('HT', 'Haiti'), ('TJ', 'Tajikistan'), ('VG', 'Virgin Islands (British)'), ('NL', 'Netherlands'), ('BA', 'Bosnia and Herzegovina'), ('AT', 'Austria'), ('ID', 'Indonesia'), ('IE', 'Ireland'), ('UA', 'Ukraine'), ('GR', 'Greece'), ('VA', 'Holy See'), ('TW', 'Taiwan (Province of China)'), ('MD', 'Moldova (the Republic of)'), ('GE', 'Georgia'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('IO', 'British Indian Ocean Territory'), ('HR', 'Croatia'), ('AS', 'American Samoa'), ('KE', 'Kenya'), ('CF', 'Central African Republic'), ('DM', 'Dominica'), ('AZ', 'Azerbaijan'), ('NF', 'Norfolk Island'), ('NZ', 'New Zealand'), ('ES', 'Spain'), ('GM', 'Gambia'), ('GD', 'Grenada'), ('FR', 'France'), ('SG', 'Singapore'), ('SO', 'Somalia'), ('AX', 'Åland Islands'), ('BT', 'Bhutan'), ('JP', 'Japan'), ('SK', 'Slovakia'), ('SY', 'Syrian Arab Republic'), ('VN', 'Viet Nam'), ('KM', 'Comoros'), ('SJ', 'Svalbard and Jan Mayen'), ('SC', 'Seychelles'), ('LV', 'Latvia'), ('RS', 'Serbia'), ('PY', 'Paraguay'), ('CZ', 'Czech Republic'), ('DO', 'Dominican Republic'), ('LI', 'Liechtenstein'), ('IN', 'India'), ('SS', 'South Sudan'), ('CC', 'Cocos (Keeling) Islands'), ('NC', 'New Caledonia'), ('HK', 'Hong Kong'), ('KW', 'Kuwait'), ('PM', 'Saint Pierre and Miquelon'), ('SB', 'Solomon Islands'), ('GA', 'Gabon'), ('PK', 'Pakistan'), ('QA', 'Qatar'), ('FJ', 'Fiji'), ('IS', 'Iceland'), ('SL', 'Sierra Leone'), ('CD', 'Congo (the Democratic Republic of the)'), ('BJ', 'Benin'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('MM', 'Myanmar'), ('TV', 'Tuvalu'), ('MY', 'Malaysia'), ('PR', 'Puerto Rico'), ('CI', "Côte d'Ivoire"), ('PF', 'French Polynesia'), ('GY', 'Guyana'), ('GU', 'Guam'), ('DK', 'Denmark'), ('UZ', 'Uzbekistan'), ('IR', 'Iran (Islamic Republic of)'), ('TC', 'Turks and Caicos Islands'), ('LU', 'Luxembourg'), ('UM', 'United States Minor Outlying Islands'), ('NG', 'Nigeria'), ('GS', 'South Georgia and the South Sandwich Islands'), ('GL', 'Greenland'), ('VC', 'Saint Vincent and the Grenadines'), ('KN', 'Saint Kitts and Nevis'), ('PN', 'Pitcairn'), ('AR', 'Argentina'), ('CU', 'Cuba'), ('PL', 'Poland'), ('AL', 'Albania'), ('JE', 'Jersey'), ('PE', 'Peru'), ('PW', 'Palau'), ('IT', 'Italy'), ('AG', 'Antigua and Barbuda'), ('BR', 'Brazil'), ('MN', 'Mongolia'), ('MU', 'Mauritius'), ('TR', 'Turkey'), ('NE', 'Niger'), ('ZM', 'Zambia'), ('ZW', 'Zimbabwe'), ('VU', 'Vanuatu'), ('MP', 'Northern Mariana Islands'), ('TO', 'Tonga'), ('BD', 'Bangladesh'), ('NA', 'Namibia'), ('LS', 'Lesotho'), ('GP', 'Guadeloupe'), ('CY', 'Cyprus'), ('CA', 'Canada'), ('SN', 'Senegal'), ('CR', 'Costa Rica'), ('UG', 'Uganda'), ('CG', 'Congo'), ('MV', 'Maldives'), ('WS', 'Samoa'), ('MZ', 'Mozambique'), ('KR', 'Korea (the Republic of)'), ('TN', 'Tunisia'), ('LR', 'Liberia'), ('NU', 'Niue'), ('YE', 'Yemen'), ('EE', 'Estonia'), ('KG', 'Kyrgyzstan'), ('HN', 'Honduras'), ('KH', 'Cambodia'), ('RW', 'Rwanda'), ('BL', 'Saint Barthélemy'), ('UY', 'Uruguay'), ('SI', 'Slovenia'), ('GW', 'Guinea-Bissau'), ('DJ', 'Djibouti'), ('NI', 'Nicaragua'), ('AW', 'Aruba'), ('TH', 'Thailand'), ('IQ', 'Iraq'), ('BZ', 'Belize'), ('ZA', 'South Africa'), ('MC', 'Monaco'), ('BF', 'Burkina Faso'), ('KP', "Korea (the Democratic People's Republic of)"), ('BW', 'Botswana'), ('BM', 'Bermuda'), ('LB', 'Lebanon'), ('TG', 'Togo'), ('AU', 'Australia'), ('ER', 'Eritrea'), ('SE', 'Sweden'), ('AQ', 'Antarctica'), ('BH', 'Bahrain'), ('CW', 'Curaçao'), ('DZ', 'Algeria'), ('BS', 'Bahamas'), ('SX', 'Sint Maarten (Dutch part)'), ('CX', 'Christmas Island'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('BN', 'Brunei Darussalam'), ('CV', 'Cabo Verde'), ('CH', 'Switzerland'), ('BV', 'Bouvet Island'), ('PS', 'Palestine, State of'), ('MT', 'Malta'), ('BB', 'Barbados'), ('BE', 'Belgium'), ('RU', 'Russian Federation'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('NO', 'Norway'), ('RE', 'Réunion'), ('AO', 'Angola'), ('CO', 'Colombia'), ('SA', 'Saudi Arabia'), ('LK', 'Sri Lanka'), ('ML', 'Mali'), ('GH', 'Ghana'), ('GI', 'Gibraltar'), ('ME', 'Montenegro'), ('TM', 'Turkmenistan'), ('VI', 'Virgin Islands (U.S.)'), ('GF', 'French Guiana'), ('RO', 'Romania'), ('JM', 'Jamaica'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('US', 'United States of America'), ('KI', 'Kiribati'), ('MX', 'Mexico'), ('SM', 'San Marino'), ('FM', 'Micronesia (Federated States of)'), ('GG', 'Guernsey'), ('LC', 'Saint Lucia'), ('MW', 'Malawi'), ('ET', 'Ethiopia'), ('BO', 'Bolivia (Plurinational State of)'), ('EC', 'Ecuador'), ('LT', 'Lithuania'), ('AI', 'Anguilla'), ('BY', 'Belarus'), ('AM', 'Armenia'), ('KZ', 'Kazakhstan'), ('TT', 'Trinidad and Tobago'), ('SR', 'Suriname'), ('MQ', 'Martinique'), ('GQ', 'Equatorial Guinea'), ('LY', 'Libya'), ('BG', 'Bulgaria'), ('CK', 'Cook Islands'), ('AD', 'Andorra'), ('DE', 'Germany'), ('MR', 'Mauritania'), ('TK', 'Tokelau'), ('EH', 'Western Sahara'), ('PT', 'Portugal'), ('CL', 'Chile'), ('GT', 'Guatemala'), ('KY', 'Cayman Islands'), ('SZ', 'Swaziland'), ('TL', 'Timor-Leste'), ('MF', 'Saint Martin (French part)'), ('SV', 'El Salvador'), ('EG', 'Egypt'), ('ST', 'Sao Tome and Principe'), ('HU', 'Hungary'), ('MA', 'Morocco'), ('TD', 'Chad'), ('PG', 'Papua New Guinea'), ('GN', 'Guinea'), ('MH', 'Marshall Islands'), ('FI', 'Finland'), ('BI', 'Burundi'), ('TZ', 'Tanzania, United Republic of'), ('CM', 'Cameroon'), ('FO', 'Faroe Islands'), ('TF', 'French Southern Territories'), ('FK', 'Falkland Islands [Malvinas]'), ('AF', 'Afghanistan'), ('NP', 'Nepal'), ('NR', 'Nauru'), ('SD', 'Sudan'), ('HM', 'Heard Island and McDonald Islands'), ('OM', 'Oman'), ('LA', "Lao People's Democratic Republic"), ('WF', 'Wallis and Futuna'), ('MG', 'Madagascar'), ('AE', 'United Arab Emirates'), ('JO', 'Jordan'), ('PA', 'Panama'), ('IL', 'Israel'), ('YT', 'Mayotte'), ('IM', 'Isle of Man'), ('MO', 'Macao'), ('PH', 'Philippines'), ('MS', 'Montserrat'), ('CN', 'China')]), - ), - migrations.AlterField( - model_name='billline', - name='quantity', - field=models.DecimalField(verbose_name='quantity', decimal_places=2, max_digits=12, blank=True, null=True), - ), - ] diff --git a/orchestra/contrib/bills/migrations/0005_auto_20150623_1031.py b/orchestra/contrib/bills/migrations/0005_auto_20150623_1031.py deleted file mode 100644 index 92aba3b..0000000 --- a/orchestra/contrib/bills/migrations/0005_auto_20150623_1031.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -import django.db.models.deletion -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('bills', '0004_auto_20150618_1311'), - ] - - operations = [ - migrations.AddField( - model_name='bill', - name='amend_of', - field=models.ForeignKey(to='bills.Bill', blank=True, on_delete=django.db.models.deletion.CASCADE, related_name='amends', verbose_name='amend of', null=True), - ), - migrations.AlterField( - model_name='billcontact', - name='country', - field=models.CharField(default='ES', verbose_name='country', choices=[('AO', 'Angola'), ('BB', 'Barbados'), ('IR', 'Iran (Islamic Republic of)'), ('SJ', 'Svalbard and Jan Mayen'), ('UG', 'Uganda'), ('AT', 'Austria'), ('EC', 'Ecuador'), ('BI', 'Burundi'), ('KM', 'Comoros'), ('KY', 'Cayman Islands'), ('JM', 'Jamaica'), ('AG', 'Antigua and Barbuda'), ('CG', 'Congo'), ('VC', 'Saint Vincent and the Grenadines'), ('KH', 'Cambodia'), ('CN', 'China'), ('GL', 'Greenland'), ('YE', 'Yemen'), ('TV', 'Tuvalu'), ('BW', 'Botswana'), ('SK', 'Slovakia'), ('KI', 'Kiribati'), ('PH', 'Philippines'), ('RO', 'Romania'), ('CC', 'Cocos (Keeling) Islands'), ('FI', 'Finland'), ('SI', 'Slovenia'), ('LS', 'Lesotho'), ('MC', 'Monaco'), ('AL', 'Albania'), ('GR', 'Greece'), ('AF', 'Afghanistan'), ('SZ', 'Swaziland'), ('MA', 'Morocco'), ('EG', 'Egypt'), ('CK', 'Cook Islands'), ('NA', 'Namibia'), ('HK', 'Hong Kong'), ('RE', 'Réunion'), ('KW', 'Kuwait'), ('TK', 'Tokelau'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('NP', 'Nepal'), ('EH', 'Western Sahara'), ('OM', 'Oman'), ('MV', 'Maldives'), ('LB', 'Lebanon'), ('RW', 'Rwanda'), ('FK', 'Falkland Islands [Malvinas]'), ('FM', 'Micronesia (Federated States of)'), ('TF', 'French Southern Territories'), ('LA', "Lao People's Democratic Republic"), ('RS', 'Serbia'), ('GM', 'Gambia'), ('DE', 'Germany'), ('BD', 'Bangladesh'), ('BF', 'Burkina Faso'), ('ET', 'Ethiopia'), ('MX', 'Mexico'), ('TT', 'Trinidad and Tobago'), ('IN', 'India'), ('PA', 'Panama'), ('BZ', 'Belize'), ('GG', 'Guernsey'), ('MW', 'Malawi'), ('ZA', 'South Africa'), ('MS', 'Montserrat'), ('LI', 'Liechtenstein'), ('SB', 'Solomon Islands'), ('PS', 'Palestine, State of'), ('BJ', 'Benin'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('MO', 'Macao'), ('TC', 'Turks and Caicos Islands'), ('TH', 'Thailand'), ('CI', "Côte d'Ivoire"), ('PL', 'Poland'), ('DZ', 'Algeria'), ('MY', 'Malaysia'), ('KZ', 'Kazakhstan'), ('LY', 'Libya'), ('LU', 'Luxembourg'), ('SO', 'Somalia'), ('WS', 'Samoa'), ('PR', 'Puerto Rico'), ('AS', 'American Samoa'), ('CD', 'Congo (the Democratic Republic of the)'), ('GH', 'Ghana'), ('UM', 'United States Minor Outlying Islands'), ('QA', 'Qatar'), ('MM', 'Myanmar'), ('MT', 'Malta'), ('NR', 'Nauru'), ('NZ', 'New Zealand'), ('AD', 'Andorra'), ('MG', 'Madagascar'), ('GI', 'Gibraltar'), ('NI', 'Nicaragua'), ('SG', 'Singapore'), ('WF', 'Wallis and Futuna'), ('SC', 'Seychelles'), ('GE', 'Georgia'), ('MR', 'Mauritania'), ('LT', 'Lithuania'), ('PE', 'Peru'), ('DJ', 'Djibouti'), ('NU', 'Niue'), ('AZ', 'Azerbaijan'), ('YT', 'Mayotte'), ('KN', 'Saint Kitts and Nevis'), ('AR', 'Argentina'), ('CL', 'Chile'), ('PN', 'Pitcairn'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('CA', 'Canada'), ('GY', 'Guyana'), ('GS', 'South Georgia and the South Sandwich Islands'), ('PW', 'Palau'), ('CH', 'Switzerland'), ('ER', 'Eritrea'), ('AX', 'Åland Islands'), ('SM', 'San Marino'), ('PG', 'Papua New Guinea'), ('GN', 'Guinea'), ('VU', 'Vanuatu'), ('LV', 'Latvia'), ('SR', 'Suriname'), ('ME', 'Montenegro'), ('SD', 'Sudan'), ('TZ', 'Tanzania, United Republic of'), ('TO', 'Tonga'), ('ID', 'Indonesia'), ('SL', 'Sierra Leone'), ('SX', 'Sint Maarten (Dutch part)'), ('AQ', 'Antarctica'), ('CY', 'Cyprus'), ('LC', 'Saint Lucia'), ('IT', 'Italy'), ('MN', 'Mongolia'), ('TG', 'Togo'), ('LR', 'Liberia'), ('GQ', 'Equatorial Guinea'), ('UA', 'Ukraine'), ('ST', 'Sao Tome and Principe'), ('HU', 'Hungary'), ('PY', 'Paraguay'), ('MQ', 'Martinique'), ('BE', 'Belgium'), ('FO', 'Faroe Islands'), ('FR', 'France'), ('CM', 'Cameroon'), ('MF', 'Saint Martin (French part)'), ('JO', 'Jordan'), ('US', 'United States of America'), ('BO', 'Bolivia (Plurinational State of)'), ('MH', 'Marshall Islands'), ('SE', 'Sweden'), ('HR', 'Croatia'), ('AE', 'United Arab Emirates'), ('IM', 'Isle of Man'), ('GP', 'Guadeloupe'), ('AW', 'Aruba'), ('SS', 'South Sudan'), ('SV', 'El Salvador'), ('HT', 'Haiti'), ('SY', 'Syrian Arab Republic'), ('KR', 'Korea (the Republic of)'), ('GW', 'Guinea-Bissau'), ('TN', 'Tunisia'), ('JE', 'Jersey'), ('ZW', 'Zimbabwe'), ('MU', 'Mauritius'), ('VI', 'Virgin Islands (U.S.)'), ('VN', 'Viet Nam'), ('BR', 'Brazil'), ('BM', 'Bermuda'), ('BN', 'Brunei Darussalam'), ('IO', 'British Indian Ocean Territory'), ('IS', 'Iceland'), ('NC', 'New Caledonia'), ('PF', 'French Polynesia'), ('SA', 'Saudi Arabia'), ('CF', 'Central African Republic'), ('DM', 'Dominica'), ('BT', 'Bhutan'), ('HM', 'Heard Island and McDonald Islands'), ('JP', 'Japan'), ('KE', 'Kenya'), ('BA', 'Bosnia and Herzegovina'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('IQ', 'Iraq'), ('DK', 'Denmark'), ('ML', 'Mali'), ('FJ', 'Fiji'), ('EE', 'Estonia'), ('GF', 'French Guiana'), ('PM', 'Saint Pierre and Miquelon'), ('DO', 'Dominican Republic'), ('BG', 'Bulgaria'), ('GD', 'Grenada'), ('NE', 'Niger'), ('ZM', 'Zambia'), ('GU', 'Guam'), ('TJ', 'Tajikistan'), ('GT', 'Guatemala'), ('AI', 'Anguilla'), ('BV', 'Bouvet Island'), ('PK', 'Pakistan'), ('MP', 'Northern Mariana Islands'), ('NF', 'Norfolk Island'), ('MZ', 'Mozambique'), ('CV', 'Cabo Verde'), ('RU', 'Russian Federation'), ('IE', 'Ireland'), ('NO', 'Norway'), ('CZ', 'Czech Republic'), ('TD', 'Chad'), ('KP', "Korea (the Democratic People's Republic of)"), ('AU', 'Australia'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('SN', 'Senegal'), ('CO', 'Colombia'), ('BY', 'Belarus'), ('VG', 'Virgin Islands (British)'), ('CX', 'Christmas Island'), ('PT', 'Portugal'), ('TR', 'Turkey'), ('CW', 'Curaçao'), ('NL', 'Netherlands'), ('BH', 'Bahrain'), ('CU', 'Cuba'), ('VA', 'Holy See'), ('ES', 'Spain'), ('BL', 'Saint Barthélemy'), ('HN', 'Honduras'), ('TM', 'Turkmenistan'), ('NG', 'Nigeria'), ('LK', 'Sri Lanka'), ('AM', 'Armenia'), ('GA', 'Gabon'), ('UZ', 'Uzbekistan'), ('CR', 'Costa Rica'), ('UY', 'Uruguay'), ('TW', 'Taiwan (Province of China)'), ('BS', 'Bahamas'), ('KG', 'Kyrgyzstan'), ('MD', 'Moldova (the Republic of)'), ('IL', 'Israel'), ('TL', 'Timor-Leste')], max_length=20), - ), - ] diff --git a/orchestra/contrib/bills/migrations/0006_auto_20150709_1016.py b/orchestra/contrib/bills/migrations/0006_auto_20150709_1016.py deleted file mode 100644 index dc6a8be..0000000 --- a/orchestra/contrib/bills/migrations/0006_auto_20150709_1016.py +++ /dev/null @@ -1,29 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('bills', '0005_auto_20150623_1031'), - ] - - operations = [ - migrations.AlterField( - model_name='bill', - name='closed_on', - field=models.DateField(db_index=True, blank=True, null=True, verbose_name='closed on'), - ), - migrations.AlterField( - model_name='billcontact', - name='country', - field=models.CharField(choices=[('BS', 'Bahamas'), ('CX', 'Christmas Island'), ('DK', 'Denmark'), ('AI', 'Anguilla'), ('PF', 'French Polynesia'), ('ZA', 'South Africa'), ('NI', 'Nicaragua'), ('BB', 'Barbados'), ('TD', 'Chad'), ('PR', 'Puerto Rico'), ('AD', 'Andorra'), ('GE', 'Georgia'), ('UY', 'Uruguay'), ('AG', 'Antigua and Barbuda'), ('DM', 'Dominica'), ('RU', 'Russian Federation'), ('SE', 'Sweden'), ('UG', 'Uganda'), ('KN', 'Saint Kitts and Nevis'), ('CF', 'Central African Republic'), ('MU', 'Mauritius'), ('SR', 'Suriname'), ('KH', 'Cambodia'), ('CV', 'Cabo Verde'), ('CD', 'Congo (the Democratic Republic of the)'), ('BV', 'Bouvet Island'), ('PS', 'Palestine, State of'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('CK', 'Cook Islands'), ('MD', 'Moldova (the Republic of)'), ('DE', 'Germany'), ('CM', 'Cameroon'), ('BF', 'Burkina Faso'), ('SM', 'San Marino'), ('NL', 'Netherlands'), ('BL', 'Saint Barthélemy'), ('SV', 'El Salvador'), ('AU', 'Australia'), ('GN', 'Guinea'), ('GM', 'Gambia'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('MQ', 'Martinique'), ('SC', 'Seychelles'), ('GY', 'Guyana'), ('TF', 'French Southern Territories'), ('NP', 'Nepal'), ('KW', 'Kuwait'), ('AT', 'Austria'), ('AZ', 'Azerbaijan'), ('QA', 'Qatar'), ('JP', 'Japan'), ('HT', 'Haiti'), ('EC', 'Ecuador'), ('LR', 'Liberia'), ('RO', 'Romania'), ('LB', 'Lebanon'), ('TT', 'Trinidad and Tobago'), ('BR', 'Brazil'), ('AW', 'Aruba'), ('BM', 'Bermuda'), ('VU', 'Vanuatu'), ('MR', 'Mauritania'), ('SL', 'Sierra Leone'), ('NE', 'Niger'), ('VC', 'Saint Vincent and the Grenadines'), ('IQ', 'Iraq'), ('NC', 'New Caledonia'), ('GI', 'Gibraltar'), ('NG', 'Nigeria'), ('MX', 'Mexico'), ('NZ', 'New Zealand'), ('KP', "Korea (the Democratic People's Republic of)"), ('ZM', 'Zambia'), ('ZW', 'Zimbabwe'), ('SX', 'Sint Maarten (Dutch part)'), ('WF', 'Wallis and Futuna'), ('CC', 'Cocos (Keeling) Islands'), ('TZ', 'Tanzania, United Republic of'), ('NU', 'Niue'), ('MP', 'Northern Mariana Islands'), ('IN', 'India'), ('LC', 'Saint Lucia'), ('TC', 'Turks and Caicos Islands'), ('PG', 'Papua New Guinea'), ('IL', 'Israel'), ('YE', 'Yemen'), ('LA', "Lao People's Democratic Republic"), ('BH', 'Bahrain'), ('NF', 'Norfolk Island'), ('DZ', 'Algeria'), ('MS', 'Montserrat'), ('JO', 'Jordan'), ('US', 'United States of America'), ('WS', 'Samoa'), ('KZ', 'Kazakhstan'), ('ME', 'Montenegro'), ('ET', 'Ethiopia'), ('UZ', 'Uzbekistan'), ('HR', 'Croatia'), ('PE', 'Peru'), ('LS', 'Lesotho'), ('UM', 'United States Minor Outlying Islands'), ('PL', 'Poland'), ('GF', 'French Guiana'), ('RW', 'Rwanda'), ('TV', 'Tuvalu'), ('FM', 'Micronesia (Federated States of)'), ('TR', 'Turkey'), ('TJ', 'Tajikistan'), ('SO', 'Somalia'), ('GP', 'Guadeloupe'), ('SG', 'Singapore'), ('JE', 'Jersey'), ('IS', 'Iceland'), ('KR', 'Korea (the Republic of)'), ('VN', 'Viet Nam'), ('SB', 'Solomon Islands'), ('CG', 'Congo'), ('NO', 'Norway'), ('VG', 'Virgin Islands (British)'), ('IT', 'Italy'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('IR', 'Iran (Islamic Republic of)'), ('CO', 'Colombia'), ('IM', 'Isle of Man'), ('GQ', 'Equatorial Guinea'), ('UA', 'Ukraine'), ('MN', 'Mongolia'), ('GH', 'Ghana'), ('BO', 'Bolivia (Plurinational State of)'), ('AR', 'Argentina'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('TK', 'Tokelau'), ('PT', 'Portugal'), ('CW', 'Curaçao'), ('BN', 'Brunei Darussalam'), ('AM', 'Armenia'), ('TL', 'Timor-Leste'), ('TO', 'Tonga'), ('MY', 'Malaysia'), ('AX', 'Åland Islands'), ('CY', 'Cyprus'), ('GL', 'Greenland'), ('RS', 'Serbia'), ('AF', 'Afghanistan'), ('LT', 'Lithuania'), ('KY', 'Cayman Islands'), ('SK', 'Slovakia'), ('SI', 'Slovenia'), ('CN', 'China'), ('CL', 'Chile'), ('BA', 'Bosnia and Herzegovina'), ('DO', 'Dominican Republic'), ('CH', 'Switzerland'), ('LV', 'Latvia'), ('HN', 'Honduras'), ('TH', 'Thailand'), ('GT', 'Guatemala'), ('SY', 'Syrian Arab Republic'), ('BT', 'Bhutan'), ('GS', 'South Georgia and the South Sandwich Islands'), ('YT', 'Mayotte'), ('MV', 'Maldives'), ('LY', 'Libya'), ('MG', 'Madagascar'), ('FI', 'Finland'), ('AE', 'United Arab Emirates'), ('ID', 'Indonesia'), ('AS', 'American Samoa'), ('IO', 'British Indian Ocean Territory'), ('RE', 'Réunion'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('ES', 'Spain'), ('MZ', 'Mozambique'), ('PN', 'Pitcairn'), ('DJ', 'Djibouti'), ('LI', 'Liechtenstein'), ('BZ', 'Belize'), ('EE', 'Estonia'), ('MF', 'Saint Martin (French part)'), ('PW', 'Palau'), ('TM', 'Turkmenistan'), ('AL', 'Albania'), ('MO', 'Macao'), ('AO', 'Angola'), ('VA', 'Holy See'), ('SN', 'Senegal'), ('GG', 'Guernsey'), ('MH', 'Marshall Islands'), ('NR', 'Nauru'), ('KE', 'Kenya'), ('BJ', 'Benin'), ('MA', 'Morocco'), ('EG', 'Egypt'), ('KG', 'Kyrgyzstan'), ('GD', 'Grenada'), ('IE', 'Ireland'), ('BG', 'Bulgaria'), ('HU', 'Hungary'), ('SD', 'Sudan'), ('NA', 'Namibia'), ('CU', 'Cuba'), ('BY', 'Belarus'), ('GR', 'Greece'), ('TW', 'Taiwan (Province of China)'), ('MT', 'Malta'), ('ST', 'Sao Tome and Principe'), ('JM', 'Jamaica'), ('BW', 'Botswana'), ('MM', 'Myanmar'), ('KI', 'Kiribati'), ('SA', 'Saudi Arabia'), ('FK', 'Falkland Islands [Malvinas]'), ('FR', 'France'), ('VI', 'Virgin Islands (U.S.)'), ('GA', 'Gabon'), ('ML', 'Mali'), ('LK', 'Sri Lanka'), ('FO', 'Faroe Islands'), ('CI', "Côte d'Ivoire"), ('LU', 'Luxembourg'), ('TN', 'Tunisia'), ('PA', 'Panama'), ('HK', 'Hong Kong'), ('TG', 'Togo'), ('KM', 'Comoros'), ('PH', 'Philippines'), ('PM', 'Saint Pierre and Miquelon'), ('AQ', 'Antarctica'), ('MW', 'Malawi'), ('MC', 'Monaco'), ('FJ', 'Fiji'), ('BI', 'Burundi'), ('PY', 'Paraguay'), ('SJ', 'Svalbard and Jan Mayen'), ('HM', 'Heard Island and McDonald Islands'), ('SS', 'South Sudan'), ('CZ', 'Czech Republic'), ('GU', 'Guam'), ('SZ', 'Swaziland'), ('GW', 'Guinea-Bissau'), ('CA', 'Canada'), ('EH', 'Western Sahara'), ('OM', 'Oman'), ('ER', 'Eritrea'), ('BE', 'Belgium'), ('CR', 'Costa Rica'), ('PK', 'Pakistan'), ('BD', 'Bangladesh')], default='ES', verbose_name='country', max_length=20), - ), - migrations.AlterField( - model_name='billline', - name='end_on', - field=models.DateField(blank=True, null=True, verbose_name='end'), - ), - ] diff --git a/orchestra/contrib/bills/migrations/0007_auto_20170528_2011.py b/orchestra/contrib/bills/migrations/0007_auto_20170528_2011.py deleted file mode 100644 index 0e07358..0000000 --- a/orchestra/contrib/bills/migrations/0007_auto_20170528_2011.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:11 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('bills', '0006_auto_20150709_1016'), - ] - - operations = [ - migrations.AlterModelOptions( - name='billline', - options={'get_latest_by': 'id'}, - ), - migrations.RemoveField( - model_name='bill', - name='total', - ), - migrations.AlterField( - model_name='billcontact', - name='country', - field=models.CharField(choices=[('LR', 'Liberia'), ('BJ', 'Benin'), ('FM', 'Micronesia (Federated States of)'), ('GS', 'South Georgia and the South Sandwich Islands'), ('AU', 'Australia'), ('PR', 'Puerto Rico'), ('MZ', 'Mozambique'), ('CR', 'Costa Rica'), ('ST', 'Sao Tome and Principe'), ('PL', 'Poland'), ('NG', 'Nigeria'), ('AS', 'American Samoa'), ('LS', 'Lesotho'), ('SG', 'Singapore'), ('BT', 'Bhutan'), ('TG', 'Togo'), ('DM', 'Dominica'), ('GP', 'Guadeloupe'), ('CI', "Côte d'Ivoire"), ('SR', 'Suriname'), ('ZM', 'Zambia'), ('CX', 'Christmas Island'), ('ME', 'Montenegro'), ('TR', 'Turkey'), ('UG', 'Uganda'), ('RU', 'Russian Federation'), ('PG', 'Papua New Guinea'), ('VG', 'Virgin Islands (British)'), ('CW', 'Curaçao'), ('PM', 'Saint Pierre and Miquelon'), ('KP', "Korea (the Democratic People's Republic of)"), ('TJ', 'Tajikistan'), ('FR', 'France'), ('AX', 'Åland Islands'), ('CU', 'Cuba'), ('BA', 'Bosnia and Herzegovina'), ('NA', 'Namibia'), ('MS', 'Montserrat'), ('US', 'United States of America'), ('PS', 'Palestine, State of'), ('MF', 'Saint Martin (French part)'), ('NE', 'Niger'), ('BH', 'Bahrain'), ('CK', 'Cook Islands'), ('JE', 'Jersey'), ('DJ', 'Djibouti'), ('GI', 'Gibraltar'), ('AL', 'Albania'), ('CA', 'Canada'), ('AI', 'Anguilla'), ('GF', 'French Guiana'), ('AW', 'Aruba'), ('PE', 'Peru'), ('SM', 'San Marino'), ('LK', 'Sri Lanka'), ('PN', 'Pitcairn'), ('KM', 'Comoros'), ('ER', 'Eritrea'), ('SK', 'Slovakia'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('SN', 'Senegal'), ('PW', 'Palau'), ('HT', 'Haiti'), ('MA', 'Morocco'), ('CY', 'Cyprus'), ('GT', 'Guatemala'), ('IT', 'Italy'), ('PY', 'Paraguay'), ('DO', 'Dominican Republic'), ('JO', 'Jordan'), ('AT', 'Austria'), ('NL', 'Netherlands'), ('AM', 'Armenia'), ('BN', 'Brunei Darussalam'), ('BB', 'Barbados'), ('IE', 'Ireland'), ('LB', 'Lebanon'), ('SI', 'Slovenia'), ('TM', 'Turkmenistan'), ('PH', 'Philippines'), ('GE', 'Georgia'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('GD', 'Grenada'), ('KI', 'Kiribati'), ('NZ', 'New Zealand'), ('SL', 'Sierra Leone'), ('VN', 'Viet Nam'), ('BZ', 'Belize'), ('TF', 'French Southern Territories'), ('HK', 'Hong Kong'), ('BY', 'Belarus'), ('SD', 'Sudan'), ('UM', 'United States Minor Outlying Islands'), ('ES', 'Spain'), ('GH', 'Ghana'), ('GL', 'Greenland'), ('AD', 'Andorra'), ('ML', 'Mali'), ('NC', 'New Caledonia'), ('IS', 'Iceland'), ('TC', 'Turks and Caicos Islands'), ('FI', 'Finland'), ('DK', 'Denmark'), ('MM', 'Myanmar'), ('MT', 'Malta'), ('TT', 'Trinidad and Tobago'), ('SZ', 'Swaziland'), ('QA', 'Qatar'), ('TN', 'Tunisia'), ('EC', 'Ecuador'), ('CM', 'Cameroon'), ('WF', 'Wallis and Futuna'), ('CO', 'Colombia'), ('MP', 'Northern Mariana Islands'), ('KH', 'Cambodia'), ('MY', 'Malaysia'), ('WS', 'Samoa'), ('NR', 'Nauru'), ('MV', 'Maldives'), ('LI', 'Liechtenstein'), ('BF', 'Burkina Faso'), ('BW', 'Botswana'), ('PF', 'French Polynesia'), ('HM', 'Heard Island and McDonald Islands'), ('SC', 'Seychelles'), ('GU', 'Guam'), ('TZ', 'Tanzania, United Republic of'), ('MQ', 'Martinique'), ('IN', 'India'), ('BE', 'Belgium'), ('SO', 'Somalia'), ('DZ', 'Algeria'), ('AQ', 'Antarctica'), ('TV', 'Tuvalu'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('MC', 'Monaco'), ('KW', 'Kuwait'), ('RO', 'Romania'), ('BL', 'Saint Barthélemy'), ('CV', 'Cabo Verde'), ('BR', 'Brazil'), ('JP', 'Japan'), ('NF', 'Norfolk Island'), ('IO', 'British Indian Ocean Territory'), ('SB', 'Solomon Islands'), ('IM', 'Isle of Man'), ('LC', 'Saint Lucia'), ('ID', 'Indonesia'), ('LA', "Lao People's Democratic Republic"), ('SE', 'Sweden'), ('KG', 'Kyrgyzstan'), ('HN', 'Honduras'), ('KR', 'Korea (the Republic of)'), ('BI', 'Burundi'), ('ZW', 'Zimbabwe'), ('IQ', 'Iraq'), ('SA', 'Saudi Arabia'), ('CN', 'China'), ('NU', 'Niue'), ('GQ', 'Equatorial Guinea'), ('UY', 'Uruguay'), ('LV', 'Latvia'), ('TH', 'Thailand'), ('CC', 'Cocos (Keeling) Islands'), ('EH', 'Western Sahara'), ('PA', 'Panama'), ('GN', 'Guinea'), ('SY', 'Syrian Arab Republic'), ('TK', 'Tokelau'), ('KY', 'Cayman Islands'), ('CD', 'Congo (the Democratic Republic of the)'), ('FO', 'Faroe Islands'), ('KN', 'Saint Kitts and Nevis'), ('EE', 'Estonia'), ('LU', 'Luxembourg'), ('MX', 'Mexico'), ('AF', 'Afghanistan'), ('SV', 'El Salvador'), ('AE', 'United Arab Emirates'), ('BG', 'Bulgaria'), ('BD', 'Bangladesh'), ('IR', 'Iran (Islamic Republic of)'), ('BS', 'Bahamas'), ('TW', 'Taiwan (Province of China)'), ('EG', 'Egypt'), ('GM', 'Gambia'), ('MG', 'Madagascar'), ('OM', 'Oman'), ('IL', 'Israel'), ('FJ', 'Fiji'), ('AG', 'Antigua and Barbuda'), ('LT', 'Lithuania'), ('DE', 'Germany'), ('KE', 'Kenya'), ('BV', 'Bouvet Island'), ('PT', 'Portugal'), ('AZ', 'Azerbaijan'), ('MN', 'Mongolia'), ('RW', 'Rwanda'), ('MR', 'Mauritania'), ('NI', 'Nicaragua'), ('YT', 'Mayotte'), ('SS', 'South Sudan'), ('YE', 'Yemen'), ('GY', 'Guyana'), ('SJ', 'Svalbard and Jan Mayen'), ('MH', 'Marshall Islands'), ('SX', 'Sint Maarten (Dutch part)'), ('GG', 'Guernsey'), ('HR', 'Croatia'), ('VU', 'Vanuatu'), ('MW', 'Malawi'), ('CZ', 'Czech Republic'), ('CH', 'Switzerland'), ('RS', 'Serbia'), ('LY', 'Libya'), ('MO', 'Macao'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('HU', 'Hungary'), ('GA', 'Gabon'), ('KZ', 'Kazakhstan'), ('TO', 'Tonga'), ('ET', 'Ethiopia'), ('UZ', 'Uzbekistan'), ('TD', 'Chad'), ('MD', 'Moldova (the Republic of)'), ('BO', 'Bolivia (Plurinational State of)'), ('AO', 'Angola'), ('GW', 'Guinea-Bissau'), ('VA', 'Holy See'), ('VC', 'Saint Vincent and the Grenadines'), ('TL', 'Timor-Leste'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('FK', 'Falkland Islands [Malvinas]'), ('ZA', 'South Africa'), ('PK', 'Pakistan'), ('CF', 'Central African Republic'), ('NO', 'Norway'), ('CG', 'Congo'), ('UA', 'Ukraine'), ('AR', 'Argentina'), ('CL', 'Chile'), ('VI', 'Virgin Islands (U.S.)'), ('MU', 'Mauritius'), ('JM', 'Jamaica'), ('RE', 'Réunion'), ('GR', 'Greece'), ('NP', 'Nepal'), ('BM', 'Bermuda')], default='ES', max_length=20, verbose_name='country'), - ), - migrations.AlterField( - model_name='billline', - name='order', - field=models.ForeignKey(blank=True, help_text='Informative link back to the order', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lines', to='orders.Order'), - ), - migrations.AlterField( - model_name='billline', - name='verbose_quantity', - field=models.CharField(blank=True, max_length=16, verbose_name='Verbose quantity'), - ), - ] diff --git a/orchestra/contrib/bills/migrations/0008_auto_20170625_1813.py b/orchestra/contrib/bills/migrations/0008_auto_20170625_1813.py deleted file mode 100644 index 512e9c6..0000000 --- a/orchestra/contrib/bills/migrations/0008_auto_20170625_1813.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:13 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bills', '0007_auto_20170528_2011'), - ] - - operations = [ - migrations.AlterField( - model_name='billcontact', - name='country', - field=models.CharField(choices=[('GA', 'Gabon'), ('TK', 'Tokelau'), ('GU', 'Guam'), ('MS', 'Montserrat'), ('AE', 'United Arab Emirates'), ('TW', 'Taiwan (Province of China)'), ('CX', 'Christmas Island'), ('MW', 'Malawi'), ('BE', 'Belgium'), ('CM', 'Cameroon'), ('PY', 'Paraguay'), ('MU', 'Mauritius'), ('KP', "Korea (the Democratic People's Republic of)"), ('KE', 'Kenya'), ('CD', 'Congo (the Democratic Republic of the)'), ('LS', 'Lesotho'), ('LA', "Lao People's Democratic Republic"), ('GG', 'Guernsey'), ('KZ', 'Kazakhstan'), ('AI', 'Anguilla'), ('PA', 'Panama'), ('KI', 'Kiribati'), ('IE', 'Ireland'), ('BN', 'Brunei Darussalam'), ('CO', 'Colombia'), ('OM', 'Oman'), ('FJ', 'Fiji'), ('SJ', 'Svalbard and Jan Mayen'), ('GF', 'French Guiana'), ('MP', 'Northern Mariana Islands'), ('SM', 'San Marino'), ('YT', 'Mayotte'), ('MT', 'Malta'), ('FM', 'Micronesia (Federated States of)'), ('RU', 'Russian Federation'), ('CU', 'Cuba'), ('SG', 'Singapore'), ('BZ', 'Belize'), ('YE', 'Yemen'), ('MV', 'Maldives'), ('VC', 'Saint Vincent and the Grenadines'), ('NG', 'Nigeria'), ('EH', 'Western Sahara'), ('NZ', 'New Zealand'), ('DE', 'Germany'), ('TH', 'Thailand'), ('TN', 'Tunisia'), ('MH', 'Marshall Islands'), ('GY', 'Guyana'), ('IO', 'British Indian Ocean Territory'), ('LV', 'Latvia'), ('NP', 'Nepal'), ('VG', 'Virgin Islands (British)'), ('TF', 'French Southern Territories'), ('SO', 'Somalia'), ('WF', 'Wallis and Futuna'), ('FK', 'Falkland Islands [Malvinas]'), ('VN', 'Viet Nam'), ('ES', 'Spain'), ('TM', 'Turkmenistan'), ('EG', 'Egypt'), ('PK', 'Pakistan'), ('AT', 'Austria'), ('SB', 'Solomon Islands'), ('GT', 'Guatemala'), ('KH', 'Cambodia'), ('BD', 'Bangladesh'), ('GH', 'Ghana'), ('LR', 'Liberia'), ('GW', 'Guinea-Bissau'), ('UZ', 'Uzbekistan'), ('MN', 'Mongolia'), ('TR', 'Turkey'), ('DO', 'Dominican Republic'), ('PN', 'Pitcairn'), ('LK', 'Sri Lanka'), ('UG', 'Uganda'), ('GM', 'Gambia'), ('BH', 'Bahrain'), ('FR', 'France'), ('PL', 'Poland'), ('AQ', 'Antarctica'), ('CF', 'Central African Republic'), ('HR', 'Croatia'), ('AO', 'Angola'), ('RO', 'Romania'), ('MG', 'Madagascar'), ('UY', 'Uruguay'), ('PS', 'Palestine, State of'), ('ET', 'Ethiopia'), ('NO', 'Norway'), ('LT', 'Lithuania'), ('FO', 'Faroe Islands'), ('ST', 'Sao Tome and Principe'), ('JO', 'Jordan'), ('ME', 'Montenegro'), ('MY', 'Malaysia'), ('LY', 'Libya'), ('PT', 'Portugal'), ('CA', 'Canada'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('CG', 'Congo'), ('NL', 'Netherlands'), ('BM', 'Bermuda'), ('TT', 'Trinidad and Tobago'), ('ID', 'Indonesia'), ('SX', 'Sint Maarten (Dutch part)'), ('AR', 'Argentina'), ('HN', 'Honduras'), ('SI', 'Slovenia'), ('DJ', 'Djibouti'), ('KR', 'Korea (the Republic of)'), ('CI', "Côte d'Ivoire"), ('BB', 'Barbados'), ('AD', 'Andorra'), ('JE', 'Jersey'), ('PG', 'Papua New Guinea'), ('MX', 'Mexico'), ('TL', 'Timor-Leste'), ('SV', 'El Salvador'), ('TV', 'Tuvalu'), ('EE', 'Estonia'), ('LI', 'Liechtenstein'), ('MA', 'Morocco'), ('LU', 'Luxembourg'), ('LB', 'Lebanon'), ('SE', 'Sweden'), ('CV', 'Cabo Verde'), ('RE', 'Réunion'), ('NI', 'Nicaragua'), ('BY', 'Belarus'), ('TJ', 'Tajikistan'), ('NR', 'Nauru'), ('AG', 'Antigua and Barbuda'), ('SZ', 'Swaziland'), ('DM', 'Dominica'), ('ZM', 'Zambia'), ('CL', 'Chile'), ('TC', 'Turks and Caicos Islands'), ('GP', 'Guadeloupe'), ('DZ', 'Algeria'), ('RS', 'Serbia'), ('AW', 'Aruba'), ('ER', 'Eritrea'), ('BI', 'Burundi'), ('EC', 'Ecuador'), ('ML', 'Mali'), ('IL', 'Israel'), ('JM', 'Jamaica'), ('MC', 'Monaco'), ('CZ', 'Czech Republic'), ('BT', 'Bhutan'), ('CY', 'Cyprus'), ('PF', 'French Polynesia'), ('MZ', 'Mozambique'), ('ZW', 'Zimbabwe'), ('KM', 'Comoros'), ('SL', 'Sierra Leone'), ('CW', 'Curaçao'), ('SY', 'Syrian Arab Republic'), ('MF', 'Saint Martin (French part)'), ('LC', 'Saint Lucia'), ('HM', 'Heard Island and McDonald Islands'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('KG', 'Kyrgyzstan'), ('MD', 'Moldova (the Republic of)'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('US', 'United States of America'), ('HU', 'Hungary'), ('TD', 'Chad'), ('CK', 'Cook Islands'), ('UA', 'Ukraine'), ('SN', 'Senegal'), ('GE', 'Georgia'), ('BF', 'Burkina Faso'), ('VA', 'Holy See'), ('SC', 'Seychelles'), ('PW', 'Palau'), ('BW', 'Botswana'), ('SR', 'Suriname'), ('IR', 'Iran (Islamic Republic of)'), ('MM', 'Myanmar'), ('SK', 'Slovakia'), ('SA', 'Saudi Arabia'), ('RW', 'Rwanda'), ('KW', 'Kuwait'), ('GN', 'Guinea'), ('AZ', 'Azerbaijan'), ('AL', 'Albania'), ('NC', 'New Caledonia'), ('MQ', 'Martinique'), ('CR', 'Costa Rica'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('BS', 'Bahamas'), ('AF', 'Afghanistan'), ('AS', 'American Samoa'), ('MR', 'Mauritania'), ('AM', 'Armenia'), ('CH', 'Switzerland'), ('IM', 'Isle of Man'), ('BL', 'Saint Barthélemy'), ('VI', 'Virgin Islands (U.S.)'), ('WS', 'Samoa'), ('SS', 'South Sudan'), ('NU', 'Niue'), ('IS', 'Iceland'), ('ZA', 'South Africa'), ('DK', 'Denmark'), ('GL', 'Greenland'), ('JP', 'Japan'), ('FI', 'Finland'), ('TZ', 'Tanzania, United Republic of'), ('IT', 'Italy'), ('CN', 'China'), ('AX', 'Åland Islands'), ('PE', 'Peru'), ('GR', 'Greece'), ('SD', 'Sudan'), ('BA', 'Bosnia and Herzegovina'), ('NA', 'Namibia'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('IQ', 'Iraq'), ('KN', 'Saint Kitts and Nevis'), ('IN', 'India'), ('BV', 'Bouvet Island'), ('MO', 'Macao'), ('HK', 'Hong Kong'), ('TO', 'Tonga'), ('NE', 'Niger'), ('TG', 'Togo'), ('PH', 'Philippines'), ('UM', 'United States Minor Outlying Islands'), ('GQ', 'Equatorial Guinea'), ('BG', 'Bulgaria'), ('AU', 'Australia'), ('GD', 'Grenada'), ('QA', 'Qatar'), ('GI', 'Gibraltar'), ('HT', 'Haiti'), ('GS', 'South Georgia and the South Sandwich Islands'), ('CC', 'Cocos (Keeling) Islands'), ('BR', 'Brazil'), ('PM', 'Saint Pierre and Miquelon'), ('BO', 'Bolivia (Plurinational State of)'), ('NF', 'Norfolk Island'), ('BJ', 'Benin'), ('VU', 'Vanuatu'), ('KY', 'Cayman Islands'), ('PR', 'Puerto Rico')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/bills/migrations/0009_auto_20170625_1840.py b/orchestra/contrib/bills/migrations/0009_auto_20170625_1840.py deleted file mode 100644 index 36879af..0000000 --- a/orchestra/contrib/bills/migrations/0009_auto_20170625_1840.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:40 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bills', '0008_auto_20170625_1813'), - ] - - operations = [ - migrations.AlterField( - model_name='billcontact', - name='country', - field=models.CharField(choices=[('CD', 'Congo (the Democratic Republic of the)'), ('SO', 'Somalia'), ('TO', 'Tonga'), ('TF', 'French Southern Territories'), ('VN', 'Viet Nam'), ('TC', 'Turks and Caicos Islands'), ('KG', 'Kyrgyzstan'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('AR', 'Argentina'), ('TD', 'Chad'), ('EH', 'Western Sahara'), ('PL', 'Poland'), ('SI', 'Slovenia'), ('RU', 'Russian Federation'), ('GR', 'Greece'), ('AZ', 'Azerbaijan'), ('IR', 'Iran (Islamic Republic of)'), ('PY', 'Paraguay'), ('BJ', 'Benin'), ('PH', 'Philippines'), ('BM', 'Bermuda'), ('CZ', 'Czech Republic'), ('BS', 'Bahamas'), ('PS', 'Palestine, State of'), ('ES', 'Spain'), ('NF', 'Norfolk Island'), ('BH', 'Bahrain'), ('SD', 'Sudan'), ('US', 'United States of America'), ('GQ', 'Equatorial Guinea'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('CU', 'Cuba'), ('BD', 'Bangladesh'), ('AL', 'Albania'), ('IT', 'Italy'), ('KZ', 'Kazakhstan'), ('TV', 'Tuvalu'), ('ET', 'Ethiopia'), ('LA', "Lao People's Democratic Republic"), ('ID', 'Indonesia'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('CO', 'Colombia'), ('IO', 'British Indian Ocean Territory'), ('IL', 'Israel'), ('CF', 'Central African Republic'), ('MN', 'Mongolia'), ('VG', 'Virgin Islands (British)'), ('LB', 'Lebanon'), ('LK', 'Sri Lanka'), ('AO', 'Angola'), ('WF', 'Wallis and Futuna'), ('GI', 'Gibraltar'), ('PM', 'Saint Pierre and Miquelon'), ('HK', 'Hong Kong'), ('PF', 'French Polynesia'), ('SY', 'Syrian Arab Republic'), ('JO', 'Jordan'), ('SL', 'Sierra Leone'), ('LV', 'Latvia'), ('ZW', 'Zimbabwe'), ('SC', 'Seychelles'), ('MM', 'Myanmar'), ('QA', 'Qatar'), ('CM', 'Cameroon'), ('SN', 'Senegal'), ('LS', 'Lesotho'), ('TL', 'Timor-Leste'), ('GA', 'Gabon'), ('LR', 'Liberia'), ('MT', 'Malta'), ('SX', 'Sint Maarten (Dutch part)'), ('AU', 'Australia'), ('MY', 'Malaysia'), ('MA', 'Morocco'), ('SK', 'Slovakia'), ('UG', 'Uganda'), ('GH', 'Ghana'), ('RO', 'Romania'), ('NL', 'Netherlands'), ('MP', 'Northern Mariana Islands'), ('NO', 'Norway'), ('NA', 'Namibia'), ('ZM', 'Zambia'), ('PW', 'Palau'), ('BT', 'Bhutan'), ('PE', 'Peru'), ('BW', 'Botswana'), ('RW', 'Rwanda'), ('JP', 'Japan'), ('NR', 'Nauru'), ('GW', 'Guinea-Bissau'), ('AQ', 'Antarctica'), ('LC', 'Saint Lucia'), ('CY', 'Cyprus'), ('SA', 'Saudi Arabia'), ('LT', 'Lithuania'), ('BB', 'Barbados'), ('RS', 'Serbia'), ('CL', 'Chile'), ('BL', 'Saint Barthélemy'), ('MQ', 'Martinique'), ('CW', 'Curaçao'), ('OM', 'Oman'), ('KR', 'Korea (the Republic of)'), ('GY', 'Guyana'), ('TJ', 'Tajikistan'), ('AS', 'American Samoa'), ('IS', 'Iceland'), ('TG', 'Togo'), ('LY', 'Libya'), ('AM', 'Armenia'), ('NG', 'Nigeria'), ('GL', 'Greenland'), ('AT', 'Austria'), ('SS', 'South Sudan'), ('KE', 'Kenya'), ('MW', 'Malawi'), ('DE', 'Germany'), ('AX', 'Åland Islands'), ('MO', 'Macao'), ('MD', 'Moldova (the Republic of)'), ('AI', 'Anguilla'), ('GG', 'Guernsey'), ('TH', 'Thailand'), ('MG', 'Madagascar'), ('BY', 'Belarus'), ('LI', 'Liechtenstein'), ('NE', 'Niger'), ('KP', "Korea (the Democratic People's Republic of)"), ('PN', 'Pitcairn'), ('PT', 'Portugal'), ('BF', 'Burkina Faso'), ('KY', 'Cayman Islands'), ('HU', 'Hungary'), ('MZ', 'Mozambique'), ('UZ', 'Uzbekistan'), ('EC', 'Ecuador'), ('DJ', 'Djibouti'), ('NU', 'Niue'), ('YT', 'Mayotte'), ('CR', 'Costa Rica'), ('TW', 'Taiwan (Province of China)'), ('JM', 'Jamaica'), ('SJ', 'Svalbard and Jan Mayen'), ('GN', 'Guinea'), ('BZ', 'Belize'), ('KN', 'Saint Kitts and Nevis'), ('CK', 'Cook Islands'), ('SR', 'Suriname'), ('FJ', 'Fiji'), ('FO', 'Faroe Islands'), ('VI', 'Virgin Islands (U.S.)'), ('AW', 'Aruba'), ('IM', 'Isle of Man'), ('KW', 'Kuwait'), ('BN', 'Brunei Darussalam'), ('SB', 'Solomon Islands'), ('GS', 'South Georgia and the South Sandwich Islands'), ('BI', 'Burundi'), ('DO', 'Dominican Republic'), ('BG', 'Bulgaria'), ('DM', 'Dominica'), ('GM', 'Gambia'), ('SZ', 'Swaziland'), ('PK', 'Pakistan'), ('TZ', 'Tanzania, United Republic of'), ('ZA', 'South Africa'), ('YE', 'Yemen'), ('VU', 'Vanuatu'), ('HT', 'Haiti'), ('GP', 'Guadeloupe'), ('NC', 'New Caledonia'), ('PR', 'Puerto Rico'), ('TR', 'Turkey'), ('DZ', 'Algeria'), ('HM', 'Heard Island and McDonald Islands'), ('SV', 'El Salvador'), ('CV', 'Cabo Verde'), ('CA', 'Canada'), ('TM', 'Turkmenistan'), ('MR', 'Mauritania'), ('ST', 'Sao Tome and Principe'), ('SE', 'Sweden'), ('HR', 'Croatia'), ('TK', 'Tokelau'), ('GU', 'Guam'), ('EG', 'Egypt'), ('IN', 'India'), ('SM', 'San Marino'), ('TN', 'Tunisia'), ('KI', 'Kiribati'), ('LU', 'Luxembourg'), ('KM', 'Comoros'), ('SG', 'Singapore'), ('CI', "Côte d'Ivoire"), ('AE', 'United Arab Emirates'), ('ML', 'Mali'), ('GF', 'French Guiana'), ('MU', 'Mauritius'), ('BR', 'Brazil'), ('HN', 'Honduras'), ('CX', 'Christmas Island'), ('MC', 'Monaco'), ('ER', 'Eritrea'), ('PA', 'Panama'), ('FI', 'Finland'), ('GD', 'Grenada'), ('FK', 'Falkland Islands [Malvinas]'), ('BE', 'Belgium'), ('BO', 'Bolivia (Plurinational State of)'), ('CC', 'Cocos (Keeling) Islands'), ('IE', 'Ireland'), ('MS', 'Montserrat'), ('EE', 'Estonia'), ('CH', 'Switzerland'), ('BV', 'Bouvet Island'), ('MX', 'Mexico'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('AF', 'Afghanistan'), ('VC', 'Saint Vincent and the Grenadines'), ('BA', 'Bosnia and Herzegovina'), ('GT', 'Guatemala'), ('KH', 'Cambodia'), ('GE', 'Georgia'), ('RE', 'Réunion'), ('FR', 'France'), ('PG', 'Papua New Guinea'), ('WS', 'Samoa'), ('DK', 'Denmark'), ('NZ', 'New Zealand'), ('MV', 'Maldives'), ('UM', 'United States Minor Outlying Islands'), ('AD', 'Andorra'), ('JE', 'Jersey'), ('TT', 'Trinidad and Tobago'), ('AG', 'Antigua and Barbuda'), ('NP', 'Nepal'), ('IQ', 'Iraq'), ('ME', 'Montenegro'), ('NI', 'Nicaragua'), ('UA', 'Ukraine'), ('CN', 'China'), ('FM', 'Micronesia (Federated States of)'), ('MH', 'Marshall Islands'), ('UY', 'Uruguay'), ('CG', 'Congo'), ('VA', 'Holy See'), ('MF', 'Saint Martin (French part)'), ('BQ', 'Bonaire, Sint Eustatius and Saba')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/bills/migrations/0010_auto_20170625_1840.py b/orchestra/contrib/bills/migrations/0010_auto_20170625_1840.py deleted file mode 100644 index 9cd7db4..0000000 --- a/orchestra/contrib/bills/migrations/0010_auto_20170625_1840.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:40 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bills', '0009_auto_20170625_1840'), - ] - - operations = [ - migrations.AlterField( - model_name='billcontact', - name='country', - field=models.CharField(choices=[('TF', 'French Southern Territories'), ('BN', 'Brunei Darussalam'), ('TK', 'Tokelau'), ('EC', 'Ecuador'), ('JE', 'Jersey'), ('MC', 'Monaco'), ('SA', 'Saudi Arabia'), ('CI', "Côte d'Ivoire"), ('LA', "Lao People's Democratic Republic"), ('CX', 'Christmas Island'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('CZ', 'Czech Republic'), ('MO', 'Macao'), ('TC', 'Turks and Caicos Islands'), ('MU', 'Mauritius'), ('TL', 'Timor-Leste'), ('GU', 'Guam'), ('NI', 'Nicaragua'), ('TZ', 'Tanzania, United Republic of'), ('EH', 'Western Sahara'), ('BB', 'Barbados'), ('GM', 'Gambia'), ('SX', 'Sint Maarten (Dutch part)'), ('DJ', 'Djibouti'), ('BA', 'Bosnia and Herzegovina'), ('BD', 'Bangladesh'), ('CO', 'Colombia'), ('FO', 'Faroe Islands'), ('VI', 'Virgin Islands (U.S.)'), ('MH', 'Marshall Islands'), ('NL', 'Netherlands'), ('ID', 'Indonesia'), ('BR', 'Brazil'), ('SL', 'Sierra Leone'), ('MR', 'Mauritania'), ('UZ', 'Uzbekistan'), ('UG', 'Uganda'), ('LI', 'Liechtenstein'), ('VN', 'Viet Nam'), ('UM', 'United States Minor Outlying Islands'), ('TJ', 'Tajikistan'), ('BJ', 'Benin'), ('AQ', 'Antarctica'), ('BE', 'Belgium'), ('CC', 'Cocos (Keeling) Islands'), ('BT', 'Bhutan'), ('MD', 'Moldova (the Republic of)'), ('CW', 'Curaçao'), ('HN', 'Honduras'), ('HU', 'Hungary'), ('MW', 'Malawi'), ('UA', 'Ukraine'), ('CH', 'Switzerland'), ('ZA', 'South Africa'), ('KY', 'Cayman Islands'), ('VG', 'Virgin Islands (British)'), ('HM', 'Heard Island and McDonald Islands'), ('SN', 'Senegal'), ('PK', 'Pakistan'), ('GW', 'Guinea-Bissau'), ('BM', 'Bermuda'), ('SM', 'San Marino'), ('AL', 'Albania'), ('OM', 'Oman'), ('LU', 'Luxembourg'), ('NR', 'Nauru'), ('PT', 'Portugal'), ('AD', 'Andorra'), ('AF', 'Afghanistan'), ('PE', 'Peru'), ('TR', 'Turkey'), ('YE', 'Yemen'), ('RU', 'Russian Federation'), ('CU', 'Cuba'), ('NF', 'Norfolk Island'), ('LC', 'Saint Lucia'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('EE', 'Estonia'), ('HR', 'Croatia'), ('CY', 'Cyprus'), ('VC', 'Saint Vincent and the Grenadines'), ('ZW', 'Zimbabwe'), ('BY', 'Belarus'), ('SD', 'Sudan'), ('SZ', 'Swaziland'), ('SR', 'Suriname'), ('CD', 'Congo (the Democratic Republic of the)'), ('AM', 'Armenia'), ('AW', 'Aruba'), ('CN', 'China'), ('ZM', 'Zambia'), ('MT', 'Malta'), ('DK', 'Denmark'), ('TW', 'Taiwan (Province of China)'), ('MN', 'Mongolia'), ('KN', 'Saint Kitts and Nevis'), ('IL', 'Israel'), ('GS', 'South Georgia and the South Sandwich Islands'), ('IM', 'Isle of Man'), ('KP', "Korea (the Democratic People's Republic of)"), ('PF', 'French Polynesia'), ('BH', 'Bahrain'), ('RO', 'Romania'), ('GI', 'Gibraltar'), ('PL', 'Poland'), ('LT', 'Lithuania'), ('LY', 'Libya'), ('IE', 'Ireland'), ('MZ', 'Mozambique'), ('BZ', 'Belize'), ('NE', 'Niger'), ('AO', 'Angola'), ('GE', 'Georgia'), ('WS', 'Samoa'), ('PM', 'Saint Pierre and Miquelon'), ('BV', 'Bouvet Island'), ('IO', 'British Indian Ocean Territory'), ('NO', 'Norway'), ('TV', 'Tuvalu'), ('MP', 'Northern Mariana Islands'), ('FJ', 'Fiji'), ('ES', 'Spain'), ('DZ', 'Algeria'), ('UY', 'Uruguay'), ('HT', 'Haiti'), ('FK', 'Falkland Islands [Malvinas]'), ('KZ', 'Kazakhstan'), ('IQ', 'Iraq'), ('ET', 'Ethiopia'), ('IT', 'Italy'), ('NG', 'Nigeria'), ('SG', 'Singapore'), ('ST', 'Sao Tome and Principe'), ('NP', 'Nepal'), ('MX', 'Mexico'), ('NA', 'Namibia'), ('GD', 'Grenada'), ('AT', 'Austria'), ('NC', 'New Caledonia'), ('DM', 'Dominica'), ('LV', 'Latvia'), ('CG', 'Congo'), ('DE', 'Germany'), ('AS', 'American Samoa'), ('KH', 'Cambodia'), ('SB', 'Solomon Islands'), ('GG', 'Guernsey'), ('PN', 'Pitcairn'), ('GL', 'Greenland'), ('KI', 'Kiribati'), ('BG', 'Bulgaria'), ('DO', 'Dominican Republic'), ('RE', 'Réunion'), ('BI', 'Burundi'), ('SE', 'Sweden'), ('MF', 'Saint Martin (French part)'), ('GR', 'Greece'), ('RS', 'Serbia'), ('GT', 'Guatemala'), ('KE', 'Kenya'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('TN', 'Tunisia'), ('MY', 'Malaysia'), ('SO', 'Somalia'), ('ML', 'Mali'), ('TD', 'Chad'), ('BS', 'Bahamas'), ('FI', 'Finland'), ('KW', 'Kuwait'), ('SK', 'Slovakia'), ('TH', 'Thailand'), ('IS', 'Iceland'), ('MQ', 'Martinique'), ('GY', 'Guyana'), ('IN', 'India'), ('SJ', 'Svalbard and Jan Mayen'), ('SS', 'South Sudan'), ('KM', 'Comoros'), ('MA', 'Morocco'), ('TG', 'Togo'), ('AE', 'United Arab Emirates'), ('CM', 'Cameroon'), ('CV', 'Cabo Verde'), ('MM', 'Myanmar'), ('NZ', 'New Zealand'), ('AU', 'Australia'), ('PS', 'Palestine, State of'), ('QA', 'Qatar'), ('BW', 'Botswana'), ('FM', 'Micronesia (Federated States of)'), ('MS', 'Montserrat'), ('YT', 'Mayotte'), ('TM', 'Turkmenistan'), ('IR', 'Iran (Islamic Republic of)'), ('BL', 'Saint Barthélemy'), ('PY', 'Paraguay'), ('PH', 'Philippines'), ('EG', 'Egypt'), ('PR', 'Puerto Rico'), ('FR', 'France'), ('KG', 'Kyrgyzstan'), ('GP', 'Guadeloupe'), ('GF', 'French Guiana'), ('MV', 'Maldives'), ('NU', 'Niue'), ('SY', 'Syrian Arab Republic'), ('JP', 'Japan'), ('PA', 'Panama'), ('GA', 'Gabon'), ('VU', 'Vanuatu'), ('LB', 'Lebanon'), ('BF', 'Burkina Faso'), ('SC', 'Seychelles'), ('LR', 'Liberia'), ('BO', 'Bolivia (Plurinational State of)'), ('WF', 'Wallis and Futuna'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('RW', 'Rwanda'), ('PG', 'Papua New Guinea'), ('VA', 'Holy See'), ('CF', 'Central African Republic'), ('TT', 'Trinidad and Tobago'), ('CR', 'Costa Rica'), ('GH', 'Ghana'), ('AG', 'Antigua and Barbuda'), ('TO', 'Tonga'), ('LK', 'Sri Lanka'), ('CK', 'Cook Islands'), ('CA', 'Canada'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('AZ', 'Azerbaijan'), ('ER', 'Eritrea'), ('MG', 'Madagascar'), ('AX', 'Åland Islands'), ('PW', 'Palau'), ('ME', 'Montenegro'), ('SV', 'El Salvador'), ('GN', 'Guinea'), ('GQ', 'Equatorial Guinea'), ('KR', 'Korea (the Republic of)'), ('AI', 'Anguilla'), ('SI', 'Slovenia'), ('AR', 'Argentina'), ('HK', 'Hong Kong'), ('CL', 'Chile'), ('JM', 'Jamaica'), ('LS', 'Lesotho'), ('US', 'United States of America'), ('JO', 'Jordan')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/bills/migrations/0011_auto_20170625_1840.py b/orchestra/contrib/bills/migrations/0011_auto_20170625_1840.py deleted file mode 100644 index e7fea51..0000000 --- a/orchestra/contrib/bills/migrations/0011_auto_20170625_1840.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:40 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bills', '0010_auto_20170625_1840'), - ] - - operations = [ - migrations.AlterField( - model_name='billcontact', - name='country', - field=models.CharField(choices=[('CX', 'Christmas Island'), ('KW', 'Kuwait'), ('PF', 'French Polynesia'), ('UZ', 'Uzbekistan'), ('SZ', 'Swaziland'), ('KI', 'Kiribati'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('MF', 'Saint Martin (French part)'), ('NE', 'Niger'), ('EG', 'Egypt'), ('MY', 'Malaysia'), ('BA', 'Bosnia and Herzegovina'), ('FI', 'Finland'), ('AT', 'Austria'), ('GT', 'Guatemala'), ('MZ', 'Mozambique'), ('NP', 'Nepal'), ('AW', 'Aruba'), ('SG', 'Singapore'), ('BT', 'Bhutan'), ('VG', 'Virgin Islands (British)'), ('DZ', 'Algeria'), ('TH', 'Thailand'), ('AZ', 'Azerbaijan'), ('TJ', 'Tajikistan'), ('NC', 'New Caledonia'), ('ML', 'Mali'), ('KR', 'Korea (the Republic of)'), ('SK', 'Slovakia'), ('MM', 'Myanmar'), ('AQ', 'Antarctica'), ('LV', 'Latvia'), ('BH', 'Bahrain'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('SB', 'Solomon Islands'), ('ET', 'Ethiopia'), ('LS', 'Lesotho'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('WF', 'Wallis and Futuna'), ('BM', 'Bermuda'), ('PS', 'Palestine, State of'), ('IM', 'Isle of Man'), ('BZ', 'Belize'), ('KM', 'Comoros'), ('GY', 'Guyana'), ('CO', 'Colombia'), ('GF', 'French Guiana'), ('MX', 'Mexico'), ('MD', 'Moldova (the Republic of)'), ('AU', 'Australia'), ('TZ', 'Tanzania, United Republic of'), ('AX', 'Åland Islands'), ('HM', 'Heard Island and McDonald Islands'), ('IL', 'Israel'), ('SE', 'Sweden'), ('RO', 'Romania'), ('NU', 'Niue'), ('EC', 'Ecuador'), ('TG', 'Togo'), ('UY', 'Uruguay'), ('NL', 'Netherlands'), ('TO', 'Tonga'), ('ME', 'Montenegro'), ('TT', 'Trinidad and Tobago'), ('RE', 'Réunion'), ('PT', 'Portugal'), ('ID', 'Indonesia'), ('GH', 'Ghana'), ('NF', 'Norfolk Island'), ('BR', 'Brazil'), ('CG', 'Congo'), ('MW', 'Malawi'), ('MN', 'Mongolia'), ('VA', 'Holy See'), ('KP', "Korea (the Democratic People's Republic of)"), ('SY', 'Syrian Arab Republic'), ('BB', 'Barbados'), ('VC', 'Saint Vincent and the Grenadines'), ('KE', 'Kenya'), ('CN', 'China'), ('KH', 'Cambodia'), ('IN', 'India'), ('MH', 'Marshall Islands'), ('YE', 'Yemen'), ('LU', 'Luxembourg'), ('TM', 'Turkmenistan'), ('UM', 'United States Minor Outlying Islands'), ('TN', 'Tunisia'), ('ES', 'Spain'), ('AM', 'Armenia'), ('TR', 'Turkey'), ('HU', 'Hungary'), ('AO', 'Angola'), ('HR', 'Croatia'), ('SL', 'Sierra Leone'), ('TL', 'Timor-Leste'), ('JE', 'Jersey'), ('ZW', 'Zimbabwe'), ('RU', 'Russian Federation'), ('CD', 'Congo (the Democratic Republic of the)'), ('IT', 'Italy'), ('MO', 'Macao'), ('CA', 'Canada'), ('SX', 'Sint Maarten (Dutch part)'), ('AF', 'Afghanistan'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('DE', 'Germany'), ('LK', 'Sri Lanka'), ('FO', 'Faroe Islands'), ('CV', 'Cabo Verde'), ('MT', 'Malta'), ('TW', 'Taiwan (Province of China)'), ('AD', 'Andorra'), ('ER', 'Eritrea'), ('JO', 'Jordan'), ('IQ', 'Iraq'), ('EH', 'Western Sahara'), ('CI', "Côte d'Ivoire"), ('CM', 'Cameroon'), ('CZ', 'Czech Republic'), ('MS', 'Montserrat'), ('AS', 'American Samoa'), ('SA', 'Saudi Arabia'), ('PK', 'Pakistan'), ('PL', 'Poland'), ('YT', 'Mayotte'), ('BD', 'Bangladesh'), ('SI', 'Slovenia'), ('TF', 'French Southern Territories'), ('PE', 'Peru'), ('NG', 'Nigeria'), ('GW', 'Guinea-Bissau'), ('IR', 'Iran (Islamic Republic of)'), ('SO', 'Somalia'), ('AI', 'Anguilla'), ('GR', 'Greece'), ('VI', 'Virgin Islands (U.S.)'), ('DO', 'Dominican Republic'), ('MC', 'Monaco'), ('UG', 'Uganda'), ('GP', 'Guadeloupe'), ('KY', 'Cayman Islands'), ('BO', 'Bolivia (Plurinational State of)'), ('AR', 'Argentina'), ('BN', 'Brunei Darussalam'), ('LA', "Lao People's Democratic Republic"), ('BI', 'Burundi'), ('JP', 'Japan'), ('WS', 'Samoa'), ('FK', 'Falkland Islands [Malvinas]'), ('SD', 'Sudan'), ('MU', 'Mauritius'), ('CF', 'Central African Republic'), ('GD', 'Grenada'), ('IE', 'Ireland'), ('HT', 'Haiti'), ('TC', 'Turks and Caicos Islands'), ('BY', 'Belarus'), ('MP', 'Northern Mariana Islands'), ('HN', 'Honduras'), ('MG', 'Madagascar'), ('FJ', 'Fiji'), ('SS', 'South Sudan'), ('SV', 'El Salvador'), ('PR', 'Puerto Rico'), ('GE', 'Georgia'), ('RS', 'Serbia'), ('TK', 'Tokelau'), ('JM', 'Jamaica'), ('KZ', 'Kazakhstan'), ('PA', 'Panama'), ('PH', 'Philippines'), ('MR', 'Mauritania'), ('ZM', 'Zambia'), ('CY', 'Cyprus'), ('GS', 'South Georgia and the South Sandwich Islands'), ('BF', 'Burkina Faso'), ('SR', 'Suriname'), ('FM', 'Micronesia (Federated States of)'), ('BW', 'Botswana'), ('ZA', 'South Africa'), ('AL', 'Albania'), ('DK', 'Denmark'), ('US', 'United States of America'), ('KG', 'Kyrgyzstan'), ('CH', 'Switzerland'), ('BG', 'Bulgaria'), ('GL', 'Greenland'), ('LC', 'Saint Lucia'), ('TV', 'Tuvalu'), ('HK', 'Hong Kong'), ('AE', 'United Arab Emirates'), ('PY', 'Paraguay'), ('BV', 'Bouvet Island'), ('PG', 'Papua New Guinea'), ('NO', 'Norway'), ('LY', 'Libya'), ('ST', 'Sao Tome and Principe'), ('DM', 'Dominica'), ('BL', 'Saint Barthélemy'), ('FR', 'France'), ('CU', 'Cuba'), ('IS', 'Iceland'), ('MA', 'Morocco'), ('GI', 'Gibraltar'), ('MV', 'Maldives'), ('MQ', 'Martinique'), ('GM', 'Gambia'), ('RW', 'Rwanda'), ('BJ', 'Benin'), ('NR', 'Nauru'), ('OM', 'Oman'), ('QA', 'Qatar'), ('CW', 'Curaçao'), ('LT', 'Lithuania'), ('CL', 'Chile'), ('BE', 'Belgium'), ('NZ', 'New Zealand'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('PN', 'Pitcairn'), ('LB', 'Lebanon'), ('DJ', 'Djibouti'), ('GQ', 'Equatorial Guinea'), ('IO', 'British Indian Ocean Territory'), ('PW', 'Palau'), ('EE', 'Estonia'), ('AG', 'Antigua and Barbuda'), ('VU', 'Vanuatu'), ('GA', 'Gabon'), ('SN', 'Senegal'), ('KN', 'Saint Kitts and Nevis'), ('CK', 'Cook Islands'), ('UA', 'Ukraine'), ('SJ', 'Svalbard and Jan Mayen'), ('GU', 'Guam'), ('CC', 'Cocos (Keeling) Islands'), ('CR', 'Costa Rica'), ('GN', 'Guinea'), ('PM', 'Saint Pierre and Miquelon'), ('SM', 'San Marino'), ('GG', 'Guernsey'), ('TD', 'Chad'), ('NA', 'Namibia'), ('LR', 'Liberia'), ('BS', 'Bahamas'), ('NI', 'Nicaragua'), ('SC', 'Seychelles'), ('VN', 'Viet Nam'), ('LI', 'Liechtenstein')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/bills/migrations/0012_auto_20170625_1841.py b/orchestra/contrib/bills/migrations/0012_auto_20170625_1841.py deleted file mode 100644 index 28d7dab..0000000 --- a/orchestra/contrib/bills/migrations/0012_auto_20170625_1841.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:41 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bills', '0011_auto_20170625_1840'), - ] - - operations = [ - migrations.AlterField( - model_name='billcontact', - name='country', - field=models.CharField(choices=[('BI', 'Burundi'), ('PN', 'Pitcairn'), ('GD', 'Grenada'), ('NF', 'Norfolk Island'), ('UM', 'United States Minor Outlying Islands'), ('KN', 'Saint Kitts and Nevis'), ('ES', 'Spain'), ('AI', 'Anguilla'), ('BJ', 'Benin'), ('BA', 'Bosnia and Herzegovina'), ('PF', 'French Polynesia'), ('AL', 'Albania'), ('ME', 'Montenegro'), ('PK', 'Pakistan'), ('IE', 'Ireland'), ('GS', 'South Georgia and the South Sandwich Islands'), ('BV', 'Bouvet Island'), ('SV', 'El Salvador'), ('BR', 'Brazil'), ('PG', 'Papua New Guinea'), ('VG', 'Virgin Islands (British)'), ('DK', 'Denmark'), ('MV', 'Maldives'), ('JP', 'Japan'), ('BM', 'Bermuda'), ('GM', 'Gambia'), ('VC', 'Saint Vincent and the Grenadines'), ('SM', 'San Marino'), ('NR', 'Nauru'), ('LA', "Lao People's Democratic Republic"), ('RO', 'Romania'), ('UZ', 'Uzbekistan'), ('CM', 'Cameroon'), ('SS', 'South Sudan'), ('BG', 'Bulgaria'), ('NL', 'Netherlands'), ('GA', 'Gabon'), ('GG', 'Guernsey'), ('MD', 'Moldova (the Republic of)'), ('MG', 'Madagascar'), ('LU', 'Luxembourg'), ('TW', 'Taiwan (Province of China)'), ('CA', 'Canada'), ('DO', 'Dominican Republic'), ('AR', 'Argentina'), ('SK', 'Slovakia'), ('CV', 'Cabo Verde'), ('OM', 'Oman'), ('ET', 'Ethiopia'), ('FI', 'Finland'), ('BW', 'Botswana'), ('KZ', 'Kazakhstan'), ('SG', 'Singapore'), ('SI', 'Slovenia'), ('US', 'United States of America'), ('LI', 'Liechtenstein'), ('PR', 'Puerto Rico'), ('EC', 'Ecuador'), ('KH', 'Cambodia'), ('BY', 'Belarus'), ('GT', 'Guatemala'), ('SA', 'Saudi Arabia'), ('ML', 'Mali'), ('YE', 'Yemen'), ('SZ', 'Swaziland'), ('CX', 'Christmas Island'), ('AO', 'Angola'), ('HM', 'Heard Island and McDonald Islands'), ('EE', 'Estonia'), ('TM', 'Turkmenistan'), ('WF', 'Wallis and Futuna'), ('LR', 'Liberia'), ('IN', 'India'), ('FM', 'Micronesia (Federated States of)'), ('IR', 'Iran (Islamic Republic of)'), ('LC', 'Saint Lucia'), ('AU', 'Australia'), ('DJ', 'Djibouti'), ('MU', 'Mauritius'), ('ZW', 'Zimbabwe'), ('SC', 'Seychelles'), ('SR', 'Suriname'), ('GI', 'Gibraltar'), ('LV', 'Latvia'), ('RE', 'Réunion'), ('PY', 'Paraguay'), ('ST', 'Sao Tome and Principe'), ('PM', 'Saint Pierre and Miquelon'), ('CW', 'Curaçao'), ('IO', 'British Indian Ocean Territory'), ('PS', 'Palestine, State of'), ('YT', 'Mayotte'), ('LT', 'Lithuania'), ('AS', 'American Samoa'), ('QA', 'Qatar'), ('LB', 'Lebanon'), ('AG', 'Antigua and Barbuda'), ('FK', 'Falkland Islands [Malvinas]'), ('FR', 'France'), ('BO', 'Bolivia (Plurinational State of)'), ('HT', 'Haiti'), ('PH', 'Philippines'), ('KG', 'Kyrgyzstan'), ('UY', 'Uruguay'), ('TJ', 'Tajikistan'), ('GY', 'Guyana'), ('FO', 'Faroe Islands'), ('CI', "Côte d'Ivoire"), ('MZ', 'Mozambique'), ('AF', 'Afghanistan'), ('CL', 'Chile'), ('JE', 'Jersey'), ('HN', 'Honduras'), ('JM', 'Jamaica'), ('MH', 'Marshall Islands'), ('KR', 'Korea (the Republic of)'), ('TZ', 'Tanzania, United Republic of'), ('PT', 'Portugal'), ('NI', 'Nicaragua'), ('HR', 'Croatia'), ('ID', 'Indonesia'), ('SY', 'Syrian Arab Republic'), ('BZ', 'Belize'), ('HK', 'Hong Kong'), ('CD', 'Congo (the Democratic Republic of the)'), ('GL', 'Greenland'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('TH', 'Thailand'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('TC', 'Turks and Caicos Islands'), ('TR', 'Turkey'), ('NA', 'Namibia'), ('PW', 'Palau'), ('MO', 'Macao'), ('NO', 'Norway'), ('MR', 'Mauritania'), ('JO', 'Jordan'), ('VN', 'Viet Nam'), ('SB', 'Solomon Islands'), ('GE', 'Georgia'), ('IQ', 'Iraq'), ('BD', 'Bangladesh'), ('BF', 'Burkina Faso'), ('UG', 'Uganda'), ('GH', 'Ghana'), ('MW', 'Malawi'), ('TO', 'Tonga'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('BH', 'Bahrain'), ('KP', "Korea (the Democratic People's Republic of)"), ('LK', 'Sri Lanka'), ('GP', 'Guadeloupe'), ('AT', 'Austria'), ('MS', 'Montserrat'), ('BE', 'Belgium'), ('KE', 'Kenya'), ('GN', 'Guinea'), ('AD', 'Andorra'), ('MA', 'Morocco'), ('NG', 'Nigeria'), ('CC', 'Cocos (Keeling) Islands'), ('AM', 'Armenia'), ('BN', 'Brunei Darussalam'), ('DZ', 'Algeria'), ('PA', 'Panama'), ('CZ', 'Czech Republic'), ('CU', 'Cuba'), ('MM', 'Myanmar'), ('AZ', 'Azerbaijan'), ('SD', 'Sudan'), ('IS', 'Iceland'), ('VA', 'Holy See'), ('CY', 'Cyprus'), ('BT', 'Bhutan'), ('TN', 'Tunisia'), ('VU', 'Vanuatu'), ('TF', 'French Southern Territories'), ('IL', 'Israel'), ('TK', 'Tokelau'), ('SO', 'Somalia'), ('SX', 'Sint Maarten (Dutch part)'), ('LY', 'Libya'), ('MF', 'Saint Martin (French part)'), ('CF', 'Central African Republic'), ('TL', 'Timor-Leste'), ('SJ', 'Svalbard and Jan Mayen'), ('CR', 'Costa Rica'), ('MY', 'Malaysia'), ('EG', 'Egypt'), ('BB', 'Barbados'), ('ER', 'Eritrea'), ('NU', 'Niue'), ('DE', 'Germany'), ('AX', 'Åland Islands'), ('CN', 'China'), ('DM', 'Dominica'), ('GU', 'Guam'), ('MP', 'Northern Mariana Islands'), ('VI', 'Virgin Islands (U.S.)'), ('MQ', 'Martinique'), ('TG', 'Togo'), ('MX', 'Mexico'), ('IM', 'Isle of Man'), ('RW', 'Rwanda'), ('FJ', 'Fiji'), ('TT', 'Trinidad and Tobago'), ('KI', 'Kiribati'), ('TD', 'Chad'), ('GR', 'Greece'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('UA', 'Ukraine'), ('HU', 'Hungary'), ('SL', 'Sierra Leone'), ('WS', 'Samoa'), ('IT', 'Italy'), ('BL', 'Saint Barthélemy'), ('EH', 'Western Sahara'), ('BS', 'Bahamas'), ('TV', 'Tuvalu'), ('PE', 'Peru'), ('ZA', 'South Africa'), ('NE', 'Niger'), ('MT', 'Malta'), ('CK', 'Cook Islands'), ('GQ', 'Equatorial Guinea'), ('GF', 'French Guiana'), ('NZ', 'New Zealand'), ('LS', 'Lesotho'), ('KY', 'Cayman Islands'), ('MN', 'Mongolia'), ('RU', 'Russian Federation'), ('ZM', 'Zambia'), ('AQ', 'Antarctica'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('CH', 'Switzerland'), ('AW', 'Aruba'), ('MC', 'Monaco'), ('KM', 'Comoros'), ('CG', 'Congo'), ('PL', 'Poland'), ('CO', 'Colombia'), ('SN', 'Senegal'), ('NP', 'Nepal'), ('RS', 'Serbia'), ('GW', 'Guinea-Bissau'), ('AE', 'United Arab Emirates'), ('NC', 'New Caledonia'), ('KW', 'Kuwait'), ('SE', 'Sweden')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/bills/migrations/0013_auto_20190805_1134.py b/orchestra/contrib/bills/migrations/0013_auto_20190805_1134.py deleted file mode 100644 index aabeb93..0000000 --- a/orchestra/contrib/bills/migrations/0013_auto_20190805_1134.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2019-08-05 09:34 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bills', '0012_auto_20170625_1841'), - ] - - operations = [ - migrations.AlterField( - model_name='billcontact', - name='country', - field=models.CharField(choices=[('CG', 'Congo'), ('MS', 'Montserrat'), ('UM', 'United States Minor Outlying Islands'), ('GL', 'Greenland'), ('PS', 'Palestine, State of'), ('HR', 'Croatia'), ('CW', 'Curaçao'), ('EC', 'Ecuador'), ('UG', 'Uganda'), ('ID', 'Indonesia'), ('ET', 'Ethiopia'), ('ZM', 'Zambia'), ('VC', 'Saint Vincent and the Grenadines'), ('AT', 'Austria'), ('BA', 'Bosnia and Herzegovina'), ('BI', 'Burundi'), ('AI', 'Anguilla'), ('FK', 'Falkland Islands [Malvinas]'), ('PN', 'Pitcairn'), ('BY', 'Belarus'), ('KY', 'Cayman Islands'), ('UZ', 'Uzbekistan'), ('GR', 'Greece'), ('LK', 'Sri Lanka'), ('FR', 'France'), ('CF', 'Central African Republic'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('ZW', 'Zimbabwe'), ('EG', 'Egypt'), ('MH', 'Marshall Islands'), ('BB', 'Barbados'), ('CZ', 'Czech Republic'), ('SJ', 'Svalbard and Jan Mayen'), ('MQ', 'Martinique'), ('MT', 'Malta'), ('BV', 'Bouvet Island'), ('KG', 'Kyrgyzstan'), ('AD', 'Andorra'), ('SR', 'Suriname'), ('UA', 'Ukraine'), ('MF', 'Saint Martin (French part)'), ('IO', 'British Indian Ocean Territory'), ('KN', 'Saint Kitts and Nevis'), ('SX', 'Sint Maarten (Dutch part)'), ('BD', 'Bangladesh'), ('IS', 'Iceland'), ('NE', 'Niger'), ('SN', 'Senegal'), ('GY', 'Guyana'), ('SA', 'Saudi Arabia'), ('AQ', 'Antarctica'), ('HU', 'Hungary'), ('AU', 'Australia'), ('SY', 'Syrian Arab Republic'), ('BF', 'Burkina Faso'), ('TF', 'French Southern Territories'), ('AE', 'United Arab Emirates'), ('VU', 'Vanuatu'), ('WF', 'Wallis and Futuna'), ('CD', 'Congo (the Democratic Republic of the)'), ('LC', 'Saint Lucia'), ('NU', 'Niue'), ('GW', 'Guinea-Bissau'), ('KH', 'Cambodia'), ('TV', 'Tuvalu'), ('KE', 'Kenya'), ('LT', 'Lithuania'), ('PK', 'Pakistan'), ('BO', 'Bolivia (Plurinational State of)'), ('NG', 'Nigeria'), ('RE', 'Réunion'), ('TL', 'Timor-Leste'), ('SG', 'Singapore'), ('NC', 'New Caledonia'), ('LS', 'Lesotho'), ('IQ', 'Iraq'), ('KW', 'Kuwait'), ('VN', 'Viet Nam'), ('YT', 'Mayotte'), ('GD', 'Grenada'), ('VA', 'Holy See'), ('FI', 'Finland'), ('CH', 'Switzerland'), ('UY', 'Uruguay'), ('EH', 'Western Sahara'), ('RS', 'Serbia'), ('CX', 'Christmas Island'), ('MC', 'Monaco'), ('VG', 'Virgin Islands (British)'), ('GF', 'French Guiana'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('DM', 'Dominica'), ('JO', 'Jordan'), ('GH', 'Ghana'), ('US', 'United States of America'), ('CV', 'Cabo Verde'), ('PA', 'Panama'), ('MY', 'Malaysia'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('MX', 'Mexico'), ('LU', 'Luxembourg'), ('WS', 'Samoa'), ('ER', 'Eritrea'), ('CK', 'Cook Islands'), ('CI', "Côte d'Ivoire"), ('PT', 'Portugal'), ('CN', 'China'), ('LR', 'Liberia'), ('MP', 'Northern Mariana Islands'), ('KP', "Korea (the Democratic People's Republic of)"), ('ML', 'Mali'), ('CY', 'Cyprus'), ('TT', 'Trinidad and Tobago'), ('GI', 'Gibraltar'), ('HK', 'Hong Kong'), ('TK', 'Tokelau'), ('AL', 'Albania'), ('BJ', 'Benin'), ('CL', 'Chile'), ('SO', 'Somalia'), ('PE', 'Peru'), ('BS', 'Bahamas'), ('BM', 'Bermuda'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('ST', 'Sao Tome and Principe'), ('TN', 'Tunisia'), ('HT', 'Haiti'), ('AX', 'Åland Islands'), ('IE', 'Ireland'), ('MR', 'Mauritania'), ('BE', 'Belgium'), ('DE', 'Germany'), ('JE', 'Jersey'), ('KZ', 'Kazakhstan'), ('TR', 'Turkey'), ('FJ', 'Fiji'), ('AO', 'Angola'), ('DZ', 'Algeria'), ('MV', 'Maldives'), ('NL', 'Netherlands'), ('BW', 'Botswana'), ('SV', 'El Salvador'), ('AZ', 'Azerbaijan'), ('IM', 'Isle of Man'), ('PF', 'French Polynesia'), ('AF', 'Afghanistan'), ('TG', 'Togo'), ('EE', 'Estonia'), ('JM', 'Jamaica'), ('GS', 'South Georgia and the South Sandwich Islands'), ('LI', 'Liechtenstein'), ('GM', 'Gambia'), ('ES', 'Spain'), ('PL', 'Poland'), ('DO', 'Dominican Republic'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('BL', 'Saint Barthélemy'), ('GQ', 'Equatorial Guinea'), ('ME', 'Montenegro'), ('GE', 'Georgia'), ('LA', "Lao People's Democratic Republic"), ('BT', 'Bhutan'), ('SC', 'Seychelles'), ('SM', 'San Marino'), ('CU', 'Cuba'), ('KR', 'Korea (the Republic of)'), ('VI', 'Virgin Islands (U.S.)'), ('PY', 'Paraguay'), ('AM', 'Armenia'), ('NA', 'Namibia'), ('PW', 'Palau'), ('BR', 'Brazil'), ('CR', 'Costa Rica'), ('BH', 'Bahrain'), ('PM', 'Saint Pierre and Miquelon'), ('QA', 'Qatar'), ('LY', 'Libya'), ('TM', 'Turkmenistan'), ('FO', 'Faroe Islands'), ('YE', 'Yemen'), ('TZ', 'Tanzania, United Republic of'), ('SD', 'Sudan'), ('SK', 'Slovakia'), ('KM', 'Comoros'), ('HM', 'Heard Island and McDonald Islands'), ('MZ', 'Mozambique'), ('MG', 'Madagascar'), ('CO', 'Colombia'), ('TC', 'Turks and Caicos Islands'), ('RW', 'Rwanda'), ('IL', 'Israel'), ('BZ', 'Belize'), ('MN', 'Mongolia'), ('AW', 'Aruba'), ('GA', 'Gabon'), ('CM', 'Cameroon'), ('PH', 'Philippines'), ('DJ', 'Djibouti'), ('KI', 'Kiribati'), ('RO', 'Romania'), ('PG', 'Papua New Guinea'), ('DK', 'Denmark'), ('TD', 'Chad'), ('BN', 'Brunei Darussalam'), ('LV', 'Latvia'), ('CA', 'Canada'), ('SL', 'Sierra Leone'), ('IR', 'Iran (Islamic Republic of)'), ('BG', 'Bulgaria'), ('AR', 'Argentina'), ('TO', 'Tonga'), ('GP', 'Guadeloupe'), ('HN', 'Honduras'), ('AG', 'Antigua and Barbuda'), ('NP', 'Nepal'), ('MA', 'Morocco'), ('SZ', 'Swaziland'), ('TW', 'Taiwan (Province of China)'), ('RU', 'Russian Federation'), ('NR', 'Nauru'), ('GG', 'Guernsey'), ('TH', 'Thailand'), ('CC', 'Cocos (Keeling) Islands'), ('MU', 'Mauritius'), ('ZA', 'South Africa'), ('OM', 'Oman'), ('SB', 'Solomon Islands'), ('SE', 'Sweden'), ('SS', 'South Sudan'), ('NO', 'Norway'), ('SI', 'Slovenia'), ('GU', 'Guam'), ('GT', 'Guatemala'), ('PR', 'Puerto Rico'), ('GN', 'Guinea'), ('MO', 'Macao'), ('IN', 'India'), ('NI', 'Nicaragua'), ('TJ', 'Tajikistan'), ('NZ', 'New Zealand'), ('MD', 'Moldova (the Republic of)'), ('MM', 'Myanmar'), ('NF', 'Norfolk Island'), ('AS', 'American Samoa'), ('FM', 'Micronesia (Federated States of)'), ('IT', 'Italy'), ('MW', 'Malawi'), ('JP', 'Japan'), ('LB', 'Lebanon')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/bills/migrations/0014_auto_20200204_1217.py b/orchestra/contrib/bills/migrations/0014_auto_20200204_1217.py deleted file mode 100644 index 79f4d87..0000000 --- a/orchestra/contrib/bills/migrations/0014_auto_20200204_1217.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2020-02-04 11:17 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bills', '0013_auto_20190805_1134'), - ] - - operations = [ - migrations.CreateModel( - name='AbonoInvoice', - fields=[ - ], - options={ - 'proxy': True, - }, - bases=('bills.bill',), - ), - migrations.AlterField( - model_name='bill', - name='type', - field=models.CharField(choices=[('INVOICE', 'Invoice'), ('AMENDMENTINVOICE', 'Amendment invoice'), ('FEE', 'Fee'), ('AMENDMENTFEE', 'Amendment Fee'), ('ABONOINVOICE', 'Abono Invoice'), ('PROFORMA', 'Pro forma')], max_length=16, verbose_name='type'), - ), - migrations.AlterField( - model_name='billcontact', - name='country', - field=models.CharField(choices=[('KZ', 'Kazakhstan'), ('GY', 'Guyana'), ('BA', 'Bosnia and Herzegovina'), ('AS', 'American Samoa'), ('SO', 'Somalia'), ('GE', 'Georgia'), ('DK', 'Denmark'), ('NL', 'Netherlands'), ('HR', 'Croatia'), ('DZ', 'Algeria'), ('TG', 'Togo'), ('GP', 'Guadeloupe'), ('AX', 'Åland Islands'), ('LU', 'Luxembourg'), ('BN', 'Brunei Darussalam'), ('GQ', 'Equatorial Guinea'), ('GL', 'Greenland'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('KR', 'Korea (the Republic of)'), ('MH', 'Marshall Islands'), ('NO', 'Norway'), ('EC', 'Ecuador'), ('RS', 'Serbia'), ('FK', 'Falkland Islands [Malvinas]'), ('SJ', 'Svalbard and Jan Mayen'), ('ME', 'Montenegro'), ('GW', 'Guinea-Bissau'), ('LS', 'Lesotho'), ('PT', 'Portugal'), ('CU', 'Cuba'), ('TV', 'Tuvalu'), ('JP', 'Japan'), ('CA', 'Canada'), ('ER', 'Eritrea'), ('ET', 'Ethiopia'), ('GR', 'Greece'), ('RU', 'Russian Federation'), ('BH', 'Bahrain'), ('LI', 'Liechtenstein'), ('MP', 'Northern Mariana Islands'), ('CX', 'Christmas Island'), ('PS', 'Palestine, State of'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('WS', 'Samoa'), ('AT', 'Austria'), ('TL', 'Timor-Leste'), ('KM', 'Comoros'), ('WF', 'Wallis and Futuna'), ('BR', 'Brazil'), ('GT', 'Guatemala'), ('RW', 'Rwanda'), ('HM', 'Heard Island and McDonald Islands'), ('NI', 'Nicaragua'), ('IT', 'Italy'), ('MT', 'Malta'), ('BL', 'Saint Barthélemy'), ('AF', 'Afghanistan'), ('CG', 'Congo'), ('NR', 'Nauru'), ('FJ', 'Fiji'), ('MV', 'Maldives'), ('VU', 'Vanuatu'), ('DE', 'Germany'), ('BM', 'Bermuda'), ('NZ', 'New Zealand'), ('AM', 'Armenia'), ('PR', 'Puerto Rico'), ('ES', 'Spain'), ('NC', 'New Caledonia'), ('DJ', 'Djibouti'), ('LY', 'Libya'), ('AI', 'Anguilla'), ('TT', 'Trinidad and Tobago'), ('LK', 'Sri Lanka'), ('FR', 'France'), ('SG', 'Singapore'), ('ST', 'Sao Tome and Principe'), ('IR', 'Iran (Islamic Republic of)'), ('BF', 'Burkina Faso'), ('IS', 'Iceland'), ('TN', 'Tunisia'), ('MM', 'Myanmar'), ('AQ', 'Antarctica'), ('ZW', 'Zimbabwe'), ('SR', 'Suriname'), ('NF', 'Norfolk Island'), ('AO', 'Angola'), ('SV', 'El Salvador'), ('EH', 'Western Sahara'), ('GN', 'Guinea'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('FM', 'Micronesia (Federated States of)'), ('GH', 'Ghana'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('HU', 'Hungary'), ('AL', 'Albania'), ('OM', 'Oman'), ('VA', 'Holy See'), ('KI', 'Kiribati'), ('PM', 'Saint Pierre and Miquelon'), ('SS', 'South Sudan'), ('ID', 'Indonesia'), ('NP', 'Nepal'), ('BE', 'Belgium'), ('CF', 'Central African Republic'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('MQ', 'Martinique'), ('UY', 'Uruguay'), ('SA', 'Saudi Arabia'), ('TD', 'Chad'), ('FI', 'Finland'), ('SZ', 'Swaziland'), ('LB', 'Lebanon'), ('CL', 'Chile'), ('KE', 'Kenya'), ('RO', 'Romania'), ('BT', 'Bhutan'), ('QA', 'Qatar'), ('BD', 'Bangladesh'), ('KH', 'Cambodia'), ('HN', 'Honduras'), ('MS', 'Montserrat'), ('KP', "Korea (the Democratic People's Republic of)"), ('GD', 'Grenada'), ('BJ', 'Benin'), ('JM', 'Jamaica'), ('LT', 'Lithuania'), ('CM', 'Cameroon'), ('CR', 'Costa Rica'), ('CD', 'Congo (the Democratic Republic of the)'), ('IE', 'Ireland'), ('CW', 'Curaçao'), ('PH', 'Philippines'), ('GM', 'Gambia'), ('YE', 'Yemen'), ('AU', 'Australia'), ('BW', 'Botswana'), ('KW', 'Kuwait'), ('IQ', 'Iraq'), ('ML', 'Mali'), ('MG', 'Madagascar'), ('GS', 'South Georgia and the South Sandwich Islands'), ('MN', 'Mongolia'), ('EE', 'Estonia'), ('FO', 'Faroe Islands'), ('MF', 'Saint Martin (French part)'), ('AZ', 'Azerbaijan'), ('CK', 'Cook Islands'), ('SI', 'Slovenia'), ('CC', 'Cocos (Keeling) Islands'), ('SE', 'Sweden'), ('ZA', 'South Africa'), ('HT', 'Haiti'), ('MU', 'Mauritius'), ('BG', 'Bulgaria'), ('TF', 'French Southern Territories'), ('AR', 'Argentina'), ('VG', 'Virgin Islands (British)'), ('LV', 'Latvia'), ('CN', 'China'), ('TZ', 'Tanzania, United Republic of'), ('VC', 'Saint Vincent and the Grenadines'), ('DO', 'Dominican Republic'), ('KY', 'Cayman Islands'), ('NU', 'Niue'), ('AD', 'Andorra'), ('VN', 'Viet Nam'), ('LR', 'Liberia'), ('SX', 'Sint Maarten (Dutch part)'), ('TK', 'Tokelau'), ('LA', "Lao People's Democratic Republic"), ('GI', 'Gibraltar'), ('HK', 'Hong Kong'), ('JO', 'Jordan'), ('PA', 'Panama'), ('TC', 'Turks and Caicos Islands'), ('PE', 'Peru'), ('UA', 'Ukraine'), ('NG', 'Nigeria'), ('TO', 'Tonga'), ('BV', 'Bouvet Island'), ('CY', 'Cyprus'), ('GF', 'French Guiana'), ('SY', 'Syrian Arab Republic'), ('IM', 'Isle of Man'), ('BO', 'Bolivia (Plurinational State of)'), ('LC', 'Saint Lucia'), ('CO', 'Colombia'), ('NA', 'Namibia'), ('BB', 'Barbados'), ('KN', 'Saint Kitts and Nevis'), ('BS', 'Bahamas'), ('MC', 'Monaco'), ('VI', 'Virgin Islands (U.S.)'), ('MW', 'Malawi'), ('MO', 'Macao'), ('SC', 'Seychelles'), ('SL', 'Sierra Leone'), ('PN', 'Pitcairn'), ('IL', 'Israel'), ('CI', "Côte d'Ivoire"), ('MA', 'Morocco'), ('JE', 'Jersey'), ('MR', 'Mauritania'), ('CZ', 'Czech Republic'), ('CH', 'Switzerland'), ('PW', 'Palau'), ('PG', 'Papua New Guinea'), ('SK', 'Slovakia'), ('NE', 'Niger'), ('TW', 'Taiwan (Province of China)'), ('AW', 'Aruba'), ('CV', 'Cabo Verde'), ('ZM', 'Zambia'), ('SB', 'Solomon Islands'), ('UG', 'Uganda'), ('KG', 'Kyrgyzstan'), ('BZ', 'Belize'), ('SN', 'Senegal'), ('DM', 'Dominica'), ('MD', 'Moldova (the Republic of)'), ('UM', 'United States Minor Outlying Islands'), ('US', 'United States of America'), ('MX', 'Mexico'), ('IO', 'British Indian Ocean Territory'), ('IN', 'India'), ('SD', 'Sudan'), ('BY', 'Belarus'), ('SM', 'San Marino'), ('MY', 'Malaysia'), ('GG', 'Guernsey'), ('TR', 'Turkey'), ('TH', 'Thailand'), ('MZ', 'Mozambique'), ('GU', 'Guam'), ('EG', 'Egypt'), ('PF', 'French Polynesia'), ('YT', 'Mayotte'), ('PY', 'Paraguay'), ('TJ', 'Tajikistan'), ('PL', 'Poland'), ('AE', 'United Arab Emirates'), ('AG', 'Antigua and Barbuda'), ('UZ', 'Uzbekistan'), ('BI', 'Burundi'), ('RE', 'Réunion'), ('GA', 'Gabon'), ('PK', 'Pakistan'), ('TM', 'Turkmenistan')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/bills/migrations/0015_auto_20200204_1218.py b/orchestra/contrib/bills/migrations/0015_auto_20200204_1218.py deleted file mode 100644 index 58df422..0000000 --- a/orchestra/contrib/bills/migrations/0015_auto_20200204_1218.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2020-02-04 11:18 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bills', '0014_auto_20200204_1217'), - ] - - operations = [ - migrations.AlterField( - model_name='billcontact', - name='country', - field=models.CharField(choices=[('OM', 'Oman'), ('AM', 'Armenia'), ('WF', 'Wallis and Futuna'), ('ET', 'Ethiopia'), ('IR', 'Iran (Islamic Republic of)'), ('BR', 'Brazil'), ('TG', 'Togo'), ('SV', 'El Salvador'), ('SL', 'Sierra Leone'), ('CO', 'Colombia'), ('MQ', 'Martinique'), ('SY', 'Syrian Arab Republic'), ('TL', 'Timor-Leste'), ('GR', 'Greece'), ('HU', 'Hungary'), ('TO', 'Tonga'), ('AU', 'Australia'), ('BI', 'Burundi'), ('MV', 'Maldives'), ('WS', 'Samoa'), ('TC', 'Turks and Caicos Islands'), ('KW', 'Kuwait'), ('NP', 'Nepal'), ('MZ', 'Mozambique'), ('PF', 'French Polynesia'), ('US', 'United States of America'), ('MA', 'Morocco'), ('PS', 'Palestine, State of'), ('KH', 'Cambodia'), ('KZ', 'Kazakhstan'), ('MH', 'Marshall Islands'), ('CK', 'Cook Islands'), ('ST', 'Sao Tome and Principe'), ('LT', 'Lithuania'), ('BV', 'Bouvet Island'), ('RO', 'Romania'), ('TK', 'Tokelau'), ('CX', 'Christmas Island'), ('UG', 'Uganda'), ('TV', 'Tuvalu'), ('GY', 'Guyana'), ('GF', 'French Guiana'), ('ME', 'Montenegro'), ('MT', 'Malta'), ('LB', 'Lebanon'), ('ML', 'Mali'), ('TW', 'Taiwan (Province of China)'), ('FR', 'France'), ('AO', 'Angola'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('GQ', 'Equatorial Guinea'), ('CU', 'Cuba'), ('CM', 'Cameroon'), ('FI', 'Finland'), ('FO', 'Faroe Islands'), ('JM', 'Jamaica'), ('BT', 'Bhutan'), ('KG', 'Kyrgyzstan'), ('BF', 'Burkina Faso'), ('EH', 'Western Sahara'), ('CD', 'Congo (the Democratic Republic of the)'), ('UZ', 'Uzbekistan'), ('PK', 'Pakistan'), ('IN', 'India'), ('DJ', 'Djibouti'), ('LY', 'Libya'), ('BL', 'Saint Barthélemy'), ('SB', 'Solomon Islands'), ('NL', 'Netherlands'), ('NZ', 'New Zealand'), ('LC', 'Saint Lucia'), ('CN', 'China'), ('CF', 'Central African Republic'), ('JE', 'Jersey'), ('HT', 'Haiti'), ('HK', 'Hong Kong'), ('AQ', 'Antarctica'), ('MG', 'Madagascar'), ('SG', 'Singapore'), ('PA', 'Panama'), ('CW', 'Curaçao'), ('HM', 'Heard Island and McDonald Islands'), ('PW', 'Palau'), ('BB', 'Barbados'), ('VC', 'Saint Vincent and the Grenadines'), ('SD', 'Sudan'), ('BW', 'Botswana'), ('TT', 'Trinidad and Tobago'), ('TM', 'Turkmenistan'), ('LR', 'Liberia'), ('PY', 'Paraguay'), ('ZA', 'South Africa'), ('HR', 'Croatia'), ('CI', "Côte d'Ivoire"), ('DO', 'Dominican Republic'), ('AD', 'Andorra'), ('DM', 'Dominica'), ('SZ', 'Swaziland'), ('FM', 'Micronesia (Federated States of)'), ('VA', 'Holy See'), ('GM', 'Gambia'), ('IT', 'Italy'), ('LA', "Lao People's Democratic Republic"), ('KM', 'Comoros'), ('CA', 'Canada'), ('IE', 'Ireland'), ('PR', 'Puerto Rico'), ('TD', 'Chad'), ('BM', 'Bermuda'), ('CV', 'Cabo Verde'), ('KE', 'Kenya'), ('MY', 'Malaysia'), ('PL', 'Poland'), ('PN', 'Pitcairn'), ('PE', 'Peru'), ('CL', 'Chile'), ('KR', 'Korea (the Republic of)'), ('AE', 'United Arab Emirates'), ('LU', 'Luxembourg'), ('BE', 'Belgium'), ('KP', "Korea (the Democratic People's Republic of)"), ('AZ', 'Azerbaijan'), ('AL', 'Albania'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('VI', 'Virgin Islands (U.S.)'), ('BO', 'Bolivia (Plurinational State of)'), ('EG', 'Egypt'), ('KN', 'Saint Kitts and Nevis'), ('MU', 'Mauritius'), ('AR', 'Argentina'), ('SN', 'Senegal'), ('SC', 'Seychelles'), ('GN', 'Guinea'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('MS', 'Montserrat'), ('BJ', 'Benin'), ('VU', 'Vanuatu'), ('MO', 'Macao'), ('CZ', 'Czech Republic'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('SA', 'Saudi Arabia'), ('SS', 'South Sudan'), ('NI', 'Nicaragua'), ('RE', 'Réunion'), ('DZ', 'Algeria'), ('KY', 'Cayman Islands'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('CR', 'Costa Rica'), ('AX', 'Åland Islands'), ('GA', 'Gabon'), ('BD', 'Bangladesh'), ('IS', 'Iceland'), ('TH', 'Thailand'), ('VG', 'Virgin Islands (British)'), ('LS', 'Lesotho'), ('ID', 'Indonesia'), ('UY', 'Uruguay'), ('TN', 'Tunisia'), ('GW', 'Guinea-Bissau'), ('SJ', 'Svalbard and Jan Mayen'), ('EE', 'Estonia'), ('ZM', 'Zambia'), ('AG', 'Antigua and Barbuda'), ('MP', 'Northern Mariana Islands'), ('JO', 'Jordan'), ('CY', 'Cyprus'), ('GS', 'South Georgia and the South Sandwich Islands'), ('CG', 'Congo'), ('IL', 'Israel'), ('RW', 'Rwanda'), ('NO', 'Norway'), ('IQ', 'Iraq'), ('FK', 'Falkland Islands [Malvinas]'), ('TZ', 'Tanzania, United Republic of'), ('AT', 'Austria'), ('AS', 'American Samoa'), ('BY', 'Belarus'), ('TF', 'French Southern Territories'), ('EC', 'Ecuador'), ('GT', 'Guatemala'), ('MF', 'Saint Martin (French part)'), ('MX', 'Mexico'), ('AF', 'Afghanistan'), ('AI', 'Anguilla'), ('JP', 'Japan'), ('BN', 'Brunei Darussalam'), ('AW', 'Aruba'), ('NF', 'Norfolk Island'), ('IO', 'British Indian Ocean Territory'), ('ER', 'Eritrea'), ('SK', 'Slovakia'), ('GE', 'Georgia'), ('LK', 'Sri Lanka'), ('MR', 'Mauritania'), ('GD', 'Grenada'), ('VN', 'Viet Nam'), ('YE', 'Yemen'), ('CH', 'Switzerland'), ('HN', 'Honduras'), ('MM', 'Myanmar'), ('ZW', 'Zimbabwe'), ('FJ', 'Fiji'), ('NA', 'Namibia'), ('MN', 'Mongolia'), ('QA', 'Qatar'), ('UA', 'Ukraine'), ('BG', 'Bulgaria'), ('PT', 'Portugal'), ('SX', 'Sint Maarten (Dutch part)'), ('NC', 'New Caledonia'), ('MW', 'Malawi'), ('UM', 'United States Minor Outlying Islands'), ('PH', 'Philippines'), ('KI', 'Kiribati'), ('PM', 'Saint Pierre and Miquelon'), ('IM', 'Isle of Man'), ('LV', 'Latvia'), ('CC', 'Cocos (Keeling) Islands'), ('NG', 'Nigeria'), ('SR', 'Suriname'), ('RS', 'Serbia'), ('BZ', 'Belize'), ('GH', 'Ghana'), ('TR', 'Turkey'), ('SO', 'Somalia'), ('BA', 'Bosnia and Herzegovina'), ('NR', 'Nauru'), ('RU', 'Russian Federation'), ('GL', 'Greenland'), ('SI', 'Slovenia'), ('NE', 'Niger'), ('YT', 'Mayotte'), ('DK', 'Denmark'), ('SE', 'Sweden'), ('GU', 'Guam'), ('SM', 'San Marino'), ('DE', 'Germany'), ('GI', 'Gibraltar'), ('GG', 'Guernsey'), ('BH', 'Bahrain'), ('GP', 'Guadeloupe'), ('BS', 'Bahamas'), ('MC', 'Monaco'), ('ES', 'Spain'), ('LI', 'Liechtenstein'), ('TJ', 'Tajikistan'), ('PG', 'Papua New Guinea'), ('NU', 'Niue'), ('MD', 'Moldova (the Republic of)')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/bills/migrations/0016_auto_20210330_1049.py b/orchestra/contrib/bills/migrations/0016_auto_20210330_1049.py deleted file mode 100644 index 7df6b7a..0000000 --- a/orchestra/contrib/bills/migrations/0016_auto_20210330_1049.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-03-30 10:49 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('bills', '0015_auto_20200204_1218'), - ] - - operations = [ - migrations.AlterField( - model_name='billcontact', - name='country', - field=models.CharField(choices=[('AF', 'Afghanistan'), ('AX', 'Åland Islands'), ('AL', 'Albania'), ('DZ', 'Algeria'), ('AS', 'American Samoa'), ('AD', 'Andorra'), ('AO', 'Angola'), ('AI', 'Anguilla'), ('AQ', 'Antarctica'), ('AG', 'Antigua and Barbuda'), ('AR', 'Argentina'), ('AM', 'Armenia'), ('AW', 'Aruba'), ('AU', 'Australia'), ('AT', 'Austria'), ('AZ', 'Azerbaijan'), ('BS', 'Bahamas'), ('BH', 'Bahrain'), ('BD', 'Bangladesh'), ('BB', 'Barbados'), ('BY', 'Belarus'), ('BE', 'Belgium'), ('BZ', 'Belize'), ('BJ', 'Benin'), ('BM', 'Bermuda'), ('BT', 'Bhutan'), ('BO', 'Bolivia (Plurinational State of)'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('BA', 'Bosnia and Herzegovina'), ('BW', 'Botswana'), ('BV', 'Bouvet Island'), ('BR', 'Brazil'), ('IO', 'British Indian Ocean Territory'), ('BN', 'Brunei Darussalam'), ('BG', 'Bulgaria'), ('BF', 'Burkina Faso'), ('BI', 'Burundi'), ('CV', 'Cabo Verde'), ('KH', 'Cambodia'), ('CM', 'Cameroon'), ('CA', 'Canada'), ('KY', 'Cayman Islands'), ('CF', 'Central African Republic'), ('TD', 'Chad'), ('CL', 'Chile'), ('CN', 'China'), ('CX', 'Christmas Island'), ('CC', 'Cocos (Keeling) Islands'), ('CO', 'Colombia'), ('KM', 'Comoros'), ('CG', 'Congo'), ('CD', 'Congo (the Democratic Republic of the)'), ('CK', 'Cook Islands'), ('CR', 'Costa Rica'), ('CI', "Côte d'Ivoire"), ('HR', 'Croatia'), ('CU', 'Cuba'), ('CW', 'Curaçao'), ('CY', 'Cyprus'), ('CZ', 'Czechia'), ('DK', 'Denmark'), ('DJ', 'Djibouti'), ('DM', 'Dominica'), ('DO', 'Dominican Republic'), ('EC', 'Ecuador'), ('EG', 'Egypt'), ('SV', 'El Salvador'), ('GQ', 'Equatorial Guinea'), ('ER', 'Eritrea'), ('EE', 'Estonia'), ('SZ', 'Eswatini'), ('ET', 'Ethiopia'), ('FK', 'Falkland Islands (Malvinas)'), ('FO', 'Faroe Islands'), ('FJ', 'Fiji'), ('FI', 'Finland'), ('FR', 'France'), ('GF', 'French Guiana'), ('PF', 'French Polynesia'), ('TF', 'French Southern Territories'), ('GA', 'Gabon'), ('GM', 'Gambia'), ('GE', 'Georgia'), ('DE', 'Germany'), ('GH', 'Ghana'), ('GI', 'Gibraltar'), ('GR', 'Greece'), ('GL', 'Greenland'), ('GD', 'Grenada'), ('GP', 'Guadeloupe'), ('GU', 'Guam'), ('GT', 'Guatemala'), ('GG', 'Guernsey'), ('GN', 'Guinea'), ('GW', 'Guinea-Bissau'), ('GY', 'Guyana'), ('HT', 'Haiti'), ('HM', 'Heard Island and McDonald Islands'), ('VA', 'Holy See'), ('HN', 'Honduras'), ('HK', 'Hong Kong'), ('HU', 'Hungary'), ('IS', 'Iceland'), ('IN', 'India'), ('ID', 'Indonesia'), ('IR', 'Iran (Islamic Republic of)'), ('IQ', 'Iraq'), ('IE', 'Ireland'), ('IM', 'Isle of Man'), ('IL', 'Israel'), ('IT', 'Italy'), ('JM', 'Jamaica'), ('JP', 'Japan'), ('JE', 'Jersey'), ('JO', 'Jordan'), ('KZ', 'Kazakhstan'), ('KE', 'Kenya'), ('KI', 'Kiribati'), ('KP', "Korea (the Democratic People's Republic of)"), ('KR', 'Korea (the Republic of)'), ('KW', 'Kuwait'), ('KG', 'Kyrgyzstan'), ('LA', "Lao People's Democratic Republic"), ('LV', 'Latvia'), ('LB', 'Lebanon'), ('LS', 'Lesotho'), ('LR', 'Liberia'), ('LY', 'Libya'), ('LI', 'Liechtenstein'), ('LT', 'Lithuania'), ('LU', 'Luxembourg'), ('MO', 'Macao'), ('MG', 'Madagascar'), ('MW', 'Malawi'), ('MY', 'Malaysia'), ('MV', 'Maldives'), ('ML', 'Mali'), ('MT', 'Malta'), ('MH', 'Marshall Islands'), ('MQ', 'Martinique'), ('MR', 'Mauritania'), ('MU', 'Mauritius'), ('YT', 'Mayotte'), ('MX', 'Mexico'), ('FM', 'Micronesia (Federated States of)'), ('MD', 'Moldova (the Republic of)'), ('MC', 'Monaco'), ('MN', 'Mongolia'), ('ME', 'Montenegro'), ('MS', 'Montserrat'), ('MA', 'Morocco'), ('MZ', 'Mozambique'), ('MM', 'Myanmar'), ('NA', 'Namibia'), ('NR', 'Nauru'), ('NP', 'Nepal'), ('NL', 'Netherlands'), ('NC', 'New Caledonia'), ('NZ', 'New Zealand'), ('NI', 'Nicaragua'), ('NE', 'Niger'), ('NG', 'Nigeria'), ('NU', 'Niue'), ('NF', 'Norfolk Island'), ('MK', 'North Macedonia'), ('MP', 'Northern Mariana Islands'), ('NO', 'Norway'), ('OM', 'Oman'), ('PK', 'Pakistan'), ('PW', 'Palau'), ('PS', 'Palestine, State of'), ('PA', 'Panama'), ('PG', 'Papua New Guinea'), ('PY', 'Paraguay'), ('PE', 'Peru'), ('PH', 'Philippines'), ('PN', 'Pitcairn'), ('PL', 'Poland'), ('PT', 'Portugal'), ('PR', 'Puerto Rico'), ('QA', 'Qatar'), ('RE', 'Réunion'), ('RO', 'Romania'), ('RU', 'Russian Federation'), ('RW', 'Rwanda'), ('BL', 'Saint Barthélemy'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('KN', 'Saint Kitts and Nevis'), ('LC', 'Saint Lucia'), ('MF', 'Saint Martin (French part)'), ('PM', 'Saint Pierre and Miquelon'), ('VC', 'Saint Vincent and the Grenadines'), ('WS', 'Samoa'), ('SM', 'San Marino'), ('ST', 'Sao Tome and Principe'), ('SA', 'Saudi Arabia'), ('SN', 'Senegal'), ('RS', 'Serbia'), ('SC', 'Seychelles'), ('SL', 'Sierra Leone'), ('SG', 'Singapore'), ('SX', 'Sint Maarten (Dutch part)'), ('SK', 'Slovakia'), ('SI', 'Slovenia'), ('SB', 'Solomon Islands'), ('SO', 'Somalia'), ('ZA', 'South Africa'), ('GS', 'South Georgia and the South Sandwich Islands'), ('SS', 'South Sudan'), ('ES', 'Spain'), ('LK', 'Sri Lanka'), ('SD', 'Sudan'), ('SR', 'Suriname'), ('SJ', 'Svalbard and Jan Mayen'), ('SE', 'Sweden'), ('CH', 'Switzerland'), ('SY', 'Syrian Arab Republic'), ('TW', 'Taiwan (Province of China)'), ('TJ', 'Tajikistan'), ('TZ', 'Tanzania, the United Republic of'), ('TH', 'Thailand'), ('TL', 'Timor-Leste'), ('TG', 'Togo'), ('TK', 'Tokelau'), ('TO', 'Tonga'), ('TT', 'Trinidad and Tobago'), ('TN', 'Tunisia'), ('TR', 'Turkey'), ('TM', 'Turkmenistan'), ('TC', 'Turks and Caicos Islands'), ('TV', 'Tuvalu'), ('UG', 'Uganda'), ('UA', 'Ukraine'), ('AE', 'United Arab Emirates'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('UM', 'United States Minor Outlying Islands'), ('US', 'United States of America'), ('UY', 'Uruguay'), ('UZ', 'Uzbekistan'), ('VU', 'Vanuatu'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('VN', 'Viet Nam'), ('VG', 'Virgin Islands (British)'), ('VI', 'Virgin Islands (U.S.)'), ('WF', 'Wallis and Futuna'), ('EH', 'Western Sahara'), ('YE', 'Yemen'), ('ZM', 'Zambia'), ('ZW', 'Zimbabwe')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/bills/migrations/__init__.py b/orchestra/contrib/bills/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/bills/models.py b/orchestra/contrib/bills/models.py index 90765ca..9510f6b 100644 --- a/orchestra/contrib/bills/models.py +++ b/orchestra/contrib/bills/models.py @@ -8,9 +8,9 @@ from django.db.models import F, Sum from django.db.models.functions import Coalesce from django.template import loader from django.utils import timezone, translation -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.utils.functional import cached_property -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin.utils import change_url from orchestra.contrib.accounts.models import Account @@ -209,7 +209,7 @@ class Bill(models.Model): def get_payment_state_display(self): value = self.payment_state - return force_text(dict(self.PAYMENT_STATES).get(value, value)) + return force_str(dict(self.PAYMENT_STATES).get(value, value)) def get_current_transaction(self): return self.transactions.exclude_rejected().first() diff --git a/orchestra/contrib/contacts/admin.py b/orchestra/contrib/contacts/admin.py index 82adc38..c5c7647 100644 --- a/orchestra/contrib/contacts/admin.py +++ b/orchestra/contrib/contacts/admin.py @@ -1,6 +1,6 @@ from django import forms from django.contrib import admin -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin import AtLeastOneRequiredInlineFormSet, ExtendedModelAdmin from orchestra.admin.actions import SendEmail diff --git a/orchestra/contrib/contacts/filters.py b/orchestra/contrib/contacts/filters.py index 2ffae3e..0f36a54 100644 --- a/orchestra/contrib/contacts/filters.py +++ b/orchestra/contrib/contacts/filters.py @@ -1,5 +1,5 @@ from django.contrib.admin import SimpleListFilter -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from .models import Contact diff --git a/orchestra/contrib/contacts/migrations/0001_initial.py b/orchestra/contrib/contacts/migrations/0001_initial.py deleted file mode 100644 index a3e5ae0..0000000 --- a/orchestra/contrib/contacts/migrations/0001_initial.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.core.validators -import django.db.models.deletion -import orchestra.contrib.contacts.validators -import orchestra.models.fields -from django.conf import settings - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Contact', - fields=[ - ('id', models.AutoField(primary_key=True, serialize=False, auto_created=True, verbose_name='ID')), - ('short_name', models.CharField(max_length=128, verbose_name='short name')), - ('full_name', models.CharField(max_length=256, verbose_name='full name', blank=True)), - ('email', models.EmailField(max_length=254)), - ('email_usage', orchestra.models.fields.MultiSelectField(choices=[('SUPPORT', 'Support tickets'), ('ADMIN', 'Administrative'), ('BILLING', 'Billing'), ('TECH', 'Technical'), ('ADDS', 'Announcements'), ('EMERGENCY', 'Emergency contact')], max_length=256, default=('SUPPORT', 'ADMIN', 'BILLING', 'TECH', 'ADDS', 'EMERGENCY'), verbose_name='email usage', blank=True)), - ('phone', models.CharField(max_length=32, blank=True, validators=[orchestra.contrib.contacts.validators.validate_phone], verbose_name='phone')), - ('phone2', models.CharField(max_length=32, blank=True, validators=[orchestra.contrib.contacts.validators.validate_phone], verbose_name='alternative phone')), - ('address', models.TextField(verbose_name='address', blank=True)), - ('city', models.CharField(max_length=128, verbose_name='city', blank=True)), - ('zipcode', models.CharField(max_length=10, blank=True, validators=[django.core.validators.RegexValidator('^[0-9,A-Z]{3,10}$', 'Enter a valid zipcode.', 'invalid')], verbose_name='zip code')), - ('country', models.CharField(choices=[('VC', 'Saint Vincent and the Grenadines'), ('TM', 'Turkmenistan'), ('CL', 'Chile'), ('BN', 'Brunei Darussalam'), ('IS', 'Iceland'), ('AM', 'Armenia'), ('FI', 'Finland'), ('TK', 'Tokelau'), ('AF', 'Afghanistan'), ('IE', 'Ireland'), ('CW', 'Curaçao'), ('PY', 'Paraguay'), ('WF', 'Wallis and Futuna'), ('PK', 'Pakistan'), ('JP', 'Japan'), ('AO', 'Angola'), ('FM', 'Micronesia (Federated States of)'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('SG', 'Singapore'), ('BL', 'Saint Barthélemy'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('MY', 'Malaysia'), ('IM', 'Isle of Man'), ('GW', 'Guinea-Bissau'), ('IQ', 'Iraq'), ('GR', 'Greece'), ('VA', 'Holy See'), ('RW', 'Rwanda'), ('GD', 'Grenada'), ('TZ', 'Tanzania, United Republic of'), ('DZ', 'Algeria'), ('BF', 'Burkina Faso'), ('HU', 'Hungary'), ('TT', 'Trinidad and Tobago'), ('LU', 'Luxembourg'), ('BA', 'Bosnia and Herzegovina'), ('ET', 'Ethiopia'), ('TG', 'Togo'), ('RU', 'Russian Federation'), ('EG', 'Egypt'), ('RO', 'Romania'), ('SR', 'Suriname'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('JM', 'Jamaica'), ('HK', 'Hong Kong'), ('BH', 'Bahrain'), ('KM', 'Comoros'), ('HN', 'Honduras'), ('TD', 'Chad'), ('RS', 'Serbia'), ('PH', 'Philippines'), ('PE', 'Peru'), ('UA', 'Ukraine'), ('AE', 'United Arab Emirates'), ('KW', 'Kuwait'), ('GE', 'Georgia'), ('NA', 'Namibia'), ('CZ', 'Czech Republic'), ('CY', 'Cyprus'), ('LA', "Lao People's Democratic Republic"), ('BZ', 'Belize'), ('MX', 'Mexico'), ('MZ', 'Mozambique'), ('FR', 'France'), ('KG', 'Kyrgyzstan'), ('PW', 'Palau'), ('MG', 'Madagascar'), ('AU', 'Australia'), ('AI', 'Anguilla'), ('UZ', 'Uzbekistan'), ('NL', 'Netherlands'), ('VI', 'Virgin Islands (U.S.)'), ('LT', 'Lithuania'), ('WS', 'Samoa'), ('PA', 'Panama'), ('CO', 'Colombia'), ('AL', 'Albania'), ('PN', 'Pitcairn'), ('SC', 'Seychelles'), ('CH', 'Switzerland'), ('DO', 'Dominican Republic'), ('AW', 'Aruba'), ('GH', 'Ghana'), ('MM', 'Myanmar'), ('ML', 'Mali'), ('PS', 'Palestine, State of'), ('UY', 'Uruguay'), ('MN', 'Mongolia'), ('NE', 'Niger'), ('FK', 'Falkland Islands [Malvinas]'), ('US', 'United States of America'), ('BD', 'Bangladesh'), ('SB', 'Solomon Islands'), ('ZA', 'South Africa'), ('SJ', 'Svalbard and Jan Mayen'), ('IT', 'Italy'), ('HT', 'Haiti'), ('BW', 'Botswana'), ('MA', 'Morocco'), ('GP', 'Guadeloupe'), ('NI', 'Nicaragua'), ('CU', 'Cuba'), ('GL', 'Greenland'), ('MQ', 'Martinique'), ('NZ', 'New Zealand'), ('DE', 'Germany'), ('GY', 'Guyana'), ('YT', 'Mayotte'), ('MR', 'Mauritania'), ('IR', 'Iran (Islamic Republic of)'), ('SL', 'Sierra Leone'), ('MD', 'Moldova (the Republic of)'), ('SM', 'San Marino'), ('SS', 'South Sudan'), ('DM', 'Dominica'), ('NG', 'Nigeria'), ('UM', 'United States Minor Outlying Islands'), ('BI', 'Burundi'), ('GU', 'Guam'), ('GQ', 'Equatorial Guinea'), ('UG', 'Uganda'), ('VU', 'Vanuatu'), ('GT', 'Guatemala'), ('TR', 'Turkey'), ('BO', 'Bolivia (Plurinational State of)'), ('MP', 'Northern Mariana Islands'), ('AQ', 'Antarctica'), ('BS', 'Bahamas'), ('SK', 'Slovakia'), ('BY', 'Belarus'), ('AR', 'Argentina'), ('QA', 'Qatar'), ('LV', 'Latvia'), ('EH', 'Western Sahara'), ('LK', 'Sri Lanka'), ('LB', 'Lebanon'), ('JE', 'Jersey'), ('DJ', 'Djibouti'), ('LC', 'Saint Lucia'), ('CF', 'Central African Republic'), ('KE', 'Kenya'), ('NF', 'Norfolk Island'), ('FO', 'Faroe Islands'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('TF', 'French Southern Territories'), ('TC', 'Turks and Caicos Islands'), ('GM', 'Gambia'), ('PF', 'French Polynesia'), ('DK', 'Denmark'), ('GI', 'Gibraltar'), ('SN', 'Senegal'), ('ER', 'Eritrea'), ('CR', 'Costa Rica'), ('AZ', 'Azerbaijan'), ('BR', 'Brazil'), ('SE', 'Sweden'), ('SI', 'Slovenia'), ('SV', 'El Salvador'), ('TO', 'Tonga'), ('LR', 'Liberia'), ('CV', 'Cabo Verde'), ('OM', 'Oman'), ('KR', 'Korea (the Republic of)'), ('BV', 'Bouvet Island'), ('CA', 'Canada'), ('CK', 'Cook Islands'), ('BG', 'Bulgaria'), ('ZW', 'Zimbabwe'), ('FJ', 'Fiji'), ('NU', 'Niue'), ('YE', 'Yemen'), ('CM', 'Cameroon'), ('ZM', 'Zambia'), ('MC', 'Monaco'), ('SX', 'Sint Maarten (Dutch part)'), ('VG', 'Virgin Islands (British)'), ('AD', 'Andorra'), ('MF', 'Saint Martin (French part)'), ('PM', 'Saint Pierre and Miquelon'), ('RE', 'Réunion'), ('SO', 'Somalia'), ('AG', 'Antigua and Barbuda'), ('MH', 'Marshall Islands'), ('TW', 'Taiwan (Province of China)'), ('EE', 'Estonia'), ('NP', 'Nepal'), ('TV', 'Tuvalu'), ('NC', 'New Caledonia'), ('ME', 'Montenegro'), ('CX', 'Christmas Island'), ('LY', 'Libya'), ('KP', "Korea (the Democratic People's Republic of)"), ('SD', 'Sudan'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('KZ', 'Kazakhstan'), ('MV', 'Maldives'), ('CI', "Côte d'Ivoire"), ('VN', 'Viet Nam'), ('IN', 'India'), ('GN', 'Guinea'), ('AX', 'Åland Islands'), ('ST', 'Sao Tome and Principe'), ('HR', 'Croatia'), ('HM', 'Heard Island and McDonald Islands'), ('MO', 'Macao'), ('MS', 'Montserrat'), ('AT', 'Austria'), ('NO', 'Norway'), ('BT', 'Bhutan'), ('PT', 'Portugal'), ('IO', 'British Indian Ocean Territory'), ('KN', 'Saint Kitts and Nevis'), ('PL', 'Poland'), ('MW', 'Malawi'), ('LS', 'Lesotho'), ('SZ', 'Swaziland'), ('TJ', 'Tajikistan'), ('NR', 'Nauru'), ('MT', 'Malta'), ('ES', 'Spain'), ('BB', 'Barbados'), ('CG', 'Congo'), ('PG', 'Papua New Guinea'), ('GS', 'South Georgia and the South Sandwich Islands'), ('TN', 'Tunisia'), ('MU', 'Mauritius'), ('TH', 'Thailand'), ('BJ', 'Benin'), ('KY', 'Cayman Islands'), ('ID', 'Indonesia'), ('CD', 'Congo (the Democratic Republic of the)'), ('KI', 'Kiribati'), ('IL', 'Israel'), ('CN', 'China'), ('SA', 'Saudi Arabia'), ('AS', 'American Samoa'), ('KH', 'Cambodia'), ('JO', 'Jordan'), ('SY', 'Syrian Arab Republic'), ('LI', 'Liechtenstein'), ('GF', 'French Guiana'), ('EC', 'Ecuador'), ('CC', 'Cocos (Keeling) Islands'), ('TL', 'Timor-Leste'), ('BE', 'Belgium'), ('PR', 'Puerto Rico'), ('GA', 'Gabon'), ('BM', 'Bermuda'), ('GG', 'Guernsey')], max_length=20, default='ES', verbose_name='country', blank=True)), - ('account', models.ForeignKey(null=True, related_name='contacts', on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='Account')), - ], - ), - ] diff --git a/orchestra/contrib/contacts/migrations/0001_squashed_0012_auto_20210422_1108.py b/orchestra/contrib/contacts/migrations/0001_squashed_0012_auto_20210422_1108.py deleted file mode 100644 index 31a58db..0000000 --- a/orchestra/contrib/contacts/migrations/0001_squashed_0012_auto_20210422_1108.py +++ /dev/null @@ -1,41 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:08 -from __future__ import unicode_literals - -from django.conf import settings -import django.core.validators -from django.db import migrations, models -import django.db.models.deletion -import orchestra.contrib.contacts.validators -import orchestra.models.fields - - -class Migration(migrations.Migration): - - replaces = [('contacts', '0001_initial'), ('contacts', '0002_auto_20170528_2011'), ('contacts', '0003_auto_20170625_1813'), ('contacts', '0004_auto_20170625_1840'), ('contacts', '0005_auto_20170625_1840'), ('contacts', '0006_auto_20170625_1840'), ('contacts', '0007_auto_20170625_1841'), ('contacts', '0008_auto_20190805_1134'), ('contacts', '0009_auto_20200204_1217'), ('contacts', '0010_auto_20200204_1218'), ('contacts', '0011_auto_20210330_1049'), ('contacts', '0012_auto_20210422_1108')] - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Contact', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('short_name', models.CharField(max_length=128, verbose_name='short name')), - ('full_name', models.CharField(blank=True, max_length=256, verbose_name='full name')), - ('email', models.EmailField(max_length=254)), - ('email_usage', orchestra.models.fields.MultiSelectField(blank=True, choices=[('SUPPORT', 'Support tickets'), ('ADMIN', 'Administrative'), ('BILLING', 'Billing'), ('TECH', 'Technical'), ('ADDS', 'Announcements'), ('EMERGENCY', 'Emergency contact')], default=('SUPPORT', 'ADMIN', 'BILLING', 'TECH', 'ADDS', 'EMERGENCY'), max_length=256, verbose_name='email usage')), - ('phone', models.CharField(blank=True, max_length=32, validators=[orchestra.contrib.contacts.validators.validate_phone], verbose_name='phone')), - ('phone2', models.CharField(blank=True, max_length=32, validators=[orchestra.contrib.contacts.validators.validate_phone], verbose_name='alternative phone')), - ('address', models.TextField(blank=True, verbose_name='address')), - ('city', models.CharField(blank=True, max_length=128, verbose_name='city')), - ('zipcode', models.CharField(blank=True, max_length=10, validators=[django.core.validators.RegexValidator('^[0-9,A-Z]{3,10}$', 'Enter a valid zipcode.', 'invalid')], verbose_name='zip code')), - ('country', models.CharField(blank=True, choices=[('AF', 'Afghanistan'), ('AX', 'Åland Islands'), ('AL', 'Albania'), ('DZ', 'Algeria'), ('AS', 'American Samoa'), ('AD', 'Andorra'), ('AO', 'Angola'), ('AI', 'Anguilla'), ('AQ', 'Antarctica'), ('AG', 'Antigua and Barbuda'), ('AR', 'Argentina'), ('AM', 'Armenia'), ('AW', 'Aruba'), ('AU', 'Australia'), ('AT', 'Austria'), ('AZ', 'Azerbaijan'), ('BS', 'Bahamas'), ('BH', 'Bahrain'), ('BD', 'Bangladesh'), ('BB', 'Barbados'), ('BY', 'Belarus'), ('BE', 'Belgium'), ('BZ', 'Belize'), ('BJ', 'Benin'), ('BM', 'Bermuda'), ('BT', 'Bhutan'), ('BO', 'Bolivia (Plurinational State of)'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('BA', 'Bosnia and Herzegovina'), ('BW', 'Botswana'), ('BV', 'Bouvet Island'), ('BR', 'Brazil'), ('IO', 'British Indian Ocean Territory'), ('BN', 'Brunei Darussalam'), ('BG', 'Bulgaria'), ('BF', 'Burkina Faso'), ('BI', 'Burundi'), ('CV', 'Cabo Verde'), ('KH', 'Cambodia'), ('CM', 'Cameroon'), ('CA', 'Canada'), ('KY', 'Cayman Islands'), ('CF', 'Central African Republic'), ('TD', 'Chad'), ('CL', 'Chile'), ('CN', 'China'), ('CX', 'Christmas Island'), ('CC', 'Cocos (Keeling) Islands'), ('CO', 'Colombia'), ('KM', 'Comoros'), ('CG', 'Congo'), ('CD', 'Congo (the Democratic Republic of the)'), ('CK', 'Cook Islands'), ('CR', 'Costa Rica'), ('CI', "Côte d'Ivoire"), ('HR', 'Croatia'), ('CU', 'Cuba'), ('CW', 'Curaçao'), ('CY', 'Cyprus'), ('CZ', 'Czechia'), ('DK', 'Denmark'), ('DJ', 'Djibouti'), ('DM', 'Dominica'), ('DO', 'Dominican Republic'), ('EC', 'Ecuador'), ('EG', 'Egypt'), ('SV', 'El Salvador'), ('GQ', 'Equatorial Guinea'), ('ER', 'Eritrea'), ('EE', 'Estonia'), ('SZ', 'Eswatini'), ('ET', 'Ethiopia'), ('FK', 'Falkland Islands (Malvinas)'), ('FO', 'Faroe Islands'), ('FJ', 'Fiji'), ('FI', 'Finland'), ('FR', 'France'), ('GF', 'French Guiana'), ('PF', 'French Polynesia'), ('TF', 'French Southern Territories'), ('GA', 'Gabon'), ('GM', 'Gambia'), ('GE', 'Georgia'), ('DE', 'Germany'), ('GH', 'Ghana'), ('GI', 'Gibraltar'), ('GR', 'Greece'), ('GL', 'Greenland'), ('GD', 'Grenada'), ('GP', 'Guadeloupe'), ('GU', 'Guam'), ('GT', 'Guatemala'), ('GG', 'Guernsey'), ('GN', 'Guinea'), ('GW', 'Guinea-Bissau'), ('GY', 'Guyana'), ('HT', 'Haiti'), ('HM', 'Heard Island and McDonald Islands'), ('VA', 'Holy See'), ('HN', 'Honduras'), ('HK', 'Hong Kong'), ('HU', 'Hungary'), ('IS', 'Iceland'), ('IN', 'India'), ('ID', 'Indonesia'), ('IR', 'Iran (Islamic Republic of)'), ('IQ', 'Iraq'), ('IE', 'Ireland'), ('IM', 'Isle of Man'), ('IL', 'Israel'), ('IT', 'Italy'), ('JM', 'Jamaica'), ('JP', 'Japan'), ('JE', 'Jersey'), ('JO', 'Jordan'), ('KZ', 'Kazakhstan'), ('KE', 'Kenya'), ('KI', 'Kiribati'), ('KP', "Korea (the Democratic People's Republic of)"), ('KR', 'Korea (the Republic of)'), ('KW', 'Kuwait'), ('KG', 'Kyrgyzstan'), ('LA', "Lao People's Democratic Republic"), ('LV', 'Latvia'), ('LB', 'Lebanon'), ('LS', 'Lesotho'), ('LR', 'Liberia'), ('LY', 'Libya'), ('LI', 'Liechtenstein'), ('LT', 'Lithuania'), ('LU', 'Luxembourg'), ('MO', 'Macao'), ('MG', 'Madagascar'), ('MW', 'Malawi'), ('MY', 'Malaysia'), ('MV', 'Maldives'), ('ML', 'Mali'), ('MT', 'Malta'), ('MH', 'Marshall Islands'), ('MQ', 'Martinique'), ('MR', 'Mauritania'), ('MU', 'Mauritius'), ('YT', 'Mayotte'), ('MX', 'Mexico'), ('FM', 'Micronesia (Federated States of)'), ('MD', 'Moldova (the Republic of)'), ('MC', 'Monaco'), ('MN', 'Mongolia'), ('ME', 'Montenegro'), ('MS', 'Montserrat'), ('MA', 'Morocco'), ('MZ', 'Mozambique'), ('MM', 'Myanmar'), ('NA', 'Namibia'), ('NR', 'Nauru'), ('NP', 'Nepal'), ('NL', 'Netherlands'), ('NC', 'New Caledonia'), ('NZ', 'New Zealand'), ('NI', 'Nicaragua'), ('NE', 'Niger'), ('NG', 'Nigeria'), ('NU', 'Niue'), ('NF', 'Norfolk Island'), ('MK', 'North Macedonia'), ('MP', 'Northern Mariana Islands'), ('NO', 'Norway'), ('OM', 'Oman'), ('PK', 'Pakistan'), ('PW', 'Palau'), ('PS', 'Palestine, State of'), ('PA', 'Panama'), ('PG', 'Papua New Guinea'), ('PY', 'Paraguay'), ('PE', 'Peru'), ('PH', 'Philippines'), ('PN', 'Pitcairn'), ('PL', 'Poland'), ('PT', 'Portugal'), ('PR', 'Puerto Rico'), ('QA', 'Qatar'), ('RE', 'Réunion'), ('RO', 'Romania'), ('RU', 'Russian Federation'), ('RW', 'Rwanda'), ('BL', 'Saint Barthélemy'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('KN', 'Saint Kitts and Nevis'), ('LC', 'Saint Lucia'), ('MF', 'Saint Martin (French part)'), ('PM', 'Saint Pierre and Miquelon'), ('VC', 'Saint Vincent and the Grenadines'), ('WS', 'Samoa'), ('SM', 'San Marino'), ('ST', 'Sao Tome and Principe'), ('SA', 'Saudi Arabia'), ('SN', 'Senegal'), ('RS', 'Serbia'), ('SC', 'Seychelles'), ('SL', 'Sierra Leone'), ('SG', 'Singapore'), ('SX', 'Sint Maarten (Dutch part)'), ('SK', 'Slovakia'), ('SI', 'Slovenia'), ('SB', 'Solomon Islands'), ('SO', 'Somalia'), ('ZA', 'South Africa'), ('GS', 'South Georgia and the South Sandwich Islands'), ('SS', 'South Sudan'), ('ES', 'Spain'), ('LK', 'Sri Lanka'), ('SD', 'Sudan'), ('SR', 'Suriname'), ('SJ', 'Svalbard and Jan Mayen'), ('SE', 'Sweden'), ('CH', 'Switzerland'), ('SY', 'Syrian Arab Republic'), ('TW', 'Taiwan (Province of China)'), ('TJ', 'Tajikistan'), ('TZ', 'Tanzania, the United Republic of'), ('TH', 'Thailand'), ('TL', 'Timor-Leste'), ('TG', 'Togo'), ('TK', 'Tokelau'), ('TO', 'Tonga'), ('TT', 'Trinidad and Tobago'), ('TN', 'Tunisia'), ('TR', 'Turkey'), ('TM', 'Turkmenistan'), ('TC', 'Turks and Caicos Islands'), ('TV', 'Tuvalu'), ('UG', 'Uganda'), ('UA', 'Ukraine'), ('AE', 'United Arab Emirates'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('UM', 'United States Minor Outlying Islands'), ('US', 'United States of America'), ('UY', 'Uruguay'), ('UZ', 'Uzbekistan'), ('VU', 'Vanuatu'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('VN', 'Viet Nam'), ('VG', 'Virgin Islands (British)'), ('VI', 'Virgin Islands (U.S.)'), ('WF', 'Wallis and Futuna'), ('EH', 'Western Sahara'), ('YE', 'Yemen'), ('ZM', 'Zambia'), ('ZW', 'Zimbabwe')], default='ES', max_length=20, verbose_name='country')), - ('account', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='contacts', to=settings.AUTH_USER_MODEL, verbose_name='Account')), - ], - ), - ] diff --git a/orchestra/contrib/contacts/migrations/0002_auto_20170528_2011.py b/orchestra/contrib/contacts/migrations/0002_auto_20170528_2011.py deleted file mode 100644 index 541d0d0..0000000 --- a/orchestra/contrib/contacts/migrations/0002_auto_20170528_2011.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:11 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('contacts', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='contact', - name='country', - field=models.CharField(blank=True, choices=[('LR', 'Liberia'), ('BJ', 'Benin'), ('FM', 'Micronesia (Federated States of)'), ('GS', 'South Georgia and the South Sandwich Islands'), ('AU', 'Australia'), ('PR', 'Puerto Rico'), ('MZ', 'Mozambique'), ('CR', 'Costa Rica'), ('ST', 'Sao Tome and Principe'), ('PL', 'Poland'), ('NG', 'Nigeria'), ('AS', 'American Samoa'), ('LS', 'Lesotho'), ('SG', 'Singapore'), ('BT', 'Bhutan'), ('TG', 'Togo'), ('DM', 'Dominica'), ('GP', 'Guadeloupe'), ('CI', "Côte d'Ivoire"), ('SR', 'Suriname'), ('ZM', 'Zambia'), ('CX', 'Christmas Island'), ('ME', 'Montenegro'), ('TR', 'Turkey'), ('UG', 'Uganda'), ('RU', 'Russian Federation'), ('PG', 'Papua New Guinea'), ('VG', 'Virgin Islands (British)'), ('CW', 'Curaçao'), ('PM', 'Saint Pierre and Miquelon'), ('KP', "Korea (the Democratic People's Republic of)"), ('TJ', 'Tajikistan'), ('FR', 'France'), ('AX', 'Åland Islands'), ('CU', 'Cuba'), ('BA', 'Bosnia and Herzegovina'), ('NA', 'Namibia'), ('MS', 'Montserrat'), ('US', 'United States of America'), ('PS', 'Palestine, State of'), ('MF', 'Saint Martin (French part)'), ('NE', 'Niger'), ('BH', 'Bahrain'), ('CK', 'Cook Islands'), ('JE', 'Jersey'), ('DJ', 'Djibouti'), ('GI', 'Gibraltar'), ('AL', 'Albania'), ('CA', 'Canada'), ('AI', 'Anguilla'), ('GF', 'French Guiana'), ('AW', 'Aruba'), ('PE', 'Peru'), ('SM', 'San Marino'), ('LK', 'Sri Lanka'), ('PN', 'Pitcairn'), ('KM', 'Comoros'), ('ER', 'Eritrea'), ('SK', 'Slovakia'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('SN', 'Senegal'), ('PW', 'Palau'), ('HT', 'Haiti'), ('MA', 'Morocco'), ('CY', 'Cyprus'), ('GT', 'Guatemala'), ('IT', 'Italy'), ('PY', 'Paraguay'), ('DO', 'Dominican Republic'), ('JO', 'Jordan'), ('AT', 'Austria'), ('NL', 'Netherlands'), ('AM', 'Armenia'), ('BN', 'Brunei Darussalam'), ('BB', 'Barbados'), ('IE', 'Ireland'), ('LB', 'Lebanon'), ('SI', 'Slovenia'), ('TM', 'Turkmenistan'), ('PH', 'Philippines'), ('GE', 'Georgia'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('GD', 'Grenada'), ('KI', 'Kiribati'), ('NZ', 'New Zealand'), ('SL', 'Sierra Leone'), ('VN', 'Viet Nam'), ('BZ', 'Belize'), ('TF', 'French Southern Territories'), ('HK', 'Hong Kong'), ('BY', 'Belarus'), ('SD', 'Sudan'), ('UM', 'United States Minor Outlying Islands'), ('ES', 'Spain'), ('GH', 'Ghana'), ('GL', 'Greenland'), ('AD', 'Andorra'), ('ML', 'Mali'), ('NC', 'New Caledonia'), ('IS', 'Iceland'), ('TC', 'Turks and Caicos Islands'), ('FI', 'Finland'), ('DK', 'Denmark'), ('MM', 'Myanmar'), ('MT', 'Malta'), ('TT', 'Trinidad and Tobago'), ('SZ', 'Swaziland'), ('QA', 'Qatar'), ('TN', 'Tunisia'), ('EC', 'Ecuador'), ('CM', 'Cameroon'), ('WF', 'Wallis and Futuna'), ('CO', 'Colombia'), ('MP', 'Northern Mariana Islands'), ('KH', 'Cambodia'), ('MY', 'Malaysia'), ('WS', 'Samoa'), ('NR', 'Nauru'), ('MV', 'Maldives'), ('LI', 'Liechtenstein'), ('BF', 'Burkina Faso'), ('BW', 'Botswana'), ('PF', 'French Polynesia'), ('HM', 'Heard Island and McDonald Islands'), ('SC', 'Seychelles'), ('GU', 'Guam'), ('TZ', 'Tanzania, United Republic of'), ('MQ', 'Martinique'), ('IN', 'India'), ('BE', 'Belgium'), ('SO', 'Somalia'), ('DZ', 'Algeria'), ('AQ', 'Antarctica'), ('TV', 'Tuvalu'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('MC', 'Monaco'), ('KW', 'Kuwait'), ('RO', 'Romania'), ('BL', 'Saint Barthélemy'), ('CV', 'Cabo Verde'), ('BR', 'Brazil'), ('JP', 'Japan'), ('NF', 'Norfolk Island'), ('IO', 'British Indian Ocean Territory'), ('SB', 'Solomon Islands'), ('IM', 'Isle of Man'), ('LC', 'Saint Lucia'), ('ID', 'Indonesia'), ('LA', "Lao People's Democratic Republic"), ('SE', 'Sweden'), ('KG', 'Kyrgyzstan'), ('HN', 'Honduras'), ('KR', 'Korea (the Republic of)'), ('BI', 'Burundi'), ('ZW', 'Zimbabwe'), ('IQ', 'Iraq'), ('SA', 'Saudi Arabia'), ('CN', 'China'), ('NU', 'Niue'), ('GQ', 'Equatorial Guinea'), ('UY', 'Uruguay'), ('LV', 'Latvia'), ('TH', 'Thailand'), ('CC', 'Cocos (Keeling) Islands'), ('EH', 'Western Sahara'), ('PA', 'Panama'), ('GN', 'Guinea'), ('SY', 'Syrian Arab Republic'), ('TK', 'Tokelau'), ('KY', 'Cayman Islands'), ('CD', 'Congo (the Democratic Republic of the)'), ('FO', 'Faroe Islands'), ('KN', 'Saint Kitts and Nevis'), ('EE', 'Estonia'), ('LU', 'Luxembourg'), ('MX', 'Mexico'), ('AF', 'Afghanistan'), ('SV', 'El Salvador'), ('AE', 'United Arab Emirates'), ('BG', 'Bulgaria'), ('BD', 'Bangladesh'), ('IR', 'Iran (Islamic Republic of)'), ('BS', 'Bahamas'), ('TW', 'Taiwan (Province of China)'), ('EG', 'Egypt'), ('GM', 'Gambia'), ('MG', 'Madagascar'), ('OM', 'Oman'), ('IL', 'Israel'), ('FJ', 'Fiji'), ('AG', 'Antigua and Barbuda'), ('LT', 'Lithuania'), ('DE', 'Germany'), ('KE', 'Kenya'), ('BV', 'Bouvet Island'), ('PT', 'Portugal'), ('AZ', 'Azerbaijan'), ('MN', 'Mongolia'), ('RW', 'Rwanda'), ('MR', 'Mauritania'), ('NI', 'Nicaragua'), ('YT', 'Mayotte'), ('SS', 'South Sudan'), ('YE', 'Yemen'), ('GY', 'Guyana'), ('SJ', 'Svalbard and Jan Mayen'), ('MH', 'Marshall Islands'), ('SX', 'Sint Maarten (Dutch part)'), ('GG', 'Guernsey'), ('HR', 'Croatia'), ('VU', 'Vanuatu'), ('MW', 'Malawi'), ('CZ', 'Czech Republic'), ('CH', 'Switzerland'), ('RS', 'Serbia'), ('LY', 'Libya'), ('MO', 'Macao'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('HU', 'Hungary'), ('GA', 'Gabon'), ('KZ', 'Kazakhstan'), ('TO', 'Tonga'), ('ET', 'Ethiopia'), ('UZ', 'Uzbekistan'), ('TD', 'Chad'), ('MD', 'Moldova (the Republic of)'), ('BO', 'Bolivia (Plurinational State of)'), ('AO', 'Angola'), ('GW', 'Guinea-Bissau'), ('VA', 'Holy See'), ('VC', 'Saint Vincent and the Grenadines'), ('TL', 'Timor-Leste'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('FK', 'Falkland Islands [Malvinas]'), ('ZA', 'South Africa'), ('PK', 'Pakistan'), ('CF', 'Central African Republic'), ('NO', 'Norway'), ('CG', 'Congo'), ('UA', 'Ukraine'), ('AR', 'Argentina'), ('CL', 'Chile'), ('VI', 'Virgin Islands (U.S.)'), ('MU', 'Mauritius'), ('JM', 'Jamaica'), ('RE', 'Réunion'), ('GR', 'Greece'), ('NP', 'Nepal'), ('BM', 'Bermuda')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/contacts/migrations/0003_auto_20170625_1813.py b/orchestra/contrib/contacts/migrations/0003_auto_20170625_1813.py deleted file mode 100644 index c4c695c..0000000 --- a/orchestra/contrib/contacts/migrations/0003_auto_20170625_1813.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:13 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('contacts', '0002_auto_20170528_2011'), - ] - - operations = [ - migrations.AlterField( - model_name='contact', - name='country', - field=models.CharField(blank=True, choices=[('GA', 'Gabon'), ('TK', 'Tokelau'), ('GU', 'Guam'), ('MS', 'Montserrat'), ('AE', 'United Arab Emirates'), ('TW', 'Taiwan (Province of China)'), ('CX', 'Christmas Island'), ('MW', 'Malawi'), ('BE', 'Belgium'), ('CM', 'Cameroon'), ('PY', 'Paraguay'), ('MU', 'Mauritius'), ('KP', "Korea (the Democratic People's Republic of)"), ('KE', 'Kenya'), ('CD', 'Congo (the Democratic Republic of the)'), ('LS', 'Lesotho'), ('LA', "Lao People's Democratic Republic"), ('GG', 'Guernsey'), ('KZ', 'Kazakhstan'), ('AI', 'Anguilla'), ('PA', 'Panama'), ('KI', 'Kiribati'), ('IE', 'Ireland'), ('BN', 'Brunei Darussalam'), ('CO', 'Colombia'), ('OM', 'Oman'), ('FJ', 'Fiji'), ('SJ', 'Svalbard and Jan Mayen'), ('GF', 'French Guiana'), ('MP', 'Northern Mariana Islands'), ('SM', 'San Marino'), ('YT', 'Mayotte'), ('MT', 'Malta'), ('FM', 'Micronesia (Federated States of)'), ('RU', 'Russian Federation'), ('CU', 'Cuba'), ('SG', 'Singapore'), ('BZ', 'Belize'), ('YE', 'Yemen'), ('MV', 'Maldives'), ('VC', 'Saint Vincent and the Grenadines'), ('NG', 'Nigeria'), ('EH', 'Western Sahara'), ('NZ', 'New Zealand'), ('DE', 'Germany'), ('TH', 'Thailand'), ('TN', 'Tunisia'), ('MH', 'Marshall Islands'), ('GY', 'Guyana'), ('IO', 'British Indian Ocean Territory'), ('LV', 'Latvia'), ('NP', 'Nepal'), ('VG', 'Virgin Islands (British)'), ('TF', 'French Southern Territories'), ('SO', 'Somalia'), ('WF', 'Wallis and Futuna'), ('FK', 'Falkland Islands [Malvinas]'), ('VN', 'Viet Nam'), ('ES', 'Spain'), ('TM', 'Turkmenistan'), ('EG', 'Egypt'), ('PK', 'Pakistan'), ('AT', 'Austria'), ('SB', 'Solomon Islands'), ('GT', 'Guatemala'), ('KH', 'Cambodia'), ('BD', 'Bangladesh'), ('GH', 'Ghana'), ('LR', 'Liberia'), ('GW', 'Guinea-Bissau'), ('UZ', 'Uzbekistan'), ('MN', 'Mongolia'), ('TR', 'Turkey'), ('DO', 'Dominican Republic'), ('PN', 'Pitcairn'), ('LK', 'Sri Lanka'), ('UG', 'Uganda'), ('GM', 'Gambia'), ('BH', 'Bahrain'), ('FR', 'France'), ('PL', 'Poland'), ('AQ', 'Antarctica'), ('CF', 'Central African Republic'), ('HR', 'Croatia'), ('AO', 'Angola'), ('RO', 'Romania'), ('MG', 'Madagascar'), ('UY', 'Uruguay'), ('PS', 'Palestine, State of'), ('ET', 'Ethiopia'), ('NO', 'Norway'), ('LT', 'Lithuania'), ('FO', 'Faroe Islands'), ('ST', 'Sao Tome and Principe'), ('JO', 'Jordan'), ('ME', 'Montenegro'), ('MY', 'Malaysia'), ('LY', 'Libya'), ('PT', 'Portugal'), ('CA', 'Canada'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('CG', 'Congo'), ('NL', 'Netherlands'), ('BM', 'Bermuda'), ('TT', 'Trinidad and Tobago'), ('ID', 'Indonesia'), ('SX', 'Sint Maarten (Dutch part)'), ('AR', 'Argentina'), ('HN', 'Honduras'), ('SI', 'Slovenia'), ('DJ', 'Djibouti'), ('KR', 'Korea (the Republic of)'), ('CI', "Côte d'Ivoire"), ('BB', 'Barbados'), ('AD', 'Andorra'), ('JE', 'Jersey'), ('PG', 'Papua New Guinea'), ('MX', 'Mexico'), ('TL', 'Timor-Leste'), ('SV', 'El Salvador'), ('TV', 'Tuvalu'), ('EE', 'Estonia'), ('LI', 'Liechtenstein'), ('MA', 'Morocco'), ('LU', 'Luxembourg'), ('LB', 'Lebanon'), ('SE', 'Sweden'), ('CV', 'Cabo Verde'), ('RE', 'Réunion'), ('NI', 'Nicaragua'), ('BY', 'Belarus'), ('TJ', 'Tajikistan'), ('NR', 'Nauru'), ('AG', 'Antigua and Barbuda'), ('SZ', 'Swaziland'), ('DM', 'Dominica'), ('ZM', 'Zambia'), ('CL', 'Chile'), ('TC', 'Turks and Caicos Islands'), ('GP', 'Guadeloupe'), ('DZ', 'Algeria'), ('RS', 'Serbia'), ('AW', 'Aruba'), ('ER', 'Eritrea'), ('BI', 'Burundi'), ('EC', 'Ecuador'), ('ML', 'Mali'), ('IL', 'Israel'), ('JM', 'Jamaica'), ('MC', 'Monaco'), ('CZ', 'Czech Republic'), ('BT', 'Bhutan'), ('CY', 'Cyprus'), ('PF', 'French Polynesia'), ('MZ', 'Mozambique'), ('ZW', 'Zimbabwe'), ('KM', 'Comoros'), ('SL', 'Sierra Leone'), ('CW', 'Curaçao'), ('SY', 'Syrian Arab Republic'), ('MF', 'Saint Martin (French part)'), ('LC', 'Saint Lucia'), ('HM', 'Heard Island and McDonald Islands'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('KG', 'Kyrgyzstan'), ('MD', 'Moldova (the Republic of)'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('US', 'United States of America'), ('HU', 'Hungary'), ('TD', 'Chad'), ('CK', 'Cook Islands'), ('UA', 'Ukraine'), ('SN', 'Senegal'), ('GE', 'Georgia'), ('BF', 'Burkina Faso'), ('VA', 'Holy See'), ('SC', 'Seychelles'), ('PW', 'Palau'), ('BW', 'Botswana'), ('SR', 'Suriname'), ('IR', 'Iran (Islamic Republic of)'), ('MM', 'Myanmar'), ('SK', 'Slovakia'), ('SA', 'Saudi Arabia'), ('RW', 'Rwanda'), ('KW', 'Kuwait'), ('GN', 'Guinea'), ('AZ', 'Azerbaijan'), ('AL', 'Albania'), ('NC', 'New Caledonia'), ('MQ', 'Martinique'), ('CR', 'Costa Rica'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('BS', 'Bahamas'), ('AF', 'Afghanistan'), ('AS', 'American Samoa'), ('MR', 'Mauritania'), ('AM', 'Armenia'), ('CH', 'Switzerland'), ('IM', 'Isle of Man'), ('BL', 'Saint Barthélemy'), ('VI', 'Virgin Islands (U.S.)'), ('WS', 'Samoa'), ('SS', 'South Sudan'), ('NU', 'Niue'), ('IS', 'Iceland'), ('ZA', 'South Africa'), ('DK', 'Denmark'), ('GL', 'Greenland'), ('JP', 'Japan'), ('FI', 'Finland'), ('TZ', 'Tanzania, United Republic of'), ('IT', 'Italy'), ('CN', 'China'), ('AX', 'Åland Islands'), ('PE', 'Peru'), ('GR', 'Greece'), ('SD', 'Sudan'), ('BA', 'Bosnia and Herzegovina'), ('NA', 'Namibia'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('IQ', 'Iraq'), ('KN', 'Saint Kitts and Nevis'), ('IN', 'India'), ('BV', 'Bouvet Island'), ('MO', 'Macao'), ('HK', 'Hong Kong'), ('TO', 'Tonga'), ('NE', 'Niger'), ('TG', 'Togo'), ('PH', 'Philippines'), ('UM', 'United States Minor Outlying Islands'), ('GQ', 'Equatorial Guinea'), ('BG', 'Bulgaria'), ('AU', 'Australia'), ('GD', 'Grenada'), ('QA', 'Qatar'), ('GI', 'Gibraltar'), ('HT', 'Haiti'), ('GS', 'South Georgia and the South Sandwich Islands'), ('CC', 'Cocos (Keeling) Islands'), ('BR', 'Brazil'), ('PM', 'Saint Pierre and Miquelon'), ('BO', 'Bolivia (Plurinational State of)'), ('NF', 'Norfolk Island'), ('BJ', 'Benin'), ('VU', 'Vanuatu'), ('KY', 'Cayman Islands'), ('PR', 'Puerto Rico')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/contacts/migrations/0004_auto_20170625_1840.py b/orchestra/contrib/contacts/migrations/0004_auto_20170625_1840.py deleted file mode 100644 index ac7a6a7..0000000 --- a/orchestra/contrib/contacts/migrations/0004_auto_20170625_1840.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:40 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('contacts', '0003_auto_20170625_1813'), - ] - - operations = [ - migrations.AlterField( - model_name='contact', - name='country', - field=models.CharField(blank=True, choices=[('CD', 'Congo (the Democratic Republic of the)'), ('SO', 'Somalia'), ('TO', 'Tonga'), ('TF', 'French Southern Territories'), ('VN', 'Viet Nam'), ('TC', 'Turks and Caicos Islands'), ('KG', 'Kyrgyzstan'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('AR', 'Argentina'), ('TD', 'Chad'), ('EH', 'Western Sahara'), ('PL', 'Poland'), ('SI', 'Slovenia'), ('RU', 'Russian Federation'), ('GR', 'Greece'), ('AZ', 'Azerbaijan'), ('IR', 'Iran (Islamic Republic of)'), ('PY', 'Paraguay'), ('BJ', 'Benin'), ('PH', 'Philippines'), ('BM', 'Bermuda'), ('CZ', 'Czech Republic'), ('BS', 'Bahamas'), ('PS', 'Palestine, State of'), ('ES', 'Spain'), ('NF', 'Norfolk Island'), ('BH', 'Bahrain'), ('SD', 'Sudan'), ('US', 'United States of America'), ('GQ', 'Equatorial Guinea'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('CU', 'Cuba'), ('BD', 'Bangladesh'), ('AL', 'Albania'), ('IT', 'Italy'), ('KZ', 'Kazakhstan'), ('TV', 'Tuvalu'), ('ET', 'Ethiopia'), ('LA', "Lao People's Democratic Republic"), ('ID', 'Indonesia'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('CO', 'Colombia'), ('IO', 'British Indian Ocean Territory'), ('IL', 'Israel'), ('CF', 'Central African Republic'), ('MN', 'Mongolia'), ('VG', 'Virgin Islands (British)'), ('LB', 'Lebanon'), ('LK', 'Sri Lanka'), ('AO', 'Angola'), ('WF', 'Wallis and Futuna'), ('GI', 'Gibraltar'), ('PM', 'Saint Pierre and Miquelon'), ('HK', 'Hong Kong'), ('PF', 'French Polynesia'), ('SY', 'Syrian Arab Republic'), ('JO', 'Jordan'), ('SL', 'Sierra Leone'), ('LV', 'Latvia'), ('ZW', 'Zimbabwe'), ('SC', 'Seychelles'), ('MM', 'Myanmar'), ('QA', 'Qatar'), ('CM', 'Cameroon'), ('SN', 'Senegal'), ('LS', 'Lesotho'), ('TL', 'Timor-Leste'), ('GA', 'Gabon'), ('LR', 'Liberia'), ('MT', 'Malta'), ('SX', 'Sint Maarten (Dutch part)'), ('AU', 'Australia'), ('MY', 'Malaysia'), ('MA', 'Morocco'), ('SK', 'Slovakia'), ('UG', 'Uganda'), ('GH', 'Ghana'), ('RO', 'Romania'), ('NL', 'Netherlands'), ('MP', 'Northern Mariana Islands'), ('NO', 'Norway'), ('NA', 'Namibia'), ('ZM', 'Zambia'), ('PW', 'Palau'), ('BT', 'Bhutan'), ('PE', 'Peru'), ('BW', 'Botswana'), ('RW', 'Rwanda'), ('JP', 'Japan'), ('NR', 'Nauru'), ('GW', 'Guinea-Bissau'), ('AQ', 'Antarctica'), ('LC', 'Saint Lucia'), ('CY', 'Cyprus'), ('SA', 'Saudi Arabia'), ('LT', 'Lithuania'), ('BB', 'Barbados'), ('RS', 'Serbia'), ('CL', 'Chile'), ('BL', 'Saint Barthélemy'), ('MQ', 'Martinique'), ('CW', 'Curaçao'), ('OM', 'Oman'), ('KR', 'Korea (the Republic of)'), ('GY', 'Guyana'), ('TJ', 'Tajikistan'), ('AS', 'American Samoa'), ('IS', 'Iceland'), ('TG', 'Togo'), ('LY', 'Libya'), ('AM', 'Armenia'), ('NG', 'Nigeria'), ('GL', 'Greenland'), ('AT', 'Austria'), ('SS', 'South Sudan'), ('KE', 'Kenya'), ('MW', 'Malawi'), ('DE', 'Germany'), ('AX', 'Åland Islands'), ('MO', 'Macao'), ('MD', 'Moldova (the Republic of)'), ('AI', 'Anguilla'), ('GG', 'Guernsey'), ('TH', 'Thailand'), ('MG', 'Madagascar'), ('BY', 'Belarus'), ('LI', 'Liechtenstein'), ('NE', 'Niger'), ('KP', "Korea (the Democratic People's Republic of)"), ('PN', 'Pitcairn'), ('PT', 'Portugal'), ('BF', 'Burkina Faso'), ('KY', 'Cayman Islands'), ('HU', 'Hungary'), ('MZ', 'Mozambique'), ('UZ', 'Uzbekistan'), ('EC', 'Ecuador'), ('DJ', 'Djibouti'), ('NU', 'Niue'), ('YT', 'Mayotte'), ('CR', 'Costa Rica'), ('TW', 'Taiwan (Province of China)'), ('JM', 'Jamaica'), ('SJ', 'Svalbard and Jan Mayen'), ('GN', 'Guinea'), ('BZ', 'Belize'), ('KN', 'Saint Kitts and Nevis'), ('CK', 'Cook Islands'), ('SR', 'Suriname'), ('FJ', 'Fiji'), ('FO', 'Faroe Islands'), ('VI', 'Virgin Islands (U.S.)'), ('AW', 'Aruba'), ('IM', 'Isle of Man'), ('KW', 'Kuwait'), ('BN', 'Brunei Darussalam'), ('SB', 'Solomon Islands'), ('GS', 'South Georgia and the South Sandwich Islands'), ('BI', 'Burundi'), ('DO', 'Dominican Republic'), ('BG', 'Bulgaria'), ('DM', 'Dominica'), ('GM', 'Gambia'), ('SZ', 'Swaziland'), ('PK', 'Pakistan'), ('TZ', 'Tanzania, United Republic of'), ('ZA', 'South Africa'), ('YE', 'Yemen'), ('VU', 'Vanuatu'), ('HT', 'Haiti'), ('GP', 'Guadeloupe'), ('NC', 'New Caledonia'), ('PR', 'Puerto Rico'), ('TR', 'Turkey'), ('DZ', 'Algeria'), ('HM', 'Heard Island and McDonald Islands'), ('SV', 'El Salvador'), ('CV', 'Cabo Verde'), ('CA', 'Canada'), ('TM', 'Turkmenistan'), ('MR', 'Mauritania'), ('ST', 'Sao Tome and Principe'), ('SE', 'Sweden'), ('HR', 'Croatia'), ('TK', 'Tokelau'), ('GU', 'Guam'), ('EG', 'Egypt'), ('IN', 'India'), ('SM', 'San Marino'), ('TN', 'Tunisia'), ('KI', 'Kiribati'), ('LU', 'Luxembourg'), ('KM', 'Comoros'), ('SG', 'Singapore'), ('CI', "Côte d'Ivoire"), ('AE', 'United Arab Emirates'), ('ML', 'Mali'), ('GF', 'French Guiana'), ('MU', 'Mauritius'), ('BR', 'Brazil'), ('HN', 'Honduras'), ('CX', 'Christmas Island'), ('MC', 'Monaco'), ('ER', 'Eritrea'), ('PA', 'Panama'), ('FI', 'Finland'), ('GD', 'Grenada'), ('FK', 'Falkland Islands [Malvinas]'), ('BE', 'Belgium'), ('BO', 'Bolivia (Plurinational State of)'), ('CC', 'Cocos (Keeling) Islands'), ('IE', 'Ireland'), ('MS', 'Montserrat'), ('EE', 'Estonia'), ('CH', 'Switzerland'), ('BV', 'Bouvet Island'), ('MX', 'Mexico'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('AF', 'Afghanistan'), ('VC', 'Saint Vincent and the Grenadines'), ('BA', 'Bosnia and Herzegovina'), ('GT', 'Guatemala'), ('KH', 'Cambodia'), ('GE', 'Georgia'), ('RE', 'Réunion'), ('FR', 'France'), ('PG', 'Papua New Guinea'), ('WS', 'Samoa'), ('DK', 'Denmark'), ('NZ', 'New Zealand'), ('MV', 'Maldives'), ('UM', 'United States Minor Outlying Islands'), ('AD', 'Andorra'), ('JE', 'Jersey'), ('TT', 'Trinidad and Tobago'), ('AG', 'Antigua and Barbuda'), ('NP', 'Nepal'), ('IQ', 'Iraq'), ('ME', 'Montenegro'), ('NI', 'Nicaragua'), ('UA', 'Ukraine'), ('CN', 'China'), ('FM', 'Micronesia (Federated States of)'), ('MH', 'Marshall Islands'), ('UY', 'Uruguay'), ('CG', 'Congo'), ('VA', 'Holy See'), ('MF', 'Saint Martin (French part)'), ('BQ', 'Bonaire, Sint Eustatius and Saba')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/contacts/migrations/0005_auto_20170625_1840.py b/orchestra/contrib/contacts/migrations/0005_auto_20170625_1840.py deleted file mode 100644 index b5dd148..0000000 --- a/orchestra/contrib/contacts/migrations/0005_auto_20170625_1840.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:40 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('contacts', '0004_auto_20170625_1840'), - ] - - operations = [ - migrations.AlterField( - model_name='contact', - name='country', - field=models.CharField(blank=True, choices=[('TF', 'French Southern Territories'), ('BN', 'Brunei Darussalam'), ('TK', 'Tokelau'), ('EC', 'Ecuador'), ('JE', 'Jersey'), ('MC', 'Monaco'), ('SA', 'Saudi Arabia'), ('CI', "Côte d'Ivoire"), ('LA', "Lao People's Democratic Republic"), ('CX', 'Christmas Island'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('CZ', 'Czech Republic'), ('MO', 'Macao'), ('TC', 'Turks and Caicos Islands'), ('MU', 'Mauritius'), ('TL', 'Timor-Leste'), ('GU', 'Guam'), ('NI', 'Nicaragua'), ('TZ', 'Tanzania, United Republic of'), ('EH', 'Western Sahara'), ('BB', 'Barbados'), ('GM', 'Gambia'), ('SX', 'Sint Maarten (Dutch part)'), ('DJ', 'Djibouti'), ('BA', 'Bosnia and Herzegovina'), ('BD', 'Bangladesh'), ('CO', 'Colombia'), ('FO', 'Faroe Islands'), ('VI', 'Virgin Islands (U.S.)'), ('MH', 'Marshall Islands'), ('NL', 'Netherlands'), ('ID', 'Indonesia'), ('BR', 'Brazil'), ('SL', 'Sierra Leone'), ('MR', 'Mauritania'), ('UZ', 'Uzbekistan'), ('UG', 'Uganda'), ('LI', 'Liechtenstein'), ('VN', 'Viet Nam'), ('UM', 'United States Minor Outlying Islands'), ('TJ', 'Tajikistan'), ('BJ', 'Benin'), ('AQ', 'Antarctica'), ('BE', 'Belgium'), ('CC', 'Cocos (Keeling) Islands'), ('BT', 'Bhutan'), ('MD', 'Moldova (the Republic of)'), ('CW', 'Curaçao'), ('HN', 'Honduras'), ('HU', 'Hungary'), ('MW', 'Malawi'), ('UA', 'Ukraine'), ('CH', 'Switzerland'), ('ZA', 'South Africa'), ('KY', 'Cayman Islands'), ('VG', 'Virgin Islands (British)'), ('HM', 'Heard Island and McDonald Islands'), ('SN', 'Senegal'), ('PK', 'Pakistan'), ('GW', 'Guinea-Bissau'), ('BM', 'Bermuda'), ('SM', 'San Marino'), ('AL', 'Albania'), ('OM', 'Oman'), ('LU', 'Luxembourg'), ('NR', 'Nauru'), ('PT', 'Portugal'), ('AD', 'Andorra'), ('AF', 'Afghanistan'), ('PE', 'Peru'), ('TR', 'Turkey'), ('YE', 'Yemen'), ('RU', 'Russian Federation'), ('CU', 'Cuba'), ('NF', 'Norfolk Island'), ('LC', 'Saint Lucia'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('EE', 'Estonia'), ('HR', 'Croatia'), ('CY', 'Cyprus'), ('VC', 'Saint Vincent and the Grenadines'), ('ZW', 'Zimbabwe'), ('BY', 'Belarus'), ('SD', 'Sudan'), ('SZ', 'Swaziland'), ('SR', 'Suriname'), ('CD', 'Congo (the Democratic Republic of the)'), ('AM', 'Armenia'), ('AW', 'Aruba'), ('CN', 'China'), ('ZM', 'Zambia'), ('MT', 'Malta'), ('DK', 'Denmark'), ('TW', 'Taiwan (Province of China)'), ('MN', 'Mongolia'), ('KN', 'Saint Kitts and Nevis'), ('IL', 'Israel'), ('GS', 'South Georgia and the South Sandwich Islands'), ('IM', 'Isle of Man'), ('KP', "Korea (the Democratic People's Republic of)"), ('PF', 'French Polynesia'), ('BH', 'Bahrain'), ('RO', 'Romania'), ('GI', 'Gibraltar'), ('PL', 'Poland'), ('LT', 'Lithuania'), ('LY', 'Libya'), ('IE', 'Ireland'), ('MZ', 'Mozambique'), ('BZ', 'Belize'), ('NE', 'Niger'), ('AO', 'Angola'), ('GE', 'Georgia'), ('WS', 'Samoa'), ('PM', 'Saint Pierre and Miquelon'), ('BV', 'Bouvet Island'), ('IO', 'British Indian Ocean Territory'), ('NO', 'Norway'), ('TV', 'Tuvalu'), ('MP', 'Northern Mariana Islands'), ('FJ', 'Fiji'), ('ES', 'Spain'), ('DZ', 'Algeria'), ('UY', 'Uruguay'), ('HT', 'Haiti'), ('FK', 'Falkland Islands [Malvinas]'), ('KZ', 'Kazakhstan'), ('IQ', 'Iraq'), ('ET', 'Ethiopia'), ('IT', 'Italy'), ('NG', 'Nigeria'), ('SG', 'Singapore'), ('ST', 'Sao Tome and Principe'), ('NP', 'Nepal'), ('MX', 'Mexico'), ('NA', 'Namibia'), ('GD', 'Grenada'), ('AT', 'Austria'), ('NC', 'New Caledonia'), ('DM', 'Dominica'), ('LV', 'Latvia'), ('CG', 'Congo'), ('DE', 'Germany'), ('AS', 'American Samoa'), ('KH', 'Cambodia'), ('SB', 'Solomon Islands'), ('GG', 'Guernsey'), ('PN', 'Pitcairn'), ('GL', 'Greenland'), ('KI', 'Kiribati'), ('BG', 'Bulgaria'), ('DO', 'Dominican Republic'), ('RE', 'Réunion'), ('BI', 'Burundi'), ('SE', 'Sweden'), ('MF', 'Saint Martin (French part)'), ('GR', 'Greece'), ('RS', 'Serbia'), ('GT', 'Guatemala'), ('KE', 'Kenya'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('TN', 'Tunisia'), ('MY', 'Malaysia'), ('SO', 'Somalia'), ('ML', 'Mali'), ('TD', 'Chad'), ('BS', 'Bahamas'), ('FI', 'Finland'), ('KW', 'Kuwait'), ('SK', 'Slovakia'), ('TH', 'Thailand'), ('IS', 'Iceland'), ('MQ', 'Martinique'), ('GY', 'Guyana'), ('IN', 'India'), ('SJ', 'Svalbard and Jan Mayen'), ('SS', 'South Sudan'), ('KM', 'Comoros'), ('MA', 'Morocco'), ('TG', 'Togo'), ('AE', 'United Arab Emirates'), ('CM', 'Cameroon'), ('CV', 'Cabo Verde'), ('MM', 'Myanmar'), ('NZ', 'New Zealand'), ('AU', 'Australia'), ('PS', 'Palestine, State of'), ('QA', 'Qatar'), ('BW', 'Botswana'), ('FM', 'Micronesia (Federated States of)'), ('MS', 'Montserrat'), ('YT', 'Mayotte'), ('TM', 'Turkmenistan'), ('IR', 'Iran (Islamic Republic of)'), ('BL', 'Saint Barthélemy'), ('PY', 'Paraguay'), ('PH', 'Philippines'), ('EG', 'Egypt'), ('PR', 'Puerto Rico'), ('FR', 'France'), ('KG', 'Kyrgyzstan'), ('GP', 'Guadeloupe'), ('GF', 'French Guiana'), ('MV', 'Maldives'), ('NU', 'Niue'), ('SY', 'Syrian Arab Republic'), ('JP', 'Japan'), ('PA', 'Panama'), ('GA', 'Gabon'), ('VU', 'Vanuatu'), ('LB', 'Lebanon'), ('BF', 'Burkina Faso'), ('SC', 'Seychelles'), ('LR', 'Liberia'), ('BO', 'Bolivia (Plurinational State of)'), ('WF', 'Wallis and Futuna'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('RW', 'Rwanda'), ('PG', 'Papua New Guinea'), ('VA', 'Holy See'), ('CF', 'Central African Republic'), ('TT', 'Trinidad and Tobago'), ('CR', 'Costa Rica'), ('GH', 'Ghana'), ('AG', 'Antigua and Barbuda'), ('TO', 'Tonga'), ('LK', 'Sri Lanka'), ('CK', 'Cook Islands'), ('CA', 'Canada'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('AZ', 'Azerbaijan'), ('ER', 'Eritrea'), ('MG', 'Madagascar'), ('AX', 'Åland Islands'), ('PW', 'Palau'), ('ME', 'Montenegro'), ('SV', 'El Salvador'), ('GN', 'Guinea'), ('GQ', 'Equatorial Guinea'), ('KR', 'Korea (the Republic of)'), ('AI', 'Anguilla'), ('SI', 'Slovenia'), ('AR', 'Argentina'), ('HK', 'Hong Kong'), ('CL', 'Chile'), ('JM', 'Jamaica'), ('LS', 'Lesotho'), ('US', 'United States of America'), ('JO', 'Jordan')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/contacts/migrations/0006_auto_20170625_1840.py b/orchestra/contrib/contacts/migrations/0006_auto_20170625_1840.py deleted file mode 100644 index 67e710a..0000000 --- a/orchestra/contrib/contacts/migrations/0006_auto_20170625_1840.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:40 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('contacts', '0005_auto_20170625_1840'), - ] - - operations = [ - migrations.AlterField( - model_name='contact', - name='country', - field=models.CharField(blank=True, choices=[('CX', 'Christmas Island'), ('KW', 'Kuwait'), ('PF', 'French Polynesia'), ('UZ', 'Uzbekistan'), ('SZ', 'Swaziland'), ('KI', 'Kiribati'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('MF', 'Saint Martin (French part)'), ('NE', 'Niger'), ('EG', 'Egypt'), ('MY', 'Malaysia'), ('BA', 'Bosnia and Herzegovina'), ('FI', 'Finland'), ('AT', 'Austria'), ('GT', 'Guatemala'), ('MZ', 'Mozambique'), ('NP', 'Nepal'), ('AW', 'Aruba'), ('SG', 'Singapore'), ('BT', 'Bhutan'), ('VG', 'Virgin Islands (British)'), ('DZ', 'Algeria'), ('TH', 'Thailand'), ('AZ', 'Azerbaijan'), ('TJ', 'Tajikistan'), ('NC', 'New Caledonia'), ('ML', 'Mali'), ('KR', 'Korea (the Republic of)'), ('SK', 'Slovakia'), ('MM', 'Myanmar'), ('AQ', 'Antarctica'), ('LV', 'Latvia'), ('BH', 'Bahrain'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('SB', 'Solomon Islands'), ('ET', 'Ethiopia'), ('LS', 'Lesotho'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('WF', 'Wallis and Futuna'), ('BM', 'Bermuda'), ('PS', 'Palestine, State of'), ('IM', 'Isle of Man'), ('BZ', 'Belize'), ('KM', 'Comoros'), ('GY', 'Guyana'), ('CO', 'Colombia'), ('GF', 'French Guiana'), ('MX', 'Mexico'), ('MD', 'Moldova (the Republic of)'), ('AU', 'Australia'), ('TZ', 'Tanzania, United Republic of'), ('AX', 'Åland Islands'), ('HM', 'Heard Island and McDonald Islands'), ('IL', 'Israel'), ('SE', 'Sweden'), ('RO', 'Romania'), ('NU', 'Niue'), ('EC', 'Ecuador'), ('TG', 'Togo'), ('UY', 'Uruguay'), ('NL', 'Netherlands'), ('TO', 'Tonga'), ('ME', 'Montenegro'), ('TT', 'Trinidad and Tobago'), ('RE', 'Réunion'), ('PT', 'Portugal'), ('ID', 'Indonesia'), ('GH', 'Ghana'), ('NF', 'Norfolk Island'), ('BR', 'Brazil'), ('CG', 'Congo'), ('MW', 'Malawi'), ('MN', 'Mongolia'), ('VA', 'Holy See'), ('KP', "Korea (the Democratic People's Republic of)"), ('SY', 'Syrian Arab Republic'), ('BB', 'Barbados'), ('VC', 'Saint Vincent and the Grenadines'), ('KE', 'Kenya'), ('CN', 'China'), ('KH', 'Cambodia'), ('IN', 'India'), ('MH', 'Marshall Islands'), ('YE', 'Yemen'), ('LU', 'Luxembourg'), ('TM', 'Turkmenistan'), ('UM', 'United States Minor Outlying Islands'), ('TN', 'Tunisia'), ('ES', 'Spain'), ('AM', 'Armenia'), ('TR', 'Turkey'), ('HU', 'Hungary'), ('AO', 'Angola'), ('HR', 'Croatia'), ('SL', 'Sierra Leone'), ('TL', 'Timor-Leste'), ('JE', 'Jersey'), ('ZW', 'Zimbabwe'), ('RU', 'Russian Federation'), ('CD', 'Congo (the Democratic Republic of the)'), ('IT', 'Italy'), ('MO', 'Macao'), ('CA', 'Canada'), ('SX', 'Sint Maarten (Dutch part)'), ('AF', 'Afghanistan'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('DE', 'Germany'), ('LK', 'Sri Lanka'), ('FO', 'Faroe Islands'), ('CV', 'Cabo Verde'), ('MT', 'Malta'), ('TW', 'Taiwan (Province of China)'), ('AD', 'Andorra'), ('ER', 'Eritrea'), ('JO', 'Jordan'), ('IQ', 'Iraq'), ('EH', 'Western Sahara'), ('CI', "Côte d'Ivoire"), ('CM', 'Cameroon'), ('CZ', 'Czech Republic'), ('MS', 'Montserrat'), ('AS', 'American Samoa'), ('SA', 'Saudi Arabia'), ('PK', 'Pakistan'), ('PL', 'Poland'), ('YT', 'Mayotte'), ('BD', 'Bangladesh'), ('SI', 'Slovenia'), ('TF', 'French Southern Territories'), ('PE', 'Peru'), ('NG', 'Nigeria'), ('GW', 'Guinea-Bissau'), ('IR', 'Iran (Islamic Republic of)'), ('SO', 'Somalia'), ('AI', 'Anguilla'), ('GR', 'Greece'), ('VI', 'Virgin Islands (U.S.)'), ('DO', 'Dominican Republic'), ('MC', 'Monaco'), ('UG', 'Uganda'), ('GP', 'Guadeloupe'), ('KY', 'Cayman Islands'), ('BO', 'Bolivia (Plurinational State of)'), ('AR', 'Argentina'), ('BN', 'Brunei Darussalam'), ('LA', "Lao People's Democratic Republic"), ('BI', 'Burundi'), ('JP', 'Japan'), ('WS', 'Samoa'), ('FK', 'Falkland Islands [Malvinas]'), ('SD', 'Sudan'), ('MU', 'Mauritius'), ('CF', 'Central African Republic'), ('GD', 'Grenada'), ('IE', 'Ireland'), ('HT', 'Haiti'), ('TC', 'Turks and Caicos Islands'), ('BY', 'Belarus'), ('MP', 'Northern Mariana Islands'), ('HN', 'Honduras'), ('MG', 'Madagascar'), ('FJ', 'Fiji'), ('SS', 'South Sudan'), ('SV', 'El Salvador'), ('PR', 'Puerto Rico'), ('GE', 'Georgia'), ('RS', 'Serbia'), ('TK', 'Tokelau'), ('JM', 'Jamaica'), ('KZ', 'Kazakhstan'), ('PA', 'Panama'), ('PH', 'Philippines'), ('MR', 'Mauritania'), ('ZM', 'Zambia'), ('CY', 'Cyprus'), ('GS', 'South Georgia and the South Sandwich Islands'), ('BF', 'Burkina Faso'), ('SR', 'Suriname'), ('FM', 'Micronesia (Federated States of)'), ('BW', 'Botswana'), ('ZA', 'South Africa'), ('AL', 'Albania'), ('DK', 'Denmark'), ('US', 'United States of America'), ('KG', 'Kyrgyzstan'), ('CH', 'Switzerland'), ('BG', 'Bulgaria'), ('GL', 'Greenland'), ('LC', 'Saint Lucia'), ('TV', 'Tuvalu'), ('HK', 'Hong Kong'), ('AE', 'United Arab Emirates'), ('PY', 'Paraguay'), ('BV', 'Bouvet Island'), ('PG', 'Papua New Guinea'), ('NO', 'Norway'), ('LY', 'Libya'), ('ST', 'Sao Tome and Principe'), ('DM', 'Dominica'), ('BL', 'Saint Barthélemy'), ('FR', 'France'), ('CU', 'Cuba'), ('IS', 'Iceland'), ('MA', 'Morocco'), ('GI', 'Gibraltar'), ('MV', 'Maldives'), ('MQ', 'Martinique'), ('GM', 'Gambia'), ('RW', 'Rwanda'), ('BJ', 'Benin'), ('NR', 'Nauru'), ('OM', 'Oman'), ('QA', 'Qatar'), ('CW', 'Curaçao'), ('LT', 'Lithuania'), ('CL', 'Chile'), ('BE', 'Belgium'), ('NZ', 'New Zealand'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('PN', 'Pitcairn'), ('LB', 'Lebanon'), ('DJ', 'Djibouti'), ('GQ', 'Equatorial Guinea'), ('IO', 'British Indian Ocean Territory'), ('PW', 'Palau'), ('EE', 'Estonia'), ('AG', 'Antigua and Barbuda'), ('VU', 'Vanuatu'), ('GA', 'Gabon'), ('SN', 'Senegal'), ('KN', 'Saint Kitts and Nevis'), ('CK', 'Cook Islands'), ('UA', 'Ukraine'), ('SJ', 'Svalbard and Jan Mayen'), ('GU', 'Guam'), ('CC', 'Cocos (Keeling) Islands'), ('CR', 'Costa Rica'), ('GN', 'Guinea'), ('PM', 'Saint Pierre and Miquelon'), ('SM', 'San Marino'), ('GG', 'Guernsey'), ('TD', 'Chad'), ('NA', 'Namibia'), ('LR', 'Liberia'), ('BS', 'Bahamas'), ('NI', 'Nicaragua'), ('SC', 'Seychelles'), ('VN', 'Viet Nam'), ('LI', 'Liechtenstein')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/contacts/migrations/0007_auto_20170625_1841.py b/orchestra/contrib/contacts/migrations/0007_auto_20170625_1841.py deleted file mode 100644 index d9843a0..0000000 --- a/orchestra/contrib/contacts/migrations/0007_auto_20170625_1841.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:41 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('contacts', '0006_auto_20170625_1840'), - ] - - operations = [ - migrations.AlterField( - model_name='contact', - name='country', - field=models.CharField(blank=True, choices=[('BI', 'Burundi'), ('PN', 'Pitcairn'), ('GD', 'Grenada'), ('NF', 'Norfolk Island'), ('UM', 'United States Minor Outlying Islands'), ('KN', 'Saint Kitts and Nevis'), ('ES', 'Spain'), ('AI', 'Anguilla'), ('BJ', 'Benin'), ('BA', 'Bosnia and Herzegovina'), ('PF', 'French Polynesia'), ('AL', 'Albania'), ('ME', 'Montenegro'), ('PK', 'Pakistan'), ('IE', 'Ireland'), ('GS', 'South Georgia and the South Sandwich Islands'), ('BV', 'Bouvet Island'), ('SV', 'El Salvador'), ('BR', 'Brazil'), ('PG', 'Papua New Guinea'), ('VG', 'Virgin Islands (British)'), ('DK', 'Denmark'), ('MV', 'Maldives'), ('JP', 'Japan'), ('BM', 'Bermuda'), ('GM', 'Gambia'), ('VC', 'Saint Vincent and the Grenadines'), ('SM', 'San Marino'), ('NR', 'Nauru'), ('LA', "Lao People's Democratic Republic"), ('RO', 'Romania'), ('UZ', 'Uzbekistan'), ('CM', 'Cameroon'), ('SS', 'South Sudan'), ('BG', 'Bulgaria'), ('NL', 'Netherlands'), ('GA', 'Gabon'), ('GG', 'Guernsey'), ('MD', 'Moldova (the Republic of)'), ('MG', 'Madagascar'), ('LU', 'Luxembourg'), ('TW', 'Taiwan (Province of China)'), ('CA', 'Canada'), ('DO', 'Dominican Republic'), ('AR', 'Argentina'), ('SK', 'Slovakia'), ('CV', 'Cabo Verde'), ('OM', 'Oman'), ('ET', 'Ethiopia'), ('FI', 'Finland'), ('BW', 'Botswana'), ('KZ', 'Kazakhstan'), ('SG', 'Singapore'), ('SI', 'Slovenia'), ('US', 'United States of America'), ('LI', 'Liechtenstein'), ('PR', 'Puerto Rico'), ('EC', 'Ecuador'), ('KH', 'Cambodia'), ('BY', 'Belarus'), ('GT', 'Guatemala'), ('SA', 'Saudi Arabia'), ('ML', 'Mali'), ('YE', 'Yemen'), ('SZ', 'Swaziland'), ('CX', 'Christmas Island'), ('AO', 'Angola'), ('HM', 'Heard Island and McDonald Islands'), ('EE', 'Estonia'), ('TM', 'Turkmenistan'), ('WF', 'Wallis and Futuna'), ('LR', 'Liberia'), ('IN', 'India'), ('FM', 'Micronesia (Federated States of)'), ('IR', 'Iran (Islamic Republic of)'), ('LC', 'Saint Lucia'), ('AU', 'Australia'), ('DJ', 'Djibouti'), ('MU', 'Mauritius'), ('ZW', 'Zimbabwe'), ('SC', 'Seychelles'), ('SR', 'Suriname'), ('GI', 'Gibraltar'), ('LV', 'Latvia'), ('RE', 'Réunion'), ('PY', 'Paraguay'), ('ST', 'Sao Tome and Principe'), ('PM', 'Saint Pierre and Miquelon'), ('CW', 'Curaçao'), ('IO', 'British Indian Ocean Territory'), ('PS', 'Palestine, State of'), ('YT', 'Mayotte'), ('LT', 'Lithuania'), ('AS', 'American Samoa'), ('QA', 'Qatar'), ('LB', 'Lebanon'), ('AG', 'Antigua and Barbuda'), ('FK', 'Falkland Islands [Malvinas]'), ('FR', 'France'), ('BO', 'Bolivia (Plurinational State of)'), ('HT', 'Haiti'), ('PH', 'Philippines'), ('KG', 'Kyrgyzstan'), ('UY', 'Uruguay'), ('TJ', 'Tajikistan'), ('GY', 'Guyana'), ('FO', 'Faroe Islands'), ('CI', "Côte d'Ivoire"), ('MZ', 'Mozambique'), ('AF', 'Afghanistan'), ('CL', 'Chile'), ('JE', 'Jersey'), ('HN', 'Honduras'), ('JM', 'Jamaica'), ('MH', 'Marshall Islands'), ('KR', 'Korea (the Republic of)'), ('TZ', 'Tanzania, United Republic of'), ('PT', 'Portugal'), ('NI', 'Nicaragua'), ('HR', 'Croatia'), ('ID', 'Indonesia'), ('SY', 'Syrian Arab Republic'), ('BZ', 'Belize'), ('HK', 'Hong Kong'), ('CD', 'Congo (the Democratic Republic of the)'), ('GL', 'Greenland'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('TH', 'Thailand'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('TC', 'Turks and Caicos Islands'), ('TR', 'Turkey'), ('NA', 'Namibia'), ('PW', 'Palau'), ('MO', 'Macao'), ('NO', 'Norway'), ('MR', 'Mauritania'), ('JO', 'Jordan'), ('VN', 'Viet Nam'), ('SB', 'Solomon Islands'), ('GE', 'Georgia'), ('IQ', 'Iraq'), ('BD', 'Bangladesh'), ('BF', 'Burkina Faso'), ('UG', 'Uganda'), ('GH', 'Ghana'), ('MW', 'Malawi'), ('TO', 'Tonga'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('BH', 'Bahrain'), ('KP', "Korea (the Democratic People's Republic of)"), ('LK', 'Sri Lanka'), ('GP', 'Guadeloupe'), ('AT', 'Austria'), ('MS', 'Montserrat'), ('BE', 'Belgium'), ('KE', 'Kenya'), ('GN', 'Guinea'), ('AD', 'Andorra'), ('MA', 'Morocco'), ('NG', 'Nigeria'), ('CC', 'Cocos (Keeling) Islands'), ('AM', 'Armenia'), ('BN', 'Brunei Darussalam'), ('DZ', 'Algeria'), ('PA', 'Panama'), ('CZ', 'Czech Republic'), ('CU', 'Cuba'), ('MM', 'Myanmar'), ('AZ', 'Azerbaijan'), ('SD', 'Sudan'), ('IS', 'Iceland'), ('VA', 'Holy See'), ('CY', 'Cyprus'), ('BT', 'Bhutan'), ('TN', 'Tunisia'), ('VU', 'Vanuatu'), ('TF', 'French Southern Territories'), ('IL', 'Israel'), ('TK', 'Tokelau'), ('SO', 'Somalia'), ('SX', 'Sint Maarten (Dutch part)'), ('LY', 'Libya'), ('MF', 'Saint Martin (French part)'), ('CF', 'Central African Republic'), ('TL', 'Timor-Leste'), ('SJ', 'Svalbard and Jan Mayen'), ('CR', 'Costa Rica'), ('MY', 'Malaysia'), ('EG', 'Egypt'), ('BB', 'Barbados'), ('ER', 'Eritrea'), ('NU', 'Niue'), ('DE', 'Germany'), ('AX', 'Åland Islands'), ('CN', 'China'), ('DM', 'Dominica'), ('GU', 'Guam'), ('MP', 'Northern Mariana Islands'), ('VI', 'Virgin Islands (U.S.)'), ('MQ', 'Martinique'), ('TG', 'Togo'), ('MX', 'Mexico'), ('IM', 'Isle of Man'), ('RW', 'Rwanda'), ('FJ', 'Fiji'), ('TT', 'Trinidad and Tobago'), ('KI', 'Kiribati'), ('TD', 'Chad'), ('GR', 'Greece'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('UA', 'Ukraine'), ('HU', 'Hungary'), ('SL', 'Sierra Leone'), ('WS', 'Samoa'), ('IT', 'Italy'), ('BL', 'Saint Barthélemy'), ('EH', 'Western Sahara'), ('BS', 'Bahamas'), ('TV', 'Tuvalu'), ('PE', 'Peru'), ('ZA', 'South Africa'), ('NE', 'Niger'), ('MT', 'Malta'), ('CK', 'Cook Islands'), ('GQ', 'Equatorial Guinea'), ('GF', 'French Guiana'), ('NZ', 'New Zealand'), ('LS', 'Lesotho'), ('KY', 'Cayman Islands'), ('MN', 'Mongolia'), ('RU', 'Russian Federation'), ('ZM', 'Zambia'), ('AQ', 'Antarctica'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('CH', 'Switzerland'), ('AW', 'Aruba'), ('MC', 'Monaco'), ('KM', 'Comoros'), ('CG', 'Congo'), ('PL', 'Poland'), ('CO', 'Colombia'), ('SN', 'Senegal'), ('NP', 'Nepal'), ('RS', 'Serbia'), ('GW', 'Guinea-Bissau'), ('AE', 'United Arab Emirates'), ('NC', 'New Caledonia'), ('KW', 'Kuwait'), ('SE', 'Sweden')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/contacts/migrations/0008_auto_20190805_1134.py b/orchestra/contrib/contacts/migrations/0008_auto_20190805_1134.py deleted file mode 100644 index 00cfaca..0000000 --- a/orchestra/contrib/contacts/migrations/0008_auto_20190805_1134.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2019-08-05 09:34 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('contacts', '0007_auto_20170625_1841'), - ] - - operations = [ - migrations.AlterField( - model_name='contact', - name='country', - field=models.CharField(blank=True, choices=[('CG', 'Congo'), ('MS', 'Montserrat'), ('UM', 'United States Minor Outlying Islands'), ('GL', 'Greenland'), ('PS', 'Palestine, State of'), ('HR', 'Croatia'), ('CW', 'Curaçao'), ('EC', 'Ecuador'), ('UG', 'Uganda'), ('ID', 'Indonesia'), ('ET', 'Ethiopia'), ('ZM', 'Zambia'), ('VC', 'Saint Vincent and the Grenadines'), ('AT', 'Austria'), ('BA', 'Bosnia and Herzegovina'), ('BI', 'Burundi'), ('AI', 'Anguilla'), ('FK', 'Falkland Islands [Malvinas]'), ('PN', 'Pitcairn'), ('BY', 'Belarus'), ('KY', 'Cayman Islands'), ('UZ', 'Uzbekistan'), ('GR', 'Greece'), ('LK', 'Sri Lanka'), ('FR', 'France'), ('CF', 'Central African Republic'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('ZW', 'Zimbabwe'), ('EG', 'Egypt'), ('MH', 'Marshall Islands'), ('BB', 'Barbados'), ('CZ', 'Czech Republic'), ('SJ', 'Svalbard and Jan Mayen'), ('MQ', 'Martinique'), ('MT', 'Malta'), ('BV', 'Bouvet Island'), ('KG', 'Kyrgyzstan'), ('AD', 'Andorra'), ('SR', 'Suriname'), ('UA', 'Ukraine'), ('MF', 'Saint Martin (French part)'), ('IO', 'British Indian Ocean Territory'), ('KN', 'Saint Kitts and Nevis'), ('SX', 'Sint Maarten (Dutch part)'), ('BD', 'Bangladesh'), ('IS', 'Iceland'), ('NE', 'Niger'), ('SN', 'Senegal'), ('GY', 'Guyana'), ('SA', 'Saudi Arabia'), ('AQ', 'Antarctica'), ('HU', 'Hungary'), ('AU', 'Australia'), ('SY', 'Syrian Arab Republic'), ('BF', 'Burkina Faso'), ('TF', 'French Southern Territories'), ('AE', 'United Arab Emirates'), ('VU', 'Vanuatu'), ('WF', 'Wallis and Futuna'), ('CD', 'Congo (the Democratic Republic of the)'), ('LC', 'Saint Lucia'), ('NU', 'Niue'), ('GW', 'Guinea-Bissau'), ('KH', 'Cambodia'), ('TV', 'Tuvalu'), ('KE', 'Kenya'), ('LT', 'Lithuania'), ('PK', 'Pakistan'), ('BO', 'Bolivia (Plurinational State of)'), ('NG', 'Nigeria'), ('RE', 'Réunion'), ('TL', 'Timor-Leste'), ('SG', 'Singapore'), ('NC', 'New Caledonia'), ('LS', 'Lesotho'), ('IQ', 'Iraq'), ('KW', 'Kuwait'), ('VN', 'Viet Nam'), ('YT', 'Mayotte'), ('GD', 'Grenada'), ('VA', 'Holy See'), ('FI', 'Finland'), ('CH', 'Switzerland'), ('UY', 'Uruguay'), ('EH', 'Western Sahara'), ('RS', 'Serbia'), ('CX', 'Christmas Island'), ('MC', 'Monaco'), ('VG', 'Virgin Islands (British)'), ('GF', 'French Guiana'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('DM', 'Dominica'), ('JO', 'Jordan'), ('GH', 'Ghana'), ('US', 'United States of America'), ('CV', 'Cabo Verde'), ('PA', 'Panama'), ('MY', 'Malaysia'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('MX', 'Mexico'), ('LU', 'Luxembourg'), ('WS', 'Samoa'), ('ER', 'Eritrea'), ('CK', 'Cook Islands'), ('CI', "Côte d'Ivoire"), ('PT', 'Portugal'), ('CN', 'China'), ('LR', 'Liberia'), ('MP', 'Northern Mariana Islands'), ('KP', "Korea (the Democratic People's Republic of)"), ('ML', 'Mali'), ('CY', 'Cyprus'), ('TT', 'Trinidad and Tobago'), ('GI', 'Gibraltar'), ('HK', 'Hong Kong'), ('TK', 'Tokelau'), ('AL', 'Albania'), ('BJ', 'Benin'), ('CL', 'Chile'), ('SO', 'Somalia'), ('PE', 'Peru'), ('BS', 'Bahamas'), ('BM', 'Bermuda'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('ST', 'Sao Tome and Principe'), ('TN', 'Tunisia'), ('HT', 'Haiti'), ('AX', 'Åland Islands'), ('IE', 'Ireland'), ('MR', 'Mauritania'), ('BE', 'Belgium'), ('DE', 'Germany'), ('JE', 'Jersey'), ('KZ', 'Kazakhstan'), ('TR', 'Turkey'), ('FJ', 'Fiji'), ('AO', 'Angola'), ('DZ', 'Algeria'), ('MV', 'Maldives'), ('NL', 'Netherlands'), ('BW', 'Botswana'), ('SV', 'El Salvador'), ('AZ', 'Azerbaijan'), ('IM', 'Isle of Man'), ('PF', 'French Polynesia'), ('AF', 'Afghanistan'), ('TG', 'Togo'), ('EE', 'Estonia'), ('JM', 'Jamaica'), ('GS', 'South Georgia and the South Sandwich Islands'), ('LI', 'Liechtenstein'), ('GM', 'Gambia'), ('ES', 'Spain'), ('PL', 'Poland'), ('DO', 'Dominican Republic'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('BL', 'Saint Barthélemy'), ('GQ', 'Equatorial Guinea'), ('ME', 'Montenegro'), ('GE', 'Georgia'), ('LA', "Lao People's Democratic Republic"), ('BT', 'Bhutan'), ('SC', 'Seychelles'), ('SM', 'San Marino'), ('CU', 'Cuba'), ('KR', 'Korea (the Republic of)'), ('VI', 'Virgin Islands (U.S.)'), ('PY', 'Paraguay'), ('AM', 'Armenia'), ('NA', 'Namibia'), ('PW', 'Palau'), ('BR', 'Brazil'), ('CR', 'Costa Rica'), ('BH', 'Bahrain'), ('PM', 'Saint Pierre and Miquelon'), ('QA', 'Qatar'), ('LY', 'Libya'), ('TM', 'Turkmenistan'), ('FO', 'Faroe Islands'), ('YE', 'Yemen'), ('TZ', 'Tanzania, United Republic of'), ('SD', 'Sudan'), ('SK', 'Slovakia'), ('KM', 'Comoros'), ('HM', 'Heard Island and McDonald Islands'), ('MZ', 'Mozambique'), ('MG', 'Madagascar'), ('CO', 'Colombia'), ('TC', 'Turks and Caicos Islands'), ('RW', 'Rwanda'), ('IL', 'Israel'), ('BZ', 'Belize'), ('MN', 'Mongolia'), ('AW', 'Aruba'), ('GA', 'Gabon'), ('CM', 'Cameroon'), ('PH', 'Philippines'), ('DJ', 'Djibouti'), ('KI', 'Kiribati'), ('RO', 'Romania'), ('PG', 'Papua New Guinea'), ('DK', 'Denmark'), ('TD', 'Chad'), ('BN', 'Brunei Darussalam'), ('LV', 'Latvia'), ('CA', 'Canada'), ('SL', 'Sierra Leone'), ('IR', 'Iran (Islamic Republic of)'), ('BG', 'Bulgaria'), ('AR', 'Argentina'), ('TO', 'Tonga'), ('GP', 'Guadeloupe'), ('HN', 'Honduras'), ('AG', 'Antigua and Barbuda'), ('NP', 'Nepal'), ('MA', 'Morocco'), ('SZ', 'Swaziland'), ('TW', 'Taiwan (Province of China)'), ('RU', 'Russian Federation'), ('NR', 'Nauru'), ('GG', 'Guernsey'), ('TH', 'Thailand'), ('CC', 'Cocos (Keeling) Islands'), ('MU', 'Mauritius'), ('ZA', 'South Africa'), ('OM', 'Oman'), ('SB', 'Solomon Islands'), ('SE', 'Sweden'), ('SS', 'South Sudan'), ('NO', 'Norway'), ('SI', 'Slovenia'), ('GU', 'Guam'), ('GT', 'Guatemala'), ('PR', 'Puerto Rico'), ('GN', 'Guinea'), ('MO', 'Macao'), ('IN', 'India'), ('NI', 'Nicaragua'), ('TJ', 'Tajikistan'), ('NZ', 'New Zealand'), ('MD', 'Moldova (the Republic of)'), ('MM', 'Myanmar'), ('NF', 'Norfolk Island'), ('AS', 'American Samoa'), ('FM', 'Micronesia (Federated States of)'), ('IT', 'Italy'), ('MW', 'Malawi'), ('JP', 'Japan'), ('LB', 'Lebanon')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/contacts/migrations/0009_auto_20200204_1217.py b/orchestra/contrib/contacts/migrations/0009_auto_20200204_1217.py deleted file mode 100644 index 65c5627..0000000 --- a/orchestra/contrib/contacts/migrations/0009_auto_20200204_1217.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2020-02-04 11:17 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('contacts', '0008_auto_20190805_1134'), - ] - - operations = [ - migrations.AlterField( - model_name='contact', - name='country', - field=models.CharField(blank=True, choices=[('KZ', 'Kazakhstan'), ('GY', 'Guyana'), ('BA', 'Bosnia and Herzegovina'), ('AS', 'American Samoa'), ('SO', 'Somalia'), ('GE', 'Georgia'), ('DK', 'Denmark'), ('NL', 'Netherlands'), ('HR', 'Croatia'), ('DZ', 'Algeria'), ('TG', 'Togo'), ('GP', 'Guadeloupe'), ('AX', 'Åland Islands'), ('LU', 'Luxembourg'), ('BN', 'Brunei Darussalam'), ('GQ', 'Equatorial Guinea'), ('GL', 'Greenland'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('KR', 'Korea (the Republic of)'), ('MH', 'Marshall Islands'), ('NO', 'Norway'), ('EC', 'Ecuador'), ('RS', 'Serbia'), ('FK', 'Falkland Islands [Malvinas]'), ('SJ', 'Svalbard and Jan Mayen'), ('ME', 'Montenegro'), ('GW', 'Guinea-Bissau'), ('LS', 'Lesotho'), ('PT', 'Portugal'), ('CU', 'Cuba'), ('TV', 'Tuvalu'), ('JP', 'Japan'), ('CA', 'Canada'), ('ER', 'Eritrea'), ('ET', 'Ethiopia'), ('GR', 'Greece'), ('RU', 'Russian Federation'), ('BH', 'Bahrain'), ('LI', 'Liechtenstein'), ('MP', 'Northern Mariana Islands'), ('CX', 'Christmas Island'), ('PS', 'Palestine, State of'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('WS', 'Samoa'), ('AT', 'Austria'), ('TL', 'Timor-Leste'), ('KM', 'Comoros'), ('WF', 'Wallis and Futuna'), ('BR', 'Brazil'), ('GT', 'Guatemala'), ('RW', 'Rwanda'), ('HM', 'Heard Island and McDonald Islands'), ('NI', 'Nicaragua'), ('IT', 'Italy'), ('MT', 'Malta'), ('BL', 'Saint Barthélemy'), ('AF', 'Afghanistan'), ('CG', 'Congo'), ('NR', 'Nauru'), ('FJ', 'Fiji'), ('MV', 'Maldives'), ('VU', 'Vanuatu'), ('DE', 'Germany'), ('BM', 'Bermuda'), ('NZ', 'New Zealand'), ('AM', 'Armenia'), ('PR', 'Puerto Rico'), ('ES', 'Spain'), ('NC', 'New Caledonia'), ('DJ', 'Djibouti'), ('LY', 'Libya'), ('AI', 'Anguilla'), ('TT', 'Trinidad and Tobago'), ('LK', 'Sri Lanka'), ('FR', 'France'), ('SG', 'Singapore'), ('ST', 'Sao Tome and Principe'), ('IR', 'Iran (Islamic Republic of)'), ('BF', 'Burkina Faso'), ('IS', 'Iceland'), ('TN', 'Tunisia'), ('MM', 'Myanmar'), ('AQ', 'Antarctica'), ('ZW', 'Zimbabwe'), ('SR', 'Suriname'), ('NF', 'Norfolk Island'), ('AO', 'Angola'), ('SV', 'El Salvador'), ('EH', 'Western Sahara'), ('GN', 'Guinea'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('FM', 'Micronesia (Federated States of)'), ('GH', 'Ghana'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('HU', 'Hungary'), ('AL', 'Albania'), ('OM', 'Oman'), ('VA', 'Holy See'), ('KI', 'Kiribati'), ('PM', 'Saint Pierre and Miquelon'), ('SS', 'South Sudan'), ('ID', 'Indonesia'), ('NP', 'Nepal'), ('BE', 'Belgium'), ('CF', 'Central African Republic'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('MQ', 'Martinique'), ('UY', 'Uruguay'), ('SA', 'Saudi Arabia'), ('TD', 'Chad'), ('FI', 'Finland'), ('SZ', 'Swaziland'), ('LB', 'Lebanon'), ('CL', 'Chile'), ('KE', 'Kenya'), ('RO', 'Romania'), ('BT', 'Bhutan'), ('QA', 'Qatar'), ('BD', 'Bangladesh'), ('KH', 'Cambodia'), ('HN', 'Honduras'), ('MS', 'Montserrat'), ('KP', "Korea (the Democratic People's Republic of)"), ('GD', 'Grenada'), ('BJ', 'Benin'), ('JM', 'Jamaica'), ('LT', 'Lithuania'), ('CM', 'Cameroon'), ('CR', 'Costa Rica'), ('CD', 'Congo (the Democratic Republic of the)'), ('IE', 'Ireland'), ('CW', 'Curaçao'), ('PH', 'Philippines'), ('GM', 'Gambia'), ('YE', 'Yemen'), ('AU', 'Australia'), ('BW', 'Botswana'), ('KW', 'Kuwait'), ('IQ', 'Iraq'), ('ML', 'Mali'), ('MG', 'Madagascar'), ('GS', 'South Georgia and the South Sandwich Islands'), ('MN', 'Mongolia'), ('EE', 'Estonia'), ('FO', 'Faroe Islands'), ('MF', 'Saint Martin (French part)'), ('AZ', 'Azerbaijan'), ('CK', 'Cook Islands'), ('SI', 'Slovenia'), ('CC', 'Cocos (Keeling) Islands'), ('SE', 'Sweden'), ('ZA', 'South Africa'), ('HT', 'Haiti'), ('MU', 'Mauritius'), ('BG', 'Bulgaria'), ('TF', 'French Southern Territories'), ('AR', 'Argentina'), ('VG', 'Virgin Islands (British)'), ('LV', 'Latvia'), ('CN', 'China'), ('TZ', 'Tanzania, United Republic of'), ('VC', 'Saint Vincent and the Grenadines'), ('DO', 'Dominican Republic'), ('KY', 'Cayman Islands'), ('NU', 'Niue'), ('AD', 'Andorra'), ('VN', 'Viet Nam'), ('LR', 'Liberia'), ('SX', 'Sint Maarten (Dutch part)'), ('TK', 'Tokelau'), ('LA', "Lao People's Democratic Republic"), ('GI', 'Gibraltar'), ('HK', 'Hong Kong'), ('JO', 'Jordan'), ('PA', 'Panama'), ('TC', 'Turks and Caicos Islands'), ('PE', 'Peru'), ('UA', 'Ukraine'), ('NG', 'Nigeria'), ('TO', 'Tonga'), ('BV', 'Bouvet Island'), ('CY', 'Cyprus'), ('GF', 'French Guiana'), ('SY', 'Syrian Arab Republic'), ('IM', 'Isle of Man'), ('BO', 'Bolivia (Plurinational State of)'), ('LC', 'Saint Lucia'), ('CO', 'Colombia'), ('NA', 'Namibia'), ('BB', 'Barbados'), ('KN', 'Saint Kitts and Nevis'), ('BS', 'Bahamas'), ('MC', 'Monaco'), ('VI', 'Virgin Islands (U.S.)'), ('MW', 'Malawi'), ('MO', 'Macao'), ('SC', 'Seychelles'), ('SL', 'Sierra Leone'), ('PN', 'Pitcairn'), ('IL', 'Israel'), ('CI', "Côte d'Ivoire"), ('MA', 'Morocco'), ('JE', 'Jersey'), ('MR', 'Mauritania'), ('CZ', 'Czech Republic'), ('CH', 'Switzerland'), ('PW', 'Palau'), ('PG', 'Papua New Guinea'), ('SK', 'Slovakia'), ('NE', 'Niger'), ('TW', 'Taiwan (Province of China)'), ('AW', 'Aruba'), ('CV', 'Cabo Verde'), ('ZM', 'Zambia'), ('SB', 'Solomon Islands'), ('UG', 'Uganda'), ('KG', 'Kyrgyzstan'), ('BZ', 'Belize'), ('SN', 'Senegal'), ('DM', 'Dominica'), ('MD', 'Moldova (the Republic of)'), ('UM', 'United States Minor Outlying Islands'), ('US', 'United States of America'), ('MX', 'Mexico'), ('IO', 'British Indian Ocean Territory'), ('IN', 'India'), ('SD', 'Sudan'), ('BY', 'Belarus'), ('SM', 'San Marino'), ('MY', 'Malaysia'), ('GG', 'Guernsey'), ('TR', 'Turkey'), ('TH', 'Thailand'), ('MZ', 'Mozambique'), ('GU', 'Guam'), ('EG', 'Egypt'), ('PF', 'French Polynesia'), ('YT', 'Mayotte'), ('PY', 'Paraguay'), ('TJ', 'Tajikistan'), ('PL', 'Poland'), ('AE', 'United Arab Emirates'), ('AG', 'Antigua and Barbuda'), ('UZ', 'Uzbekistan'), ('BI', 'Burundi'), ('RE', 'Réunion'), ('GA', 'Gabon'), ('PK', 'Pakistan'), ('TM', 'Turkmenistan')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/contacts/migrations/0010_auto_20200204_1218.py b/orchestra/contrib/contacts/migrations/0010_auto_20200204_1218.py deleted file mode 100644 index 2b409a6..0000000 --- a/orchestra/contrib/contacts/migrations/0010_auto_20200204_1218.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2020-02-04 11:18 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('contacts', '0009_auto_20200204_1217'), - ] - - operations = [ - migrations.AlterField( - model_name='contact', - name='country', - field=models.CharField(blank=True, choices=[('OM', 'Oman'), ('AM', 'Armenia'), ('WF', 'Wallis and Futuna'), ('ET', 'Ethiopia'), ('IR', 'Iran (Islamic Republic of)'), ('BR', 'Brazil'), ('TG', 'Togo'), ('SV', 'El Salvador'), ('SL', 'Sierra Leone'), ('CO', 'Colombia'), ('MQ', 'Martinique'), ('SY', 'Syrian Arab Republic'), ('TL', 'Timor-Leste'), ('GR', 'Greece'), ('HU', 'Hungary'), ('TO', 'Tonga'), ('AU', 'Australia'), ('BI', 'Burundi'), ('MV', 'Maldives'), ('WS', 'Samoa'), ('TC', 'Turks and Caicos Islands'), ('KW', 'Kuwait'), ('NP', 'Nepal'), ('MZ', 'Mozambique'), ('PF', 'French Polynesia'), ('US', 'United States of America'), ('MA', 'Morocco'), ('PS', 'Palestine, State of'), ('KH', 'Cambodia'), ('KZ', 'Kazakhstan'), ('MH', 'Marshall Islands'), ('CK', 'Cook Islands'), ('ST', 'Sao Tome and Principe'), ('LT', 'Lithuania'), ('BV', 'Bouvet Island'), ('RO', 'Romania'), ('TK', 'Tokelau'), ('CX', 'Christmas Island'), ('UG', 'Uganda'), ('TV', 'Tuvalu'), ('GY', 'Guyana'), ('GF', 'French Guiana'), ('ME', 'Montenegro'), ('MT', 'Malta'), ('LB', 'Lebanon'), ('ML', 'Mali'), ('TW', 'Taiwan (Province of China)'), ('FR', 'France'), ('AO', 'Angola'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('GQ', 'Equatorial Guinea'), ('CU', 'Cuba'), ('CM', 'Cameroon'), ('FI', 'Finland'), ('FO', 'Faroe Islands'), ('JM', 'Jamaica'), ('BT', 'Bhutan'), ('KG', 'Kyrgyzstan'), ('BF', 'Burkina Faso'), ('EH', 'Western Sahara'), ('CD', 'Congo (the Democratic Republic of the)'), ('UZ', 'Uzbekistan'), ('PK', 'Pakistan'), ('IN', 'India'), ('DJ', 'Djibouti'), ('LY', 'Libya'), ('BL', 'Saint Barthélemy'), ('SB', 'Solomon Islands'), ('NL', 'Netherlands'), ('NZ', 'New Zealand'), ('LC', 'Saint Lucia'), ('CN', 'China'), ('CF', 'Central African Republic'), ('JE', 'Jersey'), ('HT', 'Haiti'), ('HK', 'Hong Kong'), ('AQ', 'Antarctica'), ('MG', 'Madagascar'), ('SG', 'Singapore'), ('PA', 'Panama'), ('CW', 'Curaçao'), ('HM', 'Heard Island and McDonald Islands'), ('PW', 'Palau'), ('BB', 'Barbados'), ('VC', 'Saint Vincent and the Grenadines'), ('SD', 'Sudan'), ('BW', 'Botswana'), ('TT', 'Trinidad and Tobago'), ('TM', 'Turkmenistan'), ('LR', 'Liberia'), ('PY', 'Paraguay'), ('ZA', 'South Africa'), ('HR', 'Croatia'), ('CI', "Côte d'Ivoire"), ('DO', 'Dominican Republic'), ('AD', 'Andorra'), ('DM', 'Dominica'), ('SZ', 'Swaziland'), ('FM', 'Micronesia (Federated States of)'), ('VA', 'Holy See'), ('GM', 'Gambia'), ('IT', 'Italy'), ('LA', "Lao People's Democratic Republic"), ('KM', 'Comoros'), ('CA', 'Canada'), ('IE', 'Ireland'), ('PR', 'Puerto Rico'), ('TD', 'Chad'), ('BM', 'Bermuda'), ('CV', 'Cabo Verde'), ('KE', 'Kenya'), ('MY', 'Malaysia'), ('PL', 'Poland'), ('PN', 'Pitcairn'), ('PE', 'Peru'), ('CL', 'Chile'), ('KR', 'Korea (the Republic of)'), ('AE', 'United Arab Emirates'), ('LU', 'Luxembourg'), ('BE', 'Belgium'), ('KP', "Korea (the Democratic People's Republic of)"), ('AZ', 'Azerbaijan'), ('AL', 'Albania'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('VI', 'Virgin Islands (U.S.)'), ('BO', 'Bolivia (Plurinational State of)'), ('EG', 'Egypt'), ('KN', 'Saint Kitts and Nevis'), ('MU', 'Mauritius'), ('AR', 'Argentina'), ('SN', 'Senegal'), ('SC', 'Seychelles'), ('GN', 'Guinea'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('MS', 'Montserrat'), ('BJ', 'Benin'), ('VU', 'Vanuatu'), ('MO', 'Macao'), ('CZ', 'Czech Republic'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('SA', 'Saudi Arabia'), ('SS', 'South Sudan'), ('NI', 'Nicaragua'), ('RE', 'Réunion'), ('DZ', 'Algeria'), ('KY', 'Cayman Islands'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('CR', 'Costa Rica'), ('AX', 'Åland Islands'), ('GA', 'Gabon'), ('BD', 'Bangladesh'), ('IS', 'Iceland'), ('TH', 'Thailand'), ('VG', 'Virgin Islands (British)'), ('LS', 'Lesotho'), ('ID', 'Indonesia'), ('UY', 'Uruguay'), ('TN', 'Tunisia'), ('GW', 'Guinea-Bissau'), ('SJ', 'Svalbard and Jan Mayen'), ('EE', 'Estonia'), ('ZM', 'Zambia'), ('AG', 'Antigua and Barbuda'), ('MP', 'Northern Mariana Islands'), ('JO', 'Jordan'), ('CY', 'Cyprus'), ('GS', 'South Georgia and the South Sandwich Islands'), ('CG', 'Congo'), ('IL', 'Israel'), ('RW', 'Rwanda'), ('NO', 'Norway'), ('IQ', 'Iraq'), ('FK', 'Falkland Islands [Malvinas]'), ('TZ', 'Tanzania, United Republic of'), ('AT', 'Austria'), ('AS', 'American Samoa'), ('BY', 'Belarus'), ('TF', 'French Southern Territories'), ('EC', 'Ecuador'), ('GT', 'Guatemala'), ('MF', 'Saint Martin (French part)'), ('MX', 'Mexico'), ('AF', 'Afghanistan'), ('AI', 'Anguilla'), ('JP', 'Japan'), ('BN', 'Brunei Darussalam'), ('AW', 'Aruba'), ('NF', 'Norfolk Island'), ('IO', 'British Indian Ocean Territory'), ('ER', 'Eritrea'), ('SK', 'Slovakia'), ('GE', 'Georgia'), ('LK', 'Sri Lanka'), ('MR', 'Mauritania'), ('GD', 'Grenada'), ('VN', 'Viet Nam'), ('YE', 'Yemen'), ('CH', 'Switzerland'), ('HN', 'Honduras'), ('MM', 'Myanmar'), ('ZW', 'Zimbabwe'), ('FJ', 'Fiji'), ('NA', 'Namibia'), ('MN', 'Mongolia'), ('QA', 'Qatar'), ('UA', 'Ukraine'), ('BG', 'Bulgaria'), ('PT', 'Portugal'), ('SX', 'Sint Maarten (Dutch part)'), ('NC', 'New Caledonia'), ('MW', 'Malawi'), ('UM', 'United States Minor Outlying Islands'), ('PH', 'Philippines'), ('KI', 'Kiribati'), ('PM', 'Saint Pierre and Miquelon'), ('IM', 'Isle of Man'), ('LV', 'Latvia'), ('CC', 'Cocos (Keeling) Islands'), ('NG', 'Nigeria'), ('SR', 'Suriname'), ('RS', 'Serbia'), ('BZ', 'Belize'), ('GH', 'Ghana'), ('TR', 'Turkey'), ('SO', 'Somalia'), ('BA', 'Bosnia and Herzegovina'), ('NR', 'Nauru'), ('RU', 'Russian Federation'), ('GL', 'Greenland'), ('SI', 'Slovenia'), ('NE', 'Niger'), ('YT', 'Mayotte'), ('DK', 'Denmark'), ('SE', 'Sweden'), ('GU', 'Guam'), ('SM', 'San Marino'), ('DE', 'Germany'), ('GI', 'Gibraltar'), ('GG', 'Guernsey'), ('BH', 'Bahrain'), ('GP', 'Guadeloupe'), ('BS', 'Bahamas'), ('MC', 'Monaco'), ('ES', 'Spain'), ('LI', 'Liechtenstein'), ('TJ', 'Tajikistan'), ('PG', 'Papua New Guinea'), ('NU', 'Niue'), ('MD', 'Moldova (the Republic of)')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/contacts/migrations/0011_auto_20210330_1049.py b/orchestra/contrib/contacts/migrations/0011_auto_20210330_1049.py deleted file mode 100644 index d4664e9..0000000 --- a/orchestra/contrib/contacts/migrations/0011_auto_20210330_1049.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-03-30 10:49 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('contacts', '0010_auto_20200204_1218'), - ] - - operations = [ - migrations.AlterField( - model_name='contact', - name='country', - field=models.CharField(blank=True, choices=[('AF', 'Afghanistan'), ('AX', 'Åland Islands'), ('AL', 'Albania'), ('DZ', 'Algeria'), ('AS', 'American Samoa'), ('AD', 'Andorra'), ('AO', 'Angola'), ('AI', 'Anguilla'), ('AQ', 'Antarctica'), ('AG', 'Antigua and Barbuda'), ('AR', 'Argentina'), ('AM', 'Armenia'), ('AW', 'Aruba'), ('AU', 'Australia'), ('AT', 'Austria'), ('AZ', 'Azerbaijan'), ('BS', 'Bahamas'), ('BH', 'Bahrain'), ('BD', 'Bangladesh'), ('BB', 'Barbados'), ('BY', 'Belarus'), ('BE', 'Belgium'), ('BZ', 'Belize'), ('BJ', 'Benin'), ('BM', 'Bermuda'), ('BT', 'Bhutan'), ('BO', 'Bolivia (Plurinational State of)'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('BA', 'Bosnia and Herzegovina'), ('BW', 'Botswana'), ('BV', 'Bouvet Island'), ('BR', 'Brazil'), ('IO', 'British Indian Ocean Territory'), ('BN', 'Brunei Darussalam'), ('BG', 'Bulgaria'), ('BF', 'Burkina Faso'), ('BI', 'Burundi'), ('CV', 'Cabo Verde'), ('KH', 'Cambodia'), ('CM', 'Cameroon'), ('CA', 'Canada'), ('KY', 'Cayman Islands'), ('CF', 'Central African Republic'), ('TD', 'Chad'), ('CL', 'Chile'), ('CN', 'China'), ('CX', 'Christmas Island'), ('CC', 'Cocos (Keeling) Islands'), ('CO', 'Colombia'), ('KM', 'Comoros'), ('CG', 'Congo'), ('CD', 'Congo (the Democratic Republic of the)'), ('CK', 'Cook Islands'), ('CR', 'Costa Rica'), ('CI', "Côte d'Ivoire"), ('HR', 'Croatia'), ('CU', 'Cuba'), ('CW', 'Curaçao'), ('CY', 'Cyprus'), ('CZ', 'Czechia'), ('DK', 'Denmark'), ('DJ', 'Djibouti'), ('DM', 'Dominica'), ('DO', 'Dominican Republic'), ('EC', 'Ecuador'), ('EG', 'Egypt'), ('SV', 'El Salvador'), ('GQ', 'Equatorial Guinea'), ('ER', 'Eritrea'), ('EE', 'Estonia'), ('SZ', 'Eswatini'), ('ET', 'Ethiopia'), ('FK', 'Falkland Islands (Malvinas)'), ('FO', 'Faroe Islands'), ('FJ', 'Fiji'), ('FI', 'Finland'), ('FR', 'France'), ('GF', 'French Guiana'), ('PF', 'French Polynesia'), ('TF', 'French Southern Territories'), ('GA', 'Gabon'), ('GM', 'Gambia'), ('GE', 'Georgia'), ('DE', 'Germany'), ('GH', 'Ghana'), ('GI', 'Gibraltar'), ('GR', 'Greece'), ('GL', 'Greenland'), ('GD', 'Grenada'), ('GP', 'Guadeloupe'), ('GU', 'Guam'), ('GT', 'Guatemala'), ('GG', 'Guernsey'), ('GN', 'Guinea'), ('GW', 'Guinea-Bissau'), ('GY', 'Guyana'), ('HT', 'Haiti'), ('HM', 'Heard Island and McDonald Islands'), ('VA', 'Holy See'), ('HN', 'Honduras'), ('HK', 'Hong Kong'), ('HU', 'Hungary'), ('IS', 'Iceland'), ('IN', 'India'), ('ID', 'Indonesia'), ('IR', 'Iran (Islamic Republic of)'), ('IQ', 'Iraq'), ('IE', 'Ireland'), ('IM', 'Isle of Man'), ('IL', 'Israel'), ('IT', 'Italy'), ('JM', 'Jamaica'), ('JP', 'Japan'), ('JE', 'Jersey'), ('JO', 'Jordan'), ('KZ', 'Kazakhstan'), ('KE', 'Kenya'), ('KI', 'Kiribati'), ('KP', "Korea (the Democratic People's Republic of)"), ('KR', 'Korea (the Republic of)'), ('KW', 'Kuwait'), ('KG', 'Kyrgyzstan'), ('LA', "Lao People's Democratic Republic"), ('LV', 'Latvia'), ('LB', 'Lebanon'), ('LS', 'Lesotho'), ('LR', 'Liberia'), ('LY', 'Libya'), ('LI', 'Liechtenstein'), ('LT', 'Lithuania'), ('LU', 'Luxembourg'), ('MO', 'Macao'), ('MG', 'Madagascar'), ('MW', 'Malawi'), ('MY', 'Malaysia'), ('MV', 'Maldives'), ('ML', 'Mali'), ('MT', 'Malta'), ('MH', 'Marshall Islands'), ('MQ', 'Martinique'), ('MR', 'Mauritania'), ('MU', 'Mauritius'), ('YT', 'Mayotte'), ('MX', 'Mexico'), ('FM', 'Micronesia (Federated States of)'), ('MD', 'Moldova (the Republic of)'), ('MC', 'Monaco'), ('MN', 'Mongolia'), ('ME', 'Montenegro'), ('MS', 'Montserrat'), ('MA', 'Morocco'), ('MZ', 'Mozambique'), ('MM', 'Myanmar'), ('NA', 'Namibia'), ('NR', 'Nauru'), ('NP', 'Nepal'), ('NL', 'Netherlands'), ('NC', 'New Caledonia'), ('NZ', 'New Zealand'), ('NI', 'Nicaragua'), ('NE', 'Niger'), ('NG', 'Nigeria'), ('NU', 'Niue'), ('NF', 'Norfolk Island'), ('MK', 'North Macedonia'), ('MP', 'Northern Mariana Islands'), ('NO', 'Norway'), ('OM', 'Oman'), ('PK', 'Pakistan'), ('PW', 'Palau'), ('PS', 'Palestine, State of'), ('PA', 'Panama'), ('PG', 'Papua New Guinea'), ('PY', 'Paraguay'), ('PE', 'Peru'), ('PH', 'Philippines'), ('PN', 'Pitcairn'), ('PL', 'Poland'), ('PT', 'Portugal'), ('PR', 'Puerto Rico'), ('QA', 'Qatar'), ('RE', 'Réunion'), ('RO', 'Romania'), ('RU', 'Russian Federation'), ('RW', 'Rwanda'), ('BL', 'Saint Barthélemy'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('KN', 'Saint Kitts and Nevis'), ('LC', 'Saint Lucia'), ('MF', 'Saint Martin (French part)'), ('PM', 'Saint Pierre and Miquelon'), ('VC', 'Saint Vincent and the Grenadines'), ('WS', 'Samoa'), ('SM', 'San Marino'), ('ST', 'Sao Tome and Principe'), ('SA', 'Saudi Arabia'), ('SN', 'Senegal'), ('RS', 'Serbia'), ('SC', 'Seychelles'), ('SL', 'Sierra Leone'), ('SG', 'Singapore'), ('SX', 'Sint Maarten (Dutch part)'), ('SK', 'Slovakia'), ('SI', 'Slovenia'), ('SB', 'Solomon Islands'), ('SO', 'Somalia'), ('ZA', 'South Africa'), ('GS', 'South Georgia and the South Sandwich Islands'), ('SS', 'South Sudan'), ('ES', 'Spain'), ('LK', 'Sri Lanka'), ('SD', 'Sudan'), ('SR', 'Suriname'), ('SJ', 'Svalbard and Jan Mayen'), ('SE', 'Sweden'), ('CH', 'Switzerland'), ('SY', 'Syrian Arab Republic'), ('TW', 'Taiwan (Province of China)'), ('TJ', 'Tajikistan'), ('TZ', 'Tanzania, the United Republic of'), ('TH', 'Thailand'), ('TL', 'Timor-Leste'), ('TG', 'Togo'), ('TK', 'Tokelau'), ('TO', 'Tonga'), ('TT', 'Trinidad and Tobago'), ('TN', 'Tunisia'), ('TR', 'Turkey'), ('TM', 'Turkmenistan'), ('TC', 'Turks and Caicos Islands'), ('TV', 'Tuvalu'), ('UG', 'Uganda'), ('UA', 'Ukraine'), ('AE', 'United Arab Emirates'), ('GB', 'United Kingdom of Great Britain and Northern Ireland'), ('UM', 'United States Minor Outlying Islands'), ('US', 'United States of America'), ('UY', 'Uruguay'), ('UZ', 'Uzbekistan'), ('VU', 'Vanuatu'), ('VE', 'Venezuela (Bolivarian Republic of)'), ('VN', 'Viet Nam'), ('VG', 'Virgin Islands (British)'), ('VI', 'Virgin Islands (U.S.)'), ('WF', 'Wallis and Futuna'), ('EH', 'Western Sahara'), ('YE', 'Yemen'), ('ZM', 'Zambia'), ('ZW', 'Zimbabwe')], default='ES', max_length=20, verbose_name='country'), - ), - ] diff --git a/orchestra/contrib/contacts/migrations/__init__.py b/orchestra/contrib/contacts/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/contacts/models.py b/orchestra/contrib/contacts/models.py index a8de158..2f069af 100644 --- a/orchestra/contrib/contacts/models.py +++ b/orchestra/contrib/contacts/models.py @@ -1,7 +1,7 @@ from django.core.exceptions import ValidationError from django.core.validators import RegexValidator from django.db import models -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.core import validators from orchestra.models.fields import MultiSelectField diff --git a/orchestra/contrib/databases/admin.py b/orchestra/contrib/databases/admin.py index d50c23d..d417be9 100644 --- a/orchestra/contrib/databases/admin.py +++ b/orchestra/contrib/databases/admin.py @@ -1,9 +1,9 @@ -from django.conf.urls import url +from django.urls import re_path as url from django.contrib import admin from django.contrib.auth.admin import UserAdmin from django.utils.html import format_html from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin import ExtendedModelAdmin, ChangePasswordAdminMixin from orchestra.admin.utils import change_url @@ -11,7 +11,7 @@ from orchestra.contrib.accounts.actions import list_accounts from orchestra.contrib.accounts.admin import SelectAccountAdminMixin from .filters import HasUserListFilter, HasDatabaseListFilter -from .forms import DatabaseCreationForm, DatabaseUserChangeForm, DatabaseUserCreationForm +from .forms import DatabaseCreationForm, DatabaseUserChangeForm, DatabaseUserCreationForm, DatabaseForm from .models import Database, DatabaseUser def save_selected(modeladmin, request, queryset): @@ -20,21 +20,21 @@ def save_selected(modeladmin, request, queryset): save_selected.short_description = "Re-save selected objects" class DatabaseAdmin(SelectAccountAdminMixin, ExtendedModelAdmin): - list_display = ('name', 'type', 'display_users', 'account_link') + list_display = ('name', 'type', 'display_users', 'account_link', 'target_server') list_filter = ('type', HasUserListFilter) search_fields = ('name', 'account__username') - change_readonly_fields = ('name', 'type') + change_readonly_fields = ('name', 'type', 'target_server') extra = 1 fieldsets = ( (None, { 'classes': ('extrapretty',), - 'fields': ('account_link', 'name', 'type', 'users', 'display_users', 'comments'), + 'fields': ('account_link', 'name', 'type', 'users', 'display_users', 'comments', 'target_server'), }), ) add_fieldsets = ( (None, { 'classes': ('wide',), - 'fields': ('account_link', 'name', 'type') + 'fields': ('account_link', 'name', 'type', 'target_server') }), (_("Create new user"), { 'classes': ('wide',), @@ -45,11 +45,12 @@ class DatabaseAdmin(SelectAccountAdminMixin, ExtendedModelAdmin): 'fields': ('user',) }), ) + form = DatabaseForm add_form = DatabaseCreationForm readonly_fields = ('account_link', 'display_users',) filter_horizontal = ['users'] - filter_by_account_fields = ('users',) - list_prefetch_related = ('users',) + # filter_by_account_fields = ('users',) + # list_prefetch_related = ('users',) actions = (list_accounts, save_selected) @mark_safe @@ -71,6 +72,7 @@ class DatabaseAdmin(SelectAccountAdminMixin, ExtendedModelAdmin): username=form.cleaned_data['username'], type=obj.type, account_id=obj.account.pk, + target_server=form.cleaned_data['target_server'], ) user.set_password(form.cleaned_data["password1"]) user.save() @@ -78,22 +80,22 @@ class DatabaseAdmin(SelectAccountAdminMixin, ExtendedModelAdmin): class DatabaseUserAdmin(SelectAccountAdminMixin, ChangePasswordAdminMixin, ExtendedModelAdmin): - list_display = ('username', 'type', 'display_databases', 'account_link') + list_display = ('username', 'target_server', 'type', 'display_databases', 'account_link') list_filter = ('type', HasDatabaseListFilter) search_fields = ('username', 'account__username') form = DatabaseUserChangeForm add_form = DatabaseUserCreationForm - change_readonly_fields = ('username', 'type') + change_readonly_fields = ('username', 'type', 'target_server') fieldsets = ( (None, { 'classes': ('extrapretty',), - 'fields': ('account_link', 'username', 'password', 'type', 'display_databases') + 'fields': ('account_link', 'username', 'password', 'type', 'display_databases', 'target_server', 'permision') }), ) add_fieldsets = ( (None, { 'classes': ('extrapretty',), - 'fields': ('account_link', 'username', 'password1', 'password2', 'type') + 'fields': ('account_link', 'username', 'password1', 'password2', 'type', 'target_server', 'permision') }), ) readonly_fields = ('account_link', 'display_databases',) diff --git a/orchestra/contrib/databases/apps.py b/orchestra/contrib/databases/apps.py index 97f8ef4..87e8938 100644 --- a/orchestra/contrib/databases/apps.py +++ b/orchestra/contrib/databases/apps.py @@ -1,5 +1,5 @@ from django.apps import AppConfig -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.core import services diff --git a/orchestra/contrib/databases/backends.py b/orchestra/contrib/databases/backends.py index 70fcc66..ca48ff0 100644 --- a/orchestra/contrib/databases/backends.py +++ b/orchestra/contrib/databases/backends.py @@ -1,6 +1,6 @@ import textwrap -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController, replace from orchestra.contrib.resources import ServiceMonitor @@ -36,10 +36,16 @@ class MySQLController(ServiceController): 'username': user.username, 'grant': 'WITH GRANT OPTION' if user == context['owner'] else '' }) - self.append(textwrap.dedent("""\ - mysql -e 'GRANT ALL PRIVILEGES ON `%(database)s`.* TO "%(username)s"@"%(host)s" %(grant)s;'\ - """) % context - ) + if user.permision == "ro": + self.append(textwrap.dedent("""\ + mysql -e 'GRANT SELECT ON `%(database)s`.* TO "%(username)s"@"%(host)s" %(grant)s;'\ + """) % context + ) + else: + self.append(textwrap.dedent("""\ + mysql -e 'GRANT ALL PRIVILEGES ON `%(database)s`.* TO "%(username)s"@"%(host)s" %(grant)s;'\ + """) % context + ) def delete(self, database): if database.type != database.MYSQL: @@ -83,12 +89,20 @@ class MySQLUserController(ServiceController): if user.type != user.MYSQL: return context = self.get_context(user) - self.append(textwrap.dedent("""\ - # Create user %(username)s - mysql -e 'CREATE USER "%(username)s"@"%(host)s";' || true # User already exists - mysql -e 'UPDATE mysql.user SET Password="%(password)s" WHERE User="%(username)s";'\ - """) % context - ) + if user.target_server.name != "mysql.pangea.lan": + self.append(textwrap.dedent("""\ + # Create user %(username)s + mysql -e 'CREATE USER IF NOT EXISTS "%(username)s"@"%(host)s";' + mysql -e 'ALTER USER IF EXISTS "%(username)s"@"%(host)s" IDENTIFIED BY PASSWORD "%(password)s";'\ + """) % context + ) + else: + self.append(textwrap.dedent("""\ + # Create user %(username)s + mysql -e 'CREATE USER "%(username)s"@"%(host)s";' || true # User already exists + mysql -e 'UPDATE mysql.user SET Password="%(password)s" WHERE User="%(username)s";'\ + """) % context + ) def delete(self, user): if user.type != user.MYSQL: diff --git a/orchestra/contrib/databases/filters.py b/orchestra/contrib/databases/filters.py index 9b76957..50136c7 100644 --- a/orchestra/contrib/databases/filters.py +++ b/orchestra/contrib/databases/filters.py @@ -1,5 +1,5 @@ from django.contrib.admin import SimpleListFilter -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class HasUserListFilter(SimpleListFilter): diff --git a/orchestra/contrib/databases/forms.py b/orchestra/contrib/databases/forms.py index aa4c720..f35f00c 100644 --- a/orchestra/contrib/databases/forms.py +++ b/orchestra/contrib/databases/forms.py @@ -3,7 +3,7 @@ from django.contrib.auth.forms import ReadOnlyPasswordHashField from django.core.exceptions import ValidationError from django.utils.html import format_html from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.core import validators @@ -31,6 +31,32 @@ class DatabaseUserCreationForm(forms.ModelForm): return password2 +class DatabaseForm(forms.ModelForm): + + class Meta: + model = Database + fields = ('name', 'users', 'type', 'account', 'target_server') + + def __init__(self, *args, **kwargs): + super(DatabaseForm, self).__init__(*args, **kwargs) + # muestra solo los usuarios del mismo server + account_id = self.instance.account_id + database_server_id = self.instance.target_server_id + if account_id: + self.fields['users'].queryset = DatabaseUser.objects.filter(account=account_id, target_server=database_server_id) + + def clean(self): + # verifica que los usuarios petenecen al servidor de la bbdd + database_server_id = self.instance.target_server_id + users = self.cleaned_data.get('users') + if users and database_server_id: + for user in users: + if user.target_server_id != database_server_id: + self.add_error("users", _(f"{user.username} does not belong to the database server")) + + return self.cleaned_data + + class DatabaseCreationForm(DatabaseUserCreationForm): username = forms.CharField(label=_("Username"), max_length=16, required=False, validators=[validators.validate_name], @@ -50,13 +76,14 @@ class DatabaseCreationForm(DatabaseUserCreationForm): account_id = self.initial.get('account', self.initial_account) if account_id: qs = self.fields['user'].queryset.filter(account=account_id).order_by('username') - choices = [ (u.pk, "%s (%s)" % (u, u.get_type_display())) for u in qs ] + choices = [ (u.pk, "%s (%s) (%s)" % (u, u.get_type_display(), str(u.target_server.name) )) for u in qs ] self.fields['user'].queryset = qs self.fields['user'].choices = [(None, '--------'),] + choices def clean_username(self): username = self.cleaned_data.get('username') - if DatabaseUser.objects.filter(username=username).exists(): + server = self.cleaned_data.get('target_server') + if DatabaseUser.objects.filter(username=username, target_server=server).exists(): raise ValidationError("Provided username already exists.") return username @@ -76,6 +103,9 @@ class DatabaseCreationForm(DatabaseUserCreationForm): if user and user.type != self.cleaned_data.get('type'): msg = _("Database type and user type doesn't match") raise ValidationError(msg) + if user and user.target_server != self.cleaned_data.get('target_server'): + msg = _("Database server and user server doesn't match") + raise ValidationError(msg) return user def clean(self): diff --git a/orchestra/contrib/databases/migrations/0001_initial.py b/orchestra/contrib/databases/migrations/0001_initial.py index e25696a..0e2a154 100644 --- a/orchestra/contrib/databases/migrations/0001_initial.py +++ b/orchestra/contrib/databases/migrations/0001_initial.py @@ -1,52 +1,46 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals +# Generated by Django 2.2.28 on 2023-07-06 14:25 -from django.db import models, migrations from django.conf import settings +from django.db import migrations, models import django.db.models.deletion import orchestra.core.validators class Migration(migrations.Migration): + initial = True + dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( - name='Database', + name='DatabaseUser', fields=[ - ('id', models.AutoField(serialize=False, primary_key=True, verbose_name='ID', auto_created=True)), - ('name', models.CharField(verbose_name='name', max_length=64, validators=[orchestra.core.validators.validate_name])), - ('type', models.CharField(default='mysql', choices=[('mysql', 'MySQL'), ('postgres', 'PostgreSQL')], verbose_name='type', max_length=32)), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='databases', verbose_name='Account', to=settings.AUTH_USER_MODEL)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('username', models.CharField(max_length=16, validators=[orchestra.core.validators.validate_name], verbose_name='username')), + ('password', models.CharField(max_length=256, verbose_name='password')), + ('type', models.CharField(choices=[('mysql', 'MySQL')], default='mysql', max_length=32, verbose_name='type')), + ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='databaseusers', to=settings.AUTH_USER_MODEL, verbose_name='Account')), ], + options={ + 'verbose_name_plural': 'DB users', + 'unique_together': {('username', 'type')}, + }, ), migrations.CreateModel( - name='DatabaseUser', + name='Database', fields=[ - ('id', models.AutoField(serialize=False, primary_key=True, verbose_name='ID', auto_created=True)), - ('username', models.CharField(verbose_name='username', max_length=16, validators=[orchestra.core.validators.validate_name])), - ('password', models.CharField(verbose_name='password', max_length=256)), - ('type', models.CharField(default='mysql', choices=[('mysql', 'MySQL'), ('postgres', 'PostgreSQL')], verbose_name='type', max_length=32)), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='databaseusers', verbose_name='Account', to=settings.AUTH_USER_MODEL)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=64, validators=[orchestra.core.validators.validate_name], verbose_name='name')), + ('type', models.CharField(choices=[('mysql', 'MySQL')], default='mysql', max_length=32, verbose_name='type')), + ('comments', models.TextField(blank=True, default='')), + ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='databases', to=settings.AUTH_USER_MODEL, verbose_name='Account')), + ('users', models.ManyToManyField(blank=True, related_name='databases', to='databases.DatabaseUser', verbose_name='users')), ], options={ - 'verbose_name_plural': 'DB users', + 'unique_together': {('name', 'type')}, }, ), - migrations.AddField( - model_name='database', - name='users', - field=models.ManyToManyField(related_name='databases', to='databases.DatabaseUser', verbose_name='users', blank=True), - ), - migrations.AlterUniqueTogether( - name='databaseuser', - unique_together=set([('username', 'type')]), - ), - migrations.AlterUniqueTogether( - name='database', - unique_together=set([('name', 'type')]), - ), ] diff --git a/orchestra/contrib/databases/migrations/0001_squashed_0004_auto_20210330_1049.py b/orchestra/contrib/databases/migrations/0001_squashed_0004_auto_20210330_1049.py deleted file mode 100644 index 2c12381..0000000 --- a/orchestra/contrib/databases/migrations/0001_squashed_0004_auto_20210330_1049.py +++ /dev/null @@ -1,82 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:25 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import orchestra.core.validators - - -class Migration(migrations.Migration): - - replaces = [('databases', '0001_initial'), ('databases', '0002_auto_20170528_2005'), ('databases', '0003_database_comments'), ('databases', '0004_auto_20210330_1049')] - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Database', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=64, validators=[orchestra.core.validators.validate_name], verbose_name='name')), - ('type', models.CharField(choices=[('mysql', 'MySQL'), ('postgres', 'PostgreSQL')], default='mysql', max_length=32, verbose_name='type')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='databases', to=settings.AUTH_USER_MODEL, verbose_name='Account')), - ], - ), - migrations.CreateModel( - name='DatabaseUser', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('username', models.CharField(max_length=16, validators=[orchestra.core.validators.validate_name], verbose_name='username')), - ('password', models.CharField(max_length=256, verbose_name='password')), - ('type', models.CharField(choices=[('mysql', 'MySQL'), ('postgres', 'PostgreSQL')], default='mysql', max_length=32, verbose_name='type')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='databaseusers', to=settings.AUTH_USER_MODEL, verbose_name='Account')), - ], - options={ - 'verbose_name_plural': 'DB users', - }, - ), - migrations.AddField( - model_name='database', - name='users', - field=models.ManyToManyField(blank=True, related_name='databases', to='databases.DatabaseUser', verbose_name='users'), - ), - migrations.AlterUniqueTogether( - name='databaseuser', - unique_together=set([('username', 'type')]), - ), - migrations.AlterUniqueTogether( - name='database', - unique_together=set([('name', 'type')]), - ), - migrations.AlterField( - model_name='database', - name='type', - field=models.CharField(choices=[('mysql', 'MySQL')], default='mysql', max_length=32, verbose_name='type'), - ), - migrations.AlterField( - model_name='databaseuser', - name='type', - field=models.CharField(choices=[('mysql', 'MySQL')], default='mysql', max_length=32, verbose_name='type'), - ), - migrations.AddField( - model_name='database', - name='comments', - field=models.TextField(blank=True, default=''), - ), - migrations.AlterField( - model_name='database', - name='type', - field=models.CharField(choices=[('mysql', 'MySQL'), ('postgres', 'PostgreSQL')], default='mysql', max_length=32, verbose_name='type'), - ), - migrations.AlterField( - model_name='databaseuser', - name='type', - field=models.CharField(choices=[('mysql', 'MySQL'), ('postgres', 'PostgreSQL')], default='mysql', max_length=32, verbose_name='type'), - ), - ] diff --git a/orchestra/contrib/databases/migrations/0002_auto_20170528_2005.py b/orchestra/contrib/databases/migrations/0002_auto_20170528_2005.py deleted file mode 100644 index 9f79724..0000000 --- a/orchestra/contrib/databases/migrations/0002_auto_20170528_2005.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:05 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('databases', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='database', - name='type', - field=models.CharField(choices=[('mysql', 'MySQL')], default='mysql', max_length=32, verbose_name='type'), - ), - migrations.AlterField( - model_name='databaseuser', - name='type', - field=models.CharField(choices=[('mysql', 'MySQL')], default='mysql', max_length=32, verbose_name='type'), - ), - ] diff --git a/orchestra/contrib/databases/migrations/0003_database_comments.py b/orchestra/contrib/databases/migrations/0003_database_comments.py deleted file mode 100644 index 3a2149b..0000000 --- a/orchestra/contrib/databases/migrations/0003_database_comments.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2020-02-04 11:21 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('databases', '0002_auto_20170528_2005'), - ] - - operations = [ - migrations.AddField( - model_name='database', - name='comments', - field=models.TextField(default=''), - ), - ] diff --git a/orchestra/contrib/databases/migrations/0004_auto_20210330_1049.py b/orchestra/contrib/databases/migrations/0004_auto_20210330_1049.py deleted file mode 100644 index 9259bfa..0000000 --- a/orchestra/contrib/databases/migrations/0004_auto_20210330_1049.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-03-30 10:49 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('databases', '0003_database_comments'), - ] - - operations = [ - migrations.AlterField( - model_name='database', - name='comments', - field=models.TextField(blank=True, default=''), - ), - migrations.AlterField( - model_name='database', - name='type', - field=models.CharField(choices=[('mysql', 'MySQL'), ('postgres', 'PostgreSQL')], default='mysql', max_length=32, verbose_name='type'), - ), - migrations.AlterField( - model_name='databaseuser', - name='type', - field=models.CharField(choices=[('mysql', 'MySQL'), ('postgres', 'PostgreSQL')], default='mysql', max_length=32, verbose_name='type'), - ), - ] diff --git a/orchestra/contrib/databases/models.py b/orchestra/contrib/databases/models.py index 207fe63..528657f 100644 --- a/orchestra/contrib/databases/models.py +++ b/orchestra/contrib/databases/models.py @@ -1,7 +1,7 @@ import hashlib from django.db import models -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.core import validators @@ -23,9 +23,11 @@ class Database(models.Model): account = models.ForeignKey('accounts.Account', on_delete=models.CASCADE, verbose_name=_("Account"), related_name='databases') comments = models.TextField(default="", blank=True) + target_server = models.ForeignKey('orchestration.Server', on_delete=models.CASCADE, + verbose_name=_("Server"), default=3 ) class Meta: - unique_together = ('name', 'type') + unique_together = ('name', 'type', 'target_server') def __str__(self): return "%s" % self.name @@ -54,7 +56,12 @@ class DatabaseUser(models.Model): MYSQL = Database.MYSQL POSTGRESQL = Database.POSTGRESQL - username = models.CharField(_("username"), max_length=16, # MySQL usernames 16 char long + typeOfPermision = [ + ('all','all'), + ('ro', 'read only'), + ] + + username = models.CharField(_("username"), max_length=32, # MySQL usernames 16 char long validators=[validators.validate_name]) password = models.CharField(_("password"), max_length=256) type = models.CharField(_("type"), max_length=32, @@ -62,10 +69,14 @@ class DatabaseUser(models.Model): default=settings.DATABASES_DEFAULT_TYPE) account = models.ForeignKey('accounts.Account', on_delete=models.CASCADE, verbose_name=_("Account"), related_name='databaseusers') + target_server = models.ForeignKey('orchestration.Server', on_delete=models.CASCADE, + verbose_name=_("Server"), default=3 ) + permision = models.CharField(verbose_name=_("Permisson"), max_length=20, choices=typeOfPermision, default='all') + class Meta: verbose_name_plural = _("DB users") - unique_together = ('username', 'type') + unique_together = ('username', 'type', 'target_server') def __str__(self): return self.username diff --git a/orchestra/contrib/domains/actions.py b/orchestra/contrib/domains/actions.py index 6b66188..0e1b222 100644 --- a/orchestra/contrib/domains/actions.py +++ b/orchestra/contrib/domains/actions.py @@ -7,7 +7,7 @@ from django.db.models.functions import Concat, Coalesce from django.forms.models import modelformset_factory from django.shortcuts import render from django.utils.safestring import mark_safe -from django.utils.translation import ungettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext_lazy as _ from django.template.response import TemplateResponse from orchestra.admin.utils import get_object_from_url, change_url, admin_link @@ -84,7 +84,7 @@ def edit_records(modeladmin, request, queryset): change_message = modeladmin.construct_change_message(request, fake_form, [formset]) modeladmin.log_change(request, formset.instance, change_message) num = len(formsets) - message = ungettext( + message = ngettext( _("Records for one selected domain have been updated."), _("Records for %i selected domains have been updated.") % num, num) @@ -127,7 +127,7 @@ def set_soa(modeladmin, request, queryset): modeladmin.log_change(request, domain, change_message) domain.save() num = len(queryset) - msg = ungettext( + msg = ngettext( _("SOA record for one domain has been updated."), _("SOA record for %s domains has been updated.") % num, num diff --git a/orchestra/contrib/domains/admin.py b/orchestra/contrib/domains/admin.py index a1dd614..10994cf 100644 --- a/orchestra/contrib/domains/admin.py +++ b/orchestra/contrib/domains/admin.py @@ -5,7 +5,7 @@ from django.db.models.functions import Concat, Coalesce from django.templatetags.static import static from django.utils.html import format_html from django.utils.safestring import mark_safe -from django.utils.translation import ugettext, ugettext_lazy as _ +from django.utils.translation import gettext, gettext_lazy as _ from orchestra.admin import ExtendedModelAdmin from orchestra.admin.utils import admin_link, change_url diff --git a/orchestra/contrib/domains/backends.py b/orchestra/contrib/domains/backends.py index f372b6e..e160e61 100644 --- a/orchestra/contrib/domains/backends.py +++ b/orchestra/contrib/domains/backends.py @@ -2,7 +2,7 @@ import re import socket import textwrap -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController from orchestra.contrib.orchestration import Operation diff --git a/orchestra/contrib/domains/filters.py b/orchestra/contrib/domains/filters.py index 589079a..c12f48e 100644 --- a/orchestra/contrib/domains/filters.py +++ b/orchestra/contrib/domains/filters.py @@ -1,5 +1,5 @@ from django.contrib.admin import SimpleListFilter -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class TopDomainListFilter(SimpleListFilter): diff --git a/orchestra/contrib/domains/forms.py b/orchestra/contrib/domains/forms.py index c73e92a..15db21c 100644 --- a/orchestra/contrib/domains/forms.py +++ b/orchestra/contrib/domains/forms.py @@ -1,7 +1,7 @@ from django import forms from django.core.exceptions import ValidationError from django.utils.text import capfirst -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin.forms import AdminFormSet, AdminFormMixin diff --git a/orchestra/contrib/domains/migrations/0001_initial.py b/orchestra/contrib/domains/migrations/0001_initial.py deleted file mode 100644 index f0877cd..0000000 --- a/orchestra/contrib/domains/migrations/0001_initial.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.db.models.deletion -import orchestra.contrib.domains.utils -import orchestra.contrib.domains.validators -from django.conf import settings - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Domain', - fields=[ - ('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')), - ('name', models.CharField(unique=True, max_length=256, validators=[orchestra.contrib.domains.validators.validate_domain_name, orchestra.contrib.domains.validators.validate_allowed_domain], verbose_name='name', help_text='Domain or subdomain name.')), - ('serial', models.IntegerField(default=orchestra.contrib.domains.utils.generate_zone_serial, verbose_name='serial', help_text='Serial number')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='domains', help_text='Automatically selected for subdomains.', to=settings.AUTH_USER_MODEL, verbose_name='Account', blank=True)), - ('top', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, null=True, to='domains.Domain', editable=False, related_name='subdomain_set')), - ], - ), - migrations.CreateModel( - name='Record', - fields=[ - ('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')), - ('ttl', models.CharField(help_text='Record TTL, defaults to 1h', max_length=8, validators=[orchestra.contrib.domains.validators.validate_zone_interval], verbose_name='TTL', blank=True)), - ('type', models.CharField(max_length=32, verbose_name='type', choices=[('MX', 'MX'), ('NS', 'NS'), ('CNAME', 'CNAME'), ('A', 'A (IPv4 address)'), ('AAAA', 'AAAA (IPv6 address)'), ('SRV', 'SRV'), ('TXT', 'TXT'), ('SOA', 'SOA')])), - ('value', models.CharField(max_length=256, verbose_name='value')), - ('domain', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='records', to='domains.Domain', verbose_name='domain')), - ], - ), - ] diff --git a/orchestra/contrib/domains/migrations/0001_squashed_0010_auto_20210330_1049.py b/orchestra/contrib/domains/migrations/0001_squashed_0010_auto_20210330_1049.py deleted file mode 100644 index ee8cfb2..0000000 --- a/orchestra/contrib/domains/migrations/0001_squashed_0010_auto_20210330_1049.py +++ /dev/null @@ -1,83 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:27 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import orchestra.contrib.domains.utils -import orchestra.contrib.domains.validators - - -class Migration(migrations.Migration): - - replaces = [('domains', '0001_initial'), ('domains', '0002_auto_20150715_1017'), ('domains', '0003_auto_20150720_1121'), ('domains', '0004_auto_20150720_1121'), ('domains', '0005_auto_20160219_1034'), ('domains', '0006_auto_20170528_2011'), ('domains', '0007_auto_20190805_1134'), ('domains', '0008_domain_dns2136_address_match_list'), ('domains', '0009_auto_20200204_1217'), ('domains', '0010_auto_20210330_1049')] - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Domain', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(help_text='Domain or subdomain name.', max_length=256, unique=True, validators=[orchestra.contrib.domains.validators.validate_domain_name, orchestra.contrib.domains.validators.validate_allowed_domain], verbose_name='name')), - ('serial', models.IntegerField(default=orchestra.contrib.domains.utils.generate_zone_serial, help_text='Serial number', verbose_name='serial')), - ('account', models.ForeignKey(blank=True, help_text='Automatically selected for subdomains.', on_delete=django.db.models.deletion.CASCADE, related_name='domains', to=settings.AUTH_USER_MODEL, verbose_name='Account')), - ('top', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='subdomain_set', to='domains.Domain')), - ], - ), - migrations.CreateModel( - name='Record', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('ttl', models.CharField(blank=True, help_text='Record TTL, defaults to 1h', max_length=8, validators=[orchestra.contrib.domains.validators.validate_zone_interval], verbose_name='TTL')), - ('type', models.CharField(choices=[('MX', 'MX'), ('NS', 'NS'), ('CNAME', 'CNAME'), ('A', 'A (IPv4 address)'), ('AAAA', 'AAAA (IPv6 address)'), ('SRV', 'SRV'), ('TXT', 'TXT'), ('SPF', 'SPF')], max_length=32, verbose_name='type')), - ('value', models.CharField(help_text='MX, NS and CNAME records sould end with a dot.', max_length=1024, verbose_name='value')), - ('domain', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='records', to='domains.Domain', verbose_name='domain')), - ], - ), - migrations.AlterField( - model_name='domain', - name='serial', - field=models.IntegerField(default=orchestra.contrib.domains.utils.generate_zone_serial, editable=False, help_text='A revision number that changes whenever this domain is updated.', verbose_name='serial'), - ), - migrations.AddField( - model_name='domain', - name='expire', - field=models.CharField(blank=True, help_text='The time that a secondary server will keep trying to complete a zone transfer. If this time expires prior to a successful zone transfer, the secondary server will expire its zone file. This means the secondary will stop answering queries. The default value is 4w.', max_length=16, validators=[orchestra.contrib.domains.validators.validate_zone_interval], verbose_name='expire'), - ), - migrations.AddField( - model_name='domain', - name='min_ttl', - field=models.CharField(blank=True, help_text='The minimum time-to-live value applies to all resource records in the zone file. This value is supplied in query responses to inform other servers how long they should keep the data in cache. The default value is 1h.', max_length=16, validators=[orchestra.contrib.domains.validators.validate_zone_interval], verbose_name='min TTL'), - ), - migrations.AddField( - model_name='domain', - name='refresh', - field=models.CharField(blank=True, help_text="The time a secondary DNS server waits before querying the primary DNS server's SOA record to check for changes. When the refresh time expires, the secondary DNS server requests a copy of the current SOA record from the primary. The primary DNS server complies with this request. The secondary DNS server compares the serial number of the primary DNS server's current SOA record and the serial number in it's own SOA record. If they are different, the secondary DNS server will request a zone transfer from the primary DNS server. The default value is 1d.", max_length=16, validators=[orchestra.contrib.domains.validators.validate_zone_interval], verbose_name='refresh'), - ), - migrations.AddField( - model_name='domain', - name='retry', - field=models.CharField(blank=True, help_text='The time a secondary server waits before retrying a failed zone transfer. Normally, the retry time is less than the refresh time. The default value is 2h.', max_length=16, validators=[orchestra.contrib.domains.validators.validate_zone_interval], verbose_name='retry'), - ), - migrations.AlterField( - model_name='domain', - name='name', - field=models.CharField(db_index=True, help_text='Domain or subdomain name.', max_length=256, unique=True, validators=[orchestra.contrib.domains.validators.validate_domain_name, orchestra.contrib.domains.validators.validate_allowed_domain], verbose_name='name'), - ), - migrations.AlterField( - model_name='domain', - name='top', - field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='subdomain_set', to='domains.Domain', verbose_name='top domain'), - ), - migrations.AddField( - model_name='domain', - name='dns2136_address_match_list', - field=models.CharField(blank=True, default='key pangea.key;', help_text="A bind-9 'address_match_list' that will be granted permission to perform dns2136 updates. Chiefly used to enable Let's Encrypt self-service validation.", max_length=80), - ), - ] diff --git a/orchestra/contrib/domains/migrations/0002_auto_20150715_1017.py b/orchestra/contrib/domains/migrations/0002_auto_20150715_1017.py deleted file mode 100644 index 7b6d9ad..0000000 --- a/orchestra/contrib/domains/migrations/0002_auto_20150715_1017.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('domains', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='domain', - name='expire', - field=models.IntegerField(null=True, blank=True, help_text='The upper limit in seconds before a zone is considered no longer authoritative (4w by default).', verbose_name='expire'), - ), - migrations.AddField( - model_name='domain', - name='min_ttl', - field=models.IntegerField(null=True, blank=True, help_text='The negative result TTL (for example, how long a resolver should consider a negative result for a subdomain to be valid before retrying) (1h by default).', verbose_name='refresh'), - ), - migrations.AddField( - model_name='domain', - name='refresh', - field=models.IntegerField(null=True, blank=True, help_text='The number of seconds before the zone should be refreshed (1d by default).', verbose_name='refresh'), - ), - migrations.AddField( - model_name='domain', - name='retry', - field=models.IntegerField(null=True, blank=True, help_text='The number of seconds before a failed refresh should be retried (2h by default).', verbose_name='retry'), - ), - migrations.AlterField( - model_name='record', - name='value', - field=models.CharField(max_length=256, help_text='MX, NS and CNAME records sould end with a dot.', verbose_name='value'), - ), - ] diff --git a/orchestra/contrib/domains/migrations/0003_auto_20150720_1121.py b/orchestra/contrib/domains/migrations/0003_auto_20150720_1121.py deleted file mode 100644 index d240ea0..0000000 --- a/orchestra/contrib/domains/migrations/0003_auto_20150720_1121.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import orchestra.contrib.domains.utils - - -class Migration(migrations.Migration): - - dependencies = [ - ('domains', '0002_auto_20150715_1017'), - ] - - operations = [ - migrations.RemoveField( - model_name='domain', - name='expire', - ), - migrations.RemoveField( - model_name='domain', - name='min_ttl', - ), - migrations.RemoveField( - model_name='domain', - name='refresh', - ), - migrations.RemoveField( - model_name='domain', - name='retry', - ), - migrations.AlterField( - model_name='domain', - name='serial', - field=models.IntegerField(editable=False, verbose_name='serial', default=orchestra.contrib.domains.utils.generate_zone_serial, help_text='A revision number that changes whenever this domain is updated.'), - ), - ] diff --git a/orchestra/contrib/domains/migrations/0004_auto_20150720_1121.py b/orchestra/contrib/domains/migrations/0004_auto_20150720_1121.py deleted file mode 100644 index e133d41..0000000 --- a/orchestra/contrib/domains/migrations/0004_auto_20150720_1121.py +++ /dev/null @@ -1,35 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import orchestra.contrib.domains.validators - - -class Migration(migrations.Migration): - - dependencies = [ - ('domains', '0003_auto_20150720_1121'), - ] - - operations = [ - migrations.AddField( - model_name='domain', - name='expire', - field=models.CharField(validators=[orchestra.contrib.domains.validators.validate_zone_interval], blank=True, help_text='The time that a secondary server will keep trying to complete a zone transfer. If this time expires prior to a successful zone transfer, the secondary server will expire its zone file. This means the secondary will stop answering queries. The default value is 4w.', verbose_name='expire', max_length=16), - ), - migrations.AddField( - model_name='domain', - name='min_ttl', - field=models.CharField(validators=[orchestra.contrib.domains.validators.validate_zone_interval], blank=True, help_text='The minimum time-to-live value applies to all resource records in the zone file. This value is supplied in query responses to inform other servers how long they should keep the data in cache. The default value is 1h.', verbose_name='min TTL', max_length=16), - ), - migrations.AddField( - model_name='domain', - name='refresh', - field=models.CharField(validators=[orchestra.contrib.domains.validators.validate_zone_interval], blank=True, help_text="The time a secondary DNS server waits before querying the primary DNS server's SOA record to check for changes. When the refresh time expires, the secondary DNS server requests a copy of the current SOA record from the primary. The primary DNS server complies with this request. The secondary DNS server compares the serial number of the primary DNS server's current SOA record and the serial number in it's own SOA record. If they are different, the secondary DNS server will request a zone transfer from the primary DNS server. The default value is 1d.", verbose_name='refresh', max_length=16), - ), - migrations.AddField( - model_name='domain', - name='retry', - field=models.CharField(validators=[orchestra.contrib.domains.validators.validate_zone_interval], blank=True, help_text='The time a secondary server waits before retrying a failed zone transfer. Normally, the retry time is less than the refresh time. The default value is 2h.', verbose_name='retry', max_length=16), - ), - ] diff --git a/orchestra/contrib/domains/migrations/0005_auto_20160219_1034.py b/orchestra/contrib/domains/migrations/0005_auto_20160219_1034.py deleted file mode 100644 index 7ef16e9..0000000 --- a/orchestra/contrib/domains/migrations/0005_auto_20160219_1034.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion -import orchestra.contrib.domains.validators - - -class Migration(migrations.Migration): - - dependencies = [ - ('domains', '0004_auto_20150720_1121'), - ] - - operations = [ - migrations.AlterField( - model_name='domain', - name='name', - field=models.CharField(max_length=256, validators=[orchestra.contrib.domains.validators.validate_domain_name, orchestra.contrib.domains.validators.validate_allowed_domain], db_index=True, verbose_name='name', unique=True, help_text='Domain or subdomain name.'), - ), - migrations.AlterField( - model_name='domain', - name='top', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, editable=False, verbose_name='top domain', related_name='subdomain_set', to='domains.Domain', null=True), - ), - migrations.AlterField( - model_name='record', - name='type', - field=models.CharField(max_length=32, verbose_name='type', choices=[('MX', 'MX'), ('NS', 'NS'), ('CNAME', 'CNAME'), ('A', 'A (IPv4 address)'), ('AAAA', 'AAAA (IPv6 address)'), ('SRV', 'SRV'), ('TXT', 'TXT'), ('SPF', 'SPF'), ('SOA', 'SOA')]), - ), - ] diff --git a/orchestra/contrib/domains/migrations/0006_auto_20170528_2011.py b/orchestra/contrib/domains/migrations/0006_auto_20170528_2011.py deleted file mode 100644 index eac37d5..0000000 --- a/orchestra/contrib/domains/migrations/0006_auto_20170528_2011.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:11 -from __future__ import unicode_literals - -from django.db import migrations, models -import orchestra.contrib.domains.validators - - -class Migration(migrations.Migration): - - dependencies = [ - ('domains', '0005_auto_20160219_1034'), - ] - - operations = [ - migrations.AlterField( - model_name='domain', - name='min_ttl', - field=models.CharField(blank=True, help_text='The minimum time-to-live value applies to all resource records in the zone file. This value is supplied in query responses to inform other servers how long they should keep the data in cache. The default value is 30m.', max_length=16, validators=[orchestra.contrib.domains.validators.validate_zone_interval], verbose_name='min TTL'), - ), - migrations.AlterField( - model_name='record', - name='ttl', - field=models.CharField(blank=True, help_text='Record TTL, defaults to 30m', max_length=8, validators=[orchestra.contrib.domains.validators.validate_zone_interval], verbose_name='TTL'), - ), - migrations.AlterField( - model_name='record', - name='type', - field=models.CharField(choices=[('MX', 'MX'), ('NS', 'NS'), ('CNAME', 'CNAME'), ('A', 'A (IPv4 address)'), ('AAAA', 'AAAA (IPv6 address)'), ('SRV', 'SRV'), ('TXT', 'TXT'), ('SPF', 'SPF')], max_length=32, verbose_name='type'), - ), - ] diff --git a/orchestra/contrib/domains/migrations/0007_auto_20190805_1134.py b/orchestra/contrib/domains/migrations/0007_auto_20190805_1134.py deleted file mode 100644 index 8f0842f..0000000 --- a/orchestra/contrib/domains/migrations/0007_auto_20190805_1134.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2019-08-05 09:34 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('domains', '0006_auto_20170528_2011'), - ] - - operations = [ - migrations.AlterField( - model_name='record', - name='value', - field=models.CharField(help_text='MX, NS and CNAME records sould end with a dot.', max_length=1024, verbose_name='value'), - ), - ] diff --git a/orchestra/contrib/domains/migrations/0008_domain_dns2136_address_match_list.py b/orchestra/contrib/domains/migrations/0008_domain_dns2136_address_match_list.py deleted file mode 100644 index 7563026..0000000 --- a/orchestra/contrib/domains/migrations/0008_domain_dns2136_address_match_list.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2019-09-20 07:21 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('domains', '0007_auto_20190805_1134'), - ] - - operations = [ - migrations.AddField( - model_name='domain', - name='dns2136_address_match_list', - field=models.CharField(blank=True, default='none;', help_text="A bind-9 'address_match_list' that will be granted permission to perform dns2136 updates. Chiefly used to enable Let's Encrypt self-service validation.", max_length=80), - ), - ] diff --git a/orchestra/contrib/domains/migrations/0009_auto_20200204_1217.py b/orchestra/contrib/domains/migrations/0009_auto_20200204_1217.py deleted file mode 100644 index 8657094..0000000 --- a/orchestra/contrib/domains/migrations/0009_auto_20200204_1217.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2020-02-04 11:17 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('domains', '0008_domain_dns2136_address_match_list'), - ] - - operations = [ - migrations.AlterField( - model_name='domain', - name='dns2136_address_match_list', - field=models.CharField(blank=True, default='key pangea.key;', help_text="A bind-9 'address_match_list' that will be granted permission to perform dns2136 updates. Chiefly used to enable Let's Encrypt self-service validation.", max_length=80), - ), - ] diff --git a/orchestra/contrib/domains/migrations/0010_auto_20210330_1049.py b/orchestra/contrib/domains/migrations/0010_auto_20210330_1049.py deleted file mode 100644 index 37f81aa..0000000 --- a/orchestra/contrib/domains/migrations/0010_auto_20210330_1049.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-03-30 10:49 -from __future__ import unicode_literals - -from django.db import migrations, models -import orchestra.contrib.domains.validators - - -class Migration(migrations.Migration): - - dependencies = [ - ('domains', '0009_auto_20200204_1217'), - ] - - operations = [ - migrations.AlterField( - model_name='domain', - name='min_ttl', - field=models.CharField(blank=True, help_text='The minimum time-to-live value applies to all resource records in the zone file. This value is supplied in query responses to inform other servers how long they should keep the data in cache. The default value is 1h.', max_length=16, validators=[orchestra.contrib.domains.validators.validate_zone_interval], verbose_name='min TTL'), - ), - migrations.AlterField( - model_name='record', - name='ttl', - field=models.CharField(blank=True, help_text='Record TTL, defaults to 1h', max_length=8, validators=[orchestra.contrib.domains.validators.validate_zone_interval], verbose_name='TTL'), - ), - ] diff --git a/orchestra/contrib/domains/migrations/__init__.py b/orchestra/contrib/domains/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/domains/models.py b/orchestra/contrib/domains/models.py index b60051c..9d099aa 100644 --- a/orchestra/contrib/domains/models.py +++ b/orchestra/contrib/domains/models.py @@ -1,6 +1,6 @@ from django.core.exceptions import ValidationError from django.db import models -from django.utils.translation import ungettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext_lazy as _ from orchestra.core.validators import validate_ipv4_address, validate_ipv6_address, validate_ascii from orchestra.utils.python import AttrDict @@ -114,7 +114,7 @@ class Domain(models.Model): def get_description(self): if self.is_top: num = self.subdomains.count() - return ungettext( + return ngettext( _("top domain with one subdomain"), _("top domain with %d subdomains") % num, num) diff --git a/orchestra/contrib/domains/serializers.py b/orchestra/contrib/domains/serializers.py index 96451a5..7c6bebd 100644 --- a/orchestra/contrib/domains/serializers.py +++ b/orchestra/contrib/domains/serializers.py @@ -1,5 +1,5 @@ from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from orchestra.api.serializers import HyperlinkedModelSerializer diff --git a/orchestra/contrib/domains/validators.py b/orchestra/contrib/domains/validators.py index c3e1ed6..4722493 100644 --- a/orchestra/contrib/domains/validators.py +++ b/orchestra/contrib/domains/validators.py @@ -3,7 +3,7 @@ import os import re from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.core.validators import validate_hostname from orchestra.utils import paths diff --git a/orchestra/contrib/history/admin.py b/orchestra/contrib/history/admin.py index 65f6052..903eeda 100644 --- a/orchestra/contrib/history/admin.py +++ b/orchestra/contrib/history/admin.py @@ -6,7 +6,7 @@ from django.http import HttpResponseRedirect from django.urls import NoReverseMatch, reverse from django.utils.html import format_html from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin.utils import admin_date, admin_link diff --git a/orchestra/contrib/issues/actions.py b/orchestra/contrib/issues/actions.py index 3e6e1dd..dac2976 100644 --- a/orchestra/contrib/issues/actions.py +++ b/orchestra/contrib/issues/actions.py @@ -2,7 +2,7 @@ import sys from django.contrib import messages from django.db import transaction -from django.utils.translation import ungettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext_lazy as _ from orchestra.admin.decorators import action_with_confirmation @@ -102,7 +102,7 @@ def mark_as_unread(modeladmin, request, queryset): ticket.mark_as_unread_by(request.user) modeladmin.log_change(request, ticket, 'Marked as unread') num = len(queryset) - msg = ungettext( + msg = ngettext( _("Selected ticket has been marked as unread."), _("%i selected tickets have been marked as unread.") % num, num) @@ -116,7 +116,7 @@ def mark_as_read(modeladmin, request, queryset): ticket.mark_as_read_by(request.user) modeladmin.log_change(request, ticket, 'Marked as read') num = len(queryset) - msg = ungettext( + msg = ngettext( _("Selected ticket has been marked as read."), _("%i selected tickets have been marked as read.") % num, num) diff --git a/orchestra/contrib/issues/admin.py b/orchestra/contrib/issues/admin.py index 6ac4a21..25ae3f2 100644 --- a/orchestra/contrib/issues/admin.py +++ b/orchestra/contrib/issues/admin.py @@ -1,5 +1,5 @@ from django import forms -from django.conf.urls import url +from django.urls import re_path as url from django.contrib import admin from django.urls import reverse from django.db import models @@ -7,7 +7,7 @@ from django.http import HttpResponse from django.shortcuts import get_object_or_404 from django.utils.html import format_html, strip_tags from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from markdown import markdown from orchestra.admin import ExtendedModelAdmin diff --git a/orchestra/contrib/issues/filters.py b/orchestra/contrib/issues/filters.py index 142fd1d..d0431fe 100644 --- a/orchestra/contrib/issues/filters.py +++ b/orchestra/contrib/issues/filters.py @@ -1,5 +1,5 @@ from django.contrib.admin import SimpleListFilter -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from .models import Ticket diff --git a/orchestra/contrib/issues/forms.py b/orchestra/contrib/issues/forms.py index 292c85a..137e709 100644 --- a/orchestra/contrib/issues/forms.py +++ b/orchestra/contrib/issues/forms.py @@ -2,7 +2,7 @@ from django import forms from django.contrib.auth import get_user_model from django.utils.html import strip_tags from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django.templatetags.static import static from markdown import markdown diff --git a/orchestra/contrib/issues/migrations/0001_initial.py b/orchestra/contrib/issues/migrations/0001_initial.py deleted file mode 100644 index 0c76499..0000000 --- a/orchestra/contrib/issues/migrations/0001_initial.py +++ /dev/null @@ -1,77 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -import django.db.models.deletion -from django.db import models, migrations -import orchestra.models.fields -from django.conf import settings - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Message', - fields=[ - ('id', models.AutoField(primary_key=True, serialize=False, auto_created=True, verbose_name='ID')), - ('author_name', models.CharField(blank=True, max_length=256, verbose_name='author name')), - ('content', models.TextField(verbose_name='content')), - ('created_on', models.DateTimeField(auto_now_add=True, verbose_name='created on')), - ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ticket_messages', to=settings.AUTH_USER_MODEL, verbose_name='author')), - ], - options={ - 'get_latest_by': 'id', - }, - ), - migrations.CreateModel( - name='Queue', - fields=[ - ('id', models.AutoField(primary_key=True, serialize=False, auto_created=True, verbose_name='ID')), - ('name', models.CharField(max_length=128, verbose_name='name', unique=True)), - ('verbose_name', models.CharField(blank=True, max_length=128, verbose_name='verbose_name')), - ('default', models.BooleanField(verbose_name='default', default=False)), - ('notify', orchestra.models.fields.MultiSelectField(blank=True, max_length=256, help_text='Contacts to notify by email', verbose_name='notify', default=('SUPPORT', 'ADMIN', 'BILLING', 'TECH', 'ADDS', 'EMERGENCY'), choices=[('SUPPORT', 'Support tickets'), ('ADMIN', 'Administrative'), ('BILLING', 'Billing'), ('TECH', 'Technical'), ('ADDS', 'Announcements'), ('EMERGENCY', 'Emergency contact')])), - ], - ), - migrations.CreateModel( - name='Ticket', - fields=[ - ('id', models.AutoField(primary_key=True, serialize=False, auto_created=True, verbose_name='ID')), - ('creator_name', models.CharField(blank=True, max_length=256, verbose_name='creator name')), - ('subject', models.CharField(max_length=256, verbose_name='subject')), - ('description', models.TextField(verbose_name='description')), - ('priority', models.CharField(max_length=32, default='MEDIUM', verbose_name='priority', choices=[('HIGH', 'High'), ('MEDIUM', 'Medium'), ('LOW', 'Low')])), - ('state', models.CharField(max_length=32, default='NEW', verbose_name='state', choices=[('NEW', 'New'), ('IN_PROGRESS', 'In Progress'), ('RESOLVED', 'Resolved'), ('FEEDBACK', 'Feedback'), ('REJECTED', 'Rejected'), ('CLOSED', 'Closed')])), - ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created')), - ('updated_at', models.DateTimeField(auto_now=True, verbose_name='modified')), - ('cc', models.TextField(blank=True, help_text='emails to send a carbon copy to', verbose_name='CC')), - ('creator', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tickets_created', null=True, to=settings.AUTH_USER_MODEL, verbose_name='created by')), - ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, blank=True, related_name='tickets_owned', null=True, to=settings.AUTH_USER_MODEL, verbose_name='assigned to')), - ('queue', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, blank=True, related_name='tickets', null=True, to='issues.Queue')), - ], - options={ - 'ordering': ['-updated_at'], - }, - ), - migrations.CreateModel( - name='TicketTracker', - fields=[ - ('id', models.AutoField(primary_key=True, serialize=False, auto_created=True, verbose_name='ID')), - ('ticket', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='trackers', to='issues.Ticket', verbose_name='ticket')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ticket_trackers', to=settings.AUTH_USER_MODEL, verbose_name='user')), - ], - ), - migrations.AddField( - model_name='message', - name='ticket', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='messages', to='issues.Ticket', verbose_name='ticket'), - ), - migrations.AlterUniqueTogether( - name='tickettracker', - unique_together=set([('ticket', 'user')]), - ), - ] diff --git a/orchestra/contrib/issues/migrations/0001_squashed_0004_auto_20170528_2011.py b/orchestra/contrib/issues/migrations/0001_squashed_0004_auto_20170528_2011.py deleted file mode 100644 index 2763cf7..0000000 --- a/orchestra/contrib/issues/migrations/0001_squashed_0004_auto_20170528_2011.py +++ /dev/null @@ -1,114 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:27 -from __future__ import unicode_literals - -import datetime -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -from django.utils.timezone import utc -import orchestra.models.fields - - -class Migration(migrations.Migration): - - replaces = [('issues', '0001_initial'), ('issues', '0002_auto_20150709_1018'), ('issues', '0003_auto_20160320_1127'), ('issues', '0004_auto_20170528_2011')] - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Message', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('author_name', models.CharField(blank=True, max_length=256, verbose_name='author name')), - ('content', models.TextField(verbose_name='content')), - ('created_on', models.DateTimeField(auto_now_add=True, verbose_name='created on')), - ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ticket_messages', to=settings.AUTH_USER_MODEL, verbose_name='author')), - ], - options={ - 'get_latest_by': 'id', - }, - ), - migrations.CreateModel( - name='Queue', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=128, unique=True, verbose_name='name')), - ('verbose_name', models.CharField(blank=True, max_length=128, verbose_name='verbose_name')), - ('default', models.BooleanField(default=False, verbose_name='default')), - ('notify', orchestra.models.fields.MultiSelectField(blank=True, choices=[('SUPPORT', 'Support tickets'), ('ADMIN', 'Administrative'), ('BILLING', 'Billing'), ('TECH', 'Technical'), ('ADDS', 'Announcements'), ('EMERGENCY', 'Emergency contact')], default=('SUPPORT', 'ADMIN', 'BILLING', 'TECH', 'ADDS', 'EMERGENCY'), help_text='Contacts to notify by email', max_length=256, verbose_name='notify')), - ], - ), - migrations.CreateModel( - name='Ticket', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('creator_name', models.CharField(blank=True, max_length=256, verbose_name='creator name')), - ('subject', models.CharField(max_length=256, verbose_name='subject')), - ('description', models.TextField(verbose_name='description')), - ('priority', models.CharField(choices=[('HIGH', 'High'), ('MEDIUM', 'Medium'), ('LOW', 'Low')], default='MEDIUM', max_length=32, verbose_name='priority')), - ('state', models.CharField(choices=[('NEW', 'New'), ('IN_PROGRESS', 'In Progress'), ('RESOLVED', 'Resolved'), ('FEEDBACK', 'Feedback'), ('REJECTED', 'Rejected'), ('CLOSED', 'Closed')], default='NEW', max_length=32, verbose_name='state')), - ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created')), - ('updated_at', models.DateTimeField(auto_now=True, verbose_name='modified')), - ('cc', models.TextField(blank=True, help_text='emails to send a carbon copy to', verbose_name='CC')), - ('creator', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='tickets_created', to=settings.AUTH_USER_MODEL, verbose_name='created by')), - ('owner', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='tickets_owned', to=settings.AUTH_USER_MODEL, verbose_name='assigned to')), - ('queue', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='tickets', to='issues.Queue')), - ], - options={ - 'ordering': ['-updated_at'], - }, - ), - migrations.CreateModel( - name='TicketTracker', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('ticket', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='trackers', to='issues.Ticket', verbose_name='ticket')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ticket_trackers', to=settings.AUTH_USER_MODEL, verbose_name='user')), - ], - ), - migrations.AddField( - model_name='message', - name='ticket', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='messages', to='issues.Ticket', verbose_name='ticket'), - ), - migrations.AlterUniqueTogether( - name='tickettracker', - unique_together=set([('ticket', 'user')]), - ), - migrations.AlterField( - model_name='ticket', - name='created_at', - field=models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='created'), - ), - migrations.RemoveField( - model_name='message', - name='created_on', - ), - migrations.AddField( - model_name='message', - name='created_at', - field=models.DateTimeField(auto_now_add=True, default=datetime.datetime(2016, 3, 20, 10, 27, 45, 766388, tzinfo=utc), verbose_name='created at'), - preserve_default=False, - ), - migrations.AlterField( - model_name='ticket', - name='creator', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='tickets_created', to=settings.AUTH_USER_MODEL, verbose_name='created by'), - ), - migrations.AlterField( - model_name='ticket', - name='owner', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='tickets_owned', to=settings.AUTH_USER_MODEL, verbose_name='assigned to'), - ), - migrations.AlterField( - model_name='ticket', - name='queue', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='tickets', to='issues.Queue'), - ), - ] diff --git a/orchestra/contrib/issues/migrations/0002_auto_20150709_1018.py b/orchestra/contrib/issues/migrations/0002_auto_20150709_1018.py deleted file mode 100644 index b0ceac0..0000000 --- a/orchestra/contrib/issues/migrations/0002_auto_20150709_1018.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('issues', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='ticket', - name='created_at', - field=models.DateTimeField(db_index=True, auto_now_add=True, verbose_name='created'), - ), - ] diff --git a/orchestra/contrib/issues/migrations/0003_auto_20160320_1127.py b/orchestra/contrib/issues/migrations/0003_auto_20160320_1127.py deleted file mode 100644 index fbf2a1f..0000000 --- a/orchestra/contrib/issues/migrations/0003_auto_20160320_1127.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import datetime -from django.utils.timezone import utc - - -class Migration(migrations.Migration): - - dependencies = [ - ('issues', '0002_auto_20150709_1018'), - ] - - operations = [ - migrations.RemoveField( - model_name='message', - name='created_on', - ), - migrations.AddField( - model_name='message', - name='created_at', - field=models.DateTimeField(auto_now_add=True, default=datetime.datetime(2016, 3, 20, 10, 27, 45, 766388, tzinfo=utc), verbose_name='created at'), - preserve_default=False, - ), - ] diff --git a/orchestra/contrib/issues/migrations/0004_auto_20170528_2011.py b/orchestra/contrib/issues/migrations/0004_auto_20170528_2011.py deleted file mode 100644 index 6042705..0000000 --- a/orchestra/contrib/issues/migrations/0004_auto_20170528_2011.py +++ /dev/null @@ -1,32 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:11 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('issues', '0003_auto_20160320_1127'), - ] - - operations = [ - migrations.AlterField( - model_name='ticket', - name='creator', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='tickets_created', to=settings.AUTH_USER_MODEL, verbose_name='created by'), - ), - migrations.AlterField( - model_name='ticket', - name='owner', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='tickets_owned', to=settings.AUTH_USER_MODEL, verbose_name='assigned to'), - ), - migrations.AlterField( - model_name='ticket', - name='queue', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='tickets', to='issues.Queue'), - ), - ] diff --git a/orchestra/contrib/issues/migrations/__init__.py b/orchestra/contrib/issues/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/issues/models.py b/orchestra/contrib/issues/models.py index 8c783ea..717f3ac 100644 --- a/orchestra/contrib/issues/models.py +++ b/orchestra/contrib/issues/models.py @@ -1,7 +1,7 @@ from django.conf import settings as djsettings from django.db import models from django.db.models import query, Q -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.contacts import settings as contacts_settings from orchestra.contrib.contacts.models import Contact diff --git a/orchestra/contrib/letsencrypt/actions.py b/orchestra/contrib/letsencrypt/actions.py index b484494..375933a 100644 --- a/orchestra/contrib/letsencrypt/actions.py +++ b/orchestra/contrib/letsencrypt/actions.py @@ -1,7 +1,7 @@ from django.contrib import messages, admin from django.template.response import TemplateResponse from django.utils.safestring import mark_safe -from django.utils.translation import ungettext, ugettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext, gettext_lazy as _ from orchestra.admin.utils import admin_link from orchestra.contrib.orchestration import Operation, helpers @@ -16,12 +16,12 @@ def letsencrypt(modeladmin, request, queryset): content_error = '' contentless = queryset.exclude(content__path='/').distinct() if contentless: - content_error = ungettext( - ugettext("Selected website %s doesn't have a webapp mounted on /."), - ugettext("Selected websites %s don't have a webapp mounted on /."), + content_error = ngettext( + gettext("Selected website %s doesn't have a webapp mounted on /."), + gettext("Selected websites %s don't have a webapp mounted on /."), len(contentless), ) - content_error += ugettext("
Websites need a webapp (e.g. static) mounted on / " + content_error += gettext("
Websites need a webapp (e.g. static) mounted on / " "for let's encrypt HTTP-01 challenge to work.") content_error = content_error % ', '.join((admin_link()(website) for website in contentless)) content_error = '' % content_error @@ -76,19 +76,19 @@ def letsencrypt(modeladmin, request, queryset): 'no_https': no_https } if errors: - msg = ungettext( + msg = ngettext( _("No lineages found for websites {name}."), _("No lineages found for {errors} websites."), errors) messages.error(request, msg % context) if successes: - msg = ungettext( + msg = ngettext( _("{name} website has successfully been encrypted."), _("{successes} websites have been successfully encrypted."), successes) messages.success(request, msg.format(**context)) if no_https: - msg = ungettext( + msg = ngettext( _("{name} website does not have HTTPS protocol enabled."), _("{no_https} websites do not have HTTPS protocol enabled."), no_https) @@ -99,7 +99,7 @@ def letsencrypt(modeladmin, request, queryset): context = { 'title': _("Let's encrypt!"), 'action_name': _("Encrypt"), - 'content_message': ugettext("You are going to request certificates for the following domains.
" + 'content_message': gettext("You are going to request certificates for the following domains.
" "This operation is safe to run multiple times, " "existing certificates will not be regenerated. " "Also notice that let's encrypt does not currently support wildcard certificates.") + content_error, diff --git a/orchestra/contrib/letsencrypt/forms.py b/orchestra/contrib/letsencrypt/forms.py index ef8cbf3..9d1db1d 100644 --- a/orchestra/contrib/letsencrypt/forms.py +++ b/orchestra/contrib/letsencrypt/forms.py @@ -1,6 +1,6 @@ from django import forms from django.core.exceptions import ValidationError -from django.utils.translation import ungettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext_lazy as _ from .helpers import is_valid_domain diff --git a/orchestra/contrib/lists/admin.py b/orchestra/contrib/lists/admin.py index 8332fe1..d356d72 100644 --- a/orchestra/contrib/lists/admin.py +++ b/orchestra/contrib/lists/admin.py @@ -1,7 +1,7 @@ from django.contrib import admin -from django.conf.urls import url +from django.urls import re_path as url from django.contrib.auth.admin import UserAdmin -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin import ExtendedModelAdmin, ChangePasswordAdminMixin from orchestra.admin.actions import disable, enable diff --git a/orchestra/contrib/lists/backends.py b/orchestra/contrib/lists/backends.py index c9e6f1d..e62f1ec 100644 --- a/orchestra/contrib/lists/backends.py +++ b/orchestra/contrib/lists/backends.py @@ -1,6 +1,6 @@ import textwrap -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController, replace from orchestra.contrib.resources import ServiceMonitor @@ -48,11 +48,11 @@ class MailmanVirtualDomainController(ServiceController): def save(self, mail_list): context = self.get_context(mail_list) - #self.include_virtual_alias_domain(context) + self.include_virtual_alias_domain(context) def delete(self, mail_list): context = self.get_context(mail_list) - #self.exclude_virtual_alias_domain(context) + self.exclude_virtual_alias_domain(context) def commit(self): context = self.get_context_files() @@ -100,28 +100,69 @@ class MailmanController(MailmanVirtualDomainController): aliases = ['# %(banner)s' % context] for suffix in self.address_suffixes: context['suffix'] = suffix - # Because mailman doesn't properly handle lists aliases we need two virtual aliases - aliases.append("%(address_name)s%(suffix)s@%(domain)s\t%(name)s%(suffix)s@grups.pangea.org" % context) + # Because mailman doesn't properly handle lists aliases we need virtual aliases if context['address_name'] != context['name']: - # And another with the original list name; Mailman generates links with it - aliases.append("%(name)s%(suffix)s@%(domain)s\t%(name)s%(suffix)s" % context) + aliases.append("%(address_name)s%(suffix)s@%(domain)s\t%(name)s%(suffix)s@grups.pangea.org" % context) return '\n'.join(aliases) + def save(self, mail_list): context = self.get_context(mail_list) + # Create list cmd = "/opt/mailman/venv/bin/python /usr/local/admin/orchestra_mailman3/save.py %(name)s %(admin)s %(address_name)s@%(domain)s" % context if not mail_list.active: cmd += ' --inactive' self.append(cmd) + # Custom domain + if mail_list.address: + context.update({ + 'aliases': self.get_virtual_aliases(context), + 'num_entries': 2 if context['address_name'] != context['name'] else 1, + }) + self.append(textwrap.dedent("""\ + # Create list alias for custom domain + aliases='%(aliases)s' + if ! grep '\s\s*%(name)s\s*$' %(virtual_alias)s > /dev/null; then + echo "${aliases}" >> %(virtual_alias)s + UPDATED_VIRTUAL_ALIAS=1 + else + if grep -E '(%(address_name)s|%(name)s)@(%(address_domain)s|grups.pangea.org)' %(virtual_alias)s > /dev/null ; then + sed -i -e '/^.*%(name)s\(-admin\|-bounces\|-confirm\|-join\|-leave\|-owner\|-request\|-subscribe\|-unsubscribe\|@\).*$/d' \\ + -e '/# .*%(name)s$/d' %(virtual_alias)s + echo "${aliases}" >> %(virtual_alias)s + UPDATED_VIRTUAL_ALIAS=1 + fi + fi """) % context + ) + else: + self.append(textwrap.dedent("""\ + # Cleanup possible ex-custom domain + if grep '\s\s*%(name)s\s*$' %(virtual_alias)s > /dev/null; then + #sed -i "/^.*\s%(name)s\s*$/d" %(virtual_alias)s + sed -i -e '/^.*%(name)s\(-admin\|-bounces\|-confirm\|-join\|-leave\|-owner\|-request\|-subscribe\|-unsubscribe\|@\).*$/d' \\ + -e '/# .*%(name)s$/d' %(virtual_alias)s + fi""") % context + ) + + def delete(self, mail_list): context = self.get_context(mail_list) + + # Custom domain delete + self.append(textwrap.dedent("""\ + # Cleanup possible ex-custom domain + if grep '\s\s*%(name)s\s*$' %(virtual_alias)s > /dev/null; then + sed -i -e '/^.*%(name)s\(-admin\|-bounces\|-confirm\|-join\|-leave\|-owner\|-request\|-subscribe\|-unsubscribe\|@\).*$/d' \\ + -e '/# .*%(name)s$/d' %(virtual_alias)s + fi""") % context + ) + # Delete list - cmd = "/opt/mailman/venv/bin/python /usr/local/admin/orchestra_mailman3/delete.py %(name)s %(admin)s %(address_name)s@%(domain)s" % context - if not mail_list.active: - cmd += ' --inactive' + cmd = "/opt/mailman/venv/bin/python /usr/local/admin/orchestra_mailman3/delete.py %(name)s" % context self.append(cmd) + def commit(self): pass diff --git a/orchestra/contrib/lists/filters.py b/orchestra/contrib/lists/filters.py index 5271153..8ba06eb 100644 --- a/orchestra/contrib/lists/filters.py +++ b/orchestra/contrib/lists/filters.py @@ -1,5 +1,5 @@ from django.contrib.admin import SimpleListFilter -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class HasCustomAddressListFilter(SimpleListFilter): diff --git a/orchestra/contrib/lists/migrations/0001_initial.py b/orchestra/contrib/lists/migrations/0001_initial.py deleted file mode 100644 index b682107..0000000 --- a/orchestra/contrib/lists/migrations/0001_initial.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -from django.conf import settings -import django.db.models.deletion -import orchestra.core.validators - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('domains', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='List', - fields=[ - ('id', models.AutoField(auto_created=True, verbose_name='ID', serialize=False, primary_key=True)), - ('name', models.CharField(max_length=128, validators=[orchestra.core.validators.validate_name], unique=True, verbose_name='name', help_text='Default list address <name>@lists.orchestra.lan')), - ('address_name', models.CharField(max_length=128, validators=[orchestra.core.validators.validate_name], verbose_name='address name', blank=True)), - ('admin_email', models.EmailField(max_length=254, verbose_name='admin email', help_text='Administration email address')), - ('is_active', models.BooleanField(default=True, verbose_name='active', help_text='Designates whether this account should be treated as active. Unselect this instead of deleting accounts.')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lists', to=settings.AUTH_USER_MODEL, verbose_name='Account')), - ('address_domain', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, null=True, blank=True, to='domains.Domain', verbose_name='address domain')), - ], - ), - migrations.AlterUniqueTogether( - name='list', - unique_together=set([('address_name', 'address_domain')]), - ), - ] diff --git a/orchestra/contrib/lists/migrations/0001_squashed_0004_auto_20210330_1049.py b/orchestra/contrib/lists/migrations/0001_squashed_0004_auto_20210330_1049.py deleted file mode 100644 index b630dd2..0000000 --- a/orchestra/contrib/lists/migrations/0001_squashed_0004_auto_20210330_1049.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:27 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import orchestra.core.validators - - -class Migration(migrations.Migration): - - replaces = [('lists', '0001_initial'), ('lists', '0002_auto_20160912_1221'), ('lists', '0003_auto_20160912_1241'), ('lists', '0004_auto_20210330_1049')] - - initial = True - - dependencies = [ - ('domains', '0001_initial'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='List', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(help_text='Default list address <name>@lists.orchestra.lan', max_length=128, unique=True, validators=[orchestra.core.validators.validate_name], verbose_name='name')), - ('address_name', models.CharField(blank=True, max_length=128, validators=[orchestra.core.validators.validate_name], verbose_name='address name')), - ('admin_email', models.EmailField(help_text='Administration email address', max_length=254, verbose_name='admin email')), - ('is_active', models.BooleanField(default=True, help_text='Designates whether this account should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lists', to=settings.AUTH_USER_MODEL, verbose_name='Account')), - ('address_domain', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='domains.Domain', verbose_name='address domain')), - ], - ), - migrations.AlterUniqueTogether( - name='list', - unique_together=set([('address_name', 'address_domain')]), - ), - migrations.AlterField( - model_name='list', - name='address_domain', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='domains.Domain', verbose_name='address domain'), - ), - migrations.AlterField( - model_name='list', - name='address_name', - field=models.CharField(blank=True, max_length=52, validators=[orchestra.core.validators.validate_name], verbose_name='address name'), - ), - migrations.AlterField( - model_name='list', - name='name', - field=models.CharField(help_text='Default list address <name>@grups.pangea.org', max_length=52, unique=True, validators=[orchestra.core.validators.validate_name], verbose_name='name'), - ), - migrations.AlterField( - model_name='list', - name='address_name', - field=models.CharField(blank=True, max_length=64, validators=[orchestra.core.validators.validate_name], verbose_name='address name'), - ), - migrations.AlterField( - model_name='list', - name='name', - field=models.CharField(help_text='Default list address <name>@grups.pangea.org', max_length=64, unique=True, validators=[orchestra.core.validators.validate_name], verbose_name='name'), - ), - migrations.AlterField( - model_name='list', - name='name', - field=models.CharField(help_text='Default list address <name>@lists.orchestra.lan', max_length=64, unique=True, validators=[orchestra.core.validators.validate_name], verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/lists/migrations/0002_auto_20160912_1221.py b/orchestra/contrib/lists/migrations/0002_auto_20160912_1221.py deleted file mode 100644 index 60ec2bf..0000000 --- a/orchestra/contrib/lists/migrations/0002_auto_20160912_1221.py +++ /dev/null @@ -1,32 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.5 on 2016-09-12 10:21 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion -import orchestra.core.validators - - -class Migration(migrations.Migration): - - dependencies = [ - ('lists', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='list', - name='address_domain', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='domains.Domain', verbose_name='address domain'), - ), - migrations.AlterField( - model_name='list', - name='address_name', - field=models.CharField(blank=True, max_length=52, validators=[orchestra.core.validators.validate_name], verbose_name='address name'), - ), - migrations.AlterField( - model_name='list', - name='name', - field=models.CharField(help_text='Default list address <name>@grups.pangea.org', max_length=52, unique=True, validators=[orchestra.core.validators.validate_name], verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/lists/migrations/0003_auto_20160912_1241.py b/orchestra/contrib/lists/migrations/0003_auto_20160912_1241.py deleted file mode 100644 index 618e8b4..0000000 --- a/orchestra/contrib/lists/migrations/0003_auto_20160912_1241.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.5 on 2016-09-12 10:41 -from __future__ import unicode_literals - -from django.db import migrations, models -import orchestra.core.validators - - -class Migration(migrations.Migration): - - dependencies = [ - ('lists', '0002_auto_20160912_1221'), - ] - - operations = [ - migrations.AlterField( - model_name='list', - name='address_name', - field=models.CharField(blank=True, max_length=64, validators=[orchestra.core.validators.validate_name], verbose_name='address name'), - ), - migrations.AlterField( - model_name='list', - name='name', - field=models.CharField(help_text='Default list address <name>@grups.pangea.org', max_length=64, unique=True, validators=[orchestra.core.validators.validate_name], verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/lists/migrations/0004_auto_20210330_1049.py b/orchestra/contrib/lists/migrations/0004_auto_20210330_1049.py deleted file mode 100644 index 94055a3..0000000 --- a/orchestra/contrib/lists/migrations/0004_auto_20210330_1049.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-03-30 10:49 -from __future__ import unicode_literals - -from django.db import migrations, models -import orchestra.core.validators - - -class Migration(migrations.Migration): - - dependencies = [ - ('lists', '0003_auto_20160912_1241'), - ] - - operations = [ - migrations.AlterField( - model_name='list', - name='name', - field=models.CharField(help_text='Default list address <name>@lists.orchestra.lan', max_length=64, unique=True, validators=[orchestra.core.validators.validate_name], verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/lists/migrations/__init__.py b/orchestra/contrib/lists/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/lists/models.py b/orchestra/contrib/lists/models.py index a78580d..8ac3372 100644 --- a/orchestra/contrib/lists/models.py +++ b/orchestra/contrib/lists/models.py @@ -1,7 +1,7 @@ from django.core.exceptions import ValidationError from django.db import models from django.utils.functional import cached_property -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.core.validators import validate_name diff --git a/orchestra/contrib/lists/serializers.py b/orchestra/contrib/lists/serializers.py index 317e3e7..593612a 100644 --- a/orchestra/contrib/lists/serializers.py +++ b/orchestra/contrib/lists/serializers.py @@ -1,6 +1,6 @@ from django.core.validators import RegexValidator from django.forms import widgets -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from orchestra.api.serializers import SetPasswordHyperlinkedSerializer, RelatedHyperlinkedModelSerializer diff --git a/orchestra/contrib/lists/settings.py b/orchestra/contrib/lists/settings.py index 147b3d0..9d5e25a 100644 --- a/orchestra/contrib/lists/settings.py +++ b/orchestra/contrib/lists/settings.py @@ -21,20 +21,20 @@ LISTS_LIST_URL = Setting('LISTS_LIST_URL', LISTS_MAILMAN_POST_LOG_PATH = Setting('LISTS_MAILMAN_POST_LOG_PATH', - '/var/log/mailman/post' + '/var/log/mailman3/smtp' ) LISTS_MAILMAN_ROOT_DIR = Setting('LISTS_MAILMAN_ROOT_DIR', - '/var/lib/mailman' + '/var/lib/mailman3' ) LISTS_VIRTUAL_ALIAS_PATH = Setting('LISTS_VIRTUAL_ALIAS_PATH', - '/etc/postfix/mailman_virtual_aliases' + '/etc/postfix/mailman3_virtusertable' ) LISTS_VIRTUAL_ALIAS_DOMAINS_PATH = Setting('LISTS_VIRTUAL_ALIAS_DOMAINS_PATH', - '/etc/postfix/mailman_virtual_domains' + '/etc/postfix/mailman3_virtdomains' ) diff --git a/orchestra/contrib/mailboxes/admin.py b/orchestra/contrib/mailboxes/admin.py index 3314b1d..d1094d3 100644 --- a/orchestra/contrib/mailboxes/admin.py +++ b/orchestra/contrib/mailboxes/admin.py @@ -8,7 +8,7 @@ from django.db.models import F, Count, Value as V from django.db.models.functions import Concat from django.utils.html import format_html, format_html_join from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin import ExtendedModelAdmin, ChangePasswordAdminMixin from orchestra.admin.actions import disable, enable diff --git a/orchestra/contrib/mailboxes/backends.py b/orchestra/contrib/mailboxes/backends.py index e015a05..c15c42f 100644 --- a/orchestra/contrib/mailboxes/backends.py +++ b/orchestra/contrib/mailboxes/backends.py @@ -4,7 +4,7 @@ import re import textwrap from django.core.exceptions import ObjectDoesNotExist -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController from orchestra.contrib.resources import ServiceMonitor diff --git a/orchestra/contrib/mailboxes/filters.py b/orchestra/contrib/mailboxes/filters.py index 23c2f16..2c1dd60 100644 --- a/orchestra/contrib/mailboxes/filters.py +++ b/orchestra/contrib/mailboxes/filters.py @@ -1,5 +1,5 @@ from django.contrib.admin import SimpleListFilter -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class HasMailboxListFilter(SimpleListFilter): diff --git a/orchestra/contrib/mailboxes/forms.py b/orchestra/contrib/mailboxes/forms.py index b4a5372..522b608 100644 --- a/orchestra/contrib/mailboxes/forms.py +++ b/orchestra/contrib/mailboxes/forms.py @@ -2,7 +2,7 @@ from django import forms from django.contrib.admin import widgets from django.core.exceptions import ValidationError from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.forms import UserCreationForm, UserChangeForm from orchestra.utils.python import AttrDict diff --git a/orchestra/contrib/mailboxes/migrations/0001_initial.py b/orchestra/contrib/mailboxes/migrations/0001_initial.py deleted file mode 100644 index c2434c1..0000000 --- a/orchestra/contrib/mailboxes/migrations/0001_initial.py +++ /dev/null @@ -1,66 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -from django.conf import settings -import django.db.models.deletion -import orchestra.contrib.mailboxes.validators -import django.core.validators - - -class Migration(migrations.Migration): - - dependencies = [ - ('domains', '0001_initial'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Address', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(verbose_name='name', validators=[orchestra.contrib.mailboxes.validators.validate_emailname], blank=True, help_text='Address name, left blank for a catch-all address', max_length=64)), - ('forward', models.CharField(verbose_name='forward', validators=[orchestra.contrib.mailboxes.validators.validate_forward], blank=True, help_text='Space separated email addresses or mailboxes', max_length=256)), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, related_name='addresses', verbose_name='Account')), - ('domain', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='domains.Domain', related_name='addresses', verbose_name='domain')), - ], - options={ - 'verbose_name_plural': 'addresses', - }, - ), - migrations.CreateModel( - name='Autoresponse', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('subject', models.CharField(verbose_name='subject', max_length=256)), - ('message', models.TextField(verbose_name='message')), - ('enabled', models.BooleanField(verbose_name='enabled', default=False)), - ('address', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='mailboxes.Address', related_name='autoresponse', verbose_name='address')), - ], - ), - migrations.CreateModel( - name='Mailbox', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(verbose_name='name', validators=[django.core.validators.RegexValidator('^[\\w.@+-]+$', 'Enter a valid mailbox name.')], help_text='Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=64, unique=True)), - ('password', models.CharField(verbose_name='password', max_length=128)), - ('filtering', models.CharField(choices=[('CUSTOM', 'Custom filtering'), ('REDIRECT', 'Archive spam (X-Spam-Score≥9)'), ('DISABLE', 'Disable'), ('REJECT', 'Reject spam (X-Spam-Score≥9)')], max_length=16, default='REDIRECT')), - ('custom_filtering', models.TextField(verbose_name='filtering', validators=[orchestra.contrib.mailboxes.validators.validate_sieve], blank=True, help_text='Arbitrary email filtering in sieve language. This overrides any automatic junk email filtering')), - ('is_active', models.BooleanField(verbose_name='active', default=True)), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, related_name='mailboxes', verbose_name='account')), - ], - options={ - 'verbose_name_plural': 'mailboxes', - }, - ), - migrations.AddField( - model_name='address', - name='mailboxes', - field=models.ManyToManyField(verbose_name='mailboxes', to='mailboxes.Mailbox', blank=True, related_name='addresses'), - ), - migrations.AlterUniqueTogether( - name='address', - unique_together=set([('name', 'domain')]), - ), - ] diff --git a/orchestra/contrib/mailboxes/migrations/0001_squashed_0003_auto_20170528_2011.py b/orchestra/contrib/mailboxes/migrations/0001_squashed_0003_auto_20170528_2011.py deleted file mode 100644 index c66017b..0000000 --- a/orchestra/contrib/mailboxes/migrations/0001_squashed_0003_auto_20170528_2011.py +++ /dev/null @@ -1,71 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:27 -from __future__ import unicode_literals - -from django.conf import settings -import django.core.validators -from django.db import migrations, models -import django.db.models.deletion -import orchestra.contrib.mailboxes.validators - - -class Migration(migrations.Migration): - - replaces = [('mailboxes', '0001_initial'), ('mailboxes', '0002_auto_20160219_1032'), ('mailboxes', '0003_auto_20170528_2011')] - - initial = True - - dependencies = [ - ('domains', '0001_initial'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Address', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(blank=True, help_text='Address name, left blank for a catch-all address', max_length=64, validators=[orchestra.contrib.mailboxes.validators.validate_emailname], verbose_name='name')), - ('forward', models.CharField(blank=True, help_text='Space separated email addresses or mailboxes', max_length=256, validators=[orchestra.contrib.mailboxes.validators.validate_forward], verbose_name='forward')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='addresses', to=settings.AUTH_USER_MODEL, verbose_name='Account')), - ('domain', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='addresses', to='domains.Domain', verbose_name='domain')), - ], - options={ - 'verbose_name_plural': 'addresses', - }, - ), - migrations.CreateModel( - name='Autoresponse', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('subject', models.CharField(max_length=256, verbose_name='subject')), - ('message', models.TextField(verbose_name='message')), - ('enabled', models.BooleanField(default=False, verbose_name='enabled')), - ('address', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='autoresponse', to='mailboxes.Address', verbose_name='address')), - ], - ), - migrations.CreateModel( - name='Mailbox', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(db_index=True, help_text='Required. 32 characters or fewer. Letters, digits and ./-/_ only.', max_length=32, unique=True, validators=[django.core.validators.RegexValidator('^[\\w.-]+$', 'Enter a valid mailbox name.')], verbose_name='name')), - ('password', models.CharField(max_length=128, verbose_name='password')), - ('filtering', models.CharField(choices=[('CUSTOM', 'Custom filtering'), ('DISABLE', 'Disable'), ('REDIRECT', 'Archive spam (Score≥8)'), ('REDIRECT5', 'Archive spam (Score≥5)'), ('REJECT', 'Reject spam (Score≥8)'), ('REJECT5', 'Reject spam (Score≥5)')], default='REDIRECT', max_length=16)), - ('custom_filtering', models.TextField(blank=True, help_text="Arbitrary email filtering in sieve language. This overrides any automatic junk email filtering", validators=[orchestra.contrib.mailboxes.validators.validate_sieve], verbose_name='filtering')), - ('is_active', models.BooleanField(default=True, verbose_name='active')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='mailboxes', to=settings.AUTH_USER_MODEL, verbose_name='account')), - ], - options={ - 'verbose_name_plural': 'mailboxes', - }, - ), - migrations.AddField( - model_name='address', - name='mailboxes', - field=models.ManyToManyField(blank=True, related_name='addresses', to='mailboxes.Mailbox', verbose_name='mailboxes'), - ), - migrations.AlterUniqueTogether( - name='address', - unique_together=set([('name', 'domain')]), - ), - ] diff --git a/orchestra/contrib/mailboxes/migrations/0002_auto_20160219_1032.py b/orchestra/contrib/mailboxes/migrations/0002_auto_20160219_1032.py deleted file mode 100644 index 99b89e5..0000000 --- a/orchestra/contrib/mailboxes/migrations/0002_auto_20160219_1032.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import django.core.validators - - -class Migration(migrations.Migration): - - dependencies = [ - ('mailboxes', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='mailbox', - name='filtering', - field=models.CharField(max_length=16, choices=[('CUSTOM', 'Custom filtering'), ('DISABLE', 'Disable'), ('REDIRECT', 'Archive spam (Score≥8)'), ('REDIRECT5', 'Archive spam (Score≥5)'), ('REJECT', 'Reject spam (Score≥8)'), ('REJECT5', 'Reject spam (Score≥5)')], default='REDIRECT'), - ), - migrations.AlterField( - model_name='mailbox', - name='name', - field=models.CharField(max_length=64, db_index=True, unique=True, help_text='Required. 32 characters or fewer. Letters, digits and ./-/_ only.', validators=[django.core.validators.RegexValidator('^[\\w.-]+$', 'Enter a valid mailbox name.')], verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/mailboxes/migrations/0003_auto_20170528_2011.py b/orchestra/contrib/mailboxes/migrations/0003_auto_20170528_2011.py deleted file mode 100644 index 2ea0c06..0000000 --- a/orchestra/contrib/mailboxes/migrations/0003_auto_20170528_2011.py +++ /dev/null @@ -1,27 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:11 -from __future__ import unicode_literals - -import django.core.validators -from django.db import migrations, models -import orchestra.contrib.mailboxes.validators - - -class Migration(migrations.Migration): - - dependencies = [ - ('mailboxes', '0002_auto_20160219_1032'), - ] - - operations = [ - migrations.AlterField( - model_name='mailbox', - name='custom_filtering', - field=models.TextField(blank=True, help_text="Arbitrary email filtering in sieve language. This overrides any automatic junk email filtering", validators=[orchestra.contrib.mailboxes.validators.validate_sieve], verbose_name='filtering'), - ), - migrations.AlterField( - model_name='mailbox', - name='name', - field=models.CharField(db_index=True, help_text='Required. 32 characters or fewer. Letters, digits and ./-/_ only.', max_length=32, unique=True, validators=[django.core.validators.RegexValidator('^[\\w.-]+$', 'Enter a valid mailbox name.')], verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/mailboxes/migrations/__init__.py b/orchestra/contrib/mailboxes/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/mailboxes/models.py b/orchestra/contrib/mailboxes/models.py index a38078c..7122b5e 100644 --- a/orchestra/contrib/mailboxes/models.py +++ b/orchestra/contrib/mailboxes/models.py @@ -6,7 +6,7 @@ from django.contrib.auth.hashers import make_password from django.core.validators import RegexValidator, ValidationError from django.db import models from django.utils.functional import cached_property -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from . import validators, settings diff --git a/orchestra/contrib/mailboxes/settings.py b/orchestra/contrib/mailboxes/settings.py index f8dccc5..c941275 100644 --- a/orchestra/contrib/mailboxes/settings.py +++ b/orchestra/contrib/mailboxes/settings.py @@ -3,7 +3,7 @@ import textwrap from django.utils.functional import lazy from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.settings import Setting from orchestra.core.validators import validate_name diff --git a/orchestra/contrib/mailboxes/validators.py b/orchestra/contrib/mailboxes/validators.py index 447a5fe..5a33b16 100644 --- a/orchestra/contrib/mailboxes/validators.py +++ b/orchestra/contrib/mailboxes/validators.py @@ -3,7 +3,7 @@ import os import re from django.core.validators import ValidationError, EmailValidator -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.utils import paths from orchestra.utils.sys import run diff --git a/orchestra/contrib/mailer/admin.py b/orchestra/contrib/mailer/admin.py index 3e7371d..9d508c1 100644 --- a/orchestra/contrib/mailer/admin.py +++ b/orchestra/contrib/mailer/admin.py @@ -8,7 +8,7 @@ from django.db.models import Count from django.shortcuts import redirect from django.utils.html import format_html from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin import ExtendedModelAdmin from orchestra.admin.utils import admin_link, admin_colored, admin_date, wrap_admin_view @@ -115,7 +115,7 @@ class MessageAdmin(ExtendedModelAdmin): display_to.short_description = _("To") def get_urls(self): - from django.conf.urls import url + from django.urls import re_path as url urls = super().get_urls() info = self.model._meta.app_label, self.model._meta.model_name urls.insert(0, diff --git a/orchestra/contrib/mailer/engine.py b/orchestra/contrib/mailer/engine.py index 75f0fde..898f204 100644 --- a/orchestra/contrib/mailer/engine.py +++ b/orchestra/contrib/mailer/engine.py @@ -6,7 +6,6 @@ from socket import error as SocketError from django.core.mail import get_connection from django.db.models import Q from django.utils import timezone -from django.utils.encoding import smart_str from orchestra.utils.sys import LockFile, OperationLocked @@ -32,7 +31,7 @@ def send_message(message, connection=None, bulk=settings.MAILER_BULK_MESSAGES): return error = None try: - connection.connection.sendmail(message.from_address, [message.to_address], smart_str(message.content.encode('ascii','ignore').decode())) + connection.connection.sendmail(message.from_address, [message.to_address], message.content.encode()) except (SocketError, smtplib.SMTPSenderRefused, smtplib.SMTPRecipientsRefused, diff --git a/orchestra/contrib/mailer/migrations/0001_initial.py b/orchestra/contrib/mailer/migrations/0001_initial.py deleted file mode 100644 index ca6dcd3..0000000 --- a/orchestra/contrib/mailer/migrations/0001_initial.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -import django.db.models.deletion -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ] - - operations = [ - migrations.CreateModel( - name='Message', - fields=[ - ('id', models.AutoField(auto_created=True, serialize=False, verbose_name='ID', primary_key=True)), - ('state', models.CharField(choices=[('QUEUED', 'Queued'), ('SENT', 'Sent'), ('DEFERRED', 'Deferred'), ('FAILED', 'Failes')], default='QUEUED', verbose_name='State', max_length=16)), - ('priority', models.PositiveIntegerField(choices=[(0, 'Critical (not queued)'), (1, 'High'), (2, 'Normal'), (3, 'Low')], default=2, verbose_name='Priority')), - ('to_address', models.CharField(max_length=256)), - ('from_address', models.CharField(max_length=256)), - ('subject', models.CharField(max_length=256, verbose_name='subject')), - ('content', models.TextField(verbose_name='content')), - ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')), - ('retries', models.PositiveIntegerField(default=0, verbose_name='retries')), - ('last_retry', models.DateTimeField(auto_now=True, verbose_name='last try')), - ], - ), - migrations.CreateModel( - name='SMTPLog', - fields=[ - ('id', models.AutoField(auto_created=True, serialize=False, verbose_name='ID', primary_key=True)), - ('result', models.CharField(choices=[('SUCCESS', 'Success'), ('FAILURE', 'Failure')], default='SUCCESS', max_length=16)), - ('date', models.DateTimeField(auto_now_add=True)), - ('log_message', models.TextField()), - ('message', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mailer.Message', editable=False, related_name='logs')), - ], - ), - ] diff --git a/orchestra/contrib/mailer/migrations/0001_squashed_0005_auto_20160219_1056.py b/orchestra/contrib/mailer/migrations/0001_squashed_0005_auto_20160219_1056.py deleted file mode 100644 index 576ec46..0000000 --- a/orchestra/contrib/mailer/migrations/0001_squashed_0005_auto_20160219_1056.py +++ /dev/null @@ -1,89 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:28 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - replaces = [('mailer', '0001_initial'), ('mailer', '0002_auto_20150617_1021'), ('mailer', '0003_auto_20150617_1024'), ('mailer', '0004_auto_20150805_1328'), ('mailer', '0005_auto_20160219_1056')] - - initial = True - - dependencies = [ - ] - - operations = [ - migrations.CreateModel( - name='Message', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('state', models.CharField(choices=[('QUEUED', 'Queued'), ('SENT', 'Sent'), ('DEFERRED', 'Deferred'), ('FAILED', 'Failes')], default='QUEUED', max_length=16, verbose_name='State')), - ('priority', models.PositiveIntegerField(choices=[(0, 'Critical (not queued)'), (1, 'High'), (2, 'Normal'), (3, 'Low')], default=2, verbose_name='Priority')), - ('to_address', models.CharField(max_length=256)), - ('from_address', models.CharField(max_length=256)), - ('subject', models.CharField(max_length=256, verbose_name='subject')), - ('content', models.TextField(verbose_name='content')), - ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')), - ('retries', models.PositiveIntegerField(default=0, verbose_name='retries')), - ('last_retry', models.DateTimeField(auto_now=True, verbose_name='last try')), - ], - ), - migrations.CreateModel( - name='SMTPLog', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('result', models.CharField(choices=[('SUCCESS', 'Success'), ('FAILURE', 'Failure')], default='SUCCESS', max_length=16)), - ('date', models.DateTimeField(auto_now_add=True)), - ('log_message', models.TextField()), - ('message', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, related_name='logs', to='mailer.Message')), - ], - ), - migrations.RenameField( - model_name='message', - old_name='last_retry', - new_name='last_try', - ), - migrations.AlterField( - model_name='message', - name='last_try', - field=models.DateTimeField(verbose_name='last try'), - ), - migrations.AlterField( - model_name='message', - name='subject', - field=models.TextField(verbose_name='subject'), - ), - migrations.AlterField( - model_name='message', - name='last_try', - field=models.DateTimeField(null=True, verbose_name='last try'), - ), - migrations.AlterField( - model_name='message', - name='state', - field=models.CharField(choices=[('QUEUED', 'Queued'), ('SENT', 'Sent'), ('DEFERRED', 'Deferred'), ('FAILED', 'Failed')], default='QUEUED', max_length=16, verbose_name='State'), - ), - migrations.AlterField( - model_name='message', - name='last_try', - field=models.DateTimeField(db_index=True, null=True, verbose_name='last try'), - ), - migrations.AlterField( - model_name='message', - name='priority', - field=models.PositiveIntegerField(choices=[(0, 'Critical (not queued)'), (1, 'High'), (2, 'Normal'), (3, 'Low')], db_index=True, default=2, verbose_name='Priority'), - ), - migrations.AlterField( - model_name='message', - name='retries', - field=models.PositiveIntegerField(db_index=True, default=0, verbose_name='retries'), - ), - migrations.AlterField( - model_name='message', - name='state', - field=models.CharField(choices=[('QUEUED', 'Queued'), ('SENT', 'Sent'), ('DEFERRED', 'Deferred'), ('FAILED', 'Failed')], db_index=True, default='QUEUED', max_length=16, verbose_name='State'), - ), - ] diff --git a/orchestra/contrib/mailer/migrations/0002_auto_20150617_1021.py b/orchestra/contrib/mailer/migrations/0002_auto_20150617_1021.py deleted file mode 100644 index d0415e2..0000000 --- a/orchestra/contrib/mailer/migrations/0002_auto_20150617_1021.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('mailer', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='message', - name='last_retry', - field=models.DateTimeField(verbose_name='last try'), - ), - migrations.AlterField( - model_name='message', - name='subject', - field=models.TextField(verbose_name='subject'), - ), - ] diff --git a/orchestra/contrib/mailer/migrations/0003_auto_20150617_1024.py b/orchestra/contrib/mailer/migrations/0003_auto_20150617_1024.py deleted file mode 100644 index 22bfb79..0000000 --- a/orchestra/contrib/mailer/migrations/0003_auto_20150617_1024.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('mailer', '0002_auto_20150617_1021'), - ] - - operations = [ - migrations.AlterField( - model_name='message', - name='last_retry', - field=models.DateTimeField(null=True, verbose_name='last try'), - ), - ] diff --git a/orchestra/contrib/mailer/migrations/0004_auto_20150805_1328.py b/orchestra/contrib/mailer/migrations/0004_auto_20150805_1328.py deleted file mode 100644 index d224585..0000000 --- a/orchestra/contrib/mailer/migrations/0004_auto_20150805_1328.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('mailer', '0003_auto_20150617_1024'), - ] - - operations = [ - migrations.RenameField( - model_name='message', - old_name='last_retry', - new_name='last_try', - ), - migrations.AlterField( - model_name='message', - name='state', - field=models.CharField(verbose_name='State', max_length=16, choices=[('QUEUED', 'Queued'), ('SENT', 'Sent'), ('DEFERRED', 'Deferred'), ('FAILED', 'Failed')], default='QUEUED'), - ), - ] diff --git a/orchestra/contrib/mailer/migrations/0005_auto_20160219_1056.py b/orchestra/contrib/mailer/migrations/0005_auto_20160219_1056.py deleted file mode 100644 index 8b3eca4..0000000 --- a/orchestra/contrib/mailer/migrations/0005_auto_20160219_1056.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('mailer', '0004_auto_20150805_1328'), - ] - - operations = [ - migrations.AlterField( - model_name='message', - name='last_try', - field=models.DateTimeField(null=True, db_index=True, verbose_name='last try'), - ), - migrations.AlterField( - model_name='message', - name='priority', - field=models.PositiveIntegerField(default=2, choices=[(0, 'Critical (not queued)'), (1, 'High'), (2, 'Normal'), (3, 'Low')], db_index=True, verbose_name='Priority'), - ), - migrations.AlterField( - model_name='message', - name='retries', - field=models.PositiveIntegerField(default=0, db_index=True, verbose_name='retries'), - ), - migrations.AlterField( - model_name='message', - name='state', - field=models.CharField(default='QUEUED', choices=[('QUEUED', 'Queued'), ('SENT', 'Sent'), ('DEFERRED', 'Deferred'), ('FAILED', 'Failed')], db_index=True, max_length=16, verbose_name='State'), - ), - ] diff --git a/orchestra/contrib/mailer/migrations/__init__.py b/orchestra/contrib/mailer/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/mailer/models.py b/orchestra/contrib/mailer/models.py index f7c61af..c905768 100644 --- a/orchestra/contrib/mailer/models.py +++ b/orchestra/contrib/mailer/models.py @@ -1,5 +1,5 @@ from django.db import models -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from . import settings diff --git a/orchestra/contrib/mailer/settings.py b/orchestra/contrib/mailer/settings.py index 0cd6da8..e040a52 100644 --- a/orchestra/contrib/mailer/settings.py +++ b/orchestra/contrib/mailer/settings.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.settings import Setting diff --git a/orchestra/contrib/miscellaneous/admin.py b/orchestra/contrib/miscellaneous/admin.py index ff4920e..2fce198 100644 --- a/orchestra/contrib/miscellaneous/admin.py +++ b/orchestra/contrib/miscellaneous/admin.py @@ -4,7 +4,7 @@ from django.urls import reverse from django.db import models from django.utils.html import format_html from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin import ExtendedModelAdmin from orchestra.admin.actions import disable, enable diff --git a/orchestra/contrib/miscellaneous/migrations/0001_initial.py b/orchestra/contrib/miscellaneous/migrations/0001_initial.py deleted file mode 100644 index 53b560e..0000000 --- a/orchestra/contrib/miscellaneous/migrations/0001_initial.py +++ /dev/null @@ -1,49 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.db.models.deletion -import orchestra.core.validators -from django.conf import settings -import orchestra.models.fields - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Miscellaneous', - fields=[ - ('id', models.AutoField(auto_created=True, serialize=False, verbose_name='ID', primary_key=True)), - ('identifier', orchestra.models.fields.NullableCharField(max_length=256, help_text='A unique identifier for this service.', unique=True, null=True, verbose_name='identifier')), - ('description', models.TextField(blank=True, verbose_name='description')), - ('amount', models.PositiveIntegerField(default=1, verbose_name='amount')), - ('is_active', models.BooleanField(default=True, help_text='Designates whether this service should be treated as active. Unselect this instead of deleting services.', verbose_name='active')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='miscellaneous', verbose_name='account', to=settings.AUTH_USER_MODEL)), - ], - options={ - 'verbose_name_plural': 'miscellaneous', - }, - ), - migrations.CreateModel( - name='MiscService', - fields=[ - ('id', models.AutoField(auto_created=True, serialize=False, verbose_name='ID', primary_key=True)), - ('name', models.CharField(max_length=32, help_text='Raw name used for internal referenciation, i.e. service match definition', unique=True, verbose_name='name', validators=[orchestra.core.validators.validate_name])), - ('verbose_name', models.CharField(max_length=256, help_text='Human readable name', blank=True, verbose_name='verbose name')), - ('description', models.TextField(help_text='Optional description', blank=True, verbose_name='description')), - ('has_identifier', models.BooleanField(default=True, help_text='Designates if this service has a unique text field that identifies it or not.', verbose_name='has identifier')), - ('has_amount', models.BooleanField(default=False, help_text='Designates whether this service has amount property or not.', verbose_name='has amount')), - ('is_active', models.BooleanField(default=True, help_text='Whether new instances of this service can be created or not. Unselect this instead of deleting services.', verbose_name='active')), - ], - ), - migrations.AddField( - model_name='miscellaneous', - name='service', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='instances', verbose_name='service', to='miscellaneous.MiscService'), - ), - ] diff --git a/orchestra/contrib/miscellaneous/migrations/0001_squashed_0002_auto_20150723_1252.py b/orchestra/contrib/miscellaneous/migrations/0001_squashed_0002_auto_20150723_1252.py deleted file mode 100644 index e5d5e6d..0000000 --- a/orchestra/contrib/miscellaneous/migrations/0001_squashed_0002_auto_20150723_1252.py +++ /dev/null @@ -1,59 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:28 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import orchestra.core.validators -import orchestra.models.fields - - -class Migration(migrations.Migration): - - replaces = [('miscellaneous', '0001_initial'), ('miscellaneous', '0002_auto_20150723_1252')] - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Miscellaneous', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('identifier', orchestra.models.fields.NullableCharField(help_text='A unique identifier for this service.', max_length=256, null=True, unique=True, verbose_name='identifier')), - ('description', models.TextField(blank=True, verbose_name='description')), - ('amount', models.PositiveIntegerField(default=1, verbose_name='amount')), - ('is_active', models.BooleanField(default=True, help_text='Designates whether this service should be treated as active. Unselect this instead of deleting services.', verbose_name='active')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='miscellaneous', to=settings.AUTH_USER_MODEL, verbose_name='account')), - ], - options={ - 'verbose_name_plural': 'miscellaneous', - }, - ), - migrations.CreateModel( - name='MiscService', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(help_text='Raw name used for internal referenciation, i.e. service match definition', max_length=32, unique=True, validators=[orchestra.core.validators.validate_name], verbose_name='name')), - ('verbose_name', models.CharField(blank=True, help_text='Human readable name', max_length=256, verbose_name='verbose name')), - ('description', models.TextField(blank=True, help_text='Optional description', verbose_name='description')), - ('has_identifier', models.BooleanField(default=True, help_text='Designates if this service has a unique text field that identifies it or not.', verbose_name='has identifier')), - ('has_amount', models.BooleanField(default=False, help_text='Designates whether this service has amount property or not.', verbose_name='has amount')), - ('is_active', models.BooleanField(default=True, help_text='Whether new instances of this service can be created or not. Unselect this instead of deleting services.', verbose_name='active')), - ], - ), - migrations.AddField( - model_name='miscellaneous', - name='service', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='instances', to='miscellaneous.MiscService', verbose_name='service'), - ), - migrations.AlterField( - model_name='miscellaneous', - name='identifier', - field=orchestra.models.fields.NullableCharField(db_index=True, help_text='A unique identifier for this service.', max_length=256, null=True, unique=True, verbose_name='identifier'), - ), - ] diff --git a/orchestra/contrib/miscellaneous/migrations/0002_auto_20150723_1252.py b/orchestra/contrib/miscellaneous/migrations/0002_auto_20150723_1252.py deleted file mode 100644 index b7f7623..0000000 --- a/orchestra/contrib/miscellaneous/migrations/0002_auto_20150723_1252.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import orchestra.models.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('miscellaneous', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='miscellaneous', - name='identifier', - field=orchestra.models.fields.NullableCharField(db_index=True, unique=True, help_text='A unique identifier for this service.', null=True, max_length=256, verbose_name='identifier'), - ), - ] diff --git a/orchestra/contrib/miscellaneous/migrations/__init__.py b/orchestra/contrib/miscellaneous/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/miscellaneous/models.py b/orchestra/contrib/miscellaneous/models.py index e5fe5f0..2a54983 100644 --- a/orchestra/contrib/miscellaneous/models.py +++ b/orchestra/contrib/miscellaneous/models.py @@ -1,6 +1,6 @@ from django.db import models from django.utils.functional import cached_property -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.core.validators import validate_name from orchestra.models.fields import NullableCharField diff --git a/orchestra/contrib/orchestration/actions.py b/orchestra/contrib/orchestration/actions.py index 3f8a0b3..042f19a 100644 --- a/orchestra/contrib/orchestration/actions.py +++ b/orchestra/contrib/orchestration/actions.py @@ -4,7 +4,7 @@ from django.contrib import messages from django.contrib.admin import helpers from django.shortcuts import render from django.utils.safestring import mark_safe -from django.utils.translation import ungettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext_lazy as _ from orchestra.admin.utils import get_object_from_url, change_url from orchestra.contrib.orchestration.helpers import message_user diff --git a/orchestra/contrib/orchestration/admin.py b/orchestra/contrib/orchestration/admin.py index 4f5ddc4..703fba8 100644 --- a/orchestra/contrib/orchestration/admin.py +++ b/orchestra/contrib/orchestration/admin.py @@ -1,7 +1,7 @@ from django.contrib import admin, messages from django.utils.html import escape from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin import ExtendedModelAdmin, ChangeViewActionsMixin from orchestra.admin.utils import admin_link, admin_date, admin_colored, display_mono, display_code diff --git a/orchestra/contrib/orchestration/backends.py b/orchestra/contrib/orchestration/backends.py index b2f2226..f1a04fe 100644 --- a/orchestra/contrib/orchestration/backends.py +++ b/orchestra/contrib/orchestration/backends.py @@ -4,7 +4,7 @@ from functools import partial from django.apps import apps from django.utils import timezone -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra import plugins diff --git a/orchestra/contrib/orchestration/helpers.py b/orchestra/contrib/orchestration/helpers.py index 768e999..68296ab 100644 --- a/orchestra/contrib/orchestration/helpers.py +++ b/orchestra/contrib/orchestration/helpers.py @@ -5,7 +5,7 @@ from django.core.mail import mail_admins from django.urls import reverse, NoReverseMatch from django.utils.html import escape from django.utils.safestring import mark_safe -from django.utils.translation import ungettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext_lazy as _ from orchestra import settings as orchestra_settings from orchestra.admin.utils import change_url @@ -125,7 +125,7 @@ def get_messages(logs): async_url = get_backend_url(async_ids) async_msg = '' if run_async: - async_msg = ungettext( + async_msg = ngettext( _('{name} is running on the background'), _('{run_async} backends are running on the background'), run_async) @@ -133,7 +133,7 @@ def get_messages(logs): if total == 1: msg = _('{name} has fail to execute') else: - msg = ungettext( + msg = ngettext( _('{errors} out of {total} backends has fail to execute'), _('{errors} out of {total} backends have fail to execute'), errors) @@ -147,13 +147,13 @@ def get_messages(logs): if total == 1: msg = _('{name} has been executed') else: - msg = ungettext( + msg = ngettext( _('{successes} out of {total} backends has been executed'), _('{successes} out of {total} backends have been executed'), successes) msg += ', ' + str(async_msg) else: - msg = ungettext( + msg = ngettext( _('{name} has been executed'), _('{total} backends have been executed'), total) diff --git a/orchestra/contrib/orchestration/migrations/0001_initial.py b/orchestra/contrib/orchestration/migrations/0001_initial.py deleted file mode 100644 index e14d15d..0000000 --- a/orchestra/contrib/orchestration/migrations/0001_initial.py +++ /dev/null @@ -1,83 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -import django.db.models.deletion -from django.db import models, migrations -import orchestra.models.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('contenttypes', '0002_remove_content_type_name'), - ] - - operations = [ - migrations.CreateModel( - name='BackendLog', - fields=[ - ('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)), - ('backend', models.CharField(max_length=256, verbose_name='backend')), - ('state', models.CharField(choices=[('RECEIVED', 'RECEIVED'), ('TIMEOUT', 'TIMEOUT'), ('STARTED', 'STARTED'), ('SUCCESS', 'SUCCESS'), ('FAILURE', 'FAILURE'), ('ERROR', 'ERROR'), ('ABORTED', 'ABORTED'), ('REVOKED', 'REVOKED')], default='RECEIVED', max_length=16, verbose_name='state')), - ('script', models.TextField(verbose_name='script')), - ('stdout', models.TextField(verbose_name='stdout')), - ('stderr', models.TextField(verbose_name='stdin')), - ('traceback', models.TextField(verbose_name='traceback')), - ('exit_code', models.IntegerField(verbose_name='exit code', null=True)), - ('task_id', models.CharField(help_text='Celery task ID when used as execution backend', verbose_name='task ID', unique=True, max_length=36, null=True)), - ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created')), - ('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated')), - ], - options={ - 'get_latest_by': 'id', - }, - ), - migrations.CreateModel( - name='BackendOperation', - fields=[ - ('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)), - ('backend', models.CharField(max_length=256, verbose_name='backend')), - ('action', models.CharField(max_length=64, verbose_name='action')), - ('object_id', models.PositiveIntegerField()), - ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType')), - ('log', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='operations', to='orchestration.BackendLog')), - ], - options={ - 'verbose_name_plural': 'Operations', - 'verbose_name': 'Operation', - }, - ), - migrations.CreateModel( - name='Route', - fields=[ - ('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)), - ('backend', models.CharField(choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('OpenVZTraffic', '[M] OpenVZTraffic'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('Apache2Controller', '[S] Apache 2'), ('BSCWController', '[S] BSCW SaaS'), ('Bind9MasterDomainController', '[S] Bind9 master domain'), ('Bind9SlaveDomainController', '[S] Bind9 slave domain'), ('DokuWikiMuController', '[S] DokuWiki multisite'), ('DovecotPostfixPasswdVirtualUserController', '[S] Dovecot-Postfix virtualuser'), ('DrupalMuController', '[S] Drupal multisite'), ('GitLabSaaSController', '[S] GitLab SaaS'), ('AutoresponseController', '[S] Mail autoresponse'), ('MailmanController', '[S] Mailman'), ('MySQLController', '[S] MySQL database'), ('MySQLUserController', '[S] MySQL user'), ('PHPController', '[S] PHP FPM/FCGID'), ('PostfixAddressController', '[S] Postfix address'), ('uWSGIPythonController', '[S] Python uWSGI'), ('StaticController', '[S] Static'), ('SymbolicLinkController', '[S] Symbolic link webapp'), ('UNIXUserMaildirController', '[S] UNIX maildir user'), ('UNIXUserController', '[S] UNIX user'), ('WebalizerAppController', '[S] Webalizer App'), ('WebalizerController', '[S] Webalizer Content'), ('WordPressController', '[S] Wordpress'), ('WordpressMuController', '[S] Wordpress multisite'), ('PhpListSaaSController', '[S] phpList SaaS')], max_length=256, verbose_name='backend')), - ('match', models.CharField(help_text='Python expression used for selecting the targe host, instance referes to the current object.', default='True', blank=True, max_length=256, verbose_name='match')), - ('is_active', models.BooleanField(default=True, verbose_name='active')), - ], - ), - migrations.CreateModel( - name='Server', - fields=[ - ('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)), - ('name', models.CharField(unique=True, max_length=256, verbose_name='name')), - ('address', orchestra.models.fields.NullableCharField(blank=True, max_length=256, null=True, help_text='IP address or domain name', unique=True, verbose_name='address')), - ('description', models.TextField(blank=True, verbose_name='description')), - ('os', models.CharField(choices=[('LINUX', 'Linux')], default='LINUX', max_length=32, verbose_name='operative system')), - ], - ), - migrations.AddField( - model_name='route', - name='host', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='orchestration.Server', verbose_name='host'), - ), - migrations.AddField( - model_name='backendlog', - name='server', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='execution_logs', to='orchestration.Server', verbose_name='server'), - ), - migrations.AlterUniqueTogether( - name='route', - unique_together=set([('backend', 'host')]), - ), - ] diff --git a/orchestra/contrib/orchestration/migrations/0001_squashed_0009_rename_route_async_run_async.py b/orchestra/contrib/orchestration/migrations/0001_squashed_0009_rename_route_async_run_async.py deleted file mode 100644 index 6e5d1c7..0000000 --- a/orchestra/contrib/orchestration/migrations/0001_squashed_0009_rename_route_async_run_async.py +++ /dev/null @@ -1,149 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:27 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion -import orchestra.core.validators -import orchestra.models.fields - - -class Migration(migrations.Migration): - - replaces = [('orchestration', '0001_initial'), ('orchestration', '0002_auto_20150506_1420'), ('orchestration', '0003_auto_20150512_1512'), ('orchestration', '0004_route_async_actions'), ('orchestration', '0005_auto_20150709_1016'), ('orchestration', '0006_auto_20160219_1110'), ('orchestration', '0007_auto_20170528_2011'), ('orchestration', '0008_auto_20190805_1134'), ('orchestration', '0009_rename_route_async_run_async')] - - initial = True - - dependencies = [ - ('contenttypes', '0002_remove_content_type_name'), - ] - - operations = [ - migrations.CreateModel( - name='BackendLog', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('backend', models.CharField(max_length=256, verbose_name='backend')), - ('state', models.CharField(choices=[('RECEIVED', 'RECEIVED'), ('TIMEOUT', 'TIMEOUT'), ('STARTED', 'STARTED'), ('SUCCESS', 'SUCCESS'), ('FAILURE', 'FAILURE'), ('ERROR', 'ERROR'), ('ABORTED', 'ABORTED'), ('REVOKED', 'REVOKED')], default='RECEIVED', max_length=16, verbose_name='state')), - ('script', models.TextField(verbose_name='script')), - ('stdout', models.TextField(verbose_name='stdout')), - ('stderr', models.TextField(verbose_name='stdin')), - ('traceback', models.TextField(verbose_name='traceback')), - ('exit_code', models.IntegerField(null=True, verbose_name='exit code')), - ('task_id', models.CharField(help_text='Celery task ID when used as execution backend', max_length=36, null=True, unique=True, verbose_name='task ID')), - ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created')), - ('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated')), - ], - options={ - 'get_latest_by': 'id', - }, - ), - migrations.CreateModel( - name='BackendOperation', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('backend', models.CharField(max_length=256, verbose_name='backend')), - ('action', models.CharField(max_length=64, verbose_name='action')), - ('object_id', models.PositiveIntegerField(null=True)), - ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType')), - ('log', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='operations', to='orchestration.BackendLog')), - ('instance_repr', models.CharField(default='', max_length=256, verbose_name='instance representation')), - ], - options={ - 'verbose_name_plural': 'Operations', - 'verbose_name': 'Operation', - }, - ), - migrations.CreateModel( - name='Route', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('backend', models.CharField(choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('OpenVZTraffic', '[M] OpenVZTraffic'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('Apache2Controller', '[S] Apache 2'), ('BSCWController', '[S] BSCW SaaS'), ('Bind9MasterDomainController', '[S] Bind9 master domain'), ('Bind9SlaveDomainController', '[S] Bind9 slave domain'), ('DokuWikiMuController', '[S] DokuWiki multisite'), ('DovecotPostfixPasswdVirtualUserController', '[S] Dovecot-Postfix virtualuser'), ('DrupalMuController', '[S] Drupal multisite'), ('GitLabSaaSController', '[S] GitLab SaaS'), ('AutoresponseController', '[S] Mail autoresponse'), ('MailmanController', '[S] Mailman'), ('MySQLController', '[S] MySQL database'), ('MySQLUserController', '[S] MySQL user'), ('PHPController', '[S] PHP FPM/FCGID'), ('PostfixAddressController', '[S] Postfix address'), ('uWSGIPythonController', '[S] Python uWSGI'), ('StaticController', '[S] Static'), ('SymbolicLinkController', '[S] Symbolic link webapp'), ('UNIXUserMaildirController', '[S] UNIX maildir user'), ('UNIXUserController', '[S] UNIX user'), ('WebalizerAppController', '[S] Webalizer App'), ('WebalizerController', '[S] Webalizer Content'), ('WordPressController', '[S] Wordpress'), ('WordpressMuController', '[S] Wordpress multisite'), ('PhpListSaaSController', '[S] phpList SaaS')], max_length=256, verbose_name='backend')), - ('match', models.CharField(blank=True, default='True', help_text='Python expression used for selecting the targe host, instance referes to the current object.', max_length=256, verbose_name='match')), - ('is_active', models.BooleanField(default=True, verbose_name='active')), - ], - ), - migrations.CreateModel( - name='Server', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(help_text='Verbose name or hostname of this server.', max_length=256, unique=True, verbose_name='name')), - ('address', orchestra.models.fields.NullableCharField(blank=True, help_text='Optional IP address or domain name. If blank, name field will be used for address resolution.
If the IP address never changes you can set this field and save DNS requests.', max_length=256, null=True, unique=True, validators=[orchestra.core.validators.OrValidator(orchestra.core.validators.validate_ip_address, orchestra.core.validators.validate_hostname)], verbose_name='address')), - ('description', models.TextField(blank=True, verbose_name='description')), - ('os', models.CharField(choices=[('LINUX', 'Linux')], default='LINUX', max_length=32, verbose_name='operative system')), - ], - ), - migrations.AddField( - model_name='route', - name='host', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='orchestration.Server', verbose_name='host'), - ), - migrations.AddField( - model_name='backendlog', - name='server', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='execution_logs', to='orchestration.Server', verbose_name='server'), - ), - migrations.AddField( - model_name='route', - name='run_async', - field=models.BooleanField(default=False, help_text='Whether or not block the request/response cycle waitting this backend to finish its execution. Usually you want slave servers to run asynchronously.'), - ), - migrations.AlterUniqueTogether( - name='route', - unique_together=set([('backend', 'host')]), - ), - migrations.AlterField( - model_name='backendlog', - name='state', - field=models.CharField(choices=[('RECEIVED', 'RECEIVED'), ('TIMEOUT', 'TIMEOUT'), ('STARTED', 'STARTED'), ('SUCCESS', 'SUCCESS'), ('FAILURE', 'FAILURE'), ('ERROR', 'ERROR'), ('ABORTED', 'ABORTED'), ('REVOKED', 'REVOKED'), ('NOTHING', 'NOTHING')], default='RECEIVED', max_length=16, verbose_name='state'), - ), - migrations.AlterField( - model_name='backendlog', - name='stderr', - field=models.TextField(verbose_name='stderr'), - ), - migrations.AlterField( - model_name='route', - name='backend', - field=models.CharField(choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('OpenVZTraffic', '[M] OpenVZTraffic'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('Apache2Controller', '[S] Apache 2'), ('BSCWController', '[S] BSCW SaaS'), ('Bind9MasterDomainController', '[S] Bind9 master domain'), ('Bind9SlaveDomainController', '[S] Bind9 slave domain'), ('DokuWikiMuController', '[S] DokuWiki multisite'), ('DovecotPostfixPasswdVirtualUserController', '[S] Dovecot-Postfix virtualuser'), ('DrupalMuController', '[S] Drupal multisite'), ('GitLabSaaSController', '[S] GitLab SaaS'), ('AutoresponseController', '[S] Mail autoresponse'), ('MailmanController', '[S] Mailman'), ('MailmanVirtualDomainController', '[S] Mailman virtdomain-only'), ('MySQLController', '[S] MySQL database'), ('MySQLUserController', '[S] MySQL user'), ('PHPController', '[S] PHP FPM/FCGID'), ('PostfixAddressController', '[S] Postfix address'), ('PostfixAddressVirtualDomainController', '[S] Postfix address virtdomain-only'), ('uWSGIPythonController', '[S] Python uWSGI'), ('StaticController', '[S] Static'), ('SymbolicLinkController', '[S] Symbolic link webapp'), ('SyncBind9MasterDomainController', '[S] Sync Bind9 master domain'), ('SyncBind9SlaveDomainController', '[S] Sync Bind9 slave domain'), ('UNIXUserMaildirController', '[S] UNIX maildir user'), ('UNIXUserController', '[S] UNIX user'), ('WebalizerAppController', '[S] Webalizer App'), ('WebalizerController', '[S] Webalizer Content'), ('WordPressController', '[S] Wordpress'), ('WordpressMuController', '[S] Wordpress multisite'), ('PhpListSaaSController', '[S] phpList SaaS')], max_length=256, verbose_name='backend'), - ), - migrations.AddField( - model_name='route', - name='async_actions', - field=orchestra.models.fields.MultiSelectField(blank=True, help_text='Specify individual actions to be executed asynchronoulsy.', max_length=256), - ), - migrations.AlterField( - model_name='backendlog', - name='created_at', - field=models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='created'), - ), - migrations.AlterField( - model_name='route', - name='backend', - field=models.CharField(choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('ApacheTrafficByName', '[M] ApacheTrafficByName'), ('DokuWikiMuTraffic', '[M] DokuWiki MU Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('OpenVZTraffic', '[M] OpenVZTraffic'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('WordpressMuTraffic', '[M] Wordpress MU Traffic'), ('OwnCloudDiskQuota', '[M] ownCloud SaaS Disk Quota'), ('OwncloudTraffic', '[M] ownCloud SaaS Traffic'), ('PhpListTraffic', '[M] phpList SaaS Traffic'), ('Apache2Controller', '[S] Apache 2'), ('BSCWController', '[S] BSCW SaaS'), ('Bind9MasterDomainController', '[S] Bind9 master domain'), ('Bind9SlaveDomainController', '[S] Bind9 slave domain'), ('DokuWikiMuController', '[S] DokuWiki multisite'), ('DrupalMuController', '[S] Drupal multisite'), ('GitLabSaaSController', '[S] GitLab SaaS'), ('AutoresponseController', '[S] Mail autoresponse'), ('MailScannerSpamRuleController', '[S] MailScanner ruleset'), ('MailmanController', '[S] Mailman'), ('MailmanVirtualDomainController', '[S] Mailman virtdomain-only'), ('MoodleController', '[S] Moodle'), ('MoodleWWWRootController', '[S] Moodle WWWRoot (required)'), ('MoodleMuController', '[S] Moodle multisite'), ('MySQLController', '[S] MySQL database'), ('MySQLUserController', '[S] MySQL user'), ('PHPController', '[S] PHP FPM/FCGID'), ('PangeaProxmoxOVZ', '[S] PangeaProxmoxOVZ'), ('PostfixAddressController', '[S] Postfix address'), ('PostfixAddressVirtualDomainController', '[S] Postfix address virtdomain-only'), ('PostfixRecipientAccessController', '[S] Postfix recipient access'), ('ProxmoxOVZ', '[S] ProxmoxOVZ'), ('uWSGIPythonController', '[S] Python uWSGI'), ('StaticController', '[S] Static'), ('SymbolicLinkController', '[S] Symbolic link webapp'), ('SyncBind9MasterDomainController', '[S] Sync Bind9 master domain'), ('SyncBind9SlaveDomainController', '[S] Sync Bind9 slave domain'), ('UNIXUserMaildirController', '[S] UNIX maildir user'), ('UNIXUserController', '[S] UNIX user'), ('WebalizerAppController', '[S] Webalizer App'), ('WebalizerController', '[S] Webalizer Content'), ('WordPressURLController', '[S] WordPress URL'), ('WordPressController', '[S] Wordpress'), ('WordpressMuController', '[S] Wordpress multisite'), ('OwnCloudController', '[S] ownCloud SaaS'), ('PhpListSaaSController', '[S] phpList SaaS')], max_length=256, verbose_name='backend'), - ), - migrations.AlterIndexTogether( - name='backendoperation', - index_together=set([('content_type', 'object_id')]), - ), - migrations.AlterField( - model_name='route', - name='backend', - field=models.CharField(choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('ApacheTrafficByName', '[M] ApacheTrafficByName'), ('DokuWikiMuTraffic', '[M] DokuWiki MU Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('ProxmoxOpenVZTraffic', '[M] ProxmoxOpenVZTraffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('WordpressMuTraffic', '[M] Wordpress MU Traffic'), ('NextCloudDiskQuota', '[M] nextCloud SaaS Disk Quota'), ('NextcloudTraffic', '[M] nextCloud SaaS Traffic'), ('OwnCloudDiskQuota', '[M] ownCloud SaaS Disk Quota'), ('OwncloudTraffic', '[M] ownCloud SaaS Traffic'), ('PhpListTraffic', '[M] phpList SaaS Traffic'), ('Apache2Controller', '[S] Apache 2'), ('BSCWController', '[S] BSCW SaaS'), ('Bind9MasterDomainController', '[S] Bind9 master domain'), ('Bind9SlaveDomainController', '[S] Bind9 slave domain'), ('DokuWikiMuController', '[S] DokuWiki multisite'), ('DrupalMuController', '[S] Drupal multisite'), ('GitLabSaaSController', '[S] GitLab SaaS'), ('LetsEncryptController', "[S] Let's encrypt!"), ('LxcController', '[S] LxcController'), ('AutoresponseController', '[S] Mail autoresponse'), ('MailScannerSpamRuleController', '[S] MailScanner ruleset'), ('MailmanController', '[S] Mailman'), ('MailmanVirtualDomainController', '[S] Mailman virtdomain-only'), ('MoodleController', '[S] Moodle'), ('MoodleWWWRootController', '[S] Moodle WWWRoot (required)'), ('MoodleMuController', '[S] Moodle multisite'), ('MySQLController', '[S] MySQL database'), ('MySQLUserController', '[S] MySQL user'), ('PHPController', '[S] PHP FPM/FCGID'), ('PangeaProxmoxOVZ', '[S] PangeaProxmoxOVZ'), ('PostfixAddressController', '[S] Postfix address'), ('PostfixAddressVirtualDomainController', '[S] Postfix address virtdomain-only'), ('PostfixRecipientAccessController', '[S] Postfix recipient access'), ('ProxmoxOVZ', '[S] ProxmoxOVZ'), ('uWSGIPythonController', '[S] Python uWSGI'), ('StaticController', '[S] Static'), ('SymbolicLinkController', '[S] Symbolic link webapp'), ('SyncBind9MasterDomainController', '[S] Sync Bind9 master domain'), ('SyncBind9SlaveDomainController', '[S] Sync Bind9 slave domain'), ('UNIXUserMaildirController', '[S] UNIX maildir user'), ('UNIXUserController', '[S] UNIX user'), ('WebalizerAppController', '[S] Webalizer App'), ('WebalizerController', '[S] Webalizer Content'), ('WordPressForceSSLController', '[S] WordPress Force SSL'), ('WordPressURLController', '[S] WordPress URL'), ('WordPressController', '[S] Wordpress'), ('WordpressMuController', '[S] Wordpress multisite'), ('NextCloudController', '[S] nextCloud SaaS'), ('OwnCloudController', '[S] ownCloud SaaS'), ('PhpListSaaSController', '[S] phpList SaaS')], max_length=256, verbose_name='backend'), - ), - migrations.AlterField( - model_name='route', - name='host', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='routes', to='orchestration.Server', verbose_name='host'), - ), - migrations.AlterField( - model_name='route', - name='backend', - field=models.CharField(choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('ApacheTrafficByName', '[M] ApacheTrafficByName'), ('DokuWikiMuTraffic', '[M] DokuWiki MU Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('ProxmoxOpenVZTraffic', '[M] ProxmoxOpenVZTraffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('WordpressMuTraffic', '[M] Wordpress MU Traffic'), ('NextCloudDiskQuota', '[M] nextCloud SaaS Disk Quota'), ('NextcloudTraffic', '[M] nextCloud SaaS Traffic'), ('OwnCloudDiskQuota', '[M] ownCloud SaaS Disk Quota'), ('OwncloudTraffic', '[M] ownCloud SaaS Traffic'), ('PhpListTraffic', '[M] phpList SaaS Traffic'), ('Apache2Controller', '[S] Apache 2'), ('BSCWController', '[S] BSCW SaaS'), ('Bind9MasterDomainController', '[S] Bind9 master domain'), ('Bind9SlaveDomainController', '[S] Bind9 slave domain'), ('DokuWikiMuController', '[S] DokuWiki multisite'), ('DrupalMuController', '[S] Drupal multisite'), ('GitLabSaaSController', '[S] GitLab SaaS'), ('LetsEncryptController', "[S] Let's encrypt!"), ('LxcController', '[S] LxcController'), ('AutoresponseController', '[S] Mail autoresponse'), ('MailScannerSpamRuleController', '[S] MailScanner ruleset'), ('MailmanController', '[S] Mailman'), ('MailmanVirtualDomainController', '[S] Mailman virtdomain-only'), ('MoodleController', '[S] Moodle'), ('MoodleWWWRootController', '[S] Moodle WWWRoot (required)'), ('MoodleMuController', '[S] Moodle multisite'), ('MySQLController', '[S] MySQL database'), ('MySQLUserController', '[S] MySQL user'), ('PHPController', '[S] PHP FPM/FCGID'), ('PangeaProxmoxOVZ', '[S] PangeaProxmoxOVZ'), ('PostfixAddressController', '[S] Postfix address'), ('PostfixAddressVirtualDomainController', '[S] Postfix address virtdomain-only'), ('PostfixRecipientAccessController', '[S] Postfix recipient access'), ('ProxmoxOVZ', '[S] ProxmoxOVZ'), ('uWSGIPythonController', '[S] Python uWSGI'), ('RoundcubeIdentityController', '[S] Roundcube Identity Controller'), ('StaticController', '[S] Static'), ('SymbolicLinkController', '[S] Symbolic link webapp'), ('SyncBind9MasterDomainController', '[S] Sync Bind9 master domain'), ('SyncBind9SlaveDomainController', '[S] Sync Bind9 slave domain'), ('UNIXUserMaildirController', '[S] UNIX maildir user'), ('UNIXUserController', '[S] UNIX user'), ('WebalizerAppController', '[S] Webalizer App'), ('WebalizerController', '[S] Webalizer Content'), ('WordPressForceSSLController', '[S] WordPress Force SSL'), ('WordPressURLController', '[S] WordPress URL'), ('WordPressController', '[S] Wordpress'), ('WordpressMuController', '[S] Wordpress multisite'), ('NextCloudController', '[S] nextCloud SaaS'), ('OwnCloudController', '[S] ownCloud SaaS'), ('PhpListSaaSController', '[S] phpList SaaS')], max_length=256, verbose_name='backend'), - ), - migrations.AlterField( - model_name='route', - name='backend', - field=models.CharField(choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('ApacheTrafficByName', '[M] ApacheTrafficByName'), ('DokuWikiMuTraffic', '[M] DokuWiki MU Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('ProxmoxOpenVZTraffic', '[M] ProxmoxOpenVZTraffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('WordpressMuTraffic', '[M] Wordpress MU Traffic'), ('NextCloudDiskQuota', '[M] nextCloud SaaS Disk Quota'), ('NextcloudTraffic', '[M] nextCloud SaaS Traffic'), ('OwnCloudDiskQuota', '[M] ownCloud SaaS Disk Quota'), ('OwncloudTraffic', '[M] ownCloud SaaS Traffic'), ('PhpListTraffic', '[M] phpList SaaS Traffic'), ('Apache2Controller', '[S] Apache 2'), ('BSCWController', '[S] BSCW SaaS'), ('Bind9MasterDomainController', '[S] Bind9 master domain'), ('Bind9SlaveDomainController', '[S] Bind9 slave domain'), ('DokuWikiMuController', '[S] DokuWiki multisite'), ('DrupalMuController', '[S] Drupal multisite'), ('GitLabSaaSController', '[S] GitLab SaaS'), ('LetsEncryptController', "[S] Let's encrypt!"), ('LxcController', '[S] LxcController'), ('AutoresponseController', '[S] Mail autoresponse'), ('MailmanController', '[S] Mailman'), ('MailmanVirtualDomainController', '[S] Mailman virtdomain-only'), ('MoodleController', '[S] Moodle'), ('MoodleWWWRootController', '[S] Moodle WWWRoot (required)'), ('MoodleMuController', '[S] Moodle multisite'), ('MySQLController', '[S] MySQL database'), ('MySQLUserController', '[S] MySQL user'), ('PHPController', '[S] PHP FPM/FCGID'), ('PostfixAddressController', '[S] Postfix address'), ('PostfixAddressVirtualDomainController', '[S] Postfix address virtdomain-only'), ('ProxmoxOVZ', '[S] ProxmoxOVZ'), ('uWSGIPythonController', '[S] Python uWSGI'), ('RoundcubeIdentityController', '[S] Roundcube Identity Controller'), ('StaticController', '[S] Static'), ('SymbolicLinkController', '[S] Symbolic link webapp'), ('UNIXUserMaildirController', '[S] UNIX maildir user'), ('UNIXUserController', '[S] UNIX user'), ('WebalizerAppController', '[S] Webalizer App'), ('WebalizerController', '[S] Webalizer Content'), ('WordPressForceSSLController', '[S] WordPress Force SSL'), ('WordPressURLController', '[S] WordPress URL'), ('WordPressController', '[S] Wordpress'), ('WordpressMuController', '[S] Wordpress multisite'), ('NextCloudController', '[S] nextCloud SaaS'), ('OwnCloudController', '[S] ownCloud SaaS'), ('PhpListSaaSController', '[S] phpList SaaS')], max_length=256, verbose_name='backend'), - ), - ] diff --git a/orchestra/contrib/orchestration/migrations/0002_auto_20150506_1420.py b/orchestra/contrib/orchestration/migrations/0002_auto_20150506_1420.py deleted file mode 100644 index bc029b7..0000000 --- a/orchestra/contrib/orchestration/migrations/0002_auto_20150506_1420.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('orchestration', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='route', - name='async', - field=models.BooleanField(help_text='Whether or not block the request/response cycle waitting this backend to finish its execution.', default=False), - ), - migrations.AlterField( - model_name='backendlog', - name='state', - field=models.CharField(verbose_name='state', choices=[('RECEIVED', 'RECEIVED'), ('TIMEOUT', 'TIMEOUT'), ('STARTED', 'STARTED'), ('SUCCESS', 'SUCCESS'), ('FAILURE', 'FAILURE'), ('ERROR', 'ERROR'), ('ABORTED', 'ABORTED'), ('REVOKED', 'REVOKED'), ('NOTHING', 'NOTHING')], default='RECEIVED', max_length=16), - ), - migrations.AlterField( - model_name='backendlog', - name='stderr', - field=models.TextField(verbose_name='stderr'), - ), - migrations.AlterField( - model_name='route', - name='backend', - field=models.CharField(choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('OpenVZTraffic', '[M] OpenVZTraffic'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('Apache2Controller', '[S] Apache 2'), ('BSCWController', '[S] BSCW SaaS'), ('Bind9MasterDomainController', '[S] Bind9 master domain'), ('Bind9SlaveDomainController', '[S] Bind9 slave domain'), ('DokuWikiMuController', '[S] DokuWiki multisite'), ('DovecotPostfixPasswdVirtualUserController', '[S] Dovecot-Postfix virtualuser'), ('DrupalMuController', '[S] Drupal multisite'), ('GitLabSaaSController', '[S] GitLab SaaS'), ('AutoresponseController', '[S] Mail autoresponse'), ('MailmanController', '[S] Mailman'), ('MailmanVirtualDomainController', '[S] Mailman virtdomain-only'), ('MySQLController', '[S] MySQL database'), ('MySQLUserController', '[S] MySQL user'), ('PHPController', '[S] PHP FPM/FCGID'), ('PostfixAddressController', '[S] Postfix address'), ('PostfixAddressVirtualDomainController', '[S] Postfix address virtdomain-only'), ('uWSGIPythonController', '[S] Python uWSGI'), ('StaticController', '[S] Static'), ('SymbolicLinkController', '[S] Symbolic link webapp'), ('SyncBind9MasterDomainController', '[S] Sync Bind9 master domain'), ('SyncBind9SlaveDomainController', '[S] Sync Bind9 slave domain'), ('UNIXUserMaildirController', '[S] UNIX maildir user'), ('UNIXUserController', '[S] UNIX user'), ('WebalizerAppController', '[S] Webalizer App'), ('WebalizerController', '[S] Webalizer Content'), ('WordPressController', '[S] Wordpress'), ('WordpressMuController', '[S] Wordpress multisite'), ('PhpListSaaSController', '[S] phpList SaaS')], verbose_name='backend', max_length=256), - ), - ] diff --git a/orchestra/contrib/orchestration/migrations/0003_auto_20150512_1512.py b/orchestra/contrib/orchestration/migrations/0003_auto_20150512_1512.py deleted file mode 100644 index 1db9913..0000000 --- a/orchestra/contrib/orchestration/migrations/0003_auto_20150512_1512.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('orchestration', '0002_auto_20150506_1420'), - ] - - operations = [ - migrations.AddField( - model_name='backendoperation', - name='instance_repr', - field=models.CharField(default='', max_length=256, verbose_name='instance representation'), - preserve_default=False, - ), - migrations.AlterField( - model_name='backendoperation', - name='object_id', - field=models.PositiveIntegerField(null=True), - ), - migrations.AlterField( - model_name='route', - name='async', - field=models.BooleanField(default=False, help_text='Whether or not block the request/response cycle waitting this backend to finish its execution. Usually you want slave servers to run asynchronously.'), - ), - ] diff --git a/orchestra/contrib/orchestration/migrations/0004_route_async_actions.py b/orchestra/contrib/orchestration/migrations/0004_route_async_actions.py deleted file mode 100644 index 25349b8..0000000 --- a/orchestra/contrib/orchestration/migrations/0004_route_async_actions.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import orchestra.models.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('orchestration', '0003_auto_20150512_1512'), - ] - - operations = [ - migrations.AddField( - model_name='route', - name='async_actions', - field=orchestra.models.fields.MultiSelectField(blank=True, max_length=256), - ), - ] diff --git a/orchestra/contrib/orchestration/migrations/0005_auto_20150709_1016.py b/orchestra/contrib/orchestration/migrations/0005_auto_20150709_1016.py deleted file mode 100644 index 6ac2af8..0000000 --- a/orchestra/contrib/orchestration/migrations/0005_auto_20150709_1016.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import orchestra.models.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('orchestration', '0004_route_async_actions'), - ] - - operations = [ - migrations.AlterField( - model_name='backendlog', - name='created_at', - field=models.DateTimeField(db_index=True, verbose_name='created', auto_now_add=True), - ), - migrations.AlterField( - model_name='route', - name='async_actions', - field=orchestra.models.fields.MultiSelectField(blank=True, help_text='Specify individual actions to be executed asynchronoulsy.', max_length=256), - ), - ] diff --git a/orchestra/contrib/orchestration/migrations/0006_auto_20160219_1110.py b/orchestra/contrib/orchestration/migrations/0006_auto_20160219_1110.py deleted file mode 100644 index 80b3790..0000000 --- a/orchestra/contrib/orchestration/migrations/0006_auto_20160219_1110.py +++ /dev/null @@ -1,35 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import orchestra.core.validators -import orchestra.models.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('orchestration', '0005_auto_20150709_1016'), - ] - - operations = [ - migrations.AlterField( - model_name='route', - name='backend', - field=models.CharField(choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('ApacheTrafficByName', '[M] ApacheTrafficByName'), ('DokuWikiMuTraffic', '[M] DokuWiki MU Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('OpenVZTraffic', '[M] OpenVZTraffic'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('WordpressMuTraffic', '[M] Wordpress MU Traffic'), ('OwnCloudDiskQuota', '[M] ownCloud SaaS Disk Quota'), ('OwncloudTraffic', '[M] ownCloud SaaS Traffic'), ('PhpListTraffic', '[M] phpList SaaS Traffic'), ('Apache2Controller', '[S] Apache 2'), ('BSCWController', '[S] BSCW SaaS'), ('Bind9MasterDomainController', '[S] Bind9 master domain'), ('Bind9SlaveDomainController', '[S] Bind9 slave domain'), ('DokuWikiMuController', '[S] DokuWiki multisite'), ('DrupalMuController', '[S] Drupal multisite'), ('GitLabSaaSController', '[S] GitLab SaaS'), ('AutoresponseController', '[S] Mail autoresponse'), ('MailScannerSpamRuleController', '[S] MailScanner ruleset'), ('MailmanController', '[S] Mailman'), ('MailmanVirtualDomainController', '[S] Mailman virtdomain-only'), ('MoodleController', '[S] Moodle'), ('MoodleWWWRootController', '[S] Moodle WWWRoot (required)'), ('MoodleMuController', '[S] Moodle multisite'), ('MySQLController', '[S] MySQL database'), ('MySQLUserController', '[S] MySQL user'), ('PHPController', '[S] PHP FPM/FCGID'), ('PangeaProxmoxOVZ', '[S] PangeaProxmoxOVZ'), ('PostfixAddressController', '[S] Postfix address'), ('PostfixAddressVirtualDomainController', '[S] Postfix address virtdomain-only'), ('PostfixRecipientAccessController', '[S] Postfix recipient access'), ('ProxmoxOVZ', '[S] ProxmoxOVZ'), ('uWSGIPythonController', '[S] Python uWSGI'), ('StaticController', '[S] Static'), ('SymbolicLinkController', '[S] Symbolic link webapp'), ('SyncBind9MasterDomainController', '[S] Sync Bind9 master domain'), ('SyncBind9SlaveDomainController', '[S] Sync Bind9 slave domain'), ('UNIXUserMaildirController', '[S] UNIX maildir user'), ('UNIXUserController', '[S] UNIX user'), ('WebalizerAppController', '[S] Webalizer App'), ('WebalizerController', '[S] Webalizer Content'), ('WordPressURLController', '[S] WordPress URL'), ('WordPressController', '[S] Wordpress'), ('WordpressMuController', '[S] Wordpress multisite'), ('OwnCloudController', '[S] ownCloud SaaS'), ('PhpListSaaSController', '[S] phpList SaaS')], max_length=256, verbose_name='backend'), - ), - migrations.AlterField( - model_name='server', - name='address', - field=orchestra.models.fields.NullableCharField(help_text='Optional IP address or domain name. If blank, name field will be used for address resolution.
If the IP address never changes you can set this field and save DNS requests.', verbose_name='address', validators=[orchestra.core.validators.OrValidator(orchestra.core.validators.validate_ip_address, orchestra.core.validators.validate_hostname)], blank=True, max_length=256, unique=True, null=True), - ), - migrations.AlterField( - model_name='server', - name='name', - field=models.CharField(help_text='Verbose name or hostname of this server.', max_length=256, verbose_name='name', unique=True), - ), - migrations.AlterIndexTogether( - name='backendoperation', - index_together=set([('content_type', 'object_id')]), - ), - ] diff --git a/orchestra/contrib/orchestration/migrations/0007_auto_20170528_2011.py b/orchestra/contrib/orchestration/migrations/0007_auto_20170528_2011.py deleted file mode 100644 index a38cdaa..0000000 --- a/orchestra/contrib/orchestration/migrations/0007_auto_20170528_2011.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:11 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('orchestration', '0006_auto_20160219_1110'), - ] - - operations = [ - migrations.AlterField( - model_name='route', - name='backend', - field=models.CharField(choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('ApacheTrafficByName', '[M] ApacheTrafficByName'), ('DokuWikiMuTraffic', '[M] DokuWiki MU Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('ProxmoxOpenVZTraffic', '[M] ProxmoxOpenVZTraffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('WordpressMuTraffic', '[M] Wordpress MU Traffic'), ('NextCloudDiskQuota', '[M] nextCloud SaaS Disk Quota'), ('NextcloudTraffic', '[M] nextCloud SaaS Traffic'), ('OwnCloudDiskQuota', '[M] ownCloud SaaS Disk Quota'), ('OwncloudTraffic', '[M] ownCloud SaaS Traffic'), ('PhpListTraffic', '[M] phpList SaaS Traffic'), ('Apache2Controller', '[S] Apache 2'), ('BSCWController', '[S] BSCW SaaS'), ('Bind9MasterDomainController', '[S] Bind9 master domain'), ('Bind9SlaveDomainController', '[S] Bind9 slave domain'), ('DokuWikiMuController', '[S] DokuWiki multisite'), ('DrupalMuController', '[S] Drupal multisite'), ('GitLabSaaSController', '[S] GitLab SaaS'), ('LetsEncryptController', "[S] Let's encrypt!"), ('LxcController', '[S] LxcController'), ('AutoresponseController', '[S] Mail autoresponse'), ('MailScannerSpamRuleController', '[S] MailScanner ruleset'), ('MailmanController', '[S] Mailman'), ('MailmanVirtualDomainController', '[S] Mailman virtdomain-only'), ('MoodleController', '[S] Moodle'), ('MoodleWWWRootController', '[S] Moodle WWWRoot (required)'), ('MoodleMuController', '[S] Moodle multisite'), ('MySQLController', '[S] MySQL database'), ('MySQLUserController', '[S] MySQL user'), ('PHPController', '[S] PHP FPM/FCGID'), ('PangeaProxmoxOVZ', '[S] PangeaProxmoxOVZ'), ('PostfixAddressController', '[S] Postfix address'), ('PostfixAddressVirtualDomainController', '[S] Postfix address virtdomain-only'), ('PostfixRecipientAccessController', '[S] Postfix recipient access'), ('ProxmoxOVZ', '[S] ProxmoxOVZ'), ('uWSGIPythonController', '[S] Python uWSGI'), ('StaticController', '[S] Static'), ('SymbolicLinkController', '[S] Symbolic link webapp'), ('SyncBind9MasterDomainController', '[S] Sync Bind9 master domain'), ('SyncBind9SlaveDomainController', '[S] Sync Bind9 slave domain'), ('UNIXUserMaildirController', '[S] UNIX maildir user'), ('UNIXUserController', '[S] UNIX user'), ('WebalizerAppController', '[S] Webalizer App'), ('WebalizerController', '[S] Webalizer Content'), ('WordPressForceSSLController', '[S] WordPress Force SSL'), ('WordPressURLController', '[S] WordPress URL'), ('WordPressController', '[S] Wordpress'), ('WordpressMuController', '[S] Wordpress multisite'), ('NextCloudController', '[S] nextCloud SaaS'), ('OwnCloudController', '[S] ownCloud SaaS'), ('PhpListSaaSController', '[S] phpList SaaS')], max_length=256, verbose_name='backend'), - ), - migrations.AlterField( - model_name='route', - name='host', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='routes', to='orchestration.Server', verbose_name='host'), - ), - ] diff --git a/orchestra/contrib/orchestration/migrations/0008_auto_20190805_1134.py b/orchestra/contrib/orchestration/migrations/0008_auto_20190805_1134.py deleted file mode 100644 index 1979ff1..0000000 --- a/orchestra/contrib/orchestration/migrations/0008_auto_20190805_1134.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2019-08-05 09:34 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('orchestration', '0007_auto_20170528_2011'), - ] - - operations = [ - migrations.AlterField( - model_name='route', - name='backend', - field=models.CharField(choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('ApacheTrafficByName', '[M] ApacheTrafficByName'), ('DokuWikiMuTraffic', '[M] DokuWiki MU Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('ProxmoxOpenVZTraffic', '[M] ProxmoxOpenVZTraffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('WordpressMuTraffic', '[M] Wordpress MU Traffic'), ('NextCloudDiskQuota', '[M] nextCloud SaaS Disk Quota'), ('NextcloudTraffic', '[M] nextCloud SaaS Traffic'), ('OwnCloudDiskQuota', '[M] ownCloud SaaS Disk Quota'), ('OwncloudTraffic', '[M] ownCloud SaaS Traffic'), ('PhpListTraffic', '[M] phpList SaaS Traffic'), ('Apache2Controller', '[S] Apache 2'), ('BSCWController', '[S] BSCW SaaS'), ('Bind9MasterDomainController', '[S] Bind9 master domain'), ('Bind9SlaveDomainController', '[S] Bind9 slave domain'), ('DokuWikiMuController', '[S] DokuWiki multisite'), ('DrupalMuController', '[S] Drupal multisite'), ('GitLabSaaSController', '[S] GitLab SaaS'), ('LetsEncryptController', "[S] Let's encrypt!"), ('LxcController', '[S] LxcController'), ('AutoresponseController', '[S] Mail autoresponse'), ('MailScannerSpamRuleController', '[S] MailScanner ruleset'), ('MailmanController', '[S] Mailman'), ('MailmanVirtualDomainController', '[S] Mailman virtdomain-only'), ('MoodleController', '[S] Moodle'), ('MoodleWWWRootController', '[S] Moodle WWWRoot (required)'), ('MoodleMuController', '[S] Moodle multisite'), ('MySQLController', '[S] MySQL database'), ('MySQLUserController', '[S] MySQL user'), ('PHPController', '[S] PHP FPM/FCGID'), ('PangeaProxmoxOVZ', '[S] PangeaProxmoxOVZ'), ('PostfixAddressController', '[S] Postfix address'), ('PostfixAddressVirtualDomainController', '[S] Postfix address virtdomain-only'), ('PostfixRecipientAccessController', '[S] Postfix recipient access'), ('ProxmoxOVZ', '[S] ProxmoxOVZ'), ('uWSGIPythonController', '[S] Python uWSGI'), ('RoundcubeIdentityController', '[S] Roundcube Identity Controller'), ('StaticController', '[S] Static'), ('SymbolicLinkController', '[S] Symbolic link webapp'), ('SyncBind9MasterDomainController', '[S] Sync Bind9 master domain'), ('SyncBind9SlaveDomainController', '[S] Sync Bind9 slave domain'), ('UNIXUserMaildirController', '[S] UNIX maildir user'), ('UNIXUserController', '[S] UNIX user'), ('WebalizerAppController', '[S] Webalizer App'), ('WebalizerController', '[S] Webalizer Content'), ('WordPressForceSSLController', '[S] WordPress Force SSL'), ('WordPressURLController', '[S] WordPress URL'), ('WordPressController', '[S] Wordpress'), ('WordpressMuController', '[S] Wordpress multisite'), ('NextCloudController', '[S] nextCloud SaaS'), ('OwnCloudController', '[S] ownCloud SaaS'), ('PhpListSaaSController', '[S] phpList SaaS')], max_length=256, verbose_name='backend'), - ), - ] diff --git a/orchestra/contrib/orchestration/migrations/0009_rename_route_async_run_async.py b/orchestra/contrib/orchestration/migrations/0009_rename_route_async_run_async.py deleted file mode 100644 index f70deee..0000000 --- a/orchestra/contrib/orchestration/migrations/0009_rename_route_async_run_async.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-03-30 10:49 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('orchestration', '0008_auto_20190805_1134'), - ] - - operations = [ - migrations.RenameField( - model_name='route', - old_name='async', - new_name='run_async', - ), - migrations.AlterField( - model_name='route', - name='backend', - field=models.CharField(choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('ApacheTrafficByName', '[M] ApacheTrafficByName'), ('DokuWikiMuTraffic', '[M] DokuWiki MU Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('ProxmoxOpenVZTraffic', '[M] ProxmoxOpenVZTraffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('WordpressMuTraffic', '[M] Wordpress MU Traffic'), ('NextCloudDiskQuota', '[M] nextCloud SaaS Disk Quota'), ('NextcloudTraffic', '[M] nextCloud SaaS Traffic'), ('OwnCloudDiskQuota', '[M] ownCloud SaaS Disk Quota'), ('OwncloudTraffic', '[M] ownCloud SaaS Traffic'), ('PhpListTraffic', '[M] phpList SaaS Traffic'), ('Apache2Controller', '[S] Apache 2'), ('BSCWController', '[S] BSCW SaaS'), ('Bind9MasterDomainController', '[S] Bind9 master domain'), ('Bind9SlaveDomainController', '[S] Bind9 slave domain'), ('DokuWikiMuController', '[S] DokuWiki multisite'), ('DrupalMuController', '[S] Drupal multisite'), ('GitLabSaaSController', '[S] GitLab SaaS'), ('LetsEncryptController', "[S] Let's encrypt!"), ('LxcController', '[S] LxcController'), ('AutoresponseController', '[S] Mail autoresponse'), ('MailmanController', '[S] Mailman'), ('MailmanVirtualDomainController', '[S] Mailman virtdomain-only'), ('MoodleController', '[S] Moodle'), ('MoodleWWWRootController', '[S] Moodle WWWRoot (required)'), ('MoodleMuController', '[S] Moodle multisite'), ('MySQLController', '[S] MySQL database'), ('MySQLUserController', '[S] MySQL user'), ('PHPController', '[S] PHP FPM/FCGID'), ('PostfixAddressController', '[S] Postfix address'), ('PostfixAddressVirtualDomainController', '[S] Postfix address virtdomain-only'), ('ProxmoxOVZ', '[S] ProxmoxOVZ'), ('uWSGIPythonController', '[S] Python uWSGI'), ('RoundcubeIdentityController', '[S] Roundcube Identity Controller'), ('StaticController', '[S] Static'), ('SymbolicLinkController', '[S] Symbolic link webapp'), ('UNIXUserMaildirController', '[S] UNIX maildir user'), ('UNIXUserController', '[S] UNIX user'), ('WebalizerAppController', '[S] Webalizer App'), ('WebalizerController', '[S] Webalizer Content'), ('WordPressForceSSLController', '[S] WordPress Force SSL'), ('WordPressURLController', '[S] WordPress URL'), ('WordPressController', '[S] Wordpress'), ('WordpressMuController', '[S] Wordpress multisite'), ('NextCloudController', '[S] nextCloud SaaS'), ('OwnCloudController', '[S] ownCloud SaaS'), ('PhpListSaaSController', '[S] phpList SaaS')], max_length=256, verbose_name='backend'), - ), - ] diff --git a/orchestra/contrib/orchestration/migrations/__init__.py b/orchestra/contrib/orchestration/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/orchestration/models.py b/orchestra/contrib/orchestration/models.py index 14e8db2..4f8606d 100644 --- a/orchestra/contrib/orchestration/models.py +++ b/orchestra/contrib/orchestration/models.py @@ -5,10 +5,10 @@ from django.contrib.contenttypes.fields import GenericForeignKey from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ValidationError from django.db import models -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.utils.functional import cached_property from django.utils.module_loading import autodiscover_modules -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.core.validators import validate_ip_address, validate_hostname, OrValidator from orchestra.models.fields import NullableCharField, MultiSelectField @@ -128,7 +128,7 @@ class BackendOperationQuerySet(models.QuerySet): def create(self, **kwargs): instance = kwargs.get('instance') if instance and 'instance_repr' not in kwargs: - kwargs['instance_repr'] = force_text(instance)[:256] + kwargs['instance_repr'] = force_str(instance)[:256] return super(BackendOperationQuerySet, self).create(**kwargs) @@ -207,7 +207,7 @@ class Route(models.Model): run_async = models.BooleanField(default=False, help_text=_("Whether or not block the request/response cycle waitting this backend to " "finish its execution. Usually you want slave servers to run asynchronously.")) - async_actions = MultiSelectField(max_length=256, blank=True, + async_actions = MultiSelectField(max_length=256, blank=True, choices=[], help_text=_("Specify individual actions to be executed asynchronoulsy.")) # method = models.CharField(_("method"), max_lenght=32, choices=method_choices, # default=MethodBackend.get_default()) diff --git a/orchestra/contrib/orchestration/settings.py b/orchestra/contrib/orchestration/settings.py index d74c531..fee41c4 100644 --- a/orchestra/contrib/orchestration/settings.py +++ b/orchestra/contrib/orchestration/settings.py @@ -1,6 +1,6 @@ from os import path -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.settings import Setting diff --git a/orchestra/contrib/orchestration/signals.py b/orchestra/contrib/orchestration/signals.py index ab26858..a49f493 100644 --- a/orchestra/contrib/orchestration/signals.py +++ b/orchestra/contrib/orchestration/signals.py @@ -1,14 +1,14 @@ import django.dispatch +pre_action = django.dispatch.Signal() -pre_action = django.dispatch.Signal(providing_args=['backend', 'instance', 'action']) +post_action = django.dispatch.Signal() -post_action = django.dispatch.Signal(providing_args=['backend', 'instance', 'action']) +pre_prepare = django.dispatch.Signal() -pre_prepare = django.dispatch.Signal(providing_args=['backend']) +post_prepare = django.dispatch.Signal() -post_prepare = django.dispatch.Signal(providing_args=['backend']) +pre_commit = django.dispatch.Signal() -pre_commit = django.dispatch.Signal(providing_args=['backend']) +post_commit = django.dispatch.Signal() -post_commit = django.dispatch.Signal(providing_args=['backend']) diff --git a/orchestra/contrib/orders/actions.py b/orchestra/contrib/orders/actions.py index 5a91a3f..ba2244e 100644 --- a/orchestra/contrib/orders/actions.py +++ b/orchestra/contrib/orders/actions.py @@ -3,7 +3,7 @@ from django.urls import reverse from django.db import transaction from django.utils import timezone from django.utils.safestring import mark_safe -from django.utils.translation import ungettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext_lazy as _ from django.shortcuts import render from orchestra.admin.utils import change_url @@ -95,7 +95,7 @@ class BillSelectedOrders(object): url = reverse('admin:bills_bill_changelist') ids = ','.join([str(b.id) for b in bills]) url += '?id__in=%s' % ids - msg = ungettext( + msg = ngettext( 'One bill has been created.', '{num} bills have been created.', num).format(url=url, num=num) @@ -126,7 +126,7 @@ def mark_as_ignored(modeladmin, request, queryset): order.mark_as_ignored() modeladmin.log_change(request, order, 'Marked as ignored') num = len(queryset) - msg = ungettext( + msg = ngettext( _("Selected order has been marked as ignored."), _("%i selected orders have been marked as ignored.") % num, num) @@ -140,7 +140,7 @@ def mark_as_not_ignored(modeladmin, request, queryset): order.mark_as_not_ignored() modeladmin.log_change(request, order, 'Marked as not ignored') num = len(queryset) - msg = ungettext( + msg = ngettext( _("Selected order has been marked as not ignored."), _("%i selected orders have been marked as not ignored.") % num, num) diff --git a/orchestra/contrib/orders/admin.py b/orchestra/contrib/orders/admin.py index 43838e4..3c3086b 100644 --- a/orchestra/contrib/orders/admin.py +++ b/orchestra/contrib/orders/admin.py @@ -6,7 +6,7 @@ from django.db.models import Prefetch from django.utils import timezone from django.utils.html import escape, format_html from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin import ExtendedModelAdmin from orchestra.admin.utils import admin_link, admin_date, change_url diff --git a/orchestra/contrib/orders/billing.py b/orchestra/contrib/orders/billing.py index 650f8df..a6daee3 100644 --- a/orchestra/contrib/orders/billing.py +++ b/orchestra/contrib/orders/billing.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.bills.models import Invoice, Fee, ProForma diff --git a/orchestra/contrib/orders/filters.py b/orchestra/contrib/orders/filters.py index c0a5433..4693529 100644 --- a/orchestra/contrib/orders/filters.py +++ b/orchestra/contrib/orders/filters.py @@ -4,8 +4,8 @@ from django.apps import apps from django.contrib.admin import SimpleListFilter from django.db.models import Q, Prefetch, F from django.utils import timezone -from django.utils.encoding import force_text -from django.utils.translation import ugettext_lazy as _ +from django.utils.encoding import force_str +from django.utils.translation import gettext_lazy as _ from . import settings from .models import MetricStorage @@ -118,7 +118,7 @@ class IgnoreOrderListFilter(SimpleListFilter): """ Enable default selection different than All """ for lookup, title in self.lookup_choices: title = title._proxy____args[0] - selected = self.value() == force_text(lookup) + selected = self.value() == force_str(lookup) if not selected and title == "Not ignored" and self.value() is None: selected = True # end of workaround diff --git a/orchestra/contrib/orders/forms.py b/orchestra/contrib/orders/forms.py index 2376e61..0dd9a0a 100644 --- a/orchestra/contrib/orders/forms.py +++ b/orchestra/contrib/orders/forms.py @@ -2,7 +2,7 @@ from django import forms from django.contrib.admin import widgets from django.utils import timezone from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin.forms import AdminFormMixin from orchestra.admin.utils import change_url diff --git a/orchestra/contrib/orders/migrations/0001_initial.py b/orchestra/contrib/orders/migrations/0001_initial.py deleted file mode 100644 index adc37bc..0000000 --- a/orchestra/contrib/orders/migrations/0001_initial.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.utils.timezone -import django.db.models.deletion -from django.conf import settings - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('services', '__first__'), - ('contenttypes', '0002_remove_content_type_name'), - ] - - operations = [ - migrations.CreateModel( - name='MetricStorage', - fields=[ - ('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)), - ('value', models.DecimalField(decimal_places=2, max_digits=16, verbose_name='value')), - ('created_on', models.DateField(auto_now_add=True, verbose_name='created')), - ('updated_on', models.DateTimeField(verbose_name='updated')), - ], - options={ - 'get_latest_by': 'id', - }, - ), - migrations.CreateModel( - name='Order', - fields=[ - ('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)), - ('object_id', models.PositiveIntegerField(null=True)), - ('registered_on', models.DateField(default=django.utils.timezone.now, verbose_name='registered')), - ('cancelled_on', models.DateField(blank=True, verbose_name='cancelled', null=True)), - ('billed_on', models.DateField(blank=True, verbose_name='billed', null=True)), - ('billed_until', models.DateField(blank=True, verbose_name='billed until', null=True)), - ('ignore', models.BooleanField(default=False, verbose_name='ignore')), - ('description', models.TextField(blank=True, verbose_name='description')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, verbose_name='account', related_name='orders', to=settings.AUTH_USER_MODEL)), - ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType')), - ('service', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, verbose_name='service', related_name='orders', to='services.Service')), - ], - options={ - 'get_latest_by': 'id', - }, - ), - migrations.AddField( - model_name='metricstorage', - name='order', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, verbose_name='order', related_name='metrics', to='orders.Order'), - ), - ] diff --git a/orchestra/contrib/orders/migrations/0001_squashed_0006_auto_20210422_1108.py b/orchestra/contrib/orders/migrations/0001_squashed_0006_auto_20210422_1108.py deleted file mode 100644 index b909126..0000000 --- a/orchestra/contrib/orders/migrations/0001_squashed_0006_auto_20210422_1108.py +++ /dev/null @@ -1,66 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:09 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import django.utils.timezone - - -class Migration(migrations.Migration): - - replaces = [('orders', '0001_initial'), ('orders', '0002_auto_20150709_1018'), ('orders', '0003_order_content_object_repr'), ('orders', '0004_auto_20150729_0945'), ('orders', '0005_auto_20160219_1107'), ('orders', '0006_auto_20210422_1108')] - - initial = True - - dependencies = [ - ('contenttypes', '0002_remove_content_type_name'), - ('services', '__first__'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='MetricStorage', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('value', models.DecimalField(decimal_places=2, max_digits=16, verbose_name='value')), - ('created_on', models.DateField(auto_now_add=True, verbose_name='created')), - ('updated_on', models.DateTimeField(verbose_name='updated')), - ], - options={ - 'get_latest_by': 'id', - }, - ), - migrations.CreateModel( - name='Order', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('object_id', models.PositiveIntegerField(null=True)), - ('registered_on', models.DateField(db_index=True, default=django.utils.timezone.now, verbose_name='registered')), - ('cancelled_on', models.DateField(blank=True, null=True, verbose_name='cancelled')), - ('billed_on', models.DateField(blank=True, null=True, verbose_name='billed')), - ('billed_until', models.DateField(blank=True, null=True, verbose_name='billed until')), - ('ignore', models.BooleanField(default=False, verbose_name='ignore')), - ('description', models.TextField(blank=True, verbose_name='description')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='orders', to=settings.AUTH_USER_MODEL, verbose_name='account')), - ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType')), - ('service', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='orders', to='services.Service', verbose_name='service')), - ('content_object_repr', models.CharField(editable=False, help_text='Used for searches.', max_length=256, verbose_name='content object representation')), - ('billed_metric', models.DecimalField(blank=True, decimal_places=2, max_digits=16, null=True, verbose_name='billed metric')), - ], - options={ - 'get_latest_by': 'id', - }, - ), - migrations.AddField( - model_name='metricstorage', - name='order', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='metrics', to='orders.Order', verbose_name='order'), - ), - migrations.AlterIndexTogether( - name='order', - index_together=set([('content_type', 'object_id')]), - ), - ] diff --git a/orchestra/contrib/orders/migrations/0002_auto_20150709_1018.py b/orchestra/contrib/orders/migrations/0002_auto_20150709_1018.py deleted file mode 100644 index acbe510..0000000 --- a/orchestra/contrib/orders/migrations/0002_auto_20150709_1018.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.utils.timezone - - -class Migration(migrations.Migration): - - dependencies = [ - ('orders', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='order', - name='registered_on', - field=models.DateField(db_index=True, default=django.utils.timezone.now, verbose_name='registered'), - ), - ] diff --git a/orchestra/contrib/orders/migrations/0003_order_content_object_repr.py b/orchestra/contrib/orders/migrations/0003_order_content_object_repr.py deleted file mode 100644 index a5368eb..0000000 --- a/orchestra/contrib/orders/migrations/0003_order_content_object_repr.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('orders', '0002_auto_20150709_1018'), - ] - - operations = [ - migrations.AddField( - model_name='order', - name='content_object_repr', - field=models.CharField(editable=False, default='', verbose_name='content object repr', max_length=256), - preserve_default=False, - ), - ] diff --git a/orchestra/contrib/orders/migrations/0004_auto_20150729_0945.py b/orchestra/contrib/orders/migrations/0004_auto_20150729_0945.py deleted file mode 100644 index 3992a5f..0000000 --- a/orchestra/contrib/orders/migrations/0004_auto_20150729_0945.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('orders', '0003_order_content_object_repr'), - ] - - operations = [ - migrations.AddField( - model_name='order', - name='billed_metric', - field=models.DecimalField(verbose_name='billed metric', max_digits=16, decimal_places=2, null=True), - ), - migrations.AlterField( - model_name='order', - name='content_object_repr', - field=models.CharField(verbose_name='content object representation', max_length=256, editable=False), - ), - ] diff --git a/orchestra/contrib/orders/migrations/0005_auto_20160219_1107.py b/orchestra/contrib/orders/migrations/0005_auto_20160219_1107.py deleted file mode 100644 index da9de84..0000000 --- a/orchestra/contrib/orders/migrations/0005_auto_20160219_1107.py +++ /dev/null @@ -1,28 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('orders', '0004_auto_20150729_0945'), - ] - - operations = [ - migrations.AlterField( - model_name='order', - name='billed_metric', - field=models.DecimalField(decimal_places=2, null=True, verbose_name='billed metric', blank=True, max_digits=16), - ), - migrations.AlterField( - model_name='order', - name='content_object_repr', - field=models.CharField(max_length=256, verbose_name='content object representation', help_text='Used for searches.', editable=False), - ), - migrations.AlterIndexTogether( - name='order', - index_together=set([('content_type', 'object_id')]), - ), - ] diff --git a/orchestra/contrib/orders/migrations/__init__.py b/orchestra/contrib/orders/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/orders/models.py b/orchestra/contrib/orders/models.py index 69e5fa3..db6febc 100644 --- a/orchestra/contrib/orders/models.py +++ b/orchestra/contrib/orders/models.py @@ -9,7 +9,7 @@ from django.contrib.contenttypes.fields import GenericForeignKey from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ValidationError from django.utils import timezone -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.models import queryset from orchestra.utils.python import import_class diff --git a/orchestra/contrib/payments/actions.py b/orchestra/contrib/payments/actions.py index d2f5a43..ae53155 100644 --- a/orchestra/contrib/payments/actions.py +++ b/orchestra/contrib/payments/actions.py @@ -7,7 +7,7 @@ from django.db import transaction from django.shortcuts import render, redirect from django.utils.safestring import mark_safe from django.utils.text import capfirst -from django.utils.translation import ungettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext_lazy as _ from orchestra.admin.decorators import action_with_confirmation from orchestra.admin.utils import change_url @@ -38,11 +38,11 @@ def process_transactions(modeladmin, request, queryset): opts = modeladmin.model._meta num = len(queryset) context = { - 'title': ungettext( + 'title': ngettext( _("One selected transaction has been processed."), _("%s Selected transactions have been processed.") % num, num), - 'content_message': ungettext( + 'content_message': ngettext( _("The following transaction process has been generated, " "you may want to save it on your computer now."), _("The following %s transaction processes have been generated, " @@ -63,7 +63,7 @@ def mark_as_executed(modeladmin, request, queryset): transaction.mark_as_executed() modeladmin.log_change(request, transaction, _("Executed")) num = len(queryset) - msg = ungettext( + msg = ngettext( _("One selected transaction has been marked as executed."), _("%s selected transactions have been marked as executed.") % num, num) @@ -79,7 +79,7 @@ def mark_as_secured(modeladmin, request, queryset): transaction.mark_as_secured() modeladmin.log_change(request, transaction, _("Secured")) num = len(queryset) - msg = ungettext( + msg = ngettext( _("One selected transaction has been marked as secured."), _("%s selected transactions have been marked as secured.") % num, num) @@ -95,7 +95,7 @@ def mark_as_rejected(modeladmin, request, queryset): transaction.mark_as_rejected() modeladmin.log_change(request, transaction, _("Rejected")) num = len(queryset) - msg = ungettext( + msg = ngettext( _("One selected transaction has been marked as rejected."), _("%s selected transactions have been marked as rejected.") % num, num) @@ -134,7 +134,7 @@ def mark_process_as_executed(modeladmin, request, queryset): process.mark_as_executed() modeladmin.log_change(request, process, _("Executed")) num = len(queryset) - msg = ungettext( + msg = ngettext( _("One selected process has been marked as executed."), _("%s selected processes have been marked as executed.") % num, num) @@ -150,7 +150,7 @@ def abort(modeladmin, request, queryset): process.abort() modeladmin.log_change(request, process, _("Aborted")) num = len(queryset) - msg = ungettext( + msg = ngettext( _("One selected process has been aborted."), _("%s selected processes have been aborted.") % num, num) @@ -166,7 +166,7 @@ def commit(modeladmin, request, queryset): transaction.mark_as_rejected() modeladmin.log_change(request, transaction, _("Rejected")) num = len(queryset) - msg = ungettext( + msg = ngettext( _("One selected transaction has been marked as rejected."), _("%s selected transactions have been marked as rejected.") % num, num) diff --git a/orchestra/contrib/payments/admin.py b/orchestra/contrib/payments/admin.py index 016543a..e134c2e 100644 --- a/orchestra/contrib/payments/admin.py +++ b/orchestra/contrib/payments/admin.py @@ -3,7 +3,7 @@ from django.urls import reverse from django.http import HttpResponseRedirect from django.utils.html import format_html from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin import ChangeViewActionsMixin, ExtendedModelAdmin from orchestra.admin.utils import admin_colored, admin_link, admin_date diff --git a/orchestra/contrib/payments/helpers.py b/orchestra/contrib/payments/helpers.py index b6645d5..59163a0 100644 --- a/orchestra/contrib/payments/helpers.py +++ b/orchestra/contrib/payments/helpers.py @@ -1,5 +1,5 @@ from django.contrib import messages -from django.utils.translation import ungettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext_lazy as _ from .models import Transaction @@ -29,7 +29,7 @@ def post_delete_processes(modeladmin, request, related_transactions): transaction.save(update_fields=('state', 'modified_at')) num += 1 modeladmin.log_change(request, transaction, _("Unprocessed")) - messages.success(request, ungettext( + messages.success(request, ngettext( "One related transaction has been marked as waitting for processing", "%i related transactions have been marked as waitting for processing." % num, num diff --git a/orchestra/contrib/payments/methods/creditcard.py b/orchestra/contrib/payments/methods/creditcard.py index 942b6d3..14e5851 100644 --- a/orchestra/contrib/payments/methods/creditcard.py +++ b/orchestra/contrib/payments/methods/creditcard.py @@ -1,5 +1,5 @@ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from orchestra.plugins.forms import PluginDataForm diff --git a/orchestra/contrib/payments/methods/sepadirectdebit.py b/orchestra/contrib/payments/methods/sepadirectdebit.py index 78ddd8f..8ce1bf3 100644 --- a/orchestra/contrib/payments/methods/sepadirectdebit.py +++ b/orchestra/contrib/payments/methods/sepadirectdebit.py @@ -5,7 +5,7 @@ from io import StringIO from django import forms from django.utils import timezone -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django_iban.validators import IBANValidator, IBAN_COUNTRY_CODE_LENGTH from rest_framework import serializers diff --git a/orchestra/contrib/payments/migrations/0001_initial.py b/orchestra/contrib/payments/migrations/0001_initial.py deleted file mode 100644 index d63a798..0000000 --- a/orchestra/contrib/payments/migrations/0001_initial.py +++ /dev/null @@ -1,64 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -import django.db.models.deletion -from django.db import models, migrations -import jsonfield.fields -from django.conf import settings - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('bills', '0002_auto_20150429_1417'), - ] - - operations = [ - migrations.CreateModel( - name='PaymentSource', - fields=[ - ('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)), - ('method', models.CharField(choices=[('CreditCard', 'Credit card'), ('SEPADirectDebit', 'SEPA Direct Debit')], verbose_name='method', max_length=32)), - ('data', jsonfield.fields.JSONField(verbose_name='data', default={})), - ('is_active', models.BooleanField(verbose_name='active', default=True)), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, verbose_name='account', related_name='paymentsources', to=settings.AUTH_USER_MODEL)), - ], - ), - migrations.CreateModel( - name='Transaction', - fields=[ - ('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)), - ('state', models.CharField(choices=[('WAITTING_PROCESSING', 'Waitting processing'), ('WAITTING_EXECUTION', 'Waitting execution'), ('EXECUTED', 'Executed'), ('SECURED', 'Secured'), ('REJECTED', 'Rejected')], verbose_name='state', max_length=32, default='WAITTING_PROCESSING')), - ('amount', models.DecimalField(verbose_name='amount', decimal_places=2, max_digits=12)), - ('currency', models.CharField(max_length=10, default='Eur')), - ('created_at', models.DateTimeField(verbose_name='created', auto_now_add=True)), - ('modified_at', models.DateTimeField(verbose_name='modified', auto_now=True)), - ('bill', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, verbose_name='bill', related_name='transactions', to='bills.Bill')), - ], - ), - migrations.CreateModel( - name='TransactionProcess', - fields=[ - ('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)), - ('data', jsonfield.fields.JSONField(blank=True, verbose_name='data')), - ('file', models.FileField(blank=True, upload_to='', verbose_name='file')), - ('state', models.CharField(choices=[('CREATED', 'Created'), ('EXECUTED', 'Executed'), ('ABORTED', 'Aborted'), ('COMMITED', 'Commited')], verbose_name='state', max_length=16, default='CREATED')), - ('created_at', models.DateTimeField(verbose_name='created', auto_now_add=True)), - ('updated_at', models.DateTimeField(verbose_name='updated', auto_now=True)), - ], - options={ - 'verbose_name_plural': 'Transaction processes', - }, - ), - migrations.AddField( - model_name='transaction', - name='process', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, verbose_name='process', null=True, blank=True, related_name='transactions', to='payments.TransactionProcess'), - ), - migrations.AddField( - model_name='transaction', - name='source', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, verbose_name='source', null=True, blank=True, related_name='transactions', to='payments.PaymentSource'), - ), - ] diff --git a/orchestra/contrib/payments/migrations/0001_squashed_0004_auto_20210330_1049.py b/orchestra/contrib/payments/migrations/0001_squashed_0004_auto_20210330_1049.py deleted file mode 100644 index d4b1b8b..0000000 --- a/orchestra/contrib/payments/migrations/0001_squashed_0004_auto_20210330_1049.py +++ /dev/null @@ -1,70 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:27 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import jsonfield.fields -import orchestra.models.fields - - -class Migration(migrations.Migration): - - replaces = [('payments', '0001_initial'), ('payments', '0002_auto_20150709_1018'), ('payments', '0003_auto_20170528_2011'), ('payments', '0004_auto_20210330_1049')] - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('bills', '0002_auto_20150429_1417'), - ] - - operations = [ - migrations.CreateModel( - name='PaymentSource', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('method', models.CharField(choices=[('CreditCard', 'Credit card'), ('SEPADirectDebit', 'SEPA Direct Debit')], max_length=32, verbose_name='method')), - ('data', jsonfield.fields.JSONField(default={}, verbose_name='data')), - ('is_active', models.BooleanField(default=True, verbose_name='active')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='paymentsources', to=settings.AUTH_USER_MODEL, verbose_name='account')), - ], - ), - migrations.CreateModel( - name='Transaction', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('state', models.CharField(choices=[('WAITTING_PROCESSING', 'Waitting processing'), ('WAITTING_EXECUTION', 'Waitting execution'), ('EXECUTED', 'Executed'), ('SECURED', 'Secured'), ('REJECTED', 'Rejected')], default='WAITTING_PROCESSING', max_length=32, verbose_name='state')), - ('amount', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='amount')), - ('currency', models.CharField(default='Eur', max_length=10)), - ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created')), - ('modified_at', models.DateTimeField(auto_now=True, verbose_name='modified')), - ('bill', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='transactions', to='bills.Bill', verbose_name='bill')), - ], - ), - migrations.CreateModel( - name='TransactionProcess', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('data', jsonfield.fields.JSONField(blank=True, verbose_name='data')), - ('file', orchestra.models.fields.PrivateFileField(blank=True, upload_to='', verbose_name='file')), - ('state', models.CharField(choices=[('CREATED', 'Created'), ('EXECUTED', 'Executed'), ('ABORTED', 'Aborted'), ('COMMITED', 'Commited')], default='CREATED', max_length=16, verbose_name='state')), - ('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='created')), - ('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated')), - ], - options={ - 'verbose_name_plural': 'Transaction processes', - }, - ), - migrations.AddField( - model_name='transaction', - name='process', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='transactions', to='payments.TransactionProcess', verbose_name='process'), - ), - migrations.AddField( - model_name='transaction', - name='source', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='transactions', to='payments.PaymentSource', verbose_name='source'), - ), - ] diff --git a/orchestra/contrib/payments/migrations/0002_auto_20150709_1018.py b/orchestra/contrib/payments/migrations/0002_auto_20150709_1018.py deleted file mode 100644 index 2cf39a6..0000000 --- a/orchestra/contrib/payments/migrations/0002_auto_20150709_1018.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.db.models.deletion -import orchestra.models.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('payments', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='paymentsource', - name='method', - field=models.CharField(max_length=32, verbose_name='method', choices=[('SEPADirectDebit', 'SEPA Direct Debit')]), - ), - migrations.AlterField( - model_name='transaction', - name='process', - field=models.ForeignKey(verbose_name='process', on_delete=django.db.models.deletion.SET_NULL, blank=True, related_name='transactions', to='payments.TransactionProcess', null=True), - ), - migrations.AlterField( - model_name='transactionprocess', - name='created_at', - field=models.DateTimeField(db_index=True, verbose_name='created', auto_now_add=True), - ), - migrations.AlterField( - model_name='transactionprocess', - name='file', - field=orchestra.models.fields.PrivateFileField(blank=True, verbose_name='file', upload_to=''), - ), - ] diff --git a/orchestra/contrib/payments/migrations/0003_auto_20170528_2011.py b/orchestra/contrib/payments/migrations/0003_auto_20170528_2011.py deleted file mode 100644 index 40e8b07..0000000 --- a/orchestra/contrib/payments/migrations/0003_auto_20170528_2011.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:11 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('payments', '0002_auto_20150709_1018'), - ] - - operations = [ - migrations.AlterField( - model_name='transaction', - name='source', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='transactions', to='payments.PaymentSource', verbose_name='source'), - ), - ] diff --git a/orchestra/contrib/payments/migrations/0004_auto_20210330_1049.py b/orchestra/contrib/payments/migrations/0004_auto_20210330_1049.py deleted file mode 100644 index 8519ff3..0000000 --- a/orchestra/contrib/payments/migrations/0004_auto_20210330_1049.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-03-30 10:49 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('payments', '0003_auto_20170528_2011'), - ] - - operations = [ - migrations.AlterField( - model_name='paymentsource', - name='method', - field=models.CharField(choices=[('CreditCard', 'Credit card'), ('SEPADirectDebit', 'SEPA Direct Debit')], max_length=32, verbose_name='method'), - ), - ] diff --git a/orchestra/contrib/payments/migrations/__init__.py b/orchestra/contrib/payments/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/payments/models.py b/orchestra/contrib/payments/models.py index 4d7770c..9617ce4 100644 --- a/orchestra/contrib/payments/models.py +++ b/orchestra/contrib/payments/models.py @@ -1,7 +1,7 @@ from django.core.exceptions import ValidationError from django.db import models from django.utils.functional import cached_property -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from jsonfield import JSONField from orchestra.models.fields import PrivateFileField diff --git a/orchestra/contrib/payments/settings.py b/orchestra/contrib/payments/settings.py index 68d2751..65e5702 100644 --- a/orchestra/contrib/payments/settings.py +++ b/orchestra/contrib/payments/settings.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.settings import Setting diff --git a/orchestra/contrib/plans/admin.py b/orchestra/contrib/plans/admin.py index df75ca2..0a9ebac 100644 --- a/orchestra/contrib/plans/admin.py +++ b/orchestra/contrib/plans/admin.py @@ -2,7 +2,7 @@ from django.contrib import admin from django.urls import reverse from django.db import models from django.utils.html import format_html -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin import ExtendedModelAdmin from orchestra.admin.utils import insertattr, admin_link diff --git a/orchestra/contrib/plans/migrations/0001_initial.py b/orchestra/contrib/plans/migrations/0001_initial.py deleted file mode 100644 index b48f70b..0000000 --- a/orchestra/contrib/plans/migrations/0001_initial.py +++ /dev/null @@ -1,59 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.db.models.deletion -import orchestra.core.validators -from django.conf import settings - - -class Migration(migrations.Migration): - - dependencies = [ - ('services', '0001_initial'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='ContractedPlan', - fields=[ - ('id', models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name='ID')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, related_name='plans', verbose_name='account')), - ], - options={ - 'verbose_name_plural': 'plans', - }, - ), - migrations.CreateModel( - name='Plan', - fields=[ - ('id', models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(validators=[orchestra.core.validators.validate_name], verbose_name='name', unique=True, max_length=32)), - ('verbose_name', models.CharField(blank=True, verbose_name='verbose_name', max_length=128)), - ('is_active', models.BooleanField(help_text='Designates whether this account should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active', default=True)), - ('is_default', models.BooleanField(help_text='Designates whether this plan is used by default or not.', verbose_name='default', default=False)), - ('is_combinable', models.BooleanField(help_text='Designates whether this plan can be combined with other plans or not.', verbose_name='combinable', default=True)), - ('allow_multiple', models.BooleanField(help_text='Designates whether this plan allow for multiple contractions.', verbose_name='allow multiple', default=False)), - ], - ), - migrations.CreateModel( - name='Rate', - fields=[ - ('id', models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name='ID')), - ('quantity', models.PositiveIntegerField(help_text='See rate algorihm help text.', blank=True, verbose_name='quantity', null=True)), - ('price', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='price')), - ('plan', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='plans.Plan', related_name='rates', verbose_name='plan')), - ('service', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='services.Service', related_name='rates', verbose_name='service')), - ], - ), - migrations.AddField( - model_name='contractedplan', - name='plan', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='plans.Plan', related_name='contracts', verbose_name='plan'), - ), - migrations.AlterUniqueTogether( - name='rate', - unique_together=set([('service', 'plan', 'quantity')]), - ), - ] diff --git a/orchestra/contrib/plans/migrations/0001_squashed_0003_auto_20210422_1108.py b/orchestra/contrib/plans/migrations/0001_squashed_0003_auto_20210422_1108.py deleted file mode 100644 index 292fc0c..0000000 --- a/orchestra/contrib/plans/migrations/0001_squashed_0003_auto_20210422_1108.py +++ /dev/null @@ -1,74 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:09 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import orchestra.core.validators - - -class Migration(migrations.Migration): - - replaces = [('plans', '0001_initial'), ('plans', '0002_auto_20160114_1713'), ('plans', '0003_auto_20210422_1108')] - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('services', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='ContractedPlan', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='plans', to=settings.AUTH_USER_MODEL, verbose_name='account')), - ], - options={ - 'verbose_name_plural': 'plans', - }, - ), - migrations.CreateModel( - name='Plan', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=32, unique=True, validators=[orchestra.core.validators.validate_name], verbose_name='name')), - ('verbose_name', models.CharField(blank=True, max_length=128, verbose_name='verbose_name')), - ('is_active', models.BooleanField(default=True, help_text='Designates whether this account should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), - ('is_default', models.BooleanField(default=False, help_text='Designates whether this plan is used by default or not.', verbose_name='default')), - ('is_combinable', models.BooleanField(default=True, help_text='Designates whether this plan can be combined with other plans or not.', verbose_name='combinable')), - ('allow_multiple', models.BooleanField(default=False, help_text='Designates whether this plan allow for multiple contractions.', verbose_name='allow multiple')), - ], - ), - migrations.CreateModel( - name='Rate', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('quantity', models.PositiveIntegerField(blank=True, help_text='See rate algorihm help text.', null=True, verbose_name='quantity')), - ('price', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='price')), - ('plan', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rates', to='plans.Plan', verbose_name='plan')), - ('service', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rates', to='services.Service', verbose_name='service')), - ], - ), - migrations.AddField( - model_name='contractedplan', - name='plan', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='contracts', to='plans.Plan', verbose_name='plan'), - ), - migrations.AlterUniqueTogether( - name='rate', - unique_together=set([('service', 'plan', 'quantity')]), - ), - migrations.AlterField( - model_name='rate', - name='plan', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='rates', to='plans.Plan', verbose_name='plan'), - ), - migrations.AlterField( - model_name='rate', - name='plan', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rates', to='plans.Plan', verbose_name='plan'), - ), - ] diff --git a/orchestra/contrib/plans/migrations/0002_auto_20160114_1713.py b/orchestra/contrib/plans/migrations/0002_auto_20160114_1713.py deleted file mode 100644 index 58e2ea1..0000000 --- a/orchestra/contrib/plans/migrations/0002_auto_20160114_1713.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('plans', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='rate', - name='plan', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rates', to='plans.Plan', blank=True, null=True, verbose_name='plan'), - ), - ] diff --git a/orchestra/contrib/plans/migrations/__init__.py b/orchestra/contrib/plans/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/plans/models.py b/orchestra/contrib/plans/models.py index 22b698f..429ecc3 100644 --- a/orchestra/contrib/plans/models.py +++ b/orchestra/contrib/plans/models.py @@ -4,7 +4,7 @@ from django.core.validators import ValidationError from django.db import models from django.db.models import Q from django.utils.functional import cached_property -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.core.validators import validate_name from orchestra.models import queryset diff --git a/orchestra/contrib/plans/ratings.py b/orchestra/contrib/plans/ratings.py index e55c7a2..1c1cd9e 100644 --- a/orchestra/contrib/plans/ratings.py +++ b/orchestra/contrib/plans/ratings.py @@ -1,6 +1,6 @@ import sys -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.utils.python import AttrDict diff --git a/orchestra/contrib/resources/actions.py b/orchestra/contrib/resources/actions.py index c355da2..3120213 100644 --- a/orchestra/contrib/resources/actions.py +++ b/orchestra/contrib/resources/actions.py @@ -1,7 +1,7 @@ from django.urls import reverse from django.shortcuts import redirect, render from django.utils.safestring import mark_safe -from django.utils.translation import ungettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext_lazy as _ def run_monitor(modeladmin, request, queryset): @@ -18,7 +18,7 @@ def run_monitor(modeladmin, request, queryset): num = len(queryset) # TODO listfilter by uuid: task.request.id + ?task_id__in=ids link = reverse('admin:djcelery_taskstate_changelist') - msg = ungettext( + msg = ngettext( _("One selected resource has been scheduled for monitoring.") % link, _("%s selected resource have been scheduled for monitoring.") % (num, link), num) diff --git a/orchestra/contrib/resources/admin.py b/orchestra/contrib/resources/admin.py index b965c4e..53f573e 100644 --- a/orchestra/contrib/resources/admin.py +++ b/orchestra/contrib/resources/admin.py @@ -1,7 +1,7 @@ from urllib.parse import parse_qs from django.apps import apps -from django.conf.urls import url +from django.urls import re_path as url from django.contrib import admin, messages from django.contrib.contenttypes.admin import GenericTabularInline from django.contrib.contenttypes.forms import BaseGenericInlineFormSet @@ -13,7 +13,7 @@ from django.templatetags.static import static from django.utils.functional import cached_property from django.utils.html import format_html from django.utils.safestring import mark_safe -from django.utils.translation import ungettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext_lazy as _ from orchestra.admin import ExtendedModelAdmin from orchestra.admin.utils import insertattr, get_modeladmin, admin_link, admin_date @@ -70,7 +70,7 @@ class ResourceAdmin(ExtendedModelAdmin): if monitor not in backends: not_routed.append(monitor) if not_routed: - messages.warning(request, ungettext( + messages.warning(request, ngettext( _("%(not_routed)s monitor doesn't have any configured route."), _("%(not_routed)s monitors don't have any configured route."), len(not_routed), diff --git a/orchestra/contrib/resources/aggregations.py b/orchestra/contrib/resources/aggregations.py index 13d966c..f43e7ff 100644 --- a/orchestra/contrib/resources/aggregations.py +++ b/orchestra/contrib/resources/aggregations.py @@ -3,7 +3,7 @@ import decimal import itertools from django.utils import timezone -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.utils.python import AttrDict diff --git a/orchestra/contrib/resources/backends.py b/orchestra/contrib/resources/backends.py index 2ca21c2..a997df5 100644 --- a/orchestra/contrib/resources/backends.py +++ b/orchestra/contrib/resources/backends.py @@ -2,7 +2,7 @@ import datetime from django.utils import timezone from django.utils.functional import cached_property -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceBackend diff --git a/orchestra/contrib/resources/filters.py b/orchestra/contrib/resources/filters.py index 91ea81a..fe8392c 100644 --- a/orchestra/contrib/resources/filters.py +++ b/orchestra/contrib/resources/filters.py @@ -1,5 +1,5 @@ from django.contrib.admin import SimpleListFilter -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class ResourceDataListFilter(SimpleListFilter): diff --git a/orchestra/contrib/resources/forms.py b/orchestra/contrib/resources/forms.py index 3099fc5..75d5b85 100644 --- a/orchestra/contrib/resources/forms.py +++ b/orchestra/contrib/resources/forms.py @@ -1,5 +1,5 @@ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.forms import ReadOnlyFormMixin from orchestra.forms.widgets import SpanWidget diff --git a/orchestra/contrib/resources/migrations/0001_initial.py b/orchestra/contrib/resources/migrations/0001_initial.py deleted file mode 100644 index ca71816..0000000 --- a/orchestra/contrib/resources/migrations/0001_initial.py +++ /dev/null @@ -1,76 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.db.models.deletion -import orchestra.contrib.resources.validators -import orchestra.models.fields -import django.utils.timezone -import orchestra.core.validators - - -class Migration(migrations.Migration): - - dependencies = [ - ('djcelery', '__first__'), - ('contenttypes', '0002_remove_content_type_name'), - ] - - operations = [ - migrations.CreateModel( - name='MonitorData', - fields=[ - ('id', models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name='ID')), - ('monitor', models.CharField(choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('OpenVZTraffic', '[M] OpenVZTraffic'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic')], max_length=256, verbose_name='monitor')), - ('object_id', models.PositiveIntegerField(verbose_name='object id')), - ('created_at', models.DateTimeField(default=django.utils.timezone.now, verbose_name='created')), - ('value', models.DecimalField(decimal_places=2, max_digits=16, verbose_name='value')), - ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, verbose_name='content type', to='contenttypes.ContentType')), - ], - options={ - 'get_latest_by': 'id', - 'verbose_name_plural': 'monitor data', - }, - ), - migrations.CreateModel( - name='Resource', - fields=[ - ('id', models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(validators=[orchestra.core.validators.validate_name], help_text='Required. 32 characters or fewer. Lowercase letters, digits and hyphen only.', max_length=32, verbose_name='name')), - ('verbose_name', models.CharField(max_length=256, verbose_name='verbose name')), - ('aggregation', models.CharField(choices=[('last-10-days-avg', 'Last 10 days AVG'), ('last', 'Last value'), ('monthly-avg', 'Monthly AVG'), ('monthly-sum', 'Monthly Sum')], help_text='Method used for aggregating this resource monitored data.', max_length=16, default='last-10-days-avg', verbose_name='aggregation')), - ('on_demand', models.BooleanField(help_text='If enabled the resource will not be pre-allocated, but allocated under the application demand', default=False, verbose_name='on demand')), - ('default_allocation', models.PositiveIntegerField(help_text='Default allocation value used when this is not an on demand resource', blank=True, null=True, verbose_name='default allocation')), - ('unit', models.CharField(help_text='The unit in which this resource is represented. For example GB, KB or subscribers', max_length=16, verbose_name='unit')), - ('scale', models.CharField(validators=[orchestra.contrib.resources.validators.validate_scale], help_text='Scale in which this resource monitoring resoults should be prorcessed to match with unit. e.g. 10**9', max_length=32, verbose_name='scale')), - ('disable_trigger', models.BooleanField(help_text='Disables monitors exeeded and recovery triggers', default=False, verbose_name='disable trigger')), - ('monitors', orchestra.models.fields.MultiSelectField(choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('OpenVZTraffic', '[M] OpenVZTraffic'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic')], blank=True, help_text='Monitor backends used for monitoring this resource.', max_length=256, verbose_name='monitors')), - ('is_active', models.BooleanField(default=True, verbose_name='active')), - ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, help_text='Model where this resource will be hooked.', to='contenttypes.ContentType')), - ('crontab', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, help_text='Crontab for periodic execution. Leave it empty to disable periodic monitoring', to='djcelery.CrontabSchedule', verbose_name='crontab', blank=True, null=True)), - ], - ), - migrations.CreateModel( - name='ResourceData', - fields=[ - ('id', models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name='ID')), - ('object_id', models.PositiveIntegerField(verbose_name='object id')), - ('used', models.DecimalField(decimal_places=3, editable=False, max_digits=16, null=True, verbose_name='used')), - ('updated_at', models.DateTimeField(editable=False, null=True, verbose_name='updated')), - ('allocated', models.DecimalField(decimal_places=2, max_digits=8, blank=True, null=True, verbose_name='allocated')), - ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, verbose_name='content type', to='contenttypes.ContentType')), - ('resource', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='dataset', to='resources.Resource', verbose_name='resource')), - ], - options={ - 'verbose_name_plural': 'resource data', - }, - ), - migrations.AlterUniqueTogether( - name='resourcedata', - unique_together=set([('resource', 'content_type', 'object_id')]), - ), - migrations.AlterUniqueTogether( - name='resource', - unique_together=set([('name', 'content_type'), ('verbose_name', 'content_type')]), - ), - ] diff --git a/orchestra/contrib/resources/migrations/0001_squashed_0011_auto_20170528_2005.py b/orchestra/contrib/resources/migrations/0001_squashed_0011_auto_20170528_2005.py deleted file mode 100644 index b0f8b8e..0000000 --- a/orchestra/contrib/resources/migrations/0001_squashed_0011_auto_20170528_2005.py +++ /dev/null @@ -1,127 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:26 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion -import django.utils.timezone -import orchestra.contrib.resources.validators -import orchestra.core.validators -import orchestra.models.fields - - -class Migration(migrations.Migration): - - replaces = [('resources', '0001_initial'), ('resources', '0002_auto_20150502_1429'), ('resources', '0003_auto_20150502_1433'), ('resources', '0004_auto_20150503_1559'), ('resources', '0005_auto_20150723_0940'), ('resources', '0006_auto_20150723_1249'), ('resources', '0007_auto_20150723_1251'), ('resources', '0008_monitordata_state'), ('resources', '0009_auto_20150804_1450'), ('resources', '0010_auto_20160219_1108'), ('resources', '0011_auto_20170528_2005')] - - initial = True - - dependencies = [ - ('djcelery', '__first__'), - ('contenttypes', '0002_remove_content_type_name'), - ] - - operations = [ - migrations.CreateModel( - name='MonitorData', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('monitor', models.CharField(choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('ApacheTrafficByName', '[M] ApacheTrafficByName'), ('DokuWikiMuTraffic', '[M] DokuWiki MU Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('ProxmoxOpenVZTraffic', '[M] ProxmoxOpenVZTraffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('WordpressMuTraffic', '[M] Wordpress MU Traffic'), ('NextCloudDiskQuota', '[M] nextCloud SaaS Disk Quota'), ('NextcloudTraffic', '[M] nextCloud SaaS Traffic'), ('OwnCloudDiskQuota', '[M] ownCloud SaaS Disk Quota'), ('OwncloudTraffic', '[M] ownCloud SaaS Traffic'), ('PhpListTraffic', '[M] phpList SaaS Traffic')], db_index=True, max_length=256, verbose_name='monitor')), - ('object_id', models.PositiveIntegerField(verbose_name='object id')), - ('created_at', models.DateTimeField(db_index=True, default=django.utils.timezone.now, verbose_name='created')), - ('value', models.DecimalField(decimal_places=2, max_digits=16, verbose_name='value')), - ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType', verbose_name='content type')), - ('content_object_repr', models.CharField(default='', editable=False, max_length=256, verbose_name='content object representation')), - ('state', models.DecimalField(decimal_places=2, help_text='Optional field used to store current state needed for diff-based monitoring.', max_digits=16, null=True, verbose_name='state')), - ], - options={ - 'get_latest_by': 'id', - 'verbose_name_plural': 'monitor data', - }, - ), - migrations.CreateModel( - name='Resource', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(help_text='Required. 32 characters or fewer. Lowercase letters, digits and hyphen only.', max_length=32, validators=[orchestra.core.validators.validate_name], verbose_name='name')), - ('verbose_name', models.CharField(max_length=256, verbose_name='verbose name')), - ('aggregation', models.CharField(choices=[('last-10-days-avg', 'Last 10 days AVG'), ('last', 'Last value'), ('monthly-avg', 'Monthly AVG'), ('monthly-sum', 'Monthly Sum')], default='last-10-days-avg', help_text='Method used for aggregating this resource monitored data.', max_length=16, verbose_name='aggregation')), - ('on_demand', models.BooleanField(default=False, help_text='If enabled the resource will not be pre-allocated, but allocated under the application demand', verbose_name='on demand')), - ('default_allocation', models.PositiveIntegerField(blank=True, help_text='Default allocation value used when this is not an on demand resource', null=True, verbose_name='default allocation')), - ('unit', models.CharField(help_text='The unit in which this resource is represented. For example GB, KB or subscribers', max_length=16, verbose_name='unit')), - ('scale', models.CharField(help_text='Scale in which this resource monitoring resoults should be prorcessed to match with unit. e.g. 10**9', max_length=32, validators=[orchestra.contrib.resources.validators.validate_scale], verbose_name='scale')), - ('disable_trigger', models.BooleanField(default=False, help_text='Disables monitors exeeded and recovery triggers', verbose_name='disable trigger')), - ('monitors', orchestra.models.fields.MultiSelectField(blank=True, choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('OpenVZTraffic', '[M] OpenVZTraffic'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic')], help_text='Monitor backends used for monitoring this resource.', max_length=256, verbose_name='monitors')), - ('is_active', models.BooleanField(default=True, verbose_name='active')), - ('content_type', models.ForeignKey(help_text='Model where this resource will be hooked.', on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType')), - ('crontab', models.ForeignKey(blank=True, help_text='Crontab for periodic execution. Leave it empty to disable periodic monitoring', null=True, on_delete=django.db.models.deletion.CASCADE, to='djcelery.CrontabSchedule', verbose_name='crontab')), - ], - ), - migrations.CreateModel( - name='ResourceData', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('object_id', models.PositiveIntegerField(verbose_name='object id')), - ('used', models.DecimalField(decimal_places=3, editable=False, max_digits=16, null=True, verbose_name='used')), - ('updated_at', models.DateTimeField(editable=False, null=True, verbose_name='updated')), - ('allocated', models.DecimalField(blank=True, decimal_places=2, max_digits=8, null=True, verbose_name='allocated')), - ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType', verbose_name='content type')), - ('resource', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='dataset', to='resources.Resource', verbose_name='resource')), - ('content_object_repr', models.CharField(default='', editable=False, max_length=256, verbose_name='content object representation')), - ], - options={ - 'verbose_name_plural': 'resource data', - }, - ), - migrations.AlterUniqueTogether( - name='resourcedata', - unique_together=set([('resource', 'content_type', 'object_id')]), - ), - migrations.AlterField( - model_name='resource', - name='disable_trigger', - field=models.BooleanField(default=True, help_text='Disables monitors exeeded and recovery triggers', verbose_name='disable trigger'), - ), - migrations.AlterField( - model_name='resource', - name='monitors', - field=orchestra.models.fields.MultiSelectField(blank=True, choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('ApacheTrafficByName', '[M] ApacheTrafficByName'), ('DokuWikiMuTraffic', '[M] DokuWiki MU Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('OpenVZTraffic', '[M] OpenVZTraffic'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('WordpressMuTraffic', '[M] Wordpress MU Traffic'), ('OwnCloudDiskQuota', '[M] ownCloud SaaS Disk Quota'), ('OwncloudTraffic', '[M] ownCloud SaaS Traffic'), ('PhpListTraffic', '[M] phpList SaaS Traffic')], help_text='Monitor backends used for monitoring this resource.', max_length=256, verbose_name='monitors'), - ), - migrations.AlterField( - model_name='resource', - name='crontab', - field=models.ForeignKey(blank=True, help_text='Crontab for periodic execution. Leave it empty to disable periodic monitoring', null=True, on_delete=django.db.models.deletion.SET_NULL, to='djcelery.CrontabSchedule', verbose_name='crontab'), - ), - migrations.AlterField( - model_name='resource', - name='monitors', - field=orchestra.models.fields.MultiSelectField(blank=True, choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('ApacheTrafficByName', '[M] ApacheTrafficByName'), ('DokuWikiMuTraffic', '[M] DokuWiki MU Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('ProxmoxOpenVZTraffic', '[M] ProxmoxOpenVZTraffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('WordpressMuTraffic', '[M] Wordpress MU Traffic'), ('NextCloudDiskQuota', '[M] nextCloud SaaS Disk Quota'), ('NextcloudTraffic', '[M] nextCloud SaaS Traffic'), ('OwnCloudDiskQuota', '[M] ownCloud SaaS Disk Quota'), ('OwncloudTraffic', '[M] ownCloud SaaS Traffic'), ('PhpListTraffic', '[M] phpList SaaS Traffic')], help_text='Monitor backends used for monitoring this resource.', max_length=256, verbose_name='monitors'), - ), - migrations.AlterUniqueTogether( - name='resource', - unique_together=set([('name', 'content_type'), ('verbose_name', 'content_type')]), - ), - migrations.AlterField( - model_name='resourcedata', - name='object_id', - field=models.PositiveIntegerField(db_index=True, verbose_name='object id'), - ), - migrations.AlterField( - model_name='resourcedata', - name='allocated', - field=models.PositiveIntegerField(blank=True, null=True, verbose_name='allocated'), - ), - migrations.AlterField( - model_name='resourcedata', - name='object_id', - field=models.PositiveIntegerField(verbose_name='object id'), - ), - migrations.AlterIndexTogether( - name='monitordata', - index_together=set([('content_type', 'object_id')]), - ), - migrations.AlterIndexTogether( - name='resourcedata', - index_together=set([('content_type', 'object_id')]), - ), - ] diff --git a/orchestra/contrib/resources/migrations/0002_auto_20150502_1429.py b/orchestra/contrib/resources/migrations/0002_auto_20150502_1429.py deleted file mode 100644 index 83c9b19..0000000 --- a/orchestra/contrib/resources/migrations/0002_auto_20150502_1429.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('resources', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='CrontabSchedule', - fields=[ - ('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')), - ('minute', models.CharField(max_length=64, verbose_name='minute', default='*')), - ('hour', models.CharField(max_length=64, verbose_name='hour', default='*')), - ('day_of_week', models.CharField(max_length=64, verbose_name='day of week', default='*')), - ('day_of_month', models.CharField(max_length=64, verbose_name='day of month', default='*')), - ('month_of_year', models.CharField(max_length=64, verbose_name='month of year', default='*')), - ], - options={ - 'verbose_name': 'crontab', - 'ordering': ('month_of_year', 'day_of_month', 'day_of_week', 'hour', 'minute'), - 'verbose_name_plural': 'crontabs', - }, - ), - ] diff --git a/orchestra/contrib/resources/migrations/0003_auto_20150502_1433.py b/orchestra/contrib/resources/migrations/0003_auto_20150502_1433.py deleted file mode 100644 index 7a3f347..0000000 --- a/orchestra/contrib/resources/migrations/0003_auto_20150502_1433.py +++ /dev/null @@ -1,14 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('resources', '0002_auto_20150502_1429'), - ] - - operations = [ - ] diff --git a/orchestra/contrib/resources/migrations/0004_auto_20150503_1559.py b/orchestra/contrib/resources/migrations/0004_auto_20150503_1559.py deleted file mode 100644 index 7b47a59..0000000 --- a/orchestra/contrib/resources/migrations/0004_auto_20150503_1559.py +++ /dev/null @@ -1,17 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('resources', '0003_auto_20150502_1433'), - ] - - operations = [ - migrations.DeleteModel( - name='CrontabSchedule', - ), - ] diff --git a/orchestra/contrib/resources/migrations/0005_auto_20150723_0940.py b/orchestra/contrib/resources/migrations/0005_auto_20150723_0940.py deleted file mode 100644 index da6f88c..0000000 --- a/orchestra/contrib/resources/migrations/0005_auto_20150723_0940.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('resources', '0004_auto_20150503_1559'), - ] - - operations = [ - migrations.AddField( - model_name='monitordata', - name='content_object_repr', - field=models.CharField(default='', editable=False, max_length=256, verbose_name='content object representation'), - preserve_default=False, - ), - migrations.AddField( - model_name='resourcedata', - name='content_object_repr', - field=models.CharField(default='', editable=False, max_length=256, verbose_name='content object representation'), - preserve_default=False, - ), - ] diff --git a/orchestra/contrib/resources/migrations/0006_auto_20150723_1249.py b/orchestra/contrib/resources/migrations/0006_auto_20150723_1249.py deleted file mode 100644 index ff1771f..0000000 --- a/orchestra/contrib/resources/migrations/0006_auto_20150723_1249.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.utils.timezone - - -class Migration(migrations.Migration): - - dependencies = [ - ('resources', '0005_auto_20150723_0940'), - ] - - operations = [ - migrations.AlterField( - model_name='monitordata', - name='created_at', - field=models.DateTimeField(default=django.utils.timezone.now, verbose_name='created', db_index=True), - ), - migrations.AlterField( - model_name='monitordata', - name='monitor', - field=models.CharField(max_length=256, choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('OpenVZTraffic', '[M] OpenVZTraffic'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic')], verbose_name='monitor', db_index=True), - ), - migrations.AlterField( - model_name='monitordata', - name='object_id', - field=models.PositiveIntegerField(verbose_name='object id', db_index=True), - ), - ] diff --git a/orchestra/contrib/resources/migrations/0007_auto_20150723_1251.py b/orchestra/contrib/resources/migrations/0007_auto_20150723_1251.py deleted file mode 100644 index 6b08211..0000000 --- a/orchestra/contrib/resources/migrations/0007_auto_20150723_1251.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('resources', '0006_auto_20150723_1249'), - ] - - operations = [ - migrations.AlterField( - model_name='resourcedata', - name='object_id', - field=models.PositiveIntegerField(verbose_name='object id', db_index=True), - ), - ] diff --git a/orchestra/contrib/resources/migrations/0008_monitordata_state.py b/orchestra/contrib/resources/migrations/0008_monitordata_state.py deleted file mode 100644 index 65475d4..0000000 --- a/orchestra/contrib/resources/migrations/0008_monitordata_state.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('resources', '0007_auto_20150723_1251'), - ] - - operations = [ - migrations.AddField( - model_name='monitordata', - name='state', - field=models.DecimalField(verbose_name='state', null=True, max_digits=16, help_text='Optional field used to store current state needed for diff-based monitoring.', decimal_places=2), - ), - ] diff --git a/orchestra/contrib/resources/migrations/0009_auto_20150804_1450.py b/orchestra/contrib/resources/migrations/0009_auto_20150804_1450.py deleted file mode 100644 index f93fb2c..0000000 --- a/orchestra/contrib/resources/migrations/0009_auto_20150804_1450.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('resources', '0008_monitordata_state'), - ] - - operations = [ - migrations.AlterField( - model_name='resourcedata', - name='allocated', - field=models.PositiveIntegerField(verbose_name='allocated', null=True, blank=True), - ), - ] diff --git a/orchestra/contrib/resources/migrations/0010_auto_20160219_1108.py b/orchestra/contrib/resources/migrations/0010_auto_20160219_1108.py deleted file mode 100644 index 9d709ea..0000000 --- a/orchestra/contrib/resources/migrations/0010_auto_20160219_1108.py +++ /dev/null @@ -1,48 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import orchestra.models.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('resources', '0009_auto_20150804_1450'), - ] - - operations = [ - migrations.AlterField( - model_name='monitordata', - name='monitor', - field=models.CharField(db_index=True, choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('ApacheTrafficByName', '[M] ApacheTrafficByName'), ('DokuWikiMuTraffic', '[M] DokuWiki MU Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('OpenVZTraffic', '[M] OpenVZTraffic'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('WordpressMuTraffic', '[M] Wordpress MU Traffic'), ('OwnCloudDiskQuota', '[M] ownCloud SaaS Disk Quota'), ('OwncloudTraffic', '[M] ownCloud SaaS Traffic'), ('PhpListTraffic', '[M] phpList SaaS Traffic')], verbose_name='monitor', max_length=256), - ), - migrations.AlterField( - model_name='monitordata', - name='object_id', - field=models.PositiveIntegerField(verbose_name='object id'), - ), - migrations.AlterField( - model_name='resource', - name='disable_trigger', - field=models.BooleanField(help_text='Disables monitors exeeded and recovery triggers', verbose_name='disable trigger', default=True), - ), - migrations.AlterField( - model_name='resource', - name='monitors', - field=orchestra.models.fields.MultiSelectField(help_text='Monitor backends used for monitoring this resource.', blank=True, verbose_name='monitors', max_length=256, choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('ApacheTrafficByName', '[M] ApacheTrafficByName'), ('DokuWikiMuTraffic', '[M] DokuWiki MU Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('OpenVZTraffic', '[M] OpenVZTraffic'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('WordpressMuTraffic', '[M] Wordpress MU Traffic'), ('OwnCloudDiskQuota', '[M] ownCloud SaaS Disk Quota'), ('OwncloudTraffic', '[M] ownCloud SaaS Traffic'), ('PhpListTraffic', '[M] phpList SaaS Traffic')]), - ), - migrations.AlterField( - model_name='resourcedata', - name='object_id', - field=models.PositiveIntegerField(verbose_name='object id'), - ), - migrations.AlterIndexTogether( - name='monitordata', - index_together=set([('content_type', 'object_id')]), - ), - migrations.AlterIndexTogether( - name='resourcedata', - index_together=set([('content_type', 'object_id')]), - ), - ] diff --git a/orchestra/contrib/resources/migrations/0011_auto_20170528_2005.py b/orchestra/contrib/resources/migrations/0011_auto_20170528_2005.py deleted file mode 100644 index b82b15a..0000000 --- a/orchestra/contrib/resources/migrations/0011_auto_20170528_2005.py +++ /dev/null @@ -1,32 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:05 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion -import orchestra.models.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('resources', '0010_auto_20160219_1108'), - ] - - operations = [ - migrations.AlterField( - model_name='monitordata', - name='monitor', - field=models.CharField(choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('ApacheTrafficByName', '[M] ApacheTrafficByName'), ('DokuWikiMuTraffic', '[M] DokuWiki MU Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('ProxmoxOpenVZTraffic', '[M] ProxmoxOpenVZTraffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('WordpressMuTraffic', '[M] Wordpress MU Traffic'), ('NextCloudDiskQuota', '[M] nextCloud SaaS Disk Quota'), ('NextcloudTraffic', '[M] nextCloud SaaS Traffic'), ('OwnCloudDiskQuota', '[M] ownCloud SaaS Disk Quota'), ('OwncloudTraffic', '[M] ownCloud SaaS Traffic'), ('PhpListTraffic', '[M] phpList SaaS Traffic')], db_index=True, max_length=256, verbose_name='monitor'), - ), - migrations.AlterField( - model_name='resource', - name='crontab', - field=models.ForeignKey(blank=True, help_text='Crontab for periodic execution. Leave it empty to disable periodic monitoring', null=True, on_delete=django.db.models.deletion.SET_NULL, to='djcelery.CrontabSchedule', verbose_name='crontab'), - ), - migrations.AlterField( - model_name='resource', - name='monitors', - field=orchestra.models.fields.MultiSelectField(blank=True, choices=[('Apache2Traffic', '[M] Apache 2 Traffic'), ('ApacheTrafficByName', '[M] ApacheTrafficByName'), ('DokuWikiMuTraffic', '[M] DokuWiki MU Traffic'), ('DovecotMaildirDisk', '[M] Dovecot Maildir size'), ('Exim4Traffic', '[M] Exim4 traffic'), ('MailmanSubscribers', '[M] Mailman subscribers'), ('MailmanTraffic', '[M] Mailman traffic'), ('MysqlDisk', '[M] MySQL disk'), ('PostfixMailscannerTraffic', '[M] Postfix-Mailscanner traffic'), ('ProxmoxOpenVZTraffic', '[M] ProxmoxOpenVZTraffic'), ('UNIXUserDisk', '[M] UNIX user disk'), ('VsFTPdTraffic', '[M] VsFTPd traffic'), ('WordpressMuTraffic', '[M] Wordpress MU Traffic'), ('NextCloudDiskQuota', '[M] nextCloud SaaS Disk Quota'), ('NextcloudTraffic', '[M] nextCloud SaaS Traffic'), ('OwnCloudDiskQuota', '[M] ownCloud SaaS Disk Quota'), ('OwncloudTraffic', '[M] ownCloud SaaS Traffic'), ('PhpListTraffic', '[M] phpList SaaS Traffic')], help_text='Monitor backends used for monitoring this resource.', max_length=256, verbose_name='monitors'), - ), - ] diff --git a/orchestra/contrib/resources/migrations/__init__.py b/orchestra/contrib/resources/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/resources/models.py b/orchestra/contrib/resources/models.py index 50c1b14..7b1e0ff 100644 --- a/orchestra/contrib/resources/models.py +++ b/orchestra/contrib/resources/models.py @@ -4,7 +4,7 @@ from django.apps import apps from django.db import models from django.utils import timezone from django.utils.functional import cached_property -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from djcelery.models import PeriodicTask from orchestra.core import validators diff --git a/orchestra/contrib/resources/validators.py b/orchestra/contrib/resources/validators.py index 606641c..710fb5f 100644 --- a/orchestra/contrib/resources/validators.py +++ b/orchestra/contrib/resources/validators.py @@ -1,5 +1,5 @@ from django.core.validators import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ def validate_scale(value): diff --git a/orchestra/contrib/saas/admin.py b/orchestra/contrib/saas/admin.py index cdf5088..90176d8 100644 --- a/orchestra/contrib/saas/admin.py +++ b/orchestra/contrib/saas/admin.py @@ -1,7 +1,7 @@ from django.contrib import admin from django.core.exceptions import ObjectDoesNotExist from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin import ExtendedModelAdmin, ChangePasswordAdminMixin from orchestra.admin.actions import disable, enable diff --git a/orchestra/contrib/saas/backends/bscw.py b/orchestra/contrib/saas/backends/bscw.py index a5fe95b..0d0a115 100644 --- a/orchestra/contrib/saas/backends/bscw.py +++ b/orchestra/contrib/saas/backends/bscw.py @@ -1,6 +1,6 @@ import textwrap -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController, replace diff --git a/orchestra/contrib/saas/backends/dokuwikimu.py b/orchestra/contrib/saas/backends/dokuwikimu.py index 411ca83..21a4d44 100644 --- a/orchestra/contrib/saas/backends/dokuwikimu.py +++ b/orchestra/contrib/saas/backends/dokuwikimu.py @@ -3,7 +3,7 @@ import os import textwrap from urllib.parse import urlparse -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController from orchestra.utils.python import random_ascii diff --git a/orchestra/contrib/saas/backends/drupalmu.py b/orchestra/contrib/saas/backends/drupalmu.py index bfa060c..944903c 100644 --- a/orchestra/contrib/saas/backends/drupalmu.py +++ b/orchestra/contrib/saas/backends/drupalmu.py @@ -1,7 +1,7 @@ import os import textwrap -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController, replace diff --git a/orchestra/contrib/saas/backends/gitlab.py b/orchestra/contrib/saas/backends/gitlab.py index e015624..042c82a 100644 --- a/orchestra/contrib/saas/backends/gitlab.py +++ b/orchestra/contrib/saas/backends/gitlab.py @@ -1,7 +1,7 @@ import json import requests -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController diff --git a/orchestra/contrib/saas/backends/moodle.py b/orchestra/contrib/saas/backends/moodle.py index 339462d..d942675 100644 --- a/orchestra/contrib/saas/backends/moodle.py +++ b/orchestra/contrib/saas/backends/moodle.py @@ -1,7 +1,7 @@ import textwrap from urllib.parse import urlparse -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController diff --git a/orchestra/contrib/saas/backends/nextcloud.py b/orchestra/contrib/saas/backends/nextcloud.py index 9b6443d..17df098 100644 --- a/orchestra/contrib/saas/backends/nextcloud.py +++ b/orchestra/contrib/saas/backends/nextcloud.py @@ -6,7 +6,7 @@ import xml.etree.ElementTree as ET from urllib.parse import urlparse import requests -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController from orchestra.contrib.resources import ServiceMonitor diff --git a/orchestra/contrib/saas/backends/owncloud.py b/orchestra/contrib/saas/backends/owncloud.py index b9544f6..a6496a4 100644 --- a/orchestra/contrib/saas/backends/owncloud.py +++ b/orchestra/contrib/saas/backends/owncloud.py @@ -6,7 +6,7 @@ import xml.etree.ElementTree as ET from urllib.parse import urlparse import requests -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController from orchestra.contrib.resources import ServiceMonitor diff --git a/orchestra/contrib/saas/backends/phplist.py b/orchestra/contrib/saas/backends/phplist.py index 43e7322..2b2992e 100644 --- a/orchestra/contrib/saas/backends/phplist.py +++ b/orchestra/contrib/saas/backends/phplist.py @@ -4,7 +4,7 @@ import sys import textwrap import requests -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController from orchestra.contrib.resources import ServiceMonitor diff --git a/orchestra/contrib/saas/backends/wordpressmu.py b/orchestra/contrib/saas/backends/wordpressmu.py index 6dcbf8a..7a8e75d 100644 --- a/orchestra/contrib/saas/backends/wordpressmu.py +++ b/orchestra/contrib/saas/backends/wordpressmu.py @@ -6,7 +6,7 @@ from functools import partial from urllib.parse import urlparse import requests -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController diff --git a/orchestra/contrib/saas/filters.py b/orchestra/contrib/saas/filters.py index 3bada2b..5171678 100644 --- a/orchestra/contrib/saas/filters.py +++ b/orchestra/contrib/saas/filters.py @@ -1,5 +1,5 @@ from django.contrib.admin import SimpleListFilter -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class CustomURLListFilter(SimpleListFilter): diff --git a/orchestra/contrib/saas/forms.py b/orchestra/contrib/saas/forms.py index d7292fd..a1d9970 100644 --- a/orchestra/contrib/saas/forms.py +++ b/orchestra/contrib/saas/forms.py @@ -1,7 +1,7 @@ from django import forms from django.core.exceptions import ObjectDoesNotExist from django.core.validators import RegexValidator -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin.utils import change_url from orchestra.core import validators diff --git a/orchestra/contrib/saas/migrations/0001_initial.py b/orchestra/contrib/saas/migrations/0001_initial.py deleted file mode 100644 index 94ff939..0000000 --- a/orchestra/contrib/saas/migrations/0001_initial.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.db.models.deletion -import jsonfield.fields -from django.conf import settings -import orchestra.core.validators - - -class Migration(migrations.Migration): - - dependencies = [ - ('databases', '0001_initial'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='SaaS', - fields=[ - ('id', models.AutoField(auto_created=True, verbose_name='ID', primary_key=True, serialize=False)), - ('service', models.CharField(max_length=32, verbose_name='service', choices=[('bscw', 'BSCW'), ('DokuWikiService', 'Dowkuwiki'), ('DrupalService', 'Drupal'), ('gitlab', 'GitLab'), ('MoodleService', 'Moodle'), ('seafile', 'SeaFile'), ('WordPressService', 'WordPress'), ('phplist', 'phpList')])), - ('name', models.CharField(max_length=64, validators=[orchestra.core.validators.validate_username], verbose_name='Name', help_text='Required. 64 characters or fewer. Letters, digits and ./-/_ only.')), - ('is_active', models.BooleanField(help_text='Designates whether this service should be treated as active. ', verbose_name='active', default=True)), - ('data', jsonfield.fields.JSONField(help_text='Extra information dependent of each service.', verbose_name='data', default={})), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, verbose_name='account', to=settings.AUTH_USER_MODEL, related_name='saas')), - ('database', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, null=True, blank=True, to='databases.Database')), - ], - options={ - 'verbose_name_plural': 'SaaS', - 'verbose_name': 'SaaS', - }, - ), - migrations.AlterUniqueTogether( - name='saas', - unique_together=set([('name', 'service')]), - ), - ] diff --git a/orchestra/contrib/saas/migrations/0001_squashed_0004_auto_20210422_1108.py b/orchestra/contrib/saas/migrations/0001_squashed_0004_auto_20210422_1108.py deleted file mode 100644 index 419dea2..0000000 --- a/orchestra/contrib/saas/migrations/0001_squashed_0004_auto_20210422_1108.py +++ /dev/null @@ -1,70 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:09 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import jsonfield.fields -import orchestra.core.validators - - -class Migration(migrations.Migration): - - replaces = [('saas', '0001_initial'), ('saas', '0002_auto_20151001_0923'), ('saas', '0003_auto_20170528_2011'), ('saas', '0004_auto_20210422_1108')] - - initial = True - - dependencies = [ - ('databases', '0001_initial'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='SaaS', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('service', models.CharField(choices=[('bscw', 'BSCW'), ('DokuWikiService', 'Dowkuwiki'), ('DrupalService', 'Drupal'), ('gitlab', 'GitLab'), ('MoodleService', 'Moodle'), ('seafile', 'SeaFile'), ('WordPressService', 'WordPress'), ('phplist', 'phpList')], max_length=32, verbose_name='service')), - ('name', models.CharField(help_text='Required. 64 characters or fewer. Letters, digits and ./-/_ only.', max_length=64, validators=[orchestra.core.validators.validate_username], verbose_name='Name')), - ('is_active', models.BooleanField(default=True, help_text='Designates whether this service should be treated as active. ', verbose_name='active')), - ('data', jsonfield.fields.JSONField(default={}, help_text='Extra information dependent of each service.', verbose_name='data')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='saas', to=settings.AUTH_USER_MODEL, verbose_name='account')), - ('database', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='databases.Database')), - ('custom_url', models.URLField(blank=True, help_text='Optional and alternative URL for accessing this service instance. A related website will be automatically configured if needed.', verbose_name='custom URL')), - ], - options={ - 'verbose_name_plural': 'SaaS', - 'verbose_name': 'SaaS', - }, - ), - migrations.AlterUniqueTogether( - name='saas', - unique_together=set([('name', 'service')]), - ), - migrations.AlterField( - model_name='saas', - name='service', - field=models.CharField(choices=[('bscw', 'BSCW'), ('dokuwiki', 'Dowkuwiki'), ('drupal', 'Drupal'), ('gitlab', 'GitLab'), ('moodle', 'Moodle'), ('seafile', 'SeaFile'), ('wordpress', 'WordPress'), ('phplist', 'phpList')], max_length=32, verbose_name='service'), - ), - migrations.AlterField( - model_name='saas', - name='custom_url', - field=models.URLField(blank=True, help_text='Optional and alternative URL for accessing this service instance. i.e. https://wiki.mydomain/doku/
A related website will be automatically configured if needed.', verbose_name='custom URL'), - ), - migrations.AlterField( - model_name='saas', - name='name', - field=models.CharField(help_text='Required. 64 characters or fewer. Letters, digits and ./- only.', max_length=64, validators=[orchestra.core.validators.validate_hostname], verbose_name='Name'), - ), - migrations.AlterField( - model_name='saas', - name='service', - field=models.CharField(choices=[('bscw', 'BSCW'), ('dokuwiki', 'Dowkuwiki'), ('drupal', 'Drupal'), ('gitlab', 'GitLab'), ('moodle', 'Moodle'), ('wordpress', 'WordPress'), ('nextcloud', 'nextCloud'), ('owncloud', 'ownCloud'), ('phplist', 'phpList')], max_length=32, verbose_name='service'), - ), - migrations.AlterField( - model_name='saas', - name='database', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='databases.Database'), - ), - ] diff --git a/orchestra/contrib/saas/migrations/0002_auto_20151001_0923.py b/orchestra/contrib/saas/migrations/0002_auto_20151001_0923.py deleted file mode 100644 index e0ec276..0000000 --- a/orchestra/contrib/saas/migrations/0002_auto_20151001_0923.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('saas', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='saas', - name='custom_url', - field=models.URLField(verbose_name='custom URL', blank=True, help_text='Optional and alternative URL for accessing this service instance. A related website will be automatically configured if needed.'), - ), - migrations.AlterField( - model_name='saas', - name='service', - field=models.CharField(choices=[('bscw', 'BSCW'), ('dokuwiki', 'Dowkuwiki'), ('drupal', 'Drupal'), ('gitlab', 'GitLab'), ('moodle', 'Moodle'), ('seafile', 'SeaFile'), ('wordpress', 'WordPress'), ('phplist', 'phpList')], verbose_name='service', max_length=32), - ), - ] diff --git a/orchestra/contrib/saas/migrations/0003_auto_20170528_2011.py b/orchestra/contrib/saas/migrations/0003_auto_20170528_2011.py deleted file mode 100644 index 7e69ec8..0000000 --- a/orchestra/contrib/saas/migrations/0003_auto_20170528_2011.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:11 -from __future__ import unicode_literals - -from django.db import migrations, models -import orchestra.core.validators - - -class Migration(migrations.Migration): - - dependencies = [ - ('saas', '0002_auto_20151001_0923'), - ] - - operations = [ - migrations.AlterField( - model_name='saas', - name='custom_url', - field=models.URLField(blank=True, help_text='Optional and alternative URL for accessing this service instance. i.e. https://wiki.mydomain/doku/
A related website will be automatically configured if needed.', verbose_name='custom URL'), - ), - migrations.AlterField( - model_name='saas', - name='name', - field=models.CharField(help_text='Required. 64 characters or fewer. Letters, digits and ./- only.', max_length=64, validators=[orchestra.core.validators.validate_hostname], verbose_name='Name'), - ), - migrations.AlterField( - model_name='saas', - name='service', - field=models.CharField(choices=[('bscw', 'BSCW'), ('dokuwiki', 'Dowkuwiki'), ('drupal', 'Drupal'), ('gitlab', 'GitLab'), ('moodle', 'Moodle'), ('wordpress', 'WordPress'), ('nextcloud', 'nextCloud'), ('owncloud', 'ownCloud'), ('phplist', 'phpList')], max_length=32, verbose_name='service'), - ), - ] diff --git a/orchestra/contrib/saas/migrations/__init__.py b/orchestra/contrib/saas/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/saas/models.py b/orchestra/contrib/saas/models.py index c8a31f6..967bf7b 100644 --- a/orchestra/contrib/saas/models.py +++ b/orchestra/contrib/saas/models.py @@ -1,6 +1,6 @@ from django.db import models from django.utils.functional import cached_property -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from jsonfield import JSONField from orchestra.core import validators diff --git a/orchestra/contrib/saas/serializers.py b/orchestra/contrib/saas/serializers.py index 6992e5f..a0da1a1 100644 --- a/orchestra/contrib/saas/serializers.py +++ b/orchestra/contrib/saas/serializers.py @@ -1,6 +1,6 @@ from django.forms import widgets from django.core.validators import RegexValidator -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from orchestra.api.serializers import SetPasswordHyperlinkedSerializer diff --git a/orchestra/contrib/saas/services/bscw.py b/orchestra/contrib/saas/services/bscw.py index 1afd119..7fef1cd 100644 --- a/orchestra/contrib/saas/services/bscw.py +++ b/orchestra/contrib/saas/services/bscw.py @@ -1,5 +1,5 @@ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from .. import settings diff --git a/orchestra/contrib/saas/services/dokuwiki.py b/orchestra/contrib/saas/services/dokuwiki.py index 1235de8..5195f84 100644 --- a/orchestra/contrib/saas/services/dokuwiki.py +++ b/orchestra/contrib/saas/services/dokuwiki.py @@ -1,7 +1,7 @@ from urllib.parse import urlparse from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from .options import SoftwareService from .. import settings diff --git a/orchestra/contrib/saas/services/gitlab.py b/orchestra/contrib/saas/services/gitlab.py index 1586a77..b8d62cf 100644 --- a/orchestra/contrib/saas/services/gitlab.py +++ b/orchestra/contrib/saas/services/gitlab.py @@ -1,5 +1,5 @@ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from orchestra.forms import widgets diff --git a/orchestra/contrib/saas/services/helpers.py b/orchestra/contrib/saas/services/helpers.py index a08855f..0deb36f 100644 --- a/orchestra/contrib/saas/services/helpers.py +++ b/orchestra/contrib/saas/services/helpers.py @@ -2,7 +2,7 @@ from collections import defaultdict from urllib.parse import urlparse from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.websites.models import Website, WebsiteDirective, Content from orchestra.contrib.websites.validators import validate_domain_protocol diff --git a/orchestra/contrib/saas/services/moodle.py b/orchestra/contrib/saas/services/moodle.py index a059550..2b6580e 100644 --- a/orchestra/contrib/saas/services/moodle.py +++ b/orchestra/contrib/saas/services/moodle.py @@ -1,5 +1,5 @@ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.forms.widgets import SpanWidget diff --git a/orchestra/contrib/saas/services/nextcloud.py b/orchestra/contrib/saas/services/nextcloud.py index 3398f0d..2027352 100644 --- a/orchestra/contrib/saas/services/nextcloud.py +++ b/orchestra/contrib/saas/services/nextcloud.py @@ -1,5 +1,5 @@ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from .. import settings diff --git a/orchestra/contrib/saas/services/options.py b/orchestra/contrib/saas/services/options.py index 168aecc..37413a8 100644 --- a/orchestra/contrib/saas/services/options.py +++ b/orchestra/contrib/saas/services/options.py @@ -4,7 +4,7 @@ from functools import lru_cache from urllib.parse import urlparse from django.core.exceptions import ValidationError, ObjectDoesNotExist -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra import plugins from orchestra.contrib.databases.models import Database, DatabaseUser diff --git a/orchestra/contrib/saas/services/owncloud.py b/orchestra/contrib/saas/services/owncloud.py index 2f850f0..2a6d121 100644 --- a/orchestra/contrib/saas/services/owncloud.py +++ b/orchestra/contrib/saas/services/owncloud.py @@ -1,5 +1,5 @@ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from .. import settings diff --git a/orchestra/contrib/saas/services/phplist.py b/orchestra/contrib/saas/services/phplist.py index 7b803f0..9b97fe7 100644 --- a/orchestra/contrib/saas/services/phplist.py +++ b/orchestra/contrib/saas/services/phplist.py @@ -4,7 +4,7 @@ from django.core.exceptions import ValidationError from django.urls import reverse from django.db.models import Q from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.mailboxes.models import Mailbox from orchestra.forms.widgets import SpanWidget diff --git a/orchestra/contrib/saas/services/seafile.py b/orchestra/contrib/saas/services/seafile.py index 3e7ea59..bc29a42 100644 --- a/orchestra/contrib/saas/services/seafile.py +++ b/orchestra/contrib/saas/services/seafile.py @@ -1,5 +1,5 @@ from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from .. import settings diff --git a/orchestra/contrib/saas/services/wordpress.py b/orchestra/contrib/saas/services/wordpress.py index 1e4d3f3..141bb48 100644 --- a/orchestra/contrib/saas/services/wordpress.py +++ b/orchestra/contrib/saas/services/wordpress.py @@ -1,6 +1,6 @@ from django import forms from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from orchestra.forms import widgets diff --git a/orchestra/contrib/saas/settings.py b/orchestra/contrib/saas/settings.py index af76886..837d1e1 100644 --- a/orchestra/contrib/saas/settings.py +++ b/orchestra/contrib/saas/settings.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.settings import Setting from orchestra.core.validators import validate_ip_address diff --git a/orchestra/contrib/saas/validators.py b/orchestra/contrib/saas/validators.py index ed9c728..ac21bb8 100644 --- a/orchestra/contrib/saas/validators.py +++ b/orchestra/contrib/saas/validators.py @@ -1,5 +1,5 @@ from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.utils.apps import isinstalled diff --git a/orchestra/contrib/services/actions.py b/orchestra/contrib/services/actions.py index 96d38e3..4e48b2d 100644 --- a/orchestra/contrib/services/actions.py +++ b/orchestra/contrib/services/actions.py @@ -4,7 +4,7 @@ from django.db import transaction from django.shortcuts import render, redirect from django.template.response import TemplateResponse from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin.utils import get_object_from_url diff --git a/orchestra/contrib/services/admin.py b/orchestra/contrib/services/admin.py index ecbe1e2..2f4b835 100644 --- a/orchestra/contrib/services/admin.py +++ b/orchestra/contrib/services/admin.py @@ -1,11 +1,11 @@ from django import forms -from django.conf.urls import url +from django.urls import re_path as url from django.contrib import admin from django.urls import reverse from django.template.response import TemplateResponse from django.utils import timezone from django.utils.html import format_html -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin import ChangeViewActionsMixin from orchestra.admin.actions import disable, enable diff --git a/orchestra/contrib/services/handlers.py b/orchestra/contrib/services/handlers.py index bb9d770..64ceaf8 100644 --- a/orchestra/contrib/services/handlers.py +++ b/orchestra/contrib/services/handlers.py @@ -8,7 +8,7 @@ from dateutil import relativedelta from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ValidationError from django.utils import timezone, translation -from django.utils.translation import ugettext, ugettext_lazy as _ +from django.utils.translation import gettext, gettext_lazy as _ from orchestra import plugins from orchestra.utils.humanize import text2int @@ -77,7 +77,7 @@ class ServiceHandler(plugins.Plugin, metaclass=plugins.PluginMount): return { 'instance': instance, 'obj': instance, - 'ugettext': ugettext, + 'gettext': gettext, 'handler': self, 'service': self.service, instance._meta.model_name: instance, @@ -136,7 +136,7 @@ class ServiceHandler(plugins.Plugin, metaclass=plugins.PluginMount): account = getattr(instance, 'account', instance) with translation.override(account.language): if not self.order_description: - return '%s: %s' % (ugettext(self.description), instance) + return '%s: %s' % (gettext(self.description), instance) return eval(self.order_description, safe_locals) def get_billing_point(self, order, bp=None, **options): diff --git a/orchestra/contrib/services/helpers.py b/orchestra/contrib/services/helpers.py index 2e359d2..6804659 100644 --- a/orchestra/contrib/services/helpers.py +++ b/orchestra/contrib/services/helpers.py @@ -1,5 +1,5 @@ from django.utils.text import format_lazy -from django.utils.translation import ugettext_lazy +from django.utils.translation import gettext_lazy def get_chunks(porders, ini, end, ix=0): @@ -141,7 +141,7 @@ def get_rate_methods_help_text(rate_class): format_lazy('{}' * 4, *['
  ', method.verbose_name, ': ', method.help_text]) for method in rate_class.get_methods().values() ] - prefix = ugettext_lazy("Algorithm used to interprete the rating table.") + prefix = gettext_lazy("Algorithm used to interprete the rating table.") help_text_items = [prefix] + method_help_texts return format_lazy( '{}' * len(help_text_items), diff --git a/orchestra/contrib/services/migrations/0001_initial.py b/orchestra/contrib/services/migrations/0001_initial.py deleted file mode 100644 index 50f9d1d..0000000 --- a/orchestra/contrib/services/migrations/0001_initial.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('contenttypes', '0002_remove_content_type_name'), - ] - - operations = [ - migrations.CreateModel( - name='Service', - fields=[ - ('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)), - ('description', models.CharField(verbose_name='description', max_length=256, unique=True)), - ('match', models.CharField(blank=True, help_text="Python expression that designates wheter a content_type object is related to this service or not, always evaluates True when left blank. Related instance can be instantiated with instance keyword or content_type.model_name.
 databaseuser.type == 'MYSQL'
 miscellaneous.active and str(miscellaneous.identifier).endswith(('.org', '.net', '.com'))
 contractedplan.plan.name == 'association_fee''
 instance.active", max_length=256, verbose_name='match')), - ('handler_type', models.CharField(blank=True, help_text='Handler used for processing this Service. A handler enables customized behaviour far beyond what options here allow to.', max_length=256, choices=[('', 'Default')], verbose_name='handler')), - ('is_active', models.BooleanField(default=True, verbose_name='active')), - ('ignore_superusers', models.BooleanField(default=True, help_text='Designates whether superuser, staff and friend orders are marked as ignored by default or not.', verbose_name='ignore superuser, staff and friend')), - ('billing_period', models.CharField(default='ANUAL', help_text='Renewal period for recurring invoicing.', max_length=16, choices=[('', 'One time service'), ('MONTHLY', 'Monthly billing'), ('ANUAL', 'Anual billing')], blank=True, verbose_name='billing period')), - ('billing_point', models.CharField(default='ON_FIXED_DATE', help_text='Reference point for calculating the renewal date on recurring invoices', max_length=16, choices=[('ON_REGISTER', 'Registration date'), ('ON_FIXED_DATE', 'Fixed billing date')], verbose_name='billing point')), - ('is_fee', models.BooleanField(default=False, help_text='Designates whether this service should be billed as membership fee or not', verbose_name='fee')), - ('order_description', models.CharField(blank=True, help_text="Python expression used for generating the description for the bill lines of this services.
Defaults to '%s: %s' % (ugettext(handler.description), instance)", max_length=128, verbose_name='Order description')), - ('ignore_period', models.CharField(default='TEN_DAYS', help_text='Period in which orders will be ignored if cancelled. Useful for designating trial periods', max_length=16, choices=[('', 'Never'), ('ONE_DAY', 'One day'), ('TWO_DAYS', 'Two days'), ('TEN_DAYS', 'Ten days'), ('ONE_MONTH', 'One month')], blank=True, verbose_name='ignore period')), - ('metric', models.CharField(blank=True, help_text="Python expression used for obtinging the metric value for the pricing rate computation. Number of orders is used when left blank. Related instance can be instantiated with instance keyword or content_type.model_name.
 max((mailbox.resources.disk.allocated or 0) -1, 0)
 miscellaneous.amount
 max((account.resources.traffic.used or 0) - getattr(account.miscellaneous.filter(is_active=True, service__name='traffic-prepay').last(), 'amount', 0), 0)", max_length=256, verbose_name='metric')), - ('nominal_price', models.DecimalField(verbose_name='nominal price', decimal_places=2, max_digits=12)), - ('tax', models.PositiveIntegerField(default=0, verbose_name='tax', choices=[(0, 'Duty free'), (21, '21%')])), - ('pricing_period', models.CharField(default='BILLING_PERIOD', help_text='Time period that is used for computing the rate metric.', max_length=16, choices=[('', 'Current value'), ('BILLING_PERIOD', 'Same as billing period'), ('MONTHLY', 'Monthly data'), ('ANUAL', 'Anual data')], blank=True, verbose_name='pricing period')), - ('rate_algorithm', models.CharField(default='MATCH_PRICE', help_text='Algorithm used to interprete the rating table.
  Match price: Only the rate with a) inmediate inferior metric and b) lower price is applied. Nominal price will be used when initial block is missing.
  Step price: All rates with a quantity lower than the metric are applied. Nominal price will be used when initial block is missing.', max_length=16, choices=[('MATCH_PRICE', 'Match price'), ('STEP_PRICE', 'Step price')], verbose_name='rate algorithm')), - ('on_cancel', models.CharField(default='DISCOUNT', help_text='Defines the cancellation behaviour of this service.', max_length=16, choices=[('NOTHING', 'Nothing'), ('DISCOUNT', 'Discount'), ('COMPENSATE', 'Compensat'), ('REFUND', 'Refund')], verbose_name='on cancel')), - ('payment_style', models.CharField(default='PREPAY', help_text='Designates whether this service should be paid after consumtion (postpay/on demand) or prepaid.', max_length=16, choices=[('PREPAY', 'Prepay'), ('POSTPAY', 'Postpay (on demand)')], verbose_name='payment style')), - ('content_type', models.ForeignKey(help_text='Content type of the related service objects.', on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType', verbose_name='content type')), - ], - ), - ] diff --git a/orchestra/contrib/services/migrations/0001_squashed_0015_auto_20210330_1049.py b/orchestra/contrib/services/migrations/0001_squashed_0015_auto_20210330_1049.py deleted file mode 100644 index a09be3d..0000000 --- a/orchestra/contrib/services/migrations/0001_squashed_0015_auto_20210330_1049.py +++ /dev/null @@ -1,45 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:26 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - replaces = [('services', '0001_initial'), ('services', '0002_auto_20150509_1501'), ('services', '0003_auto_20150917_0942'), ('services', '0004_auto_20160405_1133'), ('services', '0005_auto_20160427_1531'), ('services', '0006_auto_20170528_2005'), ('services', '0007_auto_20170528_2011'), ('services', '0008_auto_20170625_1813'), ('services', '0009_auto_20170625_1840'), ('services', '0010_auto_20170625_1840'), ('services', '0011_auto_20170625_1840'), ('services', '0012_auto_20170625_1841'), ('services', '0013_auto_20190805_1134'), ('services', '0014_auto_20200204_1218'), ('services', '0015_auto_20210330_1049')] - - initial = True - - dependencies = [ - ('contenttypes', '0002_remove_content_type_name'), - ] - - operations = [ - migrations.CreateModel( - name='Service', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('description', models.CharField(max_length=256, unique=True, verbose_name='description')), - ('match', models.CharField(blank=True, help_text="Python expression that designates wheter a content_type object is related to this service or not, always evaluates True when left blank. Related instance can be instantiated with instance keyword or content_type.model_name.
 databaseuser.type == 'MYSQL'
 miscellaneous.active and str(miscellaneous.identifier).endswith(('.org', '.net', '.com'))
 contractedplan.plan.name == 'association_fee''
 instance.active", max_length=256, verbose_name='match')), - ('handler_type', models.CharField(blank=True, choices=[('', 'Default')], help_text='Handler used for processing this Service. A handler enables customized behaviour far beyond what options here allow to.', max_length=256, verbose_name='handler')), - ('is_active', models.BooleanField(default=True, verbose_name='active')), - ('ignore_superusers', models.BooleanField(default=True, help_text='Designates whether superuser, staff and friend orders are marked as ignored by default or not.', verbose_name='ignore superuser, staff and friend')), - ('billing_period', models.CharField(blank=True, choices=[('', 'One time service'), ('MONTHLY', 'Monthly billing'), ('ANUAL', 'Anual billing')], default='ANUAL', help_text='Renewal period for recurring invoicing.', max_length=16, verbose_name='billing period')), - ('billing_point', models.CharField(choices=[('ON_REGISTER', 'Registration date'), ('ON_FIXED_DATE', 'Every January')], default='ON_FIXED_DATE', help_text='Reference point for calculating the renewal date on recurring invoices', max_length=16, verbose_name='billing point')), - ('is_fee', models.BooleanField(default=False, help_text='Designates whether this service should be billed as membership fee or not', verbose_name='fee')), - ('order_description', models.CharField(blank=True, help_text="Python expression used for generating the description for the bill lines of this services.
Defaults to '%s: %s' % (ugettext(handler.description), instance)", max_length=256, verbose_name='Order description')), - ('ignore_period', models.CharField(blank=True, choices=[('', 'Never'), ('ONE_DAY', 'One day'), ('TWO_DAYS', 'Two days'), ('TEN_DAYS', 'Ten days'), ('ONE_MONTH', 'One month')], default='TEN_DAYS', help_text='Period in which orders will be ignored if cancelled. Useful for designating trial periods', max_length=16, verbose_name='ignore period')), - ('metric', models.CharField(blank=True, help_text="Python expression used for obtinging the metric value for the pricing rate computation. Number of orders is used when left blank. Related instance can be instantiated with instance keyword or content_type.model_name.
 max((mailbox.resources.disk.allocated or 0) -1, 0)
 miscellaneous.amount
 max((account.resources.traffic.used or 0) - getattr(account.miscellaneous.filter(is_active=True, service__name='traffic-prepay').last(), 'amount', 0), 0)", max_length=256, verbose_name='metric')), - ('nominal_price', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='nominal price')), - ('tax', models.PositiveIntegerField(choices=[(0, 'Duty free'), (21, '21%')], default=0, verbose_name='tax')), - ('pricing_period', models.CharField(blank=True, choices=[('', 'Current value'), ('BILLING_PERIOD', 'Same as billing period'), ('MONTHLY', 'Monthly data'), ('ANUAL', 'Anual data')], default='BILLING_PERIOD', help_text='Time period that is used for computing the rate metric.', max_length=16, verbose_name='pricing period')), - ('rate_algorithm', models.CharField(choices=[('orchestra.contrib.plans.ratings.step_price', 'Step price'), ('orchestra.contrib.plans.ratings.match_price', 'Match price'), ('orchestra.contrib.plans.ratings.best_price', 'Best price')], default='orchestra.contrib.plans.ratings.step_price', help_text='Algorithm used to interprete the rating table.
  Step price: All rates with a quantity lower or equal than the metric are applied. Nominal price will be used when initial block is missing.
  Match price: Only the rate with a) inmediate inferior metric and b) lower price is applied. Nominal price will be used when initial block is missing.
  Best price: Produces the best possible price given all active rating lines (those with quantity lower or equal to the metric).', max_length=64, verbose_name='rate algorithm')), - ('on_cancel', models.CharField(choices=[('NOTHING', 'Nothing'), ('DISCOUNT', 'Discount'), ('COMPENSATE', 'Compensat'), ('REFUND', 'Refund')], default='DISCOUNT', help_text='Defines the cancellation behaviour of this service.', max_length=16, verbose_name='on cancel')), - ('payment_style', models.CharField(choices=[('PREPAY', 'Prepay'), ('POSTPAY', 'Postpay (on demand)')], default='PREPAY', help_text='Designates whether this service should be paid after consumtion (postpay/on demand) or prepaid.', max_length=16, verbose_name='payment style')), - ('content_type', models.ForeignKey(help_text='Content type of the related service objects.', on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType', verbose_name='content type')), - ('periodic_update', models.BooleanField(default=False, help_text='Whether a periodic update of this service orders should be performed or not. Needed for match definitions that depend on complex model interactions, where content type model save and delete operations are not enought.', verbose_name='periodic update')), - ], - ), - ] diff --git a/orchestra/contrib/services/migrations/0002_auto_20150509_1501.py b/orchestra/contrib/services/migrations/0002_auto_20150509_1501.py deleted file mode 100644 index 26e2d63..0000000 --- a/orchestra/contrib/services/migrations/0002_auto_20150509_1501.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('services', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='service', - name='rate_algorithm', - field=models.CharField(choices=[('orchestra.contrib.plans.rating.best_price', 'Best price'), ('orchestra.contrib.plans.rating.step_price', 'Step price'), ('orchestra.contrib.plans.rating.match_price', 'Match price')], help_text='Algorithm used to interprete the rating table.
  Best price: Produces the best possible price given all active rating lines.
  Step price: All rates with a quantity lower than the metric are applied. Nominal price will be used when initial block is missing.
  Match price: Only the rate with a) inmediate inferior metric and b) lower price is applied. Nominal price will be used when initial block is missing.', max_length=64, verbose_name='rate algorithm', default='orchestra.contrib.plans.rating.step_price'), - ), - migrations.AlterField( - model_name='service', - name='tax', - field=models.PositiveIntegerField(choices=[(0, 'Duty free'), (21, '21%')], verbose_name='tax', default=21), - ), - ] diff --git a/orchestra/contrib/services/migrations/0003_auto_20150917_0942.py b/orchestra/contrib/services/migrations/0003_auto_20150917_0942.py deleted file mode 100644 index c9b5f27..0000000 --- a/orchestra/contrib/services/migrations/0003_auto_20150917_0942.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('services', '0002_auto_20150509_1501'), - ] - - operations = [ - migrations.AlterField( - model_name='service', - name='billing_point', - field=models.CharField(choices=[('ON_REGISTER', 'Registration date'), ('ON_FIXED_DATE', 'Every April')], help_text='Reference point for calculating the renewal date on recurring invoices', verbose_name='billing point', max_length=16, default='ON_FIXED_DATE'), - ), - migrations.AlterField( - model_name='service', - name='is_fee', - field=models.BooleanField(help_text='Designates whether this service should be billed as membership fee or not', verbose_name='fee', default=False), - ), - migrations.AlterField( - model_name='service', - name='order_description', - field=models.CharField(help_text="Python expression used for generating the description for the bill lines of this services.
Defaults to '%s: %s' % (ugettext(handler.description), instance)", blank=True, max_length=256, verbose_name='Order description'), - ), - migrations.AlterField( - model_name='service', - name='rate_algorithm', - field=models.CharField(choices=[('orchestra.contrib.plans.ratings.step_price', 'Step price'), ('orchestra.contrib.plans.ratings.best_price', 'Best price'), ('orchestra.contrib.plans.ratings.match_price', 'Match price')], help_text='Algorithm used to interprete the rating table.
  Step price: All rates with a quantity lower or equal than the metric are applied. Nominal price will be used when initial block is missing.
  Best price: Produces the best possible price given all active rating lines (those with quantity lower or equal to the metric).
  Match price: Only the rate with a) inmediate inferior metric and b) lower price is applied. Nominal price will be used when initial block is missing.', verbose_name='rate algorithm', max_length=64, default='orchestra.contrib.plans.ratings.step_price'), - ), - ] diff --git a/orchestra/contrib/services/migrations/0004_auto_20160405_1133.py b/orchestra/contrib/services/migrations/0004_auto_20160405_1133.py deleted file mode 100644 index 5820f70..0000000 --- a/orchestra/contrib/services/migrations/0004_auto_20160405_1133.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('services', '0003_auto_20150917_0942'), - ] - - operations = [ - migrations.AddField( - model_name='service', - name='periodic_update', - field=models.BooleanField(default=False, verbose_name='periodic update', help_text='Whether a periodic update of this service orders should be performed or not. Needed for match definitions that depend on complex model interactions.'), - ), - migrations.AlterField( - model_name='service', - name='rate_algorithm', - field=models.CharField(choices=[('orchestra.contrib.plans.ratings.match_price', 'Match price'), ('orchestra.contrib.plans.ratings.best_price', 'Best price'), ('orchestra.contrib.plans.ratings.step_price', 'Step price')], verbose_name='rate algorithm', help_text='Algorithm used to interprete the rating table.
  Match price: Only the rate with a) inmediate inferior metric and b) lower price is applied. Nominal price will be used when initial block is missing.
  Best price: Produces the best possible price given all active rating lines (those with quantity lower or equal to the metric).
  Step price: All rates with a quantity lower or equal than the metric are applied. Nominal price will be used when initial block is missing.', default='orchestra.contrib.plans.ratings.step_price', max_length=64), - ), - ] diff --git a/orchestra/contrib/services/migrations/0005_auto_20160427_1531.py b/orchestra/contrib/services/migrations/0005_auto_20160427_1531.py deleted file mode 100644 index da8c625..0000000 --- a/orchestra/contrib/services/migrations/0005_auto_20160427_1531.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('services', '0004_auto_20160405_1133'), - ] - - operations = [ - migrations.AlterField( - model_name='service', - name='periodic_update', - field=models.BooleanField(default=False, verbose_name='periodic update', help_text='Whether a periodic update of this service orders should be performed or not. Needed for match definitions that depend on complex model interactions, where content type model save and delete operations are not enought.'), - ), - migrations.AlterField( - model_name='service', - name='rate_algorithm', - field=models.CharField(default='orchestra.contrib.plans.ratings.step_price', verbose_name='rate algorithm', max_length=64, choices=[('orchestra.contrib.plans.ratings.step_price', 'Step price'), ('orchestra.contrib.plans.ratings.match_price', 'Match price'), ('orchestra.contrib.plans.ratings.best_price', 'Best price')], help_text='Algorithm used to interprete the rating table.
  Step price: All rates with a quantity lower or equal than the metric are applied. Nominal price will be used when initial block is missing.
  Match price: Only the rate with a) inmediate inferior metric and b) lower price is applied. Nominal price will be used when initial block is missing.
  Best price: Produces the best possible price given all active rating lines (those with quantity lower or equal to the metric).'), - ), - ] diff --git a/orchestra/contrib/services/migrations/0006_auto_20170528_2005.py b/orchestra/contrib/services/migrations/0006_auto_20170528_2005.py deleted file mode 100644 index 1f59952..0000000 --- a/orchestra/contrib/services/migrations/0006_auto_20170528_2005.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:05 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('services', '0005_auto_20160427_1531'), - ] - - operations = [ - migrations.AlterField( - model_name='service', - name='rate_algorithm', - field=models.CharField(choices=[('orchestra.contrib.plans.ratings.best_price', 'Best price'), ('orchestra.contrib.plans.ratings.step_price', 'Step price'), ('orchestra.contrib.plans.ratings.match_price', 'Match price')], default='orchestra.contrib.plans.ratings.step_price', help_text='Algorithm used to interprete the rating table.
  Best price: Produces the best possible price given all active rating lines (those with quantity lower or equal to the metric).
  Step price: All rates with a quantity lower or equal than the metric are applied. Nominal price will be used when initial block is missing.
  Match price: Only the rate with a) inmediate inferior metric and b) lower price is applied. Nominal price will be used when initial block is missing.', max_length=64, verbose_name='rate algorithm'), - ), - ] diff --git a/orchestra/contrib/services/migrations/0007_auto_20170528_2011.py b/orchestra/contrib/services/migrations/0007_auto_20170528_2011.py deleted file mode 100644 index d11e961..0000000 --- a/orchestra/contrib/services/migrations/0007_auto_20170528_2011.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:11 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('services', '0006_auto_20170528_2005'), - ] - - operations = [ - migrations.AlterField( - model_name='service', - name='rate_algorithm', - field=models.CharField(choices=[('orchestra.contrib.plans.ratings.step_price', 'Step price'), ('orchestra.contrib.plans.ratings.best_price', 'Best price'), ('orchestra.contrib.plans.ratings.match_price', 'Match price')], default='orchestra.contrib.plans.ratings.step_price', help_text='Algorithm used to interprete the rating table.
  Step price: All rates with a quantity lower or equal than the metric are applied. Nominal price will be used when initial block is missing.
  Best price: Produces the best possible price given all active rating lines (those with quantity lower or equal to the metric).
  Match price: Only the rate with a) inmediate inferior metric and b) lower price is applied. Nominal price will be used when initial block is missing.', max_length=64, verbose_name='rate algorithm'), - ), - ] diff --git a/orchestra/contrib/services/migrations/0008_auto_20170625_1813.py b/orchestra/contrib/services/migrations/0008_auto_20170625_1813.py deleted file mode 100644 index a00a05e..0000000 --- a/orchestra/contrib/services/migrations/0008_auto_20170625_1813.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:13 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('services', '0007_auto_20170528_2011'), - ] - - operations = [ - migrations.AlterField( - model_name='service', - name='rate_algorithm', - field=models.CharField(choices=[('orchestra.contrib.plans.ratings.best_price', 'Best price'), ('orchestra.contrib.plans.ratings.step_price', 'Step price'), ('orchestra.contrib.plans.ratings.match_price', 'Match price')], default='orchestra.contrib.plans.ratings.step_price', help_text='Algorithm used to interprete the rating table.
  Best price: Produces the best possible price given all active rating lines (those with quantity lower or equal to the metric).
  Step price: All rates with a quantity lower or equal than the metric are applied. Nominal price will be used when initial block is missing.
  Match price: Only the rate with a) inmediate inferior metric and b) lower price is applied. Nominal price will be used when initial block is missing.', max_length=64, verbose_name='rate algorithm'), - ), - ] diff --git a/orchestra/contrib/services/migrations/0009_auto_20170625_1840.py b/orchestra/contrib/services/migrations/0009_auto_20170625_1840.py deleted file mode 100644 index 29eb3d5..0000000 --- a/orchestra/contrib/services/migrations/0009_auto_20170625_1840.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:40 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('services', '0008_auto_20170625_1813'), - ] - - operations = [ - migrations.AlterField( - model_name='service', - name='rate_algorithm', - field=models.CharField(choices=[('orchestra.contrib.plans.ratings.match_price', 'Match price'), ('orchestra.contrib.plans.ratings.best_price', 'Best price'), ('orchestra.contrib.plans.ratings.step_price', 'Step price')], default='orchestra.contrib.plans.ratings.step_price', help_text='Algorithm used to interprete the rating table.
  Match price: Only the rate with a) inmediate inferior metric and b) lower price is applied. Nominal price will be used when initial block is missing.
  Best price: Produces the best possible price given all active rating lines (those with quantity lower or equal to the metric).
  Step price: All rates with a quantity lower or equal than the metric are applied. Nominal price will be used when initial block is missing.', max_length=64, verbose_name='rate algorithm'), - ), - ] diff --git a/orchestra/contrib/services/migrations/0010_auto_20170625_1840.py b/orchestra/contrib/services/migrations/0010_auto_20170625_1840.py deleted file mode 100644 index f59f304..0000000 --- a/orchestra/contrib/services/migrations/0010_auto_20170625_1840.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:40 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('services', '0009_auto_20170625_1840'), - ] - - operations = [ - migrations.AlterField( - model_name='service', - name='rate_algorithm', - field=models.CharField(choices=[('orchestra.contrib.plans.ratings.best_price', 'Best price'), ('orchestra.contrib.plans.ratings.match_price', 'Match price'), ('orchestra.contrib.plans.ratings.step_price', 'Step price')], default='orchestra.contrib.plans.ratings.step_price', help_text='Algorithm used to interprete the rating table.
  Best price: Produces the best possible price given all active rating lines (those with quantity lower or equal to the metric).
  Match price: Only the rate with a) inmediate inferior metric and b) lower price is applied. Nominal price will be used when initial block is missing.
  Step price: All rates with a quantity lower or equal than the metric are applied. Nominal price will be used when initial block is missing.', max_length=64, verbose_name='rate algorithm'), - ), - ] diff --git a/orchestra/contrib/services/migrations/0011_auto_20170625_1840.py b/orchestra/contrib/services/migrations/0011_auto_20170625_1840.py deleted file mode 100644 index 6018a17..0000000 --- a/orchestra/contrib/services/migrations/0011_auto_20170625_1840.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:40 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('services', '0010_auto_20170625_1840'), - ] - - operations = [ - migrations.AlterField( - model_name='service', - name='rate_algorithm', - field=models.CharField(choices=[('orchestra.contrib.plans.ratings.match_price', 'Match price'), ('orchestra.contrib.plans.ratings.best_price', 'Best price'), ('orchestra.contrib.plans.ratings.step_price', 'Step price')], default='orchestra.contrib.plans.ratings.step_price', help_text='Algorithm used to interprete the rating table.
  Match price: Only the rate with a) inmediate inferior metric and b) lower price is applied. Nominal price will be used when initial block is missing.
  Best price: Produces the best possible price given all active rating lines (those with quantity lower or equal to the metric).
  Step price: All rates with a quantity lower or equal than the metric are applied. Nominal price will be used when initial block is missing.', max_length=64, verbose_name='rate algorithm'), - ), - ] diff --git a/orchestra/contrib/services/migrations/0012_auto_20170625_1841.py b/orchestra/contrib/services/migrations/0012_auto_20170625_1841.py deleted file mode 100644 index e4cd246..0000000 --- a/orchestra/contrib/services/migrations/0012_auto_20170625_1841.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:41 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('services', '0011_auto_20170625_1840'), - ] - - operations = [ - migrations.AlterField( - model_name='service', - name='rate_algorithm', - field=models.CharField(choices=[('orchestra.contrib.plans.ratings.best_price', 'Best price'), ('orchestra.contrib.plans.ratings.step_price', 'Step price'), ('orchestra.contrib.plans.ratings.match_price', 'Match price')], default='orchestra.contrib.plans.ratings.step_price', help_text='Algorithm used to interprete the rating table.
  Best price: Produces the best possible price given all active rating lines (those with quantity lower or equal to the metric).
  Step price: All rates with a quantity lower or equal than the metric are applied. Nominal price will be used when initial block is missing.
  Match price: Only the rate with a) inmediate inferior metric and b) lower price is applied. Nominal price will be used when initial block is missing.', max_length=64, verbose_name='rate algorithm'), - ), - ] diff --git a/orchestra/contrib/services/migrations/0013_auto_20190805_1134.py b/orchestra/contrib/services/migrations/0013_auto_20190805_1134.py deleted file mode 100644 index e568b4d..0000000 --- a/orchestra/contrib/services/migrations/0013_auto_20190805_1134.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2019-08-05 09:34 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('services', '0012_auto_20170625_1841'), - ] - - operations = [ - migrations.AlterField( - model_name='service', - name='rate_algorithm', - field=models.CharField(choices=[('orchestra.contrib.plans.ratings.match_price', 'Match price'), ('orchestra.contrib.plans.ratings.best_price', 'Best price'), ('orchestra.contrib.plans.ratings.step_price', 'Step price')], default='orchestra.contrib.plans.ratings.step_price', help_text='Algorithm used to interprete the rating table.
  Match price: Only the rate with a) inmediate inferior metric and b) lower price is applied. Nominal price will be used when initial block is missing.
  Best price: Produces the best possible price given all active rating lines (those with quantity lower or equal to the metric).
  Step price: All rates with a quantity lower or equal than the metric are applied. Nominal price will be used when initial block is missing.', max_length=64, verbose_name='rate algorithm'), - ), - ] diff --git a/orchestra/contrib/services/migrations/0014_auto_20200204_1218.py b/orchestra/contrib/services/migrations/0014_auto_20200204_1218.py deleted file mode 100644 index 057b195..0000000 --- a/orchestra/contrib/services/migrations/0014_auto_20200204_1218.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2020-02-04 11:18 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('services', '0013_auto_20190805_1134'), - ] - - operations = [ - migrations.AlterField( - model_name='service', - name='rate_algorithm', - field=models.CharField(choices=[('orchestra.contrib.plans.ratings.best_price', 'Best price'), ('orchestra.contrib.plans.ratings.match_price', 'Match price'), ('orchestra.contrib.plans.ratings.step_price', 'Step price')], default='orchestra.contrib.plans.ratings.step_price', help_text='Algorithm used to interprete the rating table.
  Best price: Produces the best possible price given all active rating lines (those with quantity lower or equal to the metric).
  Match price: Only the rate with a) inmediate inferior metric and b) lower price is applied. Nominal price will be used when initial block is missing.
  Step price: All rates with a quantity lower or equal than the metric are applied. Nominal price will be used when initial block is missing.', max_length=64, verbose_name='rate algorithm'), - ), - ] diff --git a/orchestra/contrib/services/migrations/0015_auto_20210330_1049.py b/orchestra/contrib/services/migrations/0015_auto_20210330_1049.py deleted file mode 100644 index c1402f7..0000000 --- a/orchestra/contrib/services/migrations/0015_auto_20210330_1049.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-03-30 10:49 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('services', '0014_auto_20200204_1218'), - ] - - operations = [ - migrations.AlterField( - model_name='service', - name='billing_point', - field=models.CharField(choices=[('ON_REGISTER', 'Registration date'), ('ON_FIXED_DATE', 'Every January')], default='ON_FIXED_DATE', help_text='Reference point for calculating the renewal date on recurring invoices', max_length=16, verbose_name='billing point'), - ), - migrations.AlterField( - model_name='service', - name='rate_algorithm', - field=models.CharField(choices=[('orchestra.contrib.plans.ratings.step_price', 'Step price'), ('orchestra.contrib.plans.ratings.match_price', 'Match price'), ('orchestra.contrib.plans.ratings.best_price', 'Best price')], default='orchestra.contrib.plans.ratings.step_price', help_text='Algorithm used to interprete the rating table.
  Step price: All rates with a quantity lower or equal than the metric are applied. Nominal price will be used when initial block is missing.
  Match price: Only the rate with a) inmediate inferior metric and b) lower price is applied. Nominal price will be used when initial block is missing.
  Best price: Produces the best possible price given all active rating lines (those with quantity lower or equal to the metric).', max_length=64, verbose_name='rate algorithm'), - ), - migrations.AlterField( - model_name='service', - name='tax', - field=models.PositiveIntegerField(choices=[(0, 'Duty free'), (21, '21%')], default=0, verbose_name='tax'), - ), - ] diff --git a/orchestra/contrib/services/migrations/__init__.py b/orchestra/contrib/services/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/services/models.py b/orchestra/contrib/services/models.py index 5dffcb4..0dc8bb8 100644 --- a/orchestra/contrib/services/models.py +++ b/orchestra/contrib/services/models.py @@ -7,7 +7,7 @@ from django.db import models from django.apps import apps from django.utils.functional import cached_property from django.utils.module_loading import autodiscover_modules -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.core import caches, validators from orchestra.utils.python import import_class @@ -109,7 +109,7 @@ class Service(models.Model): help_text=_( "Python expression " "used for generating the description for the bill lines of this services.
" - "Defaults to '%s: %s' % (ugettext(handler.description), instance)" + "Defaults to '%s: %s' % (gettext(handler.description), instance)" )) ignore_period = models.CharField(_("ignore period"), max_length=16, blank=True, help_text=_("Period in which orders will be ignored if cancelled. " diff --git a/orchestra/contrib/services/settings.py b/orchestra/contrib/services/settings.py index 4a3f863..5c78306 100644 --- a/orchestra/contrib/services/settings.py +++ b/orchestra/contrib/services/settings.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.settings import Setting diff --git a/orchestra/contrib/settings/admin.py b/orchestra/contrib/settings/admin.py index 4a54077..6cefcb0 100644 --- a/orchestra/contrib/settings/admin.py +++ b/orchestra/contrib/settings/admin.py @@ -1,7 +1,7 @@ from django.contrib import admin, messages from django.shortcuts import render from django.views import generic -from django.utils.translation import ngettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext_lazy as _ from orchestra.contrib.settings import Setting from orchestra.utils import sys @@ -73,7 +73,7 @@ class SettingView(generic.edit.FormView): context['diff'] = diff if not diff: messages.warning(self.request, _("Changes detected but no diff %s.") % changes) - return self.render(context) + return self.render_to_response(context) n = len(changes) # Save changes parser.save(changes) diff --git a/orchestra/contrib/settings/apps.py b/orchestra/contrib/settings/apps.py index 17fa85c..d9738eb 100644 --- a/orchestra/contrib/settings/apps.py +++ b/orchestra/contrib/settings/apps.py @@ -1,7 +1,7 @@ from django.apps import AppConfig from django.core.checks import register, Error from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.core import administration diff --git a/orchestra/contrib/settings/forms.py b/orchestra/contrib/settings/forms.py index 2b33958..164e654 100644 --- a/orchestra/contrib/settings/forms.py +++ b/orchestra/contrib/settings/forms.py @@ -7,7 +7,7 @@ from django.core.exceptions import ValidationError from django.forms.formsets import formset_factory from django.utils.functional import Promise from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.forms import ReadOnlyFormMixin, widgets from orchestra.utils.python import format_exception diff --git a/orchestra/contrib/settings/parser.py b/orchestra/contrib/settings/parser.py index 4a06fe7..9392325 100644 --- a/orchestra/contrib/settings/parser.py +++ b/orchestra/contrib/settings/parser.py @@ -4,7 +4,7 @@ import json import os import re -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from django.utils.functional import Promise from orchestra.utils.paths import get_project_dir diff --git a/orchestra/contrib/systemusers/actions.py b/orchestra/contrib/systemusers/actions.py index 80743ea..1916aa4 100644 --- a/orchestra/contrib/systemusers/actions.py +++ b/orchestra/contrib/systemusers/actions.py @@ -3,7 +3,7 @@ import os from django.contrib import messages, admin from django.core.exceptions import PermissionDenied from django.template.response import TemplateResponse -from django.utils.translation import ungettext, ugettext_lazy as _ +from django.utils.translation import ngettext, gettext_lazy as _ from orchestra.contrib.orchestration import Operation, helpers diff --git a/orchestra/contrib/systemusers/admin.py b/orchestra/contrib/systemusers/admin.py index 59b4c27..6436295 100644 --- a/orchestra/contrib/systemusers/admin.py +++ b/orchestra/contrib/systemusers/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin, messages -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin import ExtendedModelAdmin, ChangePasswordAdminMixin from orchestra.admin.actions import disable, enable diff --git a/orchestra/contrib/systemusers/api.py b/orchestra/contrib/systemusers/api.py index 044048e..b803c81 100644 --- a/orchestra/contrib/systemusers/api.py +++ b/orchestra/contrib/systemusers/api.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import viewsets, exceptions from orchestra.api import router, SetPasswordApiMixin, LogApiMixin diff --git a/orchestra/contrib/systemusers/backends.py b/orchestra/contrib/systemusers/backends.py index 22dde95..fdc38f2 100644 --- a/orchestra/contrib/systemusers/backends.py +++ b/orchestra/contrib/systemusers/backends.py @@ -2,7 +2,7 @@ import fnmatch import os import textwrap -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController, replace from orchestra.contrib.resources import ServiceMonitor diff --git a/orchestra/contrib/systemusers/filters.py b/orchestra/contrib/systemusers/filters.py index 8e619a4..7d1d972 100644 --- a/orchestra/contrib/systemusers/filters.py +++ b/orchestra/contrib/systemusers/filters.py @@ -1,5 +1,5 @@ from django.contrib.admin import SimpleListFilter -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class IsMainListFilter(SimpleListFilter): diff --git a/orchestra/contrib/systemusers/forms.py b/orchestra/contrib/systemusers/forms.py index eaf1d2f..f95529b 100644 --- a/orchestra/contrib/systemusers/forms.py +++ b/orchestra/contrib/systemusers/forms.py @@ -3,7 +3,7 @@ import textwrap from django import forms from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.forms import UserCreationForm, UserChangeForm diff --git a/orchestra/contrib/systemusers/migrations/0001_initial.py b/orchestra/contrib/systemusers/migrations/0001_initial.py deleted file mode 100644 index e15de8e..0000000 --- a/orchestra/contrib/systemusers/migrations/0001_initial.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import orchestra.core.validators -from django.conf import settings - - -class Migration(migrations.Migration): - - dependencies = [ -# migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='SystemUser', - fields=[ - ('id', models.AutoField(primary_key=True, serialize=False, auto_created=True, verbose_name='ID')), - ('username', models.CharField(validators=[orchestra.core.validators.validate_username], unique=True, help_text='Required. 64 characters or fewer. Letters, digits and ./-/_ only.', max_length=32, verbose_name='username')), - ('password', models.CharField(max_length=128, verbose_name='password')), - ('home', models.CharField(blank=True, max_length=256, help_text='Starting location when login with this no-shell user.', verbose_name='home')), - ('directory', models.CharField(blank=True, max_length=256, help_text="Optional directory relative to user's home.", verbose_name='directory')), - ('shell', models.CharField(default='/dev/null', max_length=32, choices=[('/dev/null', 'No shell, FTP only'), ('/bin/rssh', 'No shell, SFTP/RSYNC only'), ('/bin/bash', '/bin/bash'), ('/bin/sh', '/bin/sh')], verbose_name='shell')), - ('is_active', models.BooleanField(default=True, help_text='Designates whether this account should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), -# ('account', models.ForeignKey(to=settings.AUTH_USER_MODEL, related_name='systemusers', verbose_name='Account')), - ('groups', models.ManyToManyField(to='systemusers.SystemUser', blank=True, help_text='A new group will be created for the user. Which additional groups would you like them to be a member of?')), - ], - ), - ] diff --git a/orchestra/contrib/systemusers/migrations/0002_auto_20150429_1413.py b/orchestra/contrib/systemusers/migrations/0002_auto_20150429_1413.py deleted file mode 100644 index 663a7d9..0000000 --- a/orchestra/contrib/systemusers/migrations/0002_auto_20150429_1413.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.db.models.deletion -import orchestra.core.validators -from django.conf import settings - - -class Migration(migrations.Migration): - - dependencies = [ - ('systemusers', '0001_initial'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.AddField( - model_name='systemuser', - name='account', - field=models.ForeignKey(related_name='systemusers', to=settings.AUTH_USER_MODEL, default=1, on_delete=django.db.models.deletion.CASCADE, verbose_name='Account'), - preserve_default=False, - ), - ] - diff --git a/orchestra/contrib/systemusers/migrations/0002_auto_20150429_1413_squashed_0004_auto_20210330_1049.py b/orchestra/contrib/systemusers/migrations/0002_auto_20150429_1413_squashed_0004_auto_20210330_1049.py deleted file mode 100644 index b311dca..0000000 --- a/orchestra/contrib/systemusers/migrations/0002_auto_20150429_1413_squashed_0004_auto_20210330_1049.py +++ /dev/null @@ -1,42 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:28 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import orchestra.core.validators - - -class Migration(migrations.Migration): - - replaces = [('systemusers', '0002_auto_20150429_1413'), ('systemusers', '0003_auto_20170528_2011'), ('systemusers', '0004_auto_20210330_1049')] - - dependencies = [ - ('systemusers', '0001_initial'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.AddField( - model_name='systemuser', - name='account', - field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='systemusers', to=settings.AUTH_USER_MODEL, verbose_name='Account'), - preserve_default=False, - ), - migrations.AlterField( - model_name='systemuser', - name='shell', - field=models.CharField(choices=[('/dev/null', 'No shell, FTP only'), ('/bin/rssh', 'No shell, SFTP/RSYNC only'), ('/usr/bin/git-shell', 'No shell, GIT only'), ('/bin/bash', '/bin/bash')], default='/dev/null', max_length=32, verbose_name='shell'), - ), - migrations.AlterField( - model_name='systemuser', - name='username', - field=models.CharField(help_text='Required. 32 characters or fewer. Letters, digits and ./-/_ only.', max_length=32, unique=True, validators=[orchestra.core.validators.validate_username], verbose_name='username'), - ), - migrations.AlterField( - model_name='systemuser', - name='shell', - field=models.CharField(choices=[('/dev/null', 'No shell, FTP only'), ('/bin/rssh', 'No shell, SFTP/RSYNC only'), ('/bin/bash', '/bin/bash')], default='/dev/null', max_length=32, verbose_name='shell'), - ), - ] diff --git a/orchestra/contrib/systemusers/migrations/0003_auto_20170528_2011.py b/orchestra/contrib/systemusers/migrations/0003_auto_20170528_2011.py deleted file mode 100644 index 0556f59..0000000 --- a/orchestra/contrib/systemusers/migrations/0003_auto_20170528_2011.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:11 -from __future__ import unicode_literals - -from django.db import migrations, models -import orchestra.core.validators - - -class Migration(migrations.Migration): - - dependencies = [ - ('systemusers', '0002_auto_20150429_1413'), - ] - - operations = [ - migrations.AlterField( - model_name='systemuser', - name='shell', - field=models.CharField(choices=[('/dev/null', 'No shell, FTP only'), ('/bin/rssh', 'No shell, SFTP/RSYNC only'), ('/usr/bin/git-shell', 'No shell, GIT only'), ('/bin/bash', '/bin/bash')], default='/dev/null', max_length=32, verbose_name='shell'), - ), - migrations.AlterField( - model_name='systemuser', - name='username', - field=models.CharField(help_text='Required. 32 characters or fewer. Letters, digits and ./-/_ only.', max_length=32, unique=True, validators=[orchestra.core.validators.validate_username], verbose_name='username'), - ), - ] diff --git a/orchestra/contrib/systemusers/migrations/0004_auto_20210330_1049.py b/orchestra/contrib/systemusers/migrations/0004_auto_20210330_1049.py deleted file mode 100644 index d495e8b..0000000 --- a/orchestra/contrib/systemusers/migrations/0004_auto_20210330_1049.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-03-30 10:49 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('systemusers', '0003_auto_20170528_2011'), - ] - - operations = [ - migrations.AlterField( - model_name='systemuser', - name='shell', - field=models.CharField(choices=[('/dev/null', 'No shell, FTP only'), ('/bin/rssh', 'No shell, SFTP/RSYNC only'), ('/bin/bash', '/bin/bash')], default='/dev/null', max_length=32, verbose_name='shell'), - ), - ] diff --git a/orchestra/contrib/systemusers/migrations/__init__.py b/orchestra/contrib/systemusers/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/systemusers/models.py b/orchestra/contrib/systemusers/models.py index b270bca..bd6dc04 100644 --- a/orchestra/contrib/systemusers/models.py +++ b/orchestra/contrib/systemusers/models.py @@ -6,7 +6,7 @@ from django.core.exceptions import ValidationError from django.db import models from django.db.models import F from django.utils.functional import cached_property -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.core import validators diff --git a/orchestra/contrib/systemusers/serializers.py b/orchestra/contrib/systemusers/serializers.py index e9cf125..5083b68 100644 --- a/orchestra/contrib/systemusers/serializers.py +++ b/orchestra/contrib/systemusers/serializers.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from orchestra.api.serializers import SetPasswordHyperlinkedSerializer, RelatedHyperlinkedModelSerializer diff --git a/orchestra/contrib/systemusers/settings.py b/orchestra/contrib/systemusers/settings.py index 9023b20..5e931a0 100644 --- a/orchestra/contrib/systemusers/settings.py +++ b/orchestra/contrib/systemusers/settings.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.settings import Setting diff --git a/orchestra/contrib/systemusers/validators.py b/orchestra/contrib/systemusers/validators.py index fbe4e9a..cafea1c 100644 --- a/orchestra/contrib/systemusers/validators.py +++ b/orchestra/contrib/systemusers/validators.py @@ -1,7 +1,7 @@ import os from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import Operation diff --git a/orchestra/contrib/tasks/admin.py b/orchestra/contrib/tasks/admin.py index bd24925..d245a5f 100644 --- a/orchestra/contrib/tasks/admin.py +++ b/orchestra/contrib/tasks/admin.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from djcelery.admin import PeriodicTaskAdmin from orchestra.admin.utils import admin_date diff --git a/orchestra/contrib/vps/admin.py b/orchestra/contrib/vps/admin.py index b512fd8..346ddaf 100644 --- a/orchestra/contrib/vps/admin.py +++ b/orchestra/contrib/vps/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin import ExtendedModelAdmin, ChangePasswordAdminMixin from orchestra.contrib.accounts.actions import list_accounts diff --git a/orchestra/contrib/vps/migrations/0001_initial.py b/orchestra/contrib/vps/migrations/0001_initial.py deleted file mode 100644 index aa1e213..0000000 --- a/orchestra/contrib/vps/migrations/0001_initial.py +++ /dev/null @@ -1,32 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.db.models.deletion -import orchestra.core.validators -from django.conf import settings - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='VPS', - fields=[ - ('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)), - ('hostname', models.CharField(unique=True, verbose_name='hostname', validators=[orchestra.core.validators.validate_hostname], max_length=256)), - ('type', models.CharField(choices=[('openvz', 'OpenVZ container')], verbose_name='type', default='openvz', max_length=64)), - ('template', models.CharField(choices=[('debian7', 'Debian 7 - Wheezy')], verbose_name='template', default='debian7', max_length=64)), - ('password', models.CharField(verbose_name='password', help_text='root password of this virtual machine', max_length=128)), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, verbose_name='Account', related_name='vpss', to=settings.AUTH_USER_MODEL)), - ], - options={ - 'verbose_name': 'VPS', - 'verbose_name_plural': 'VPSs', - }, - ), - ] diff --git a/orchestra/contrib/vps/migrations/0001_squashed_0004_auto_20170528_2005.py b/orchestra/contrib/vps/migrations/0001_squashed_0004_auto_20170528_2005.py deleted file mode 100644 index 1284ea8..0000000 --- a/orchestra/contrib/vps/migrations/0001_squashed_0004_auto_20170528_2005.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:26 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import orchestra.core.validators - - -class Migration(migrations.Migration): - - replaces = [('vps', '0001_initial'), ('vps', '0002_auto_20150804_1524'), ('vps', '0003_vps_is_active'), ('vps', '0004_auto_20170528_2005')] - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='VPS', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('hostname', models.CharField(max_length=256, unique=True, validators=[orchestra.core.validators.validate_hostname], verbose_name='hostname')), - ('type', models.CharField(choices=[('openvz', 'OpenVZ container'), ('lxc', 'LXC container')], default='lxc', max_length=64, verbose_name='type')), - ('template', models.CharField(choices=[('debian7', 'Debian 7 - Wheezy'), ('placeholder', 'LXC placeholder')], default='placeholder', help_text='Initial template.', max_length=64, verbose_name='template')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='vpss', to=settings.AUTH_USER_MODEL, verbose_name='Account')), - ('is_active', models.BooleanField(default=True, verbose_name='active')), - ], - options={ - 'verbose_name': 'VPS', - 'verbose_name_plural': 'VPSs', - }, - ), - ] diff --git a/orchestra/contrib/vps/migrations/0002_auto_20150804_1524.py b/orchestra/contrib/vps/migrations/0002_auto_20150804_1524.py deleted file mode 100644 index c356941..0000000 --- a/orchestra/contrib/vps/migrations/0002_auto_20150804_1524.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('vps', '0001_initial'), - ] - - operations = [ - migrations.RemoveField( - model_name='vps', - name='password', - ), - migrations.AlterField( - model_name='vps', - name='template', - field=models.CharField(default='debian7', verbose_name='template', choices=[('debian7', 'Debian 7 - Wheezy')], max_length=64, help_text='Initial template.'), - ), - ] diff --git a/orchestra/contrib/vps/migrations/0003_vps_is_active.py b/orchestra/contrib/vps/migrations/0003_vps_is_active.py deleted file mode 100644 index e920679..0000000 --- a/orchestra/contrib/vps/migrations/0003_vps_is_active.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('vps', '0002_auto_20150804_1524'), - ] - - operations = [ - migrations.AddField( - model_name='vps', - name='is_active', - field=models.BooleanField(default=True, verbose_name='active'), - ), - ] diff --git a/orchestra/contrib/vps/migrations/0004_auto_20170528_2005.py b/orchestra/contrib/vps/migrations/0004_auto_20170528_2005.py deleted file mode 100644 index ff91cc9..0000000 --- a/orchestra/contrib/vps/migrations/0004_auto_20170528_2005.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:05 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('vps', '0003_vps_is_active'), - ] - - operations = [ - migrations.AlterField( - model_name='vps', - name='template', - field=models.CharField(choices=[('debian7', 'Debian 7 - Wheezy'), ('placeholder', 'LXC placeholder')], default='placeholder', help_text='Initial template.', max_length=64, verbose_name='template'), - ), - migrations.AlterField( - model_name='vps', - name='type', - field=models.CharField(choices=[('openvz', 'OpenVZ container'), ('lxc', 'LXC container')], default='lxc', max_length=64, verbose_name='type'), - ), - ] diff --git a/orchestra/contrib/vps/migrations/__init__.py b/orchestra/contrib/vps/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/vps/models.py b/orchestra/contrib/vps/models.py index fe3c62c..f5b19f7 100644 --- a/orchestra/contrib/vps/models.py +++ b/orchestra/contrib/vps/models.py @@ -1,6 +1,6 @@ from django.contrib.auth.hashers import make_password from django.db import models -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.core.validators import validate_hostname diff --git a/orchestra/contrib/webapps/admin.py b/orchestra/contrib/webapps/admin.py index 1a85f84..d1dc7a1 100644 --- a/orchestra/contrib/webapps/admin.py +++ b/orchestra/contrib/webapps/admin.py @@ -1,9 +1,9 @@ from django import forms from django.contrib import admin from django.urls import reverse -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.utils.safestring import mark_safe -from django.utils.translation import ugettext, ugettext_lazy as _ +from django.utils.translation import gettext, gettext_lazy as _ from orchestra.admin import ExtendedModelAdmin from orchestra.admin.utils import admin_link, get_modeladmin @@ -24,7 +24,7 @@ class WebAppOptionInline(admin.TabularInline): extra = 1 OPTIONS_HELP_TEXT = { - op.name: force_text(op.help_text) for op in AppOption.get_plugins() + op.name: force_str(op.help_text) for op in AppOption.get_plugins() } class Media: @@ -82,7 +82,7 @@ class WebAppAdmin(SelectPluginAdminMixin, AccountAdminMixin, ExtendedModelAdmin) add_url = reverse('admin:websites_website_add') add_url += '?account=%s' % webapp.account_id plus = '+' - websites.append('%s%s' % (add_url, plus, ugettext("Add website"))) + websites.append('%s%s' % (add_url, plus, gettext("Add website"))) return '
'.join(websites) display_websites.short_description = _("web sites") diff --git a/orchestra/contrib/webapps/backends/moodle.py b/orchestra/contrib/webapps/backends/moodle.py index b5d8530..5579e8a 100644 --- a/orchestra/contrib/webapps/backends/moodle.py +++ b/orchestra/contrib/webapps/backends/moodle.py @@ -1,7 +1,7 @@ import os import textwrap -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController, replace diff --git a/orchestra/contrib/webapps/backends/php.py b/orchestra/contrib/webapps/backends/php.py index f5765c2..7478fc4 100644 --- a/orchestra/contrib/webapps/backends/php.py +++ b/orchestra/contrib/webapps/backends/php.py @@ -3,7 +3,7 @@ import textwrap from collections import OrderedDict from django.template import Template, Context -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController diff --git a/orchestra/contrib/webapps/backends/python.py b/orchestra/contrib/webapps/backends/python.py index fa0b988..63013d5 100644 --- a/orchestra/contrib/webapps/backends/python.py +++ b/orchestra/contrib/webapps/backends/python.py @@ -1,7 +1,7 @@ import os import textwrap -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController, replace diff --git a/orchestra/contrib/webapps/backends/static.py b/orchestra/contrib/webapps/backends/static.py index f517319..f424d50 100644 --- a/orchestra/contrib/webapps/backends/static.py +++ b/orchestra/contrib/webapps/backends/static.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController diff --git a/orchestra/contrib/webapps/backends/symboliclink.py b/orchestra/contrib/webapps/backends/symboliclink.py index 1b43f0d..2ba3fac 100644 --- a/orchestra/contrib/webapps/backends/symboliclink.py +++ b/orchestra/contrib/webapps/backends/symboliclink.py @@ -1,6 +1,6 @@ import textwrap -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController, replace diff --git a/orchestra/contrib/webapps/backends/webalizer.py b/orchestra/contrib/webapps/backends/webalizer.py index d715e98..c9d3556 100644 --- a/orchestra/contrib/webapps/backends/webalizer.py +++ b/orchestra/contrib/webapps/backends/webalizer.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController diff --git a/orchestra/contrib/webapps/backends/wordpress.py b/orchestra/contrib/webapps/backends/wordpress.py index cbb1641..819be38 100644 --- a/orchestra/contrib/webapps/backends/wordpress.py +++ b/orchestra/contrib/webapps/backends/wordpress.py @@ -1,7 +1,7 @@ import os import textwrap -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController, replace diff --git a/orchestra/contrib/webapps/filters.py b/orchestra/contrib/webapps/filters.py index a79cd22..794217b 100644 --- a/orchestra/contrib/webapps/filters.py +++ b/orchestra/contrib/webapps/filters.py @@ -1,5 +1,5 @@ from django.contrib.admin import SimpleListFilter -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from .types import AppType diff --git a/orchestra/contrib/webapps/migrations/0001_initial.py b/orchestra/contrib/webapps/migrations/0001_initial.py deleted file mode 100644 index 54a329d..0000000 --- a/orchestra/contrib/webapps/migrations/0001_initial.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.db.models.deletion -import orchestra.core.validators -import jsonfield.fields -from django.conf import settings - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='WebApp', - fields=[ - ('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)), - ('name', models.CharField(verbose_name='name', validators=[orchestra.core.validators.validate_name], help_text='The app will be installed in %(home)s/webapps/%(app_name)s', max_length=128)), - ('type', models.CharField(verbose_name='type', max_length=32, choices=[('php', 'PHP'), ('python', 'Python'), ('static', 'Static'), ('symbolic-link', 'Symbolic link'), ('webalizer', 'Webalizer'), ('wordpress-php', 'WordPress')])), - ('data', jsonfield.fields.JSONField(verbose_name='data', blank=True, help_text='Extra information dependent of each service.', default={})), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, verbose_name='Account', related_name='webapps', to=settings.AUTH_USER_MODEL)), - ], - options={ - 'verbose_name': 'Web App', - 'verbose_name_plural': 'Web Apps', - }, - ), - migrations.CreateModel( - name='WebAppOption', - fields=[ - ('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)), - ('name', models.CharField(verbose_name='name', max_length=128, choices=[(None, '-------'), ('FileSystem', [('public-root', 'Public root')]), ('Process', [('timeout', 'Process timeout'), ('processes', 'Number of processes')]), ('PHP', [('enable_functions', 'Enable functions'), ('allow_url_include', 'Allow URL include'), ('allow_url_fopen', 'Allow URL fopen'), ('auto_append_file', 'Auto append file'), ('auto_prepend_file', 'Auto prepend file'), ('date.timezone', 'date.timezone'), ('default_socket_timeout', 'Default socket timeout'), ('display_errors', 'Display errors'), ('extension', 'Extension'), ('magic_quotes_gpc', 'Magic quotes GPC'), ('magic_quotes_runtime', 'Magic quotes runtime'), ('magic_quotes_sybase', 'Magic quotes sybase'), ('max_input_time', 'Max input time'), ('max_input_vars', 'Max input vars'), ('memory_limit', 'Memory limit'), ('mysql.connect_timeout', 'Mysql connect timeout'), ('output_buffering', 'Output buffering'), ('register_globals', 'Register globals'), ('post_max_size', 'Post max size'), ('sendmail_path', 'Sendmail path'), ('session.bug_compat_warn', 'Session bug compat warning'), ('session.auto_start', 'Session auto start'), ('safe_mode', 'Safe mode'), ('suhosin.post.max_vars', 'Suhosin POST max vars'), ('suhosin.get.max_vars', 'Suhosin GET max vars'), ('suhosin.request.max_vars', 'Suhosin request max vars'), ('suhosin.session.encrypt', 'Suhosin session encrypt'), ('suhosin.simulation', 'Suhosin simulation'), ('suhosin.executor.include.whitelist', 'Suhosin executor include whitelist'), ('upload_max_filesize', 'Upload max filesize'), ('zend_extension', 'Zend extension')])])), - ('value', models.CharField(verbose_name='value', max_length=256)), - ('webapp', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, verbose_name='Web application', related_name='options', to='webapps.WebApp')), - ], - options={ - 'verbose_name': 'option', - 'verbose_name_plural': 'options', - }, - ), - migrations.AlterUniqueTogether( - name='webappoption', - unique_together=set([('webapp', 'name')]), - ), - migrations.AlterUniqueTogether( - name='webapp', - unique_together=set([('name', 'account')]), - ), - ] diff --git a/orchestra/contrib/webapps/migrations/0001_squashed_0006_auto_20210330_1049.py b/orchestra/contrib/webapps/migrations/0001_squashed_0006_auto_20210330_1049.py deleted file mode 100644 index 0074262..0000000 --- a/orchestra/contrib/webapps/migrations/0001_squashed_0006_auto_20210330_1049.py +++ /dev/null @@ -1,80 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:25 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import jsonfield.fields -import orchestra.core.validators - - -class Migration(migrations.Migration): - - replaces = [('webapps', '0001_initial'), ('webapps', '0002_auto_20170528_2011'), ('webapps', '0003_webapp_target_server'), ('webapps', '0004_webapp_comments'), ('webapps', '0005_auto_20200204_1218'), ('webapps', '0006_auto_20210330_1049')] - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('orchestration', '0007_auto_20170528_2011'), - ] - - operations = [ - migrations.CreateModel( - name='WebApp', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(help_text='The app will be installed in %(home)s/webapps/%(app_name)s', max_length=128, validators=[orchestra.core.validators.validate_name], verbose_name='name')), - ('type', models.CharField(choices=[('php', 'PHP'), ('python', 'Python'), ('static', 'Static'), ('symbolic-link', 'Symbolic link'), ('webalizer', 'Webalizer'), ('wordpress-php', 'WordPress')], max_length=32, verbose_name='type')), - ('data', jsonfield.fields.JSONField(blank=True, default={}, help_text='Extra information dependent of each service.', verbose_name='data')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='webapps', to=settings.AUTH_USER_MODEL, verbose_name='Account')), - ], - options={ - 'verbose_name': 'Web App', - 'verbose_name_plural': 'Web Apps', - }, - ), - migrations.CreateModel( - name='WebAppOption', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(choices=[(None, '-------'), ('FileSystem', [('public-root', 'Public root')]), ('Process', [('timeout', 'Process timeout'), ('processes', 'Number of processes')]), ('PHP', [('enable_functions', 'Enable functions'), ('allow_url_include', 'Allow URL include'), ('allow_url_fopen', 'Allow URL fopen'), ('auto_append_file', 'Auto append file'), ('auto_prepend_file', 'Auto prepend file'), ('date.timezone', 'date.timezone'), ('default_socket_timeout', 'Default socket timeout'), ('display_errors', 'Display errors'), ('extension', 'Extension'), ('magic_quotes_gpc', 'Magic quotes GPC'), ('magic_quotes_runtime', 'Magic quotes runtime'), ('magic_quotes_sybase', 'Magic quotes sybase'), ('max_input_time', 'Max input time'), ('max_input_vars', 'Max input vars'), ('memory_limit', 'Memory limit'), ('mysql.connect_timeout', 'Mysql connect timeout'), ('output_buffering', 'Output buffering'), ('register_globals', 'Register globals'), ('post_max_size', 'Post max size'), ('sendmail_path', 'Sendmail path'), ('session.bug_compat_warn', 'Session bug compat warning'), ('session.auto_start', 'Session auto start'), ('safe_mode', 'Safe mode'), ('suhosin.post.max_vars', 'Suhosin POST max vars'), ('suhosin.get.max_vars', 'Suhosin GET max vars'), ('suhosin.request.max_vars', 'Suhosin request max vars'), ('suhosin.session.encrypt', 'Suhosin session encrypt'), ('suhosin.simulation', 'Suhosin simulation'), ('suhosin.executor.include.whitelist', 'Suhosin executor include whitelist'), ('upload_max_filesize', 'Upload max filesize'), ('zend_extension', 'Zend extension')])], max_length=128, verbose_name='name')), - ('value', models.CharField(max_length=256, verbose_name='value')), - ('webapp', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='options', to='webapps.WebApp', verbose_name='Web application')), - ], - options={ - 'verbose_name': 'option', - 'verbose_name_plural': 'options', - }, - ), - migrations.AlterUniqueTogether( - name='webappoption', - unique_together=set([('webapp', 'name')]), - ), - migrations.AlterField( - model_name='webapp', - name='type', - field=models.CharField(choices=[('moodle-php', 'Moodle'), ('php', 'PHP'), ('python', 'Python'), ('static', 'Static'), ('symbolic-link', 'Symbolic link'), ('webalizer', 'Webalizer'), ('wordpress-php', 'WordPress')], max_length=32, verbose_name='type'), - ), - migrations.AddField( - model_name='webapp', - name='target_server', - field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='webapps', to='orchestration.Server', verbose_name='Target Server'), - preserve_default=False, - ), - migrations.AddField( - model_name='webapp', - name='comments', - field=models.TextField(blank=True, default=''), - ), - migrations.AlterUniqueTogether( - name='webapp', - unique_together=set([('name', 'account')]), - ), - migrations.AlterField( - model_name='webappoption', - name='name', - field=models.CharField(choices=[(None, '-------'), ('FileSystem', [('public-root', 'Public root')]), ('Process', [('timeout', 'Process timeout'), ('processes', 'Number of processes')]), ('PHP', [('enable_functions', 'Enable functions'), ('disable_functions', 'Disable functions'), ('allow_url_include', 'Allow URL include'), ('allow_url_fopen', 'Allow URL fopen'), ('auto_append_file', 'Auto append file'), ('auto_prepend_file', 'Auto prepend file'), ('date.timezone', 'date.timezone'), ('default_socket_timeout', 'Default socket timeout'), ('display_errors', 'Display errors'), ('extension', 'Extension'), ('include_path', 'Include path'), ('magic_quotes_gpc', 'Magic quotes GPC'), ('magic_quotes_runtime', 'Magic quotes runtime'), ('magic_quotes_sybase', 'Magic quotes sybase'), ('max_input_time', 'Max input time'), ('max_input_vars', 'Max input vars'), ('memory_limit', 'Memory limit'), ('mysql.connect_timeout', 'Mysql connect timeout'), ('output_buffering', 'Output buffering'), ('register_globals', 'Register globals'), ('post_max_size', 'Post max size'), ('sendmail_path', 'Sendmail path'), ('session.bug_compat_warn', 'Session bug compat warning'), ('session.auto_start', 'Session auto start'), ('safe_mode', 'Safe mode'), ('suhosin.post.max_vars', 'Suhosin POST max vars'), ('suhosin.get.max_vars', 'Suhosin GET max vars'), ('suhosin.request.max_vars', 'Suhosin request max vars'), ('suhosin.session.encrypt', 'Suhosin session encrypt'), ('suhosin.simulation', 'Suhosin simulation'), ('suhosin.executor.include.whitelist', 'Suhosin executor include whitelist'), ('upload_max_filesize', 'Upload max filesize'), ('upload_tmp_dir', 'Upload tmp dir'), ('zend_extension', 'Zend extension')])], max_length=128, verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/webapps/migrations/0002_auto_20170528_2011.py b/orchestra/contrib/webapps/migrations/0002_auto_20170528_2011.py deleted file mode 100644 index 18300ca..0000000 --- a/orchestra/contrib/webapps/migrations/0002_auto_20170528_2011.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:11 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('webapps', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='webapp', - name='type', - field=models.CharField(choices=[('moodle-php', 'Moodle'), ('php', 'PHP'), ('python', 'Python'), ('static', 'Static'), ('symbolic-link', 'Symbolic link'), ('webalizer', 'Webalizer'), ('wordpress-php', 'WordPress')], max_length=32, verbose_name='type'), - ), - migrations.AlterField( - model_name='webappoption', - name='name', - field=models.CharField(choices=[(None, '-------'), ('FileSystem', [('public-root', 'Public root')]), ('Process', [('timeout', 'Process timeout'), ('processes', 'Number of processes')]), ('PHP', [('enable_functions', 'Enable functions'), ('disable_functions', 'Disable functions'), ('allow_url_include', 'Allow URL include'), ('allow_url_fopen', 'Allow URL fopen'), ('auto_append_file', 'Auto append file'), ('auto_prepend_file', 'Auto prepend file'), ('date.timezone', 'date.timezone'), ('default_socket_timeout', 'Default socket timeout'), ('display_errors', 'Display errors'), ('extension', 'Extension'), ('include_path', 'Include path'), ('magic_quotes_gpc', 'Magic quotes GPC'), ('magic_quotes_runtime', 'Magic quotes runtime'), ('magic_quotes_sybase', 'Magic quotes sybase'), ('max_input_time', 'Max input time'), ('max_input_vars', 'Max input vars'), ('memory_limit', 'Memory limit'), ('mysql.connect_timeout', 'Mysql connect timeout'), ('output_buffering', 'Output buffering'), ('register_globals', 'Register globals'), ('post_max_size', 'Post max size'), ('sendmail_path', 'Sendmail path'), ('session.bug_compat_warn', 'Session bug compat warning'), ('session.auto_start', 'Session auto start'), ('safe_mode', 'Safe mode'), ('suhosin.post.max_vars', 'Suhosin POST max vars'), ('suhosin.get.max_vars', 'Suhosin GET max vars'), ('suhosin.request.max_vars', 'Suhosin request max vars'), ('suhosin.session.encrypt', 'Suhosin session encrypt'), ('suhosin.simulation', 'Suhosin simulation'), ('suhosin.executor.include.whitelist', 'Suhosin executor include whitelist'), ('upload_max_filesize', 'Upload max filesize'), ('upload_tmp_dir', 'Upload tmp dir'), ('zend_extension', 'Zend extension')])], max_length=128, verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/webapps/migrations/0003_webapp_target_server.py b/orchestra/contrib/webapps/migrations/0003_webapp_target_server.py deleted file mode 100644 index 4bddb31..0000000 --- a/orchestra/contrib/webapps/migrations/0003_webapp_target_server.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-07-04 08:49 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('orchestration', '0007_auto_20170528_2011'), - ('webapps', '0002_auto_20170528_2011'), - ] - - operations = [ - migrations.AddField( - model_name='webapp', - name='target_server', - field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='webapps', to='orchestration.Server', verbose_name='Target Server'), - preserve_default=False, - ), - ] diff --git a/orchestra/contrib/webapps/migrations/0004_webapp_comments.py b/orchestra/contrib/webapps/migrations/0004_webapp_comments.py deleted file mode 100644 index 25ad65d..0000000 --- a/orchestra/contrib/webapps/migrations/0004_webapp_comments.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2020-02-04 11:17 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('webapps', '0003_webapp_target_server'), - ] - - operations = [ - migrations.AddField( - model_name='webapp', - name='comments', - field=models.TextField(default=''), - preserve_default=False, - ), - ] diff --git a/orchestra/contrib/webapps/migrations/0005_auto_20200204_1218.py b/orchestra/contrib/webapps/migrations/0005_auto_20200204_1218.py deleted file mode 100644 index 80b315f..0000000 --- a/orchestra/contrib/webapps/migrations/0005_auto_20200204_1218.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2020-02-04 11:18 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('webapps', '0004_webapp_comments'), - ] - - operations = [ - migrations.AlterField( - model_name='webapp', - name='comments', - field=models.TextField(default=''), - ), - ] diff --git a/orchestra/contrib/webapps/migrations/0006_auto_20210330_1049.py b/orchestra/contrib/webapps/migrations/0006_auto_20210330_1049.py deleted file mode 100644 index 1c27407..0000000 --- a/orchestra/contrib/webapps/migrations/0006_auto_20210330_1049.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-03-30 10:49 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('webapps', '0005_auto_20200204_1218'), - ] - - operations = [ - migrations.AlterField( - model_name='webapp', - name='comments', - field=models.TextField(blank=True, default=''), - ), - ] diff --git a/orchestra/contrib/webapps/migrations/__init__.py b/orchestra/contrib/webapps/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/webapps/models.py b/orchestra/contrib/webapps/models.py index 42b3a22..21f0797 100644 --- a/orchestra/contrib/webapps/models.py +++ b/orchestra/contrib/webapps/models.py @@ -3,7 +3,7 @@ from collections import OrderedDict from django.db import models from django.utils.functional import cached_property -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from jsonfield import JSONField from orchestra.core import validators diff --git a/orchestra/contrib/webapps/options.py b/orchestra/contrib/webapps/options.py index 5d61618..66a9a37 100644 --- a/orchestra/contrib/webapps/options.py +++ b/orchestra/contrib/webapps/options.py @@ -3,7 +3,7 @@ import re from functools import lru_cache from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra import plugins from orchestra.utils.python import import_class diff --git a/orchestra/contrib/webapps/types/__init__.py b/orchestra/contrib/webapps/types/__init__.py index 33020d3..eb1b7d1 100644 --- a/orchestra/contrib/webapps/types/__init__.py +++ b/orchestra/contrib/webapps/types/__init__.py @@ -3,7 +3,7 @@ import os from functools import lru_cache from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra import plugins from orchestra.plugins.forms import PluginDataForm diff --git a/orchestra/contrib/webapps/types/cms.py b/orchestra/contrib/webapps/types/cms.py index 0343ce1..03524d7 100644 --- a/orchestra/contrib/webapps/types/cms.py +++ b/orchestra/contrib/webapps/types/cms.py @@ -2,7 +2,7 @@ from django import forms from django.core.exceptions import ValidationError from django.urls import reverse from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from orchestra.contrib.databases.models import Database, DatabaseUser diff --git a/orchestra/contrib/webapps/types/misc.py b/orchestra/contrib/webapps/types/misc.py index f3837fd..1619bbf 100644 --- a/orchestra/contrib/webapps/types/misc.py +++ b/orchestra/contrib/webapps/types/misc.py @@ -1,7 +1,7 @@ import os from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from ..options import AppOption diff --git a/orchestra/contrib/webapps/types/moodle.py b/orchestra/contrib/webapps/types/moodle.py index 54921dd..aef8bbc 100644 --- a/orchestra/contrib/webapps/types/moodle.py +++ b/orchestra/contrib/webapps/types/moodle.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from .cms import CMSApp diff --git a/orchestra/contrib/webapps/types/php.py b/orchestra/contrib/webapps/types/php.py index 8c1e652..accdb0a 100644 --- a/orchestra/contrib/webapps/types/php.py +++ b/orchestra/contrib/webapps/types/php.py @@ -2,7 +2,7 @@ import os from collections import OrderedDict from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from orchestra.plugins.forms import PluginDataForm diff --git a/orchestra/contrib/webapps/types/python.py b/orchestra/contrib/webapps/types/python.py index ec9984e..22ff029 100644 --- a/orchestra/contrib/webapps/types/python.py +++ b/orchestra/contrib/webapps/types/python.py @@ -1,7 +1,7 @@ import re from django import forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from orchestra.plugins.forms import PluginDataForm diff --git a/orchestra/contrib/webapps/types/wordpress.py b/orchestra/contrib/webapps/types/wordpress.py index 0d02ff8..926f7ac 100644 --- a/orchestra/contrib/webapps/types/wordpress.py +++ b/orchestra/contrib/webapps/types/wordpress.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from .cms import CMSApp diff --git a/orchestra/contrib/websites/admin.py b/orchestra/contrib/websites/admin.py index 2c80bf8..581796d 100644 --- a/orchestra/contrib/websites/admin.py +++ b/orchestra/contrib/websites/admin.py @@ -2,10 +2,10 @@ from django import forms from django.contrib import admin from django.urls import resolve from django.db.models import Q -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.utils.html import format_html from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin import ExtendedModelAdmin from orchestra.admin.actions import disable, enable @@ -28,7 +28,7 @@ class WebsiteDirectiveInline(admin.TabularInline): extra = 1 DIRECTIVES_HELP_TEXT = { - op.name: force_text(op.help_text) for op in SiteDirective.get_plugins() + op.name: force_str(op.help_text) for op in SiteDirective.get_plugins() } def formfield_for_dbfield(self, db_field, **kwargs): diff --git a/orchestra/contrib/websites/backends/apache.py b/orchestra/contrib/websites/backends/apache.py index 8b67111..40aafde 100644 --- a/orchestra/contrib/websites/backends/apache.py +++ b/orchestra/contrib/websites/backends/apache.py @@ -3,7 +3,7 @@ import re import textwrap from django.template import Template, Context -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController from orchestra.contrib.resources import ServiceMonitor diff --git a/orchestra/contrib/websites/backends/webalizer.py b/orchestra/contrib/websites/backends/webalizer.py index 63401ce..093aa6b 100644 --- a/orchestra/contrib/websites/backends/webalizer.py +++ b/orchestra/contrib/websites/backends/webalizer.py @@ -1,7 +1,7 @@ import os import textwrap -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.orchestration import ServiceController diff --git a/orchestra/contrib/websites/directives.py b/orchestra/contrib/websites/directives.py index 190f1ad..6192d16 100644 --- a/orchestra/contrib/websites/directives.py +++ b/orchestra/contrib/websites/directives.py @@ -3,7 +3,7 @@ from collections import defaultdict from functools import lru_cache from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra import plugins from orchestra.utils.python import import_class @@ -83,7 +83,7 @@ class SiteDirective(plugins.Plugin, metaclass=plugins.PluginMount): if value is not None: if self.unique_value and value in values.get(self.name, []): errors['value'].append(ValidationError( - _("This value is already used by other %s.") % force_text(self.get_verbose_name()) + _("This value is already used by other %s.") % force_str(self.get_verbose_name()) )) values[self.name].append(value) if errors: diff --git a/orchestra/contrib/websites/filters.py b/orchestra/contrib/websites/filters.py index 5fb19f4..1101619 100644 --- a/orchestra/contrib/websites/filters.py +++ b/orchestra/contrib/websites/filters.py @@ -1,5 +1,5 @@ from django.contrib.admin import SimpleListFilter -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ class HasWebAppsListFilter(SimpleListFilter): diff --git a/orchestra/contrib/websites/migrations/0001_initial.py b/orchestra/contrib/websites/migrations/0001_initial.py deleted file mode 100644 index f58a421..0000000 --- a/orchestra/contrib/websites/migrations/0001_initial.py +++ /dev/null @@ -1,61 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -from django.conf import settings -import django.db.models.deletion -import orchestra.core.validators - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('domains', '0001_initial'), - ('webapps', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='Content', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)), - ('path', models.CharField(validators=[orchestra.core.validators.validate_url_path], verbose_name='path', max_length=256, blank=True)), - ('webapp', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, verbose_name='web application', to='webapps.WebApp')), - ], - ), - migrations.CreateModel( - name='Website', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)), - ('name', models.CharField(validators=[orchestra.core.validators.validate_name], verbose_name='name', max_length=128)), - ('protocol', models.CharField(verbose_name='protocol', default='http', choices=[('http', 'HTTP'), ('https', 'HTTPS'), ('http/https', 'HTTP and HTTPS'), ('https-only', 'HTTPS only')], help_text='Select the protocol(s) for this website
HTTPS only performs a redirection from http to https.', max_length=16)), - ('is_active', models.BooleanField(verbose_name='active', default=True)), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='websites', verbose_name='Account', to=settings.AUTH_USER_MODEL)), - ('contents', models.ManyToManyField(through='websites.Content', to='webapps.WebApp')), - ('domains', models.ManyToManyField(verbose_name='domains', related_name='websites', to='domains.Domain')), - ], - ), - migrations.CreateModel( - name='WebsiteDirective', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)), - ('name', models.CharField(verbose_name='name', choices=[(None, '-------'), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')]), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')]), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')]), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS')])], max_length=128)), - ('value', models.CharField(verbose_name='value', max_length=256)), - ('website', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='directives', verbose_name='web site', to='websites.Website')), - ], - ), - migrations.AddField( - model_name='content', - name='website', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, verbose_name='web site', to='websites.Website'), - ), - migrations.AlterUniqueTogether( - name='website', - unique_together=set([('name', 'account')]), - ), - migrations.AlterUniqueTogether( - name='content', - unique_together=set([('website', 'path')]), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0001_squashed_0017_auto_20210330_1049.py b/orchestra/contrib/websites/migrations/0001_squashed_0017_auto_20210330_1049.py deleted file mode 100644 index e6847bc..0000000 --- a/orchestra/contrib/websites/migrations/0001_squashed_0017_auto_20210330_1049.py +++ /dev/null @@ -1,83 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-04-22 11:25 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import orchestra.core.validators - - -class Migration(migrations.Migration): - - replaces = [('websites', '0001_initial'), ('websites', '0002_auto_20160219_1036'), ('websites', '0003_auto_20170528_2011'), ('websites', '0004_auto_20170625_1813'), ('websites', '0005_auto_20170625_1840'), ('websites', '0006_auto_20170625_1840'), ('websites', '0007_auto_20170625_1840'), ('websites', '0008_auto_20170625_1841'), ('websites', '0009_auto_20170625_2206'), ('websites', '0010_auto_20170625_2214'), ('websites', '0011_auto_20170704_1117'), ('websites', '0012_auto_20190805_1134'), ('websites', '0013_auto_20200204_1217'), ('websites', '0014_auto_20200204_1218'), ('websites', '0015_auto_20200204_1219'), ('websites', '0016_auto_20200204_1221'), ('websites', '0017_auto_20210330_1049')] - - initial = True - - dependencies = [ - ('domains', '0001_initial'), - ('webapps', '0001_initial'), - ('orchestration', '0007_auto_20170528_2011'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Content', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('path', models.CharField(blank=True, max_length=256, validators=[orchestra.core.validators.validate_url_path], verbose_name='path')), - ('webapp', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='webapps.WebApp', verbose_name='web application')), - ], - ), - migrations.CreateModel( - name='Website', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=128, validators=[orchestra.core.validators.validate_name], verbose_name='name')), - ('protocol', models.CharField(choices=[('http', 'HTTP'), ('https', 'HTTPS'), ('http/https', 'HTTP and HTTPS'), ('https-only', 'HTTPS only')], default='http', help_text='Select the protocol(s) for this website
HTTPS only performs a redirection from http to https.', max_length=16, verbose_name='protocol')), - ('is_active', models.BooleanField(default=True, verbose_name='active')), - ('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='websites', to=settings.AUTH_USER_MODEL, verbose_name='Account')), - ('contents', models.ManyToManyField(through='websites.Content', to='webapps.WebApp')), - ('domains', models.ManyToManyField(related_name='websites', to='domains.Domain', verbose_name='domains')), - ], - ), - migrations.CreateModel( - name='WebsiteDirective', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(choices=[(None, '-------'), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')]), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')]), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')]), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')])], db_index=True, max_length=128, verbose_name='name')), - ('value', models.CharField(blank=True, max_length=256, verbose_name='value')), - ('website', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='directives', to='websites.Website', verbose_name='web site')), - ], - ), - migrations.AddField( - model_name='content', - name='website', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='websites.Website', verbose_name='web site'), - ), - migrations.AlterField( - model_name='website', - name='domains', - field=models.ManyToManyField(blank=True, related_name='websites', to='domains.Domain', verbose_name='domains'), - ), - migrations.AddField( - model_name='website', - name='target_server', - field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='websites', to='orchestration.Server', verbose_name='Target Server'), - preserve_default=False, - ), - migrations.AddField( - model_name='website', - name='comments', - field=models.TextField(blank=True, default=''), - ), - migrations.AlterUniqueTogether( - name='website', - unique_together=set([('name', 'account')]), - ), - migrations.AlterUniqueTogether( - name='content', - unique_together=set([('website', 'path')]), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0002_auto_20160219_1036.py b/orchestra/contrib/websites/migrations/0002_auto_20160219_1036.py deleted file mode 100644 index 7b9af1e..0000000 --- a/orchestra/contrib/websites/migrations/0002_auto_20160219_1036.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('websites', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='website', - name='domains', - field=models.ManyToManyField(to='domains.Domain', related_name='websites', verbose_name='domains', blank=True), - ), - migrations.AlterField( - model_name='websitedirective', - name='name', - field=models.CharField(choices=[(None, '-------'), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')]), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')]), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')]), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')])], db_index=True, verbose_name='name', max_length=128), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0003_auto_20170528_2011.py b/orchestra/contrib/websites/migrations/0003_auto_20170528_2011.py deleted file mode 100644 index c68a97a..0000000 --- a/orchestra/contrib/websites/migrations/0003_auto_20170528_2011.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-05-28 18:11 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('websites', '0002_auto_20160219_1036'), - ] - - operations = [ - migrations.AlterField( - model_name='websitedirective', - name='name', - field=models.CharField(choices=[(None, '-------'), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')]), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')]), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')]), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')])], db_index=True, max_length=128, verbose_name='name'), - ), - migrations.AlterField( - model_name='websitedirective', - name='value', - field=models.CharField(blank=True, max_length=256, verbose_name='value'), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0004_auto_20170625_1813.py b/orchestra/contrib/websites/migrations/0004_auto_20170625_1813.py deleted file mode 100644 index da38bc8..0000000 --- a/orchestra/contrib/websites/migrations/0004_auto_20170625_1813.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:13 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('websites', '0003_auto_20170528_2011'), - ] - - operations = [ - migrations.AlterField( - model_name='websitedirective', - name='name', - field=models.CharField(choices=[(None, '-------'), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')]), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')]), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')]), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')])], db_index=True, max_length=128, verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0005_auto_20170625_1840.py b/orchestra/contrib/websites/migrations/0005_auto_20170625_1840.py deleted file mode 100644 index 1608a3c..0000000 --- a/orchestra/contrib/websites/migrations/0005_auto_20170625_1840.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:40 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('websites', '0004_auto_20170625_1813'), - ] - - operations = [ - migrations.AlterField( - model_name='websitedirective', - name='name', - field=models.CharField(choices=[(None, '-------'), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')]), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')]), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')]), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')])], db_index=True, max_length=128, verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0006_auto_20170625_1840.py b/orchestra/contrib/websites/migrations/0006_auto_20170625_1840.py deleted file mode 100644 index d000b14..0000000 --- a/orchestra/contrib/websites/migrations/0006_auto_20170625_1840.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:40 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('websites', '0005_auto_20170625_1840'), - ] - - operations = [ - migrations.AlterField( - model_name='websitedirective', - name='name', - field=models.CharField(choices=[(None, '-------'), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')]), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')]), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')]), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')])], db_index=True, max_length=128, verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0007_auto_20170625_1840.py b/orchestra/contrib/websites/migrations/0007_auto_20170625_1840.py deleted file mode 100644 index 3ac7997..0000000 --- a/orchestra/contrib/websites/migrations/0007_auto_20170625_1840.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:40 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('websites', '0006_auto_20170625_1840'), - ] - - operations = [ - migrations.AlterField( - model_name='websitedirective', - name='name', - field=models.CharField(choices=[(None, '-------'), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')]), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')]), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')]), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')])], db_index=True, max_length=128, verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0008_auto_20170625_1841.py b/orchestra/contrib/websites/migrations/0008_auto_20170625_1841.py deleted file mode 100644 index 55d02cc..0000000 --- a/orchestra/contrib/websites/migrations/0008_auto_20170625_1841.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 16:41 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('websites', '0007_auto_20170625_1840'), - ] - - operations = [ - migrations.AlterField( - model_name='websitedirective', - name='name', - field=models.CharField(choices=[(None, '-------'), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')]), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')]), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')]), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')])], db_index=True, max_length=128, verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0009_auto_20170625_2206.py b/orchestra/contrib/websites/migrations/0009_auto_20170625_2206.py deleted file mode 100644 index c2ca54c..0000000 --- a/orchestra/contrib/websites/migrations/0009_auto_20170625_2206.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 20:06 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('websites', '0008_auto_20170625_1841'), - ] - - operations = [ - migrations.AlterField( - model_name='websitedirective', - name='name', - field=models.CharField(choices=[(None, '-------'), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')]), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')]), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')]), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')])], db_index=True, max_length=128, verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0010_auto_20170625_2214.py b/orchestra/contrib/websites/migrations/0010_auto_20170625_2214.py deleted file mode 100644 index de44350..0000000 --- a/orchestra/contrib/websites/migrations/0010_auto_20170625_2214.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-06-25 20:14 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('websites', '0009_auto_20170625_2206'), - ] - - operations = [ - migrations.AlterField( - model_name='websitedirective', - name='name', - field=models.CharField(choices=[(None, '-------'), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')]), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')]), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')]), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')])], db_index=True, max_length=128, verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0011_auto_20170704_1117.py b/orchestra/contrib/websites/migrations/0011_auto_20170704_1117.py deleted file mode 100644 index 00c33a0..0000000 --- a/orchestra/contrib/websites/migrations/0011_auto_20170704_1117.py +++ /dev/null @@ -1,28 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2017-07-04 09:17 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('orchestration', '0007_auto_20170528_2011'), - ('websites', '0010_auto_20170625_2214'), - ] - - operations = [ - migrations.AddField( - model_name='website', - name='target_server', - field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='websites', to='orchestration.Server', verbose_name='Target Server'), - preserve_default=False, - ), - migrations.AlterField( - model_name='websitedirective', - name='name', - field=models.CharField(choices=[(None, '-------'), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')]), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')]), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')]), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')])], db_index=True, max_length=128, verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0012_auto_20190805_1134.py b/orchestra/contrib/websites/migrations/0012_auto_20190805_1134.py deleted file mode 100644 index 906d9fb..0000000 --- a/orchestra/contrib/websites/migrations/0012_auto_20190805_1134.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2019-08-05 09:34 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('websites', '0011_auto_20170704_1117'), - ] - - operations = [ - migrations.AlterField( - model_name='websitedirective', - name='name', - field=models.CharField(choices=[(None, '-------'), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')]), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')]), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')]), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')])], db_index=True, max_length=128, verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0013_auto_20200204_1217.py b/orchestra/contrib/websites/migrations/0013_auto_20200204_1217.py deleted file mode 100644 index 3d11cbd..0000000 --- a/orchestra/contrib/websites/migrations/0013_auto_20200204_1217.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2020-02-04 11:17 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('websites', '0012_auto_20190805_1134'), - ] - - operations = [ - migrations.AddField( - model_name='website', - name='comments', - field=models.TextField(default=''), - preserve_default=False, - ), - migrations.AlterField( - model_name='websitedirective', - name='name', - field=models.CharField(choices=[(None, '-------'), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')]), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')]), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')]), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')])], db_index=True, max_length=128, verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0014_auto_20200204_1218.py b/orchestra/contrib/websites/migrations/0014_auto_20200204_1218.py deleted file mode 100644 index c5c38f0..0000000 --- a/orchestra/contrib/websites/migrations/0014_auto_20200204_1218.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2020-02-04 11:18 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('websites', '0013_auto_20200204_1217'), - ] - - operations = [ - migrations.AlterField( - model_name='website', - name='comments', - field=models.TextField(default=''), - ), - migrations.AlterField( - model_name='websitedirective', - name='name', - field=models.CharField(choices=[(None, '-------'), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')]), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')]), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')]), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')])], db_index=True, max_length=128, verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0015_auto_20200204_1219.py b/orchestra/contrib/websites/migrations/0015_auto_20200204_1219.py deleted file mode 100644 index b254561..0000000 --- a/orchestra/contrib/websites/migrations/0015_auto_20200204_1219.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2020-02-04 11:19 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('websites', '0014_auto_20200204_1218'), - ] - - operations = [ - migrations.AlterField( - model_name='websitedirective', - name='name', - field=models.CharField(choices=[(None, '-------'), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')]), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')]), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')]), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')])], db_index=True, max_length=128, verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0016_auto_20200204_1221.py b/orchestra/contrib/websites/migrations/0016_auto_20200204_1221.py deleted file mode 100644 index 1411353..0000000 --- a/orchestra/contrib/websites/migrations/0016_auto_20200204_1221.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2020-02-04 11:21 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('websites', '0015_auto_20200204_1219'), - ] - - operations = [ - migrations.AlterField( - model_name='websitedirective', - name='name', - field=models.CharField(choices=[(None, '-------'), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')]), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')]), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')]), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')])], db_index=True, max_length=128, verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/websites/migrations/0017_auto_20210330_1049.py b/orchestra/contrib/websites/migrations/0017_auto_20210330_1049.py deleted file mode 100644 index cfb047e..0000000 --- a/orchestra/contrib/websites/migrations/0017_auto_20210330_1049.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.5 on 2021-03-30 10:49 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('websites', '0016_auto_20200204_1221'), - ] - - operations = [ - migrations.AlterField( - model_name='website', - name='comments', - field=models.TextField(blank=True, default=''), - ), - migrations.AlterField( - model_name='websitedirective', - name='name', - field=models.CharField(choices=[(None, '-------'), ('HTTPD', [('redirect', 'Redirection'), ('proxy', 'Proxy'), ('error-document', 'ErrorDocumentRoot')]), ('SSL', [('ssl-ca', 'SSL CA'), ('ssl-cert', 'SSL cert'), ('ssl-key', 'SSL key')]), ('ModSecurity', [('sec-rule-remove', 'SecRuleRemoveById'), ('sec-engine', 'SecRuleEngine Off')]), ('SaaS', [('wordpress-saas', 'WordPress SaaS'), ('dokuwiki-saas', 'DokuWiki SaaS'), ('drupal-saas', 'Drupdal SaaS'), ('moodle-saas', 'Moodle SaaS')])], db_index=True, max_length=128, verbose_name='name'), - ), - ] diff --git a/orchestra/contrib/websites/migrations/__init__.py b/orchestra/contrib/websites/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/orchestra/contrib/websites/models.py b/orchestra/contrib/websites/models.py index f71d1a1..b9f00bb 100644 --- a/orchestra/contrib/websites/models.py +++ b/orchestra/contrib/websites/models.py @@ -3,7 +3,7 @@ from collections import OrderedDict from django.db import models from django.utils.functional import cached_property -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.core import validators from orchestra.utils.functional import cached diff --git a/orchestra/contrib/websites/settings.py b/orchestra/contrib/websites/settings.py index 362d4ea..147828f 100644 --- a/orchestra/contrib/websites/settings.py +++ b/orchestra/contrib/websites/settings.py @@ -1,4 +1,4 @@ -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.settings import Setting from orchestra.core.validators import validate_ip_address diff --git a/orchestra/contrib/websites/validators.py b/orchestra/contrib/websites/validators.py index 144cc52..348a1cf 100644 --- a/orchestra/contrib/websites/validators.py +++ b/orchestra/contrib/websites/validators.py @@ -1,6 +1,6 @@ from django.core.exceptions import ValidationError from django.db.models import Q -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from .models import Website diff --git a/orchestra/core/validators.py b/orchestra/core/validators.py index ef4a273..f6e1fcc 100644 --- a/orchestra/core/validators.py +++ b/orchestra/core/validators.py @@ -6,7 +6,7 @@ import phonenumbers from django.core import validators from django.core.exceptions import ValidationError from django.utils.deconstruct import deconstructible -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from ..utils.python import import_class diff --git a/orchestra/forms/options.py b/orchestra/forms/options.py index 4b3fbf4..5dfda31 100644 --- a/orchestra/forms/options.py +++ b/orchestra/forms/options.py @@ -1,6 +1,6 @@ from django import forms from django.contrib.auth import forms as auth_forms -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.utils.python import random_ascii diff --git a/orchestra/plugins/admin.py b/orchestra/plugins/admin.py index 9f24587..4183ced 100644 --- a/orchestra/plugins/admin.py +++ b/orchestra/plugins/admin.py @@ -1,9 +1,9 @@ import re -from django.conf.urls import url +from django.urls import re_path as url from django.contrib.admin.utils import unquote from django.shortcuts import render, redirect -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.admin.utils import wrap_admin_view @@ -46,7 +46,7 @@ class SelectPluginAdminMixin(object): opts = self.model._meta info = opts.app_label, opts.model_name select_urls = [ - url("select-plugin/$", + url("add/select-plugin/$", wrap_admin_view(self, self.select_plugin_view), name='%s_%s_select_plugin' % info), ] diff --git a/orchestra/plugins/forms.py b/orchestra/plugins/forms.py index 0394f74..d788f36 100644 --- a/orchestra/plugins/forms.py +++ b/orchestra/plugins/forms.py @@ -1,5 +1,5 @@ from django import forms -from django.utils.encoding import force_text +from django.utils.encoding import force_str from orchestra.admin.utils import admin_link from orchestra.forms.widgets import SpanWidget @@ -10,7 +10,7 @@ class PluginForm(forms.ModelForm): super().__init__(*args, **kwargs) if self.plugin_field in self.fields: value = self.plugin.get_name() - display = '%s change' % force_text(self.plugin.verbose_name) + display = '%s change' % force_str(self.plugin.verbose_name) self.fields[self.plugin_field].widget = SpanWidget(original=value, display=display) help_text = self.fields[self.plugin_field].help_text self.fields[self.plugin_field].help_text = getattr(self.plugin, 'help_text', help_text) diff --git a/orchestra/plugins/options.py b/orchestra/plugins/options.py index 581c94d..c79d94c 100644 --- a/orchestra/plugins/options.py +++ b/orchestra/plugins/options.py @@ -38,7 +38,7 @@ class Plugin(object): @classmethod def get_verbose_name(cls): - # don't evaluate p.verbose_name ugettext_lazy + # don't evaluate p.verbose_name gettext_lazy verbose = getattr(cls.verbose_name, '_proxy____args', [cls.verbose_name]) if verbose[0]: return cls.verbose_name diff --git a/orchestra/settings.py b/orchestra/settings.py index 9dd4556..86c39ca 100644 --- a/orchestra/settings.py +++ b/orchestra/settings.py @@ -1,5 +1,5 @@ from django.core.validators import validate_email -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.contrib.settings import Setting diff --git a/orchestra/static/orchestra/icons/taskstate.png b/orchestra/static/orchestra/icons/taskstate.png old mode 100755 new mode 100644 diff --git a/orchestra/utils/html.py b/orchestra/utils/html.py index c874154..828e837 100644 --- a/orchestra/utils/html.py +++ b/orchestra/utils/html.py @@ -2,7 +2,7 @@ import textwrap from django.templatetags.static import static from django.utils.html import format_html -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import gettext_lazy as _ from orchestra.utils.sys import run @@ -20,6 +20,7 @@ def html_to_pdf(html, pagination=False): cmd = textwrap.dedent("""\ PATH=$PATH:/usr/local/bin/ xvfb-run -a -s "-screen 0 2480x3508x16" wkhtmltopdf -q \\ + --enable-local-file-access \\ --use-xserver \\ %(pagination)s \\ --margin-bottom 22 \\ diff --git a/orchestra/utils/humanize.py b/orchestra/utils/humanize.py index d905b88..4cee346 100644 --- a/orchestra/utils/humanize.py +++ b/orchestra/utils/humanize.py @@ -1,13 +1,13 @@ from datetime import datetime from django.utils import timezone -from django.utils.translation import ungettext, ugettext as _ +from django.utils.translation import ngettext, gettext as _ def verbose_time(n, units, ago='ago'): if n >= 5: return _("{n} {units} {ago}").format(n=int(n), units=units, ago=ago) - return ungettext( + return ngettext( _("{n:.1f} {s_units} {ago}"), _("{n:.1f} {units} {ago}"), n ).format(n=n, units=units, s_units=units[:-1], ago=ago) @@ -22,7 +22,7 @@ OLDER_CHUNKS = ( def _un(singular__plural, n=None): singular, plural = singular__plural - return ungettext(singular, plural, n) + return ngettext(singular, plural, n) def naturaldatetime(date, show_seconds=False): diff --git a/scripts/containers/create.sh b/scripts/containers/create.sh old mode 100755 new mode 100644 diff --git a/scripts/containers/deploy-dev.sh b/scripts/containers/deploy-dev.sh old mode 100755 new mode 100644