From 032d989323a1186b457c0c9bbf6524e863f9323d Mon Sep 17 00:00:00 2001 From: Nazar Kotjuk Date: Wed, 14 Oct 2015 00:41:46 +0300 Subject: [PATCH] dev fixes --- conference/models.py | 10 +++++++ exposition/models.py | 11 +++----- functions/model_mixin.py | 17 +++++------- functions/models_methods.py | 16 ++++++++++++ proj/views.py | 26 +++++++++---------- templates/admin/article/blog_form.html | 2 +- .../conference/conference_services.html | 15 +++++------ .../client/includes/index/main_events.html | 2 +- 8 files changed, 57 insertions(+), 42 deletions(-) diff --git a/conference/models.py b/conference/models.py index f1173103..8f067230 100644 --- a/conference/models.py +++ b/conference/models.py @@ -133,6 +133,13 @@ class Conference(TranslatableModel, EventMixin, ExpoMixin): return list(qs) #return list(Service.objects.language().filter(url__in=ids, type=Service.type.conference).order_by('sort')) + def get_services_detail(self): + excluded = ['tickets'] + country_ids = [item for item, bool in self.country.services if bool==True] + ids = [item for item, bool in self.services if bool==True] + qs = Service.objects.language().exclude(url__in=excluded).filter(Q(Q(url__in=country_ids) & Q(type=Service.type.conference)) | Q(url__in=ids)) + return list(qs) + def get_nearest_events(self): if self.theme.all(): theme = self.theme.all()[0] @@ -164,6 +171,9 @@ class Conference(TranslatableModel, EventMixin, ExpoMixin): def get_visit_url(self): return '/conference-visit/%s/'%self.id + def get_note_url(self): + return '/conference/add-note/%s/'%self.url + def get_note_by_user(self, user_id): note = self.note.filter(user__id=user_id) try: diff --git a/exposition/models.py b/exposition/models.py index f8a652bb..0ba5874a 100644 --- a/exposition/models.py +++ b/exposition/models.py @@ -183,7 +183,7 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin): country_ids = [item for item, bool in self.country.services if bool==True] ids = [item for item, bool in self.services if bool==True] qs = Service.objects.language().exclude(url__in=excluded).filter(Q(Q(url__in=country_ids) & Q(type=Service.type.expo)) | Q(url__in=ids)) - return qs + return list(qs) def get_parent(self): return {} @@ -292,6 +292,9 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin): def get_visit_url(self): return '/exposition-visit/%s/'%self.id + def get_note_url(self): + return '/expo/add-note/%s/'%self.url + def get_timetables_days(self): tables = self.business_program.all() days = [] @@ -313,12 +316,6 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin): def theme_ids(self): return [item['id'] for item in self.theme.all().values('id')] - def get_main_link(self): - if self.main: - return self.main.link.get_click_link() - else: - return self.get_permanent_url() - def get_top_link(self): if self.top: return self.top.link.get_click_link() diff --git a/functions/model_mixin.py b/functions/model_mixin.py index 5577ac9c..30b0a6de 100644 --- a/functions/model_mixin.py +++ b/functions/model_mixin.py @@ -5,11 +5,6 @@ from service.models import Service class ExpoMixin(object): - -# def get_index_text(self): -# names = [tr.name for tr in self.translations.all()] -# return names - def get_logo(self): logo = self.files.filter(purpose='logo') @@ -34,6 +29,12 @@ class EventMixin(object): url = '%s%s/'%(self.get_catalog_url(), self.url) return url + def get_main_link(self): + if self.main: + return self.main.link.get_click_link() + else: + return self.get_permanent_url() + def get_paid_catalog_url(self): return self.paid_new.catalog.get_click_link() @@ -45,12 +46,6 @@ class EventMixin(object): def get_logo(self): return self.logo - """ - logo = self.files.filter(purpose='logo') - if logo: - return logo[0] - return logo - """ def get_preview(self): diff --git a/functions/models_methods.py b/functions/models_methods.py index c5c45e58..943fac5b 100644 --- a/functions/models_methods.py +++ b/functions/models_methods.py @@ -39,6 +39,22 @@ class ExpoManager(TranslationManager): return result + def conf_main(self): + lang = translation.get_language() + key = 'conf_main_page_key_%s'%lang + result = cache.get(key) + if not result: + result = list(self.language(lang). + select_related('country', 'city', 'place', 'main'). + prefetch_related('tag'). + filter(main__isnull=False). + filter(main__public=True)) + cache.set(key, result, 50) + + return result + + + class CityManager(TranslationManager): diff --git a/proj/views.py b/proj/views.py index cfb06577..4746b611 100644 --- a/proj/views.py +++ b/proj/views.py @@ -1,22 +1,18 @@ # -*- coding: utf-8 -*- -from django.core.context_processors import csrf from django.shortcuts import render_to_response from django.template import RequestContext from django.views.generic import TemplateView from django.conf import settings -from exposition.models import Exposition -from theme.models import Theme -from news.models import News -from article.models import Article -from functions.cache_mixin import JitterCacheMixin, CacheMixin - -from functions.forms import ThemeSearch, PlaceSearch - -from functions.search_forms import EventSearchForm, ExpositionSearchForm -from functions.custom_views import ExpoListView +from django.utils.translation import get_language +from functions.cache_mixin import JitterCacheMixin +from functions.forms import ThemeSearch +from functions.search_forms import ExpositionSearchForm from accounts.forms import RegistrationCompleteForm, SocialRegistrationCompleteForm from meta.models import SeoText -from django.utils.translation import get_language +from theme.models import Theme +from article.models import Article +from exposition.models import Exposition +from conference.models import Conference def clear_slashes(str_): @@ -73,11 +69,13 @@ def error404(request): class MainPageView(JitterCacheMixin, TemplateView): cache_range = settings.CACHE_RANGE - template_name = 'index.html' + template_name = 'client/index.html' def get_context_data(self, **kwargs): context = super(MainPageView, self).get_context_data(**kwargs) - ev = Exposition.objects.expo_main() + ex = Exposition.objects.expo_main() + conf = Conference.objects.conf_main() + ev = ex + conf events = sorted(ev, key=lambda x: x.main.position) # update main_page counter for event in events: diff --git a/templates/admin/article/blog_form.html b/templates/admin/article/blog_form.html index 057b565d..5bf5a5de 100644 --- a/templates/admin/article/blog_form.html +++ b/templates/admin/article/blog_form.html @@ -53,7 +53,7 @@ {% if not article %}
- +
{{ form.slug }} {{ form.slug.errors }} diff --git a/templates/client/includes/conference/conference_services.html b/templates/client/includes/conference/conference_services.html index 829bfd97..b98f4d71 100644 --- a/templates/client/includes/conference/conference_services.html +++ b/templates/client/includes/conference/conference_services.html @@ -2,13 +2,12 @@
\ No newline at end of file diff --git a/templates/client/includes/index/main_events.html b/templates/client/includes/index/main_events.html index 17368ba8..6fa3c0ca 100644 --- a/templates/client/includes/index/main_events.html +++ b/templates/client/includes/index/main_events.html @@ -36,7 +36,7 @@