fix some bugs

remotes/origin/1203
Nazarii Kotiuk 10 years ago
parent 9f1f988191
commit 3ed618f0c0
  1. 1
      .gitignore
  2. 22
      accounts/models.py
  3. 1
      accounts/views.py
  4. 4
      exposition/forms.py
  5. 8
      exposition/models.py
  6. 2
      proj/admin_urls.py
  7. 2
      proj/urls.py
  8. 31
      settings/admin.py
  9. 13
      settings/admin_urls.py
  10. 10
      settings/forms.py
  11. 1
      static/client
  12. 6
      templates/admin/exposition/exposition.html
  13. 70
      templates/admin/settings/main_page.html
  14. 2
      templates/admin/timetable_list.html
  15. 2
      templates/client/exposition/search.html
  16. 19
      templates/client/includes/accounts/simple_user.html
  17. 4
      templates/client/includes/exposition/search_result.html
  18. 1
      templates/client/static_client/client
  19. 12
      theme/manager.py

1
.gitignore vendored

@ -11,6 +11,7 @@ media
logs/ logs/
Thumbs.db Thumbs.db
/proj/local.py /proj/local.py
static/client

@ -294,22 +294,22 @@ class EventFilter(models.Model):
areas = self.area.all() areas = self.area.all()
cities = self.city.all() cities = self.city.all()
if themes.count(): if themes.exists():
qs = qs.filter(theme__in=list(themes)) qs = qs.filter(theme__in=set(themes))
if tags.count(): if tags.exists():
qs = qs.filter(tag__in=list(tags)) qs = qs.filter(tag__in=set(tags))
if cities.count(): if cities.exists():
qs = qs.filter(city__in=list(cities)) qs = qs.filter(city__in=set(cities))
if areas.count(): if areas.exists():
qs = qs.filter(country__area__in=list(areas)) qs = qs.filter(country__area__in=set(areas))
if countries.count(): if countries.exists():
qs = qs.filter(country__in=list(countries)) qs = qs.filter(country__in=set(countries))
return qs.order_by('data_begin') return qs.order_by('data_begin').distinct()
def calculate_rating(user): def calculate_rating(user):

@ -2,6 +2,7 @@
import dateutil.relativedelta as rdelta import dateutil.relativedelta as rdelta
import json import json
import datetime import datetime
from django.core.urlresolvers import reverse
import calendar as python_calendar import calendar as python_calendar
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from django.http import HttpResponseRedirect, HttpResponse, Http404 from django.http import HttpResponseRedirect, HttpResponse, Http404

@ -550,9 +550,9 @@ class TimeTableForm(forms.Form):
required = True if lid == 0 else False required = True if lid == 0 else False
self.fields['name_%s' % code] = forms.CharField(label='Название программы', required=required, self.fields['name_%s' % code] = forms.CharField(label='Название программы', required=required,
widget=forms.TextInput(attrs={'style':'width: 550px'})) widget=forms.TextInput(attrs={'style':'width: 550px'}))
self.fields['programe_%s' % code] = forms.CharField(label='Программа', required=required, self.fields['programe_%s' % code] = forms.CharField(label='Программа', required=False,
widget=CKEditorWidget) widget=CKEditorWidget)
self.fields['speaker_%s' % code] = forms.CharField(label='Спикеры', required=False, self.fields['speaker_%s' % code] = forms.CharField(label='Организатор', required=False,
widget=forms.TextInput(attrs={'style':'width: 550px'})) widget=forms.TextInput(attrs={'style':'width: 550px'}))
self.fields['place_%s' % code] = forms.CharField(label='Место проведения', required=False, self.fields['place_%s' % code] = forms.CharField(label='Место проведения', required=False,
widget=forms.TextInput(attrs={'style':'width: 550px'})) widget=forms.TextInput(attrs={'style':'width: 550px'}))

