remotes/origin/1203
Nazar Kotjuk 10 years ago
parent 529fff6560
commit 032d989323
  1. 10
      conference/models.py
  2. 11
      exposition/models.py
  3. 17
      functions/model_mixin.py
  4. 16
      functions/models_methods.py
  5. 26
      proj/views.py
  6. 2
      templates/admin/article/blog_form.html
  7. 15
      templates/client/includes/conference/conference_services.html
  8. 2
      templates/client/includes/index/main_events.html

@ -133,6 +133,13 @@ class Conference(TranslatableModel, EventMixin, ExpoMixin):
return list(qs) return list(qs)
#return list(Service.objects.language().filter(url__in=ids, type=Service.type.conference).order_by('sort')) #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): def get_nearest_events(self):
if self.theme.all(): if self.theme.all():
theme = self.theme.all()[0] theme = self.theme.all()[0]
@ -164,6 +171,9 @@ class Conference(TranslatableModel, EventMixin, ExpoMixin):
def get_visit_url(self): def get_visit_url(self):
return '/conference-visit/%s/'%self.id 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): def get_note_by_user(self, user_id):
note = self.note.filter(user__id=user_id) note = self.note.filter(user__id=user_id)
try: try:

@ -183,7 +183,7 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin):
country_ids = [item for item, bool in self.country.services if bool==True] country_ids = [item for item, bool in self.country.services if bool==True]
ids = [item for item, bool in self.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)) 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): def get_parent(self):
return {} return {}
@ -292,6 +292,9 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin):
def get_visit_url(self): def get_visit_url(self):
return '/exposition-visit/%s/'%self.id return '/exposition-visit/%s/'%self.id
def get_note_url(self):
return '/expo/add-note/%s/'%self.url
def get_timetables_days(self): def get_timetables_days(self):
tables = self.business_program.all() tables = self.business_program.all()
days = [] days = []
@ -313,12 +316,6 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin):
def theme_ids(self): def theme_ids(self):
return [item['id'] for item in self.theme.all().values('id')] 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): def get_top_link(self):
if self.top: if self.top:
return self.top.link.get_click_link() return self.top.link.get_click_link()

@ -5,11 +5,6 @@ from service.models import Service
class ExpoMixin(object): class ExpoMixin(object):
# def get_index_text(self):
# names = [tr.name for tr in self.translations.all()]
# return names
def get_logo(self): def get_logo(self):
logo = self.files.filter(purpose='logo') logo = self.files.filter(purpose='logo')
@ -34,6 +29,12 @@ class EventMixin(object):
url = '%s%s/'%(self.get_catalog_url(), self.url) url = '%s%s/'%(self.get_catalog_url(), self.url)
return 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): def get_paid_catalog_url(self):
return self.paid_new.catalog.get_click_link() return self.paid_new.catalog.get_click_link()
@ -45,12 +46,6 @@ class EventMixin(object):
def get_logo(self): def get_logo(self):
return self.logo return self.logo
"""
logo = self.files.filter(purpose='logo')
if logo:
return logo[0]
return logo
"""
def get_preview(self): def get_preview(self):

@ -39,6 +39,22 @@ class ExpoManager(TranslationManager):
return result 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): class CityManager(TranslationManager):

@ -1,22 +1,18 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from django.core.context_processors import csrf
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from django.template import RequestContext from django.template import RequestContext
from django.views.generic import TemplateView from django.views.generic import TemplateView
from django.conf import settings from django.conf import settings
from exposition.models import Exposition from django.utils.translation import get_language
from theme.models import Theme from functions.cache_mixin import JitterCacheMixin
from news.models import News from functions.forms import ThemeSearch
from article.models import Article from functions.search_forms import ExpositionSearchForm
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 accounts.forms import RegistrationCompleteForm, SocialRegistrationCompleteForm from accounts.forms import RegistrationCompleteForm, SocialRegistrationCompleteForm
from meta.models import SeoText 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_): def clear_slashes(str_):
@ -73,11 +69,13 @@ def error404(request):
class MainPageView(JitterCacheMixin, TemplateView): class MainPageView(JitterCacheMixin, TemplateView):
cache_range = settings.CACHE_RANGE cache_range = settings.CACHE_RANGE
template_name = 'index.html' template_name = 'client/index.html'
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(MainPageView, self).get_context_data(**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) events = sorted(ev, key=lambda x: x.main.position)
# update main_page counter # update main_page counter
for event in events: for event in events:

@ -53,7 +53,7 @@
</div> </div>
{% if not article %} {% if not article %}
<div class="control-group {% if form.slug.errors %}error{% endif %}"> <div class="control-group {% if form.slug.errors %}error{% endif %}">
<label class="control-label"><b>{{ form.slug.label }}:</b></label> <label class="control-label">{{ form.slug.label }}:</label>
<div class="controls"> <div class="controls">
{{ form.slug }} {{ form.slug }}
<span class="help-inline">{{ form.slug.errors }}</span> <span class="help-inline">{{ form.slug.errors }}</span>

@ -2,13 +2,12 @@
<div class="i-sub-articles"> <div class="i-sub-articles">
<ul> <ul>
<li> {% with services=object.get_services_detail %}
<a href="{{ event.get_permanent_url }}service/translator/">{% trans 'Устный переводчик' %}</a> {% for service in services %}
</li> <li>
{% if event.country_id not in sng_countries %} <a href="{{ exposition.get_permanent_url }}service/{{ service.url }}/">{{ service.name }}</a>
<li> </li>
<a href="{{ event.get_permanent_url }}service/visit/">{% trans 'Бизнес-тур "под ключ"' %}</a> {% endfor %}
</li> {% endwith %}
{% endif %}
</ul> </ul>
</div> </div>

@ -36,7 +36,7 @@
<div class="re-buttons"> <div class="re-buttons">
<a class="button blue icon-calendar {% if event|in_calendar:request.user %}removecalendar {% else %}addcalendar {% endif %}" href="{{ event.get_calendar_url }}">{% if event|in_calendar:request.user %}{% trans 'Убрать из календаря' %}{% else %}{% trans 'добавить в календарь' %}{% endif %}</a> <a class="button blue icon-calendar {% if event|in_calendar:request.user %}removecalendar {% else %}addcalendar {% endif %}" href="{{ event.get_calendar_url }}">{% if event|in_calendar:request.user %}{% trans 'Убрать из календаря' %}{% else %}{% trans 'добавить в календарь' %}{% endif %}</a>
<div class="main-page {% if request.user.is_authenticated%}note-wrap{% else %}note-wrap-disabled{% endif %}"> <div class="main-page {% if request.user.is_authenticated%}note-wrap{% else %}note-wrap-disabled{% endif %}">
<a class="button green icon-note {% if note %}active{% endif %} note-button" href="/expo/add-note/{{ event.url }}/">{% trans 'заметка' %}</a> <a class="button green icon-note {% if note %}active{% endif %} note-button" href="{{ event.get_note_url }}">{% trans 'заметка' %}</a>
<div class="note-overlay"> <div class="note-overlay">
<form action=""> <form action="">
<textarea name="note_text" class="note-text"> {{ note }}</textarea> <textarea name="note_text" class="note-text"> {{ note }}</textarea>

Loading…
Cancel
Save