Fixes before photogalery

;

q
remotes/origin/1203
Nazar Kotjuk 10 years ago
parent ce702bcd69
commit db56241d66
  1. 11
      conference/forms.py
  2. 7
      exposition/forms.py
  3. 14
      exposition/models.py
  4. 55
      meta/models.py
  5. 4
      photologue/models.py
  6. 2
      templates/client/includes/exposition/exposition_object.html

@ -34,10 +34,9 @@ class ConferenceCreateForm(forms.Form):
save function saves data in Conference object. If it doesnt exist create new object save function saves data in Conference object. If it doesnt exist create new object
""" """
PERIODIC = ((0, u'Не выбрано'), PERIODIC = ((0, u'Не выбрано'), (1.0, u'Ежегодно'), (2.0, u'2 раза в год'), (3.0, u'3 раза в год'),
(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 года'),
(4.0, u'4 раза в год'), (5.0, u'5 раз в год'), (0.25, u'Раз в 4 года'), (0.2, u'Раз в 5 лет'))
(0.5, u'Раз в 2 года'),(0.33, u'Раз в 3 года'),(0.25, u'Раз в 4 года'))
public = [(item1, item2) for item1, item2 in BIT_AUDIENCE] public = [(item1, item2) for item1, item2 in BIT_AUDIENCE]
@ -68,8 +67,8 @@ class ConferenceCreateForm(forms.Form):
web_page = forms.CharField(label='Веб страница', required=False) web_page = forms.CharField(label='Веб страница', required=False)
link = forms.CharField(label='Линк на регистрацию', required=False) link = forms.CharField(label='Линк на регистрацию', required=False)
foundation_year = forms.CharField(label='Год основания', required=False) foundation_year = forms.CharField(label='Год основания', required=False)
members = forms.CharField(label='Посетители', required=False) members = forms.CharField(label='Участники', required=False)
visitors = forms.CharField(label='Участники', required=False) visitors = forms.CharField(label='Посетители', required=False)
discount = forms.CharField(label='Cкидка(%)', required=False) discount = forms.CharField(label='Cкидка(%)', required=False)
# #
currency = forms.ChoiceField(label='Валюта', choices=currencies, required=False) currency = forms.ChoiceField(label='Валюта', choices=currencies, required=False)

@ -32,10 +32,9 @@ class ExpositionCreateForm(forms.Form):
save function saves data in Exposition object. If it doesnt exist create new object save function saves data in Exposition object. If it doesnt exist create new object
""" """
PERIODIC = ((0, u'Не выбрано'), PERIODIC = ((0, u'Не выбрано'), (1.0, u'Ежегодно'), (2.0, u'2 раза в год'), (3.0, u'3 раза в год'),
(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 года'),
(4.0, u'4 раза в год'), (5.0, u'5 раз в год'), (0.25, u'Раз в 4 года'), (0.2, u'Раз в 5 лет'))
(0.5, u'Раз в 2 года'),(0.33, u'Раз в 3 года'),(0.25, u'Раз в 4 года'))
public = [(item1, item2) for item1, item2 in BIT_AUDIENCE] public = [(item1, item2) for item1, item2 in BIT_AUDIENCE]
currencies = [(item, item) for item in CURRENCY] currencies = [(item, item) for item in CURRENCY]

@ -218,9 +218,10 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin):
data = {} data = {}
model = type(self) model = type(self)
for code, name in settings.LANGUAGES: for code, name in settings.LANGUAGES:
obj = model._meta.translations_model.objects.get(language_code = code,master__id=self.id) #access to translated fields # access to translated fields
data['title_%s'%code] = obj.name obj = model._meta.translations_model.objects.get(language_code=code, master__id=self.id) #access to translated fields
data['description_%s'%code] = obj.description data['title_%s' % code] = obj.name
data['description_%s ' % code] = obj.description
gallery = Gallery() gallery = Gallery()
@ -235,7 +236,7 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin):
return self.tag.language().all() return self.tag.language().all()
def statistic_exists(self): 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): def upload_photo(self, photo ,gallery=None):
@ -262,11 +263,10 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin):
return ', '.join(audience) return ', '.join(audience)
def get_periodic(self): def get_periodic(self):
periodic = {0: '', 1.0: _(u'Ежегодно'), 2.0: _(u'2 раза в год'), 3.0: _(u'3 раза в год'), 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 года'), 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) return periodic.get(self.periodic)
def get_nearest_events(self): def get_nearest_events(self):
@ -281,8 +281,6 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin):
def get_catalog_url(self): def get_catalog_url(self):
return self.catalog return self.catalog
#return '/expositions/'
def get_event_type(self): def get_event_type(self):
return _(u'Выставки') return _(u'Выставки')