@ -261,7 +261,7 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin):
return '/expo/add-note/%s/'%self.url return '/expo/add-note/%s/'%self.url
def get_timetables_days(self): def get_timetables_days(self):
tables = self.business_program.all() tables = list(self.business_program.all())
days = [] days = []
for t in tables: for t in tables:
d = t.begin.replace(hour = 0, minute = 0, second = 0, microsecond = 0) d = t.begin.replace(hour = 0, minute = 0, second = 0, microsecond = 0)
@ -312,7 +312,7 @@ class TimeTable(TranslatableModel):
TimeTable for business program TimeTable for business program
""" """
exposition = models.ForeignKey(Exposition, related_name='TimeTable') exposition = models.ForeignKey(Exposition, related_name='business_program')
begin = models.DateTimeField(verbose_name='Начало') begin = models.DateTimeField(verbose_name='Начало')
end = models.DateTimeField(verbose_name='Конец') end = models.DateTimeField(verbose_name='Конец')
timetable_organiser = models.ForeignKey(Organiser, null=True, blank=True) timetable_organiser = models.ForeignKey(Organiser, null=True, blank=True)
@ -322,8 +322,8 @@ class TimeTable(TranslatableModel):
#translated fields #translated fields
translations = TranslatedFields( translations = TranslatedFields(
name = models.CharField(verbose_name='Название программы', max_length=255, blank=True), name = models.CharField(verbose_name='Название программы', max_length=255, blank=True),
programe = models.TextField(verbose_name='Программа'), programe = models.TextField(verbose_name='Программа', blank=True),
speaker = models.CharField(verbose_name='Спикеры', max_length=255, blank=True), speaker = models.CharField(verbose_name='Организатор', max_length=255, blank=True),
place = models.CharField(verbose_name='Место проведения', max_length=255, blank=True) place = models.CharField(verbose_name='Место проведения', max_length=255, blank=True)
) )

