diff --git a/conference/forms.py b/conference/forms.py index 4cba3c0b..49a48de8 100644 --- a/conference/forms.py +++ b/conference/forms.py @@ -34,10 +34,9 @@ class ConferenceCreateForm(forms.Form): save function saves data in Conference object. If it doesnt exist create new object """ - PERIODIC = ((0, u'Не выбрано'), - (1.0, u'Ежегодно'), (2.0, u'2 раза в год'), (3.0, u'3 раза в год'), - (4.0, u'4 раза в год'), (5.0, u'5 раз в год'), - (0.5, u'Раз в 2 года'),(0.33, u'Раз в 3 года'),(0.25, u'Раз в 4 года')) + PERIODIC = ((0, u'Не выбрано'), (1.0, u'Ежегодно'), (2.0, u'2 раза в год'), (3.0, u'3 раза в год'), + (4.0, u'4 раза в год'), (5.0, u'5 раз в год'), (0.5, u'Раз в 2 года'),(0.33, u'Раз в 3 года'), + (0.25, u'Раз в 4 года'), (0.2, u'Раз в 5 лет')) public = [(item1, item2) for item1, item2 in BIT_AUDIENCE] @@ -68,8 +67,8 @@ class ConferenceCreateForm(forms.Form): web_page = forms.CharField(label='Веб страница', required=False) link = forms.CharField(label='Линк на регистрацию', required=False) foundation_year = forms.CharField(label='Год основания', required=False) - members = forms.CharField(label='Посетители', required=False) - visitors = forms.CharField(label='Участники', required=False) + members = forms.CharField(label='Участники', required=False) + visitors = forms.CharField(label='Посетители', required=False) discount = forms.CharField(label='Cкидка(%)', required=False) # currency = forms.ChoiceField(label='Валюта', choices=currencies, required=False) diff --git a/exposition/forms.py b/exposition/forms.py index 6d5b5538..d93d0da2 100644 --- a/exposition/forms.py +++ b/exposition/forms.py @@ -32,10 +32,9 @@ class ExpositionCreateForm(forms.Form): save function saves data in Exposition object. If it doesnt exist create new object """ - PERIODIC = ((0, u'Не выбрано'), - (1.0, u'Ежегодно'), (2.0, u'2 раза в год'), (3.0, u'3 раза в год'), - (4.0, u'4 раза в год'), (5.0, u'5 раз в год'), - (0.5, u'Раз в 2 года'),(0.33, u'Раз в 3 года'),(0.25, u'Раз в 4 года')) + PERIODIC = ((0, u'Не выбрано'), (1.0, u'Ежегодно'), (2.0, u'2 раза в год'), (3.0, u'3 раза в год'), + (4.0, u'4 раза в год'), (5.0, u'5 раз в год'), (0.5, u'Раз в 2 года'),(0.33, u'Раз в 3 года'), + (0.25, u'Раз в 4 года'), (0.2, u'Раз в 5 лет')) public = [(item1, item2) for item1, item2 in BIT_AUDIENCE] currencies = [(item, item) for item in CURRENCY] diff --git a/exposition/models.py b/exposition/models.py index 9fd2fdce..b2c55878 100644 --- a/exposition/models.py +++ b/exposition/models.py @@ -218,9 +218,10 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin): data = {} model = type(self) for code, name in settings.LANGUAGES: - obj = model._meta.translations_model.objects.get(language_code = code,master__id=self.id) #access to translated fields - data['title_%s'%code] = obj.name - data['description_%s'%code] = obj.description + # access to translated fields + obj = model._meta.translations_model.objects.get(language_code=code, master__id=self.id) #access to translated fields + data['title_%s' % code] = obj.name + data['description_%s ' % code] = obj.description gallery = Gallery() @@ -235,7 +236,7 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin): return self.tag.language().all() def statistic_exists(self): - return Statistic.objects,filter(exposition=self).exists() + return Statistic.objects.filter(exposition=self).exists() def upload_photo(self, photo ,gallery=None): @@ -262,11 +263,10 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin): return ', '.join(audience) - def get_periodic(self): periodic = {0: '', 1.0: _(u'Ежегодно'), 2.0: _(u'2 раза в год'), 3.0: _(u'3 раза в год'), 4.0: _(u'4 раза в год'), 5.0: _(u'5 раз в год'), 0.5: _(u'Раз в 2 года'), - 0.33: _(u'Раз в 3 года'), 0.25: _(u'Раз в 4 года')} + 0.33: _(u'Раз в 3 года'), 0.25: _(u'Раз в 4 года'), 0.2: _(u'Раз в 5 лет')} return periodic.get(self.periodic) def get_nearest_events(self): @@ -281,8 +281,6 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin): def get_catalog_url(self): return self.catalog - #return '/expositions/' - def get_event_type(self): return _(u'Выставки') diff --git a/meta/models.py b/meta/models.py index 98c6c5cd..3e5587a5 100644 --- a/meta/models.py +++ b/meta/models.py @@ -1,25 +1,25 @@ # -*- coding: utf-8 -*- +import copy from django.db import models from django.utils import translation from django.db.models.signals import post_save from django.utils.translation import ugettext_lazy as _ from django.conf import settings -from django.core.urlresolvers import reverse_lazy from django.core.cache import cache +from functions.signal_handlers import post_save_handler from hvad.models import TranslatableModel, TranslatedFields, TranslationManager from pymorphy.django_conf import default_morph as morph -from functions.signal_handlers import post_save_handler -import copy - # additional funcs -MONTHES = {'jan': _(u'январе'), 'feb': _(u'феврале'), 'mar': _(u'марте'), 'apr': _(u'апреле'), +def get_month_inflect(value, key): + MONTHES = {'jan': _(u'январе'), 'feb': _(u'феврале'), 'mar': _(u'марте'), 'apr': _(u'апреле'), 'may': _(u'мае'), 'jun': _(u'июне'), u'jul': _(u'июле'), 'aug': _(u'августе'), 'sep': _(u'сентябре'), 'oct': _(u'октябре'), 'nov': _(u'ноябре'), 'dec': _(u'декабре'),} -def get_month_inflect(value, key): + return {key: MONTHES.get(value, '') } + def get_obj_inflect(obj, key): if translation.get_language() == 'ru': result = {key: getattr(obj, 'inflect', '')} @@ -27,6 +27,7 @@ def get_obj_inflect(obj, key): result = {key: getattr(obj, 'name', '')} return result + def get_theme_inflect(obj, key): if translation.get_language() == 'ru': result = {'theme_inflect': getattr(obj, 'inflect', ''), @@ -36,6 +37,7 @@ def get_theme_inflect(obj, key): 'theme_name': getattr(obj, 'name', '')} return result + def get_tag_inflect(obj, key): if translation.get_language() == 'ru': result = {'tag_inflect': getattr(obj, 'inflect', ''), @@ -47,47 +49,54 @@ def get_tag_inflect(obj, key): class MetaSetting(TranslatableModel): + """ + setting that generates meta fields + """ name = models.CharField(max_length=100, unique=True) translations = TranslatedFields( - title = models.CharField(max_length=255, blank=True), - description = models.CharField(max_length=255, blank=True), - keywords = models.CharField(max_length=255, blank=True), - h1 = models.CharField(max_length=255, blank=True), + title=models.CharField(max_length=255, blank=True), + description=models.CharField(max_length=255, blank=True), + keywords=models.CharField(max_length=255, blank=True), + h1=models.CharField(max_length=255, blank=True), ) - + # params that handles for objects object_params = {'object_name': 'name', 'object_title': 'main_title', 'city': 'city', 'country': 'country'} - + # default params params = {'month': get_month_inflect, 'country': get_obj_inflect, 'city': get_obj_inflect, 'theme': get_theme_inflect, 'tag': get_tag_inflect} + monthes = {'jan': _(u'январе'), 'feb': _(u'феврале'), 'mar': _(u'марте'), 'apr': _(u'апреле'), 'may': _(u'мае'), 'jun': _(u'июне'), u'jul': _(u'июле'), 'aug': _(u'августе'), 'sep': _(u'сентябре'), 'oct': _(u'октябре'), 'nov': _(u'ноябре'), 'dec': _(u'декабре'),} - def __unicode__(self): return self.name - def generate_meta(self, params, obj=None): """ + generating meta fields by given params and current object fields + obj must be in current language """ - + # current language lang = translation.get_language() + updates = {} if obj: + # if objects - generate fields from object_params field for key, value in self.object_params.iteritems(): updates.update({key: getattr(obj, value, '')}) for key, value in params.iteritems(): + # iterate through default params if key in self.params: updates.update(self.params[key](value, key)) params.update(updates) - + # current translation object tr = self.translations.get(language_code=lang) title = tr.title.format(**params) description = tr.description.format(**params) - keywords = []#tr.keywords.format(**params) + keywords = []#tr.keywords.format(**params) uncoment if keywords need h1 = tr.h1.format(**params) return {'title': title, 'description': description, 'keywords': keywords, 'h1': h1} @@ -101,7 +110,6 @@ class MetaSetting(TranslatableModel): s = morph.inflect_ru(s, u'пр') return s - def get_title(self): title = self.title return title @@ -119,11 +127,6 @@ class MetaSetting(TranslatableModel): return [] -post_save.connect(post_save_handler, sender=MetaSetting) - - -# SEO - tests # - class SeoTextManager(TranslationManager): cache_time = 120 @@ -142,6 +145,9 @@ class SeoTextManager(TranslationManager): class SeoText(TranslatableModel): + """ + store seo data for specified urls + """ url = models.CharField(max_length=50, unique=True, verbose_name=u"URL: www.expomap.ru") translations = TranslatedFields( @@ -191,3 +197,6 @@ class SeoText(TranslatableModel): def __unicode__(self): return self.url + + +post_save.connect(post_save_handler, sender=MetaSetting) \ No newline at end of file diff --git a/photologue/models.py b/photologue/models.py index 7e5ab25c..781cf48a 100644 --- a/photologue/models.py +++ b/photologue/models.py @@ -171,8 +171,8 @@ class UserMark(models.Model): @python_2_unicode_compatible class Gallery(TranslatableModel): translations = TranslatedFields( - title = models.CharField(_('title'), max_length=200), - description = models.TextField(_('description'), blank=True) + title=models.CharField(_('title'), max_length=200), + description=models.TextField(_('description'), blank=True) ) date_added = models.DateTimeField(_('date published'), default=now) diff --git a/templates/client/includes/exposition/exposition_object.html b/templates/client/includes/exposition/exposition_object.html index a24da278..19833d5b 100644 --- a/templates/client/includes/exposition/exposition_object.html +++ b/templates/client/includes/exposition/exposition_object.html @@ -161,7 +161,7 @@