@ -1,25 +1,25 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import copy
from django.db import models from django.db import models
from django.utils import translation from django.utils import translation
from django.db.models.signals import post_save from django.db.models.signals import post_save
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.conf import settings from django.conf import settings
from django.core.urlresolvers import reverse_lazy
from django.core.cache import cache from django.core.cache import cache
from functions.signal_handlers import post_save_handler
from hvad.models import TranslatableModel, TranslatedFields, TranslationManager from hvad.models import TranslatableModel, TranslatedFields, TranslationManager
from pymorphy.django_conf import default_morph as morph from pymorphy.django_conf import default_morph as morph
from functions.signal_handlers import post_save_handler
import copy
# additional funcs # 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'августе'), 'may': _(u'мае'), 'jun': _(u'июне'), u'jul': _(u'июле'), 'aug': _(u'августе'),
'sep': _(u'сентябре'), 'oct': _(u'октябре'), 'nov': _(u'ноябре'), 'dec': _(u'декабре'),} 'sep': _(u'сентябре'), 'oct': _(u'октябре'), 'nov': _(u'ноябре'), 'dec': _(u'декабре'),}
def get_month_inflect(value, key):
return {key: MONTHES.get(value, '') } return {key: MONTHES.get(value, '') }
def get_obj_inflect(obj, key): def get_obj_inflect(obj, key):
if translation.get_language() == 'ru': if translation.get_language() == 'ru':
result = {key: getattr(obj, 'inflect', '')} result = {key: getattr(obj, 'inflect', '')}
@ -27,6 +27,7 @@ def get_obj_inflect(obj, key):
result = {key: getattr(obj, 'name', '')} result = {key: getattr(obj, 'name', '')}
return result return result
def get_theme_inflect(obj, key): def get_theme_inflect(obj, key):
if translation.get_language() == 'ru': if translation.get_language() == 'ru':
result = {'theme_inflect': getattr(obj, 'inflect', ''), result = {'theme_inflect': getattr(obj, 'inflect', ''),
@ -36,6 +37,7 @@ def get_theme_inflect(obj, key):
'theme_name': getattr(obj, 'name', '')} 'theme_name': getattr(obj, 'name', '')}
return result return result
def get_tag_inflect(obj, key): def get_tag_inflect(obj, key):
if translation.get_language() == 'ru': if translation.get_language() == 'ru':
result = {'tag_inflect': getattr(obj, 'inflect', ''), result = {'tag_inflect': getattr(obj, 'inflect', ''),
@ -47,47 +49,54 @@ def get_tag_inflect(obj, key):
class MetaSetting(TranslatableModel): class MetaSetting(TranslatableModel):
"""
setting that generates meta fields
"""
name = models.CharField(max_length=100, unique=True) name = models.CharField(max_length=100, unique=True)
translations = TranslatedFields( translations = TranslatedFields(
title = models.CharField(max_length=255, blank=True), title=models.CharField(max_length=255, blank=True),
description = models.CharField(max_length=255, blank=True), description=models.CharField(max_length=255, blank=True),
keywords = models.CharField(max_length=255, blank=True), keywords=models.CharField(max_length=255, blank=True),
h1 = 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'} 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, params = {'month': get_month_inflect, 'country': get_obj_inflect, 'city': get_obj_inflect,
'theme': get_theme_inflect, 'tag': get_tag_inflect} 'theme': get_theme_inflect, 'tag': get_tag_inflect}
monthes = {'jan': _(u'январе'), 'feb': _(u'феврале'), 'mar': _(u'марте'), 'apr': _(u'апреле'), monthes = {'jan': _(u'январе'), 'feb': _(u'феврале'), 'mar': _(u'марте'), 'apr': _(u'апреле'),
'may': _(u'мае'), 'jun': _(u'июне'), u'jul': _(u'июле'), 'aug': _(u'августе'), 'may': _(u'мае'), 'jun': _(u'июне'), u'jul': _(u'июле'), 'aug': _(u'августе'),
'sep': _(u'сентябре'), 'oct': _(u'октябре'), 'nov': _(u'ноябре'), 'dec': _(u'декабре'),} 'sep': _(u'сентябре'), 'oct': _(u'октябре'), 'nov': _(u'ноябре'), 'dec': _(u'декабре'),}
def __unicode__(self): def __unicode__(self):
return self.name return self.name
def generate_meta(self, params, obj=None): def generate_meta(self, params, obj=None):
""" """
generating meta fields by given params and current object fields
obj must be in current language obj must be in current language
""" """
# current language
lang = translation.get_language() lang = translation.get_language()
updates = {} updates = {}
if obj: if obj:
# if objects - generate fields from object_params field
for key, value in self.object_params.iteritems(): for key, value in self.object_params.iteritems():
updates.update({key: getattr(obj, value, '')}) updates.update({key: getattr(obj, value, '')})
for key, value in params.iteritems(): for key, value in params.iteritems():
# iterate through default params
if key in self.params: if key in self.params:
updates.update(self.params[key](value, key)) updates.update(self.params[key](value, key))
params.update(updates) params.update(updates)
# current translation object
tr = self.translations.get(language_code=lang) tr = self.translations.get(language_code=lang)
title = tr.title.format(**params) title = tr.title.format(**params)
description = tr.description.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) h1 = tr.h1.format(**params)
return {'title': title, 'description': description, 'keywords': keywords, 'h1': h1} return {'title': title, 'description': description, 'keywords': keywords, 'h1': h1}
@ -101,7 +110,6 @@ class MetaSetting(TranslatableModel):
s = morph.inflect_ru(s, u'пр') s = morph.inflect_ru(s, u'пр')
return s return s
def get_title(self): def get_title(self):
title = self.title title = self.title
return title return title
@ -119,11 +127,6 @@ class MetaSetting(TranslatableModel):
return [] return []
post_save.connect(post_save_handler, sender=MetaSetting)
# SEO - tests #
class SeoTextManager(TranslationManager): class SeoTextManager(TranslationManager):
cache_time = 120 cache_time = 120
@ -142,6 +145,9 @@ class SeoTextManager(TranslationManager):
class SeoText(TranslatableModel): class SeoText(TranslatableModel):
"""
store seo data for specified urls
"""
url = models.CharField(max_length=50, unique=True, verbose_name=u"URL: www.expomap.ru") url = models.CharField(max_length=50, unique=True, verbose_name=u"URL: www.expomap.ru")
translations = TranslatedFields( translations = TranslatedFields(
@ -191,3 +197,6 @@ class SeoText(TranslatableModel):
def __unicode__(self): def __unicode__(self):
return self.url return self.url
post_save.connect(post_save_handler, sender=MetaSetting)

@ -171,8 +171,8 @@ class UserMark(models.Model):
@python_2_unicode_compatible @python_2_unicode_compatible
class Gallery(TranslatableModel): class Gallery(TranslatableModel):
translations = TranslatedFields( translations = TranslatedFields(
title = models.CharField(_('title'), max_length=200), title=models.CharField(_('title'), max_length=200),
description = models.TextField(_('description'), blank=True) description=models.TextField(_('description'), blank=True)
) )
date_added = models.DateTimeField(_('date published'), date_added = models.DateTimeField(_('date published'),
default=now) default=now)

@ -161,7 +161,7 @@
<li><a href="{{ exposition.get_permanent_url }}price/">{% trans 'Условия участия' %}</a></li> <li><a href="{{ exposition.get_permanent_url }}price/">{% trans 'Условия участия' %}</a></li>
{% if exposition.statistic_exists %} {% if exposition.statistic_exists %}
<li><a href="{{ exposition.get_permanent_url }}statistic/">{% trans 'Статистика' %}</a></li> <li><a href="{{ exposition.get_permanent_url }}statistic/">{% trans 'Статистика' %}</a></li>
{% endif %} {% endif %}
</ul> </ul>
<dl class="add-info"> <dl class="add-info">

Loading…
Cancel
Save