@ -12,7 +12,7 @@ urlpatterns = required(
url(r'^$', AdminIndex.as_view()), url(r'^$', AdminIndex.as_view()),
url(r'^', include('import_xls.admin_urls')), url(r'^', include('import_xls.admin_urls')),
url(r'^accounts/', include('accounts.admin_urls')), url(r'^accounts/', include('accounts.admin_urls')),
url(r'page/', include('core.admin_urls')), #url(r'page/', include('core.admin_urls')),
url(r'^article/', include('article.admin_urls')), url(r'^article/', include('article.admin_urls')),
url(r'^photogallery/', include('photologue.admin_urls')), url(r'^photogallery/', include('photologue.admin_urls')),
url(r'^city/', include('city.admin_urls')), url(r'^city/', include('city.admin_urls')),

@ -31,10 +31,8 @@ handler404 = 'proj.views.error404'
urlpatterns = patterns('', urlpatterns = patterns('',
url(r'^acquire_email/$', 'registration.backends.default.views.acquire_email', name = 'acquire_email'), url(r'^acquire_email/$', 'registration.backends.default.views.acquire_email', name = 'acquire_email'),
url(r'^rss/', include('core.urls')), url(r'^rss/', include('core.urls')),
#url(r'^__debug__/', include(debug_toolbar.urls)),
url(r'^sitemap-(?P<section>.+)\.xml$', views.sitemap, {'sitemaps': sitemaps}), url(r'^sitemap-(?P<section>.+)\.xml$', views.sitemap, {'sitemaps': sitemaps}),
url(r'^admin/', include('proj.admin_urls')), url(r'^admin/', include('proj.admin_urls')),
#url(r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),
url(r'^sitemap\.xml$', views.index, {'sitemaps': sitemaps}), url(r'^sitemap\.xml$', views.index, {'sitemaps': sitemaps}),
url(r'^sitemap-(?P<section>.+)\.xml$', views.sitemap, {'sitemaps': sitemaps}), url(r'^sitemap-(?P<section>.+)\.xml$', views.sitemap, {'sitemaps': sitemaps}),
url(r'^robots.txt$', Robot.as_view()), url(r'^robots.txt$', Robot.as_view()),

@ -2,21 +2,19 @@
import json import json
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.core.context_processors import csrf from django.core.context_processors import csrf
from forms import MainPageArticle, MainPageNews, MainPageThemes from forms import MainPageArticle, MainPageNews, MainPageThemes
def handle_form(request, Form): def handle_form(request, form):
if request.POST: if request.POST:
form = Form(request.POST) f = form(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/admin/settings/main-page/')
else:
return HttpResponseRedirect('/admin/settings/main-page/') if f.is_valid():
f.save()
return HttpResponseRedirect('/admin/settings/main-page/') return HttpResponseRedirect(reverse('settings_main_page'))
def handle_news(request): def handle_news(request):
@ -31,32 +29,17 @@ def handle_themes(request):
return handle_form(request, MainPageThemes) return handle_form(request, MainPageThemes)
from exposition.models import Exposition
from conference.models import Conference
from seminar.models import Seminar
from webinar.models import Webinar
from theme.models import Theme from theme.models import Theme
from article.models import Article from article.models import Article
import datetime
def main_page(request): def main_page(request):
now = datetime.datetime.now()
expositions = Exposition.objects.filter(main_page=1)
conferences = Conference.objects.filter(main_page=1)
seminars = Seminar.objects.filter(main_page=1)
webinars = Webinar.objects.filter(main_page=1)
events = {'expositions':expositions, 'conferences': conferences,
'seminars':seminars, 'webinars': webinars}
exposition_themes = Theme.objects.filter(main_page__gt=0, types=Theme.types.exposition) exposition_themes = Theme.objects.filter(main_page__gt=0, types=Theme.types.exposition)
confrence_themes = Theme.objects.filter(main_page__gt=0, types=Theme.types.conference) confrence_themes = Theme.objects.filter(main_page__gt=0, types=Theme.types.conference)
seminar_themes = Theme.objects.filter(main_page__gt=0, types=Theme.types.seminar)
news = Article.objects.news().filter(main_page=1) news = Article.objects.news().filter(main_page=1)
blogs = Article.objects.blogs().filter(main_page=1) blogs = Article.objects.blogs().filter(main_page=1)
themes = {'exposition_themes': exposition_themes, 'conference_themes': confrence_themes, themes = {'exposition_themes': exposition_themes, 'conference_themes': confrence_themes}
'seminar_themes':seminar_themes}
news_form = MainPageNews(initial={'main_page_news':','.join(['%d'%item.id for item in news])}) news_form = MainPageNews(initial={'main_page_news':','.join(['%d'%item.id for item in news])})
a = [{'id': int(item.id), 'text': item.main_title} for item in news] a = [{'id': int(item.id), 'text': item.main_title} for item in news]

@ -1,9 +1,12 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from django.conf.urls import patterns, include, url from django.conf.urls import patterns, include, url
from .admin import handle_themes, handle_news, handle_articles, main_page
urlpatterns = patterns('',
url(r'^main-page/themes/', handle_themes, name='settings_main_page_themes'),
url(r'^main-page/news/$', handle_news, name='settings_main_page_news'),
url(r'^main-page/blogs/$', handle_articles, name='settings_main_page_articles'),
url(r'^main-page/$', main_page, name='settings_main_page'),
urlpatterns = patterns('settings.admin',
url(r'^main-page/$', 'main_page'),
url(r'^main-page/themes/$', 'handle_themes'),
url(r'^main-page/news/$', 'handle_news'),
url(r'^main-page/blogs/$', 'handle_articles'),
) )

@ -20,20 +20,16 @@ class MainPageThemes(forms.Form):
required=False) required=False)
conference_themes = forms.ModelMultipleChoiceField(queryset=Theme.objects.filter(types=Theme.types.conference), conference_themes = forms.ModelMultipleChoiceField(queryset=Theme.objects.filter(types=Theme.types.conference),
required=False) required=False)
#seminar_themes = forms.ModelMultipleChoiceField(queryset=Theme.objects.filter(types=Theme.types.seminar),
# required=False)
def save(self): def save(self):
data = self.cleaned_data data = self.cleaned_data
exposition_themes = data['exposition_themes'] exposition_themes = data['exposition_themes']
conference_themes = data['conference_themes'] conference_themes = data['conference_themes']
#seminar_themes = data['seminar_themes']
Theme.objects.filter(types=Theme.types.exposition).update(main_page=0) Theme.objects.filter().update(main_page=0)
Theme.objects.filter(types=Theme.types.conference).update(main_page=0)
#Theme.objects.filter(types=Theme.types.seminar).update(main_page=0)
exposition_themes.update(main_page=1) exposition_themes.update(main_page=1)
conference_themes.update(main_page=1) conference_themes.update(main_page=1)
#seminar_themes.update(main_page=1)
class MainPageNews(forms.Form): class MainPageNews(forms.Form):

@ -1 +0,0 @@
/home/www/proj/templates/client/static_client

@ -386,8 +386,8 @@
<th>Программа</th> <th>Программа</th>
<th>Начало</th> <th>Начало</th>
<th>Конец</th> <th>Конец</th>
<th>Спикеры</th>
<th>Организатор</th> <th>Организатор</th>
<th>Место</th>
<th>&nbsp;</th> <th>&nbsp;</th>
</tr> </tr>
@ -395,12 +395,12 @@
<tbody> <tbody>
{% for timetable in timetables %} {% for timetable in timetables %}
<tr> <tr>
<td>{{ timetable.programe|safe }}</td> <td>{{ timetable.name|safe }}</td>
<td>{{ timetable.begin|date:"o-m-d H:i" }}</td> <td>{{ timetable.begin|date:"o-m-d H:i" }}</td>
<td>{{ timetable.end|date:"o-m-d H:i" }}</td> <td>{{ timetable.end|date:"o-m-d H:i" }}</td>
<td>{{ timetable.speaker }}</td> <td>{{ timetable.speaker }}</td>
<td> <td>
{{ timetable.timetable_organiser }} {{ timetable.place }}
</td> </td>
<td> <td>
<button class="btn btn-danger remove_timetable" value="{{ timetable.id }}"> <button class="btn btn-danger remove_timetable" value="{{ timetable.id }}">

@ -8,51 +8,15 @@
{% endblock %} {% endblock %}
{% block body %} {% block body %}
<div class="row-fluid sortable">
<div class="box span12">
<div class="box-header well" data-original-title>
<h2><i class="icon-tasks"></i> События</h2>
</div>
<div class="box-content">
<form method="post" class="form-inline" action="events/">{% csrf_token %}
{{ event_form.expositions.label }}:&nbsp;&nbsp;&nbsp;&nbsp;{{event_form.expositions }}&nbsp;&nbsp;&nbsp;&nbsp;
{% comment %}
{{ event_form.conferences.label }}:&nbsp;&nbsp;&nbsp;&nbsp; {{event_form.conferences }}
<br/>
<br/>
{{ event_form.seminars.label }}:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{event_form.seminars }}&nbsp;&nbsp;&nbsp;&nbsp;
{{ event_form.webinars.label }}:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {{event_form.webinars }}
{% endcomment %}
<hr/>
<button type="submit" class="btn btn-primary" >Сохранить</button>
</form>
</div>
</div>
</div>
<div class="row-fluid sortable">
<div class="box span12">
<div class="box-header well" data-original-title>
<h2><i class="icon-tasks"></i> Новости</h2>
</div>
<div class="box-content">
<form method="post" action="news/">{% csrf_token %}
{{ news_form }}
<hr/>
<button type="submit" class="btn btn-primary" >Сохранить</button>
</form>
</div>
</div>
</div>
<div class="row-fluid sortable"> <div class="row-fluid sortable">
<div class="box span12"> <div class="box span12">
<div class="box-header well" data-original-title> <div class="box-header well" data-original-title>
<h2><i class="icon-tasks"></i> Обзоры</h2> <h2><i class="icon-tasks"></i> Обзоры</h2>
</div> </div>
<div class="box-content"> <div class="box-content">
<form method="post" action="blogs/">{% csrf_token %} <form method="post" action="{% url 'settings_main_page_articles' %}">{% csrf_token %}
{{ article_form }} {{ article_form }}
<hr/> <hr/>
<button type="submit" class="btn btn-primary" >Сохранить</button> <button type="submit" class="btn btn-primary" >Сохранить</button>
@ -61,31 +25,33 @@
</div> </div>
</div> </div>
<div class="row-fluid sortable"> <div class="row-fluid sortable">
<div class="box span6"> <div class="box span12">
<div class="box-header well" data-original-title> <div class="box-header well" data-original-title>
<h2><i class="icon-tasks"></i> Тематики</h2> <h2><i class="icon-tasks"></i> Тематики</h2>
</div> </div>
<div class="box-content"> <div class="box-content">
<form method="post" action="themes/">{% csrf_token %} <form method="post" action="{% url 'settings_main_page_themes' %}">{% csrf_token %}
{{ theme_form }}
<hr/> <div class="control-group">
<button type="submit" class="btn btn-primary" >Сохранить</button> <label class="control-label">{{ theme_form.exposition_themes.label }}</label>
</form> <div class="controls">
</div> {{ theme_form.exposition_themes }}
</div> </div>
<div class="box span6"> </div>
<div class="box-header well" data-original-title> <div class="control-group">
<h2><i class="icon-tasks"></i> Фоторепортажи</h2> <label class="control-label">{{ theme_form.conference_themes.label }}</label>
</div> <div class="controls">
<div class="box-content"> {{ theme_form.conference_themes }}
<form method="post" action="photoreports/">{% csrf_token %} </div>
{{ photoreport_form }} </div>
<hr/> <hr/>
<button type="submit" class="btn btn-primary" >Сохранить</button> <button type="submit" class="btn btn-primary" >Сохранить</button>
</form> </form>
</div> </div>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}
{% block bot_scripts %} {% block bot_scripts %}

