1384: Этап №4 - Имя URLa выставки

решена проблема с переводами, отредактирована форма фильтра в админке событий
remotes/origin/mobile_from_stage4
Alexander Burdeiny 10 years ago
parent a327661c81
commit f208b5bdb2
  1. 27
      exposition/management/commands/check_translation.py
  2. 1
      exposition/management/commands/check_url.py
  3. 1
      fabfile.py
  4. 4
      functions/admin_forms.py

@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
from django.core.management.base import NoArgsCommand
from django.conf import settings
from conference.models import Conference
from exposition.models import Exposition
from functions.form_check import translit_with_separator
class Command(NoArgsCommand):
objects_per_cycle = 1000
def handle_noargs(self, **options):
for model in [Conference, Exposition]:
for lang_code, name in settings.LANGUAGES:
print('checking {name}:{lang}'.format(name=model.__name__, lang=lang_code))
self.run_objects(model, lang_code)
print('Done.')
def run_objects(self, model, lang_code):
qs = model.objects.all().exclude(translations__language_code=lang_code)
print('Total objects {total}'.format(total=qs.count()))
for event in qs:
event.translate(lang_code)
if lang_code == 'ru':
event.bad_url = True
event.save()

@ -13,6 +13,7 @@ class Command(NoArgsCommand):
for model in [Conference, Exposition]: for model in [Conference, Exposition]:
print('checking {name}'.format(name=model.__name__)) print('checking {name}'.format(name=model.__name__))
self.run_objects(model) self.run_objects(model)
print('Done.')
def run_objects(self, model): def run_objects(self, model):
object_ids = [] object_ids = []

1
fabfile.py vendored

@ -180,3 +180,4 @@ def ticket1384():
run('python manage.py migrate exposition') run('python manage.py migrate exposition')
run('python manage.py migrate conference') run('python manage.py migrate conference')
run('python manage.py check_url') run('python manage.py check_url')
run('python manage.py check_translation')

@ -52,6 +52,7 @@ class AdminFilterForm(forms.Form):
class EventsAdminFilterFormMixin(forms.Form): class EventsAdminFilterFormMixin(forms.Form):
no_theme = forms.BooleanField(label=_(u'Без темы'), required=False) no_theme = forms.BooleanField(label=_(u'Без темы'), required=False)
bad_url = forms.BooleanField(label=_(u'Подозрение на неправильный урл'), required=False) bad_url = forms.BooleanField(label=_(u'Подозрение на неправильный урл'), required=False)
url = forms.CharField(label=_(u'URL'), required=False)
def filter(self): def filter(self):
qs = super(EventsAdminFilterFormMixin, self).filter() qs = super(EventsAdminFilterFormMixin, self).filter()
@ -59,4 +60,7 @@ class EventsAdminFilterFormMixin(forms.Form):
qs = qs.filter(bad_url=True) qs = qs.filter(bad_url=True)
if self.cleaned_data['no_theme']: if self.cleaned_data['no_theme']:
qs = qs.filter(theme__isnull=True) qs = qs.filter(theme__isnull=True)
if self.cleaned_data['url']:
qs = qs.filter(url=self.cleaned_data['url'])
return qs return qs

Loading…
Cancel
Save