@ -1,6 +1,6 @@
{% for obj in objects %} {% for obj in objects %}
<tr> <tr>
<td>{{ obj.programe|safe }}</td> <td>{{ obj.name|safe }}</td>
<td>{{ obj.begin|date:"Y-m-d H:i" }}</td> <td>{{ obj.begin|date:"Y-m-d H:i" }}</td>
<td>{{ obj.end|date:"Y-m-d H:i" }}</td> <td>{{ obj.end|date:"Y-m-d H:i" }}</td>
<td>{{ obj.speaker }}</td> <td>{{ obj.speaker }}</td>

@ -35,7 +35,7 @@
{% block paginator %} {% block paginator %}
{% with page_obj=page_obj queries=queries %} {% with page_obj=page_obj queries=queries %}
{% include 'includes/search_paginator.html' %} {% include 'client/includes/search_paginator.html' %}
{% endwith %} {% endwith %}
{% endblock %} {% endblock %}

@ -92,14 +92,17 @@
</div> </div>
<hr /> <hr />
{% if member.profile.about %}
<div class="i-additional"> <div class="i-additional">
<div class="ia-title">{% trans 'О себе' %}:</div> <div class="ia-title">{% trans 'О себе' %}:</div>
{{ member.profile.about|safe|linebreaks }} {{ member.profile.about|safe|linebreaks }}
</div> </div>
{% endif %}
</div> </div>
{% if member.get_expositions_number > 0 or member.get_conferences_number > 0 or member.get_seminars_number > 0 %} </div>
{% if member.get_expositions_number > 0 or member.get_conferences_number > 0 %}
<hr />
<div class="i-statistics"> <div class="i-statistics">
<header class="clearfix"> <header class="clearfix">
<div class="ish-title">{% trans 'Участие в событиях' %}</div> <div class="ish-title">{% trans 'Участие в событиях' %}</div>
@ -117,6 +120,6 @@
<ul class="cat-list cl-exhibitions"> <ul class="cat-list cl-exhibitions">
</ul> </ul>
</div> </div>
{% endif %} {% endif %}
</div>
</div> </div>

@ -5,7 +5,7 @@
{% for result in query %} {% for result in query %}
<li class="cl-item {% if result.object.canceled %}canceled{% endif %}"> <li class="cl-item {% if result.object.canceled %}canceled{% endif %}">
<div class="cl-item-wrap clearfix"> <div class="cl-item-wrap clearfix">
<a href="{{ result.object.get_permanent_url }}"> <a target="_blank" href="{{ result.object.get_permanent_url }}">
{% if result.object.canceled %} {% if result.object.canceled %}
<div class="cancel"></div> <div class="cancel"></div>
{% else %} {% else %}
@ -27,7 +27,7 @@
</div> </div>
{% endif %} {% endif %}
<header> <header>
<div class="cli-title"><a href="{{ result.object.get_permanent_url }}">{{ result.object.name|safe }}</a></div> <div class="cli-title"><a target="_blank" href="{{ result.object.get_permanent_url }}">{{ result.object.name|safe }}</a></div>
</header> </header>
<div class="cli-descr"> <div class="cli-descr">
{{ result.object.main_title|safe }} {{ result.object.main_title|safe }}

@ -1,4 +1,5 @@
import datetime import datetime
from operator import attrgetter
from django.utils import translation from django.utils import translation
from django.core.cache import cache from django.core.cache import cache
from hvad.models import TranslationManager from hvad.models import TranslationManager
@ -36,6 +37,7 @@ class ThemeActiveManager(TranslationManager):
from exposition.models import Exposition from exposition.models import Exposition
themes_id = [item['theme'] for item in Exposition.objects.values('theme').distinct()] themes_id = [item['theme'] for item in Exposition.objects.values('theme').distinct()]
themes = list(self.language().filter(id__in=themes_id)) themes = list(self.language().filter(id__in=themes_id))
themes = sorted(themes, key=attrgetter('name'))
cache.set(key, themes, 300) cache.set(key, themes, 300)
return themes return themes
@ -53,7 +55,7 @@ class ThemeActiveManager(TranslationManager):
themes_id = [item['theme'] for item in Exposition.objects.filter(is_published=True, data_end__gte=now).values('theme').distinct()] themes_id = [item['theme'] for item in Exposition.objects.filter(is_published=True, data_end__gte=now).values('theme').distinct()]
#themes = set(list(self.language().filter(id__in=themes_id).extra(select=sql))) #themes = set(list(self.language().filter(id__in=themes_id).extra(select=sql)))
themes = set(list(self.language().filter(id__in=themes_id))) themes = set(list(self.language().filter(id__in=themes_id)))
themes = sorted(themes, key=lambda x: x.name) themes = sorted(themes, key=attrgetter('name'))
cache.set(key, themes, self.cache_time) cache.set(key, themes, self.cache_time)
return themes return themes
@ -70,7 +72,7 @@ class ThemeActiveManager(TranslationManager):
themes_id = [item['theme'] for item in Conference.objects.filter(is_published=True, data_end__gte=now).values('theme').distinct()] themes_id = [item['theme'] for item in Conference.objects.filter(is_published=True, data_end__gte=now).values('theme').distinct()]
#themes = set(list(self.language().filter(id__in=themes_id).extra(select=sql))) #themes = set(list(self.language().filter(id__in=themes_id).extra(select=sql)))
themes = set(list(self.language().filter(id__in=themes_id))) themes = set(list(self.language().filter(id__in=themes_id)))
themes = sorted(themes, key=lambda x: x.name) themes = sorted(themes, key=attrgetter('name'))
cache.set(key, themes, self.cache_time) cache.set(key, themes, self.cache_time)
return themes return themes
@ -115,7 +117,7 @@ class TagActiveManager(TranslationManager):
tag_id = [item['tag'] for item in Conference.objects.filter(is_published=True, data_end__gte=now).values('tag').distinct()] tag_id = [item['tag'] for item in Conference.objects.filter(is_published=True, data_end__gte=now).values('tag').distinct()]
#themes = set(list(self.language().filter(id__in=themes_id).extra(select=sql))) #themes = set(list(self.language().filter(id__in=themes_id).extra(select=sql)))
tags = set(list(self.language().filter(id__in=tag_id))) tags = set(list(self.language().filter(id__in=tag_id)))
tags = sorted(tags, key=lambda x: x.name) tags = sorted(tags, key=attrgetter('name'))
cache.set(key, tags, self.cache_time) cache.set(key, tags, self.cache_time)
return tags return tags
@ -133,7 +135,7 @@ class TagActiveManager(TranslationManager):
tags_id = [item['tag'] for item in Exposition.objects.filter(is_published=True, data_end__gte=now).values('tag').distinct()] tags_id = [item['tag'] for item in Exposition.objects.filter(is_published=True, data_end__gte=now).values('tag').distinct()]
#themes = set(list(self.language().filter(id__in=themes_id).extra(select=sql))) #themes = set(list(self.language().filter(id__in=themes_id).extra(select=sql)))
tags = set(list(self.language().filter(id__in=tags_id))) tags = set(list(self.language().filter(id__in=tags_id)))
tags = sorted(tags, key=lambda x: x.name) tags = sorted(tags, key=attrgetter('name'))
cache.set(key, tags, self.cache_time) cache.set(key, tags, self.cache_time)
return tags return tags
@ -150,6 +152,6 @@ class TagActiveManager(TranslationManager):
tags_id = [item['tag'] for item in Conference.objects.filter(is_published=True, data_end__gte=now).values('tag').distinct()] tags_id = [item['tag'] for item in Conference.objects.filter(is_published=True, data_end__gte=now).values('tag').distinct()]
#themes = set(list(self.language().filter(id__in=themes_id).extra(select=sql))) #themes = set(list(self.language().filter(id__in=themes_id).extra(select=sql)))
tags = set(list(self.language().filter(id__in=tags_id))) tags = set(list(self.language().filter(id__in=tags_id)))
tags = sorted(tags, key=lambda x: x.name) tags = sorted(tags, key=attrgetter('name'))
cache.set(key, tags, self.cache_time) cache.set(key, tags, self.cache_time)
return tags return tags

Loading…
Cancel
Save