Merge branch 'develop' of git.general-servers.com:expomap/expomap into develop

remotes/origin/1203
Nazar Kotjuk 11 years ago
commit 5e74873155
  1. 4
      article/forms.py
  2. 2
      article/models.py
  3. 3
      core/utils.py
  4. 2
      core/views.py
  5. 2
      templates/client/article/blog_list.html
  6. 1
      theme/urls.py
  7. 34
      theme/views.py

@ -258,7 +258,7 @@ class BlogForm(forms.ModelForm):
class ArticleFilterForm(forms.Form): class ArticleFilterForm(forms.Form):
theme = forms.MultipleChoiceField(label=_(u'Тематика:'), required=False, theme = forms.MultipleChoiceField(label=_(u'Тематика:'), required=False,
choices=[(item.id, item.name) for item in Theme.objects.language().exclude(article__id=None)]) choices=[(item.id, item.name) for item in Theme.objects.language().filter(article__type=1).exclude(article__id=None).distinct()])
tag = forms.CharField(label=_(u'Теги:'), widget=forms.HiddenInput(), required=False) tag = forms.CharField(label=_(u'Теги:'), widget=forms.HiddenInput(), required=False)
''' '''
@ -273,6 +273,7 @@ class ArticleFilterForm(forms.Form):
choices=[(item.id, item.name) for item in Theme.objects.language().filter(id__in=ids)]) choices=[(item.id, item.name) for item in Theme.objects.language().filter(id__in=ids)])
''' '''
class BlogFilterForm(forms.Form): class BlogFilterForm(forms.Form):
tag = forms.CharField(label=_(u'Теги:'), widget=forms.HiddenInput(), required=False) tag = forms.CharField(label=_(u'Теги:'), widget=forms.HiddenInput(), required=False)
@ -285,6 +286,7 @@ class BlogFilterForm(forms.Form):
self.fields['theme'] = forms.MultipleChoiceField(label=_(u'Тематика:'), required=False, self.fields['theme'] = forms.MultipleChoiceField(label=_(u'Тематика:'), required=False,
choices=[(item.id, item.name) for item in Theme.objects.language().filter(id__in=ids)]) choices=[(item.id, item.name) for item in Theme.objects.language().filter(id__in=ids)])
class NewsFilterForm(forms.Form): class NewsFilterForm(forms.Form):
tag = forms.CharField(label=_(u'Теги:'), widget=forms.HiddenInput(), required=False) tag = forms.CharField(label=_(u'Теги:'), widget=forms.HiddenInput(), required=False)

@ -81,7 +81,7 @@ class Article(TranslatableModel):
old_id = models.IntegerField(blank=True, null=True) old_id = models.IntegerField(blank=True, null=True)
logo = ImageField(upload_to='articles_preview', blank=True) logo = ImageField(upload_to='articles_preview', blank=True)
theme = models.ManyToManyField('theme.Theme') theme = models.ManyToManyField('theme.Theme')
tag = models.ManyToManyField('theme.Tag', related_name='tags',blank=True, null=True) tag = models.ManyToManyField('theme.Tag', blank=True, null=True)
author = models.ForeignKey('accounts.User', verbose_name='Автор', author = models.ForeignKey('accounts.User', verbose_name='Автор',
on_delete=models.PROTECT, related_name='articles') on_delete=models.PROTECT, related_name='articles')
exposition = models.ForeignKey('exposition.Exposition', blank=True, null=True) exposition = models.ForeignKey('exposition.Exposition', blank=True, null=True)

@ -9,6 +9,7 @@ import datetime
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.conf import settings from django.conf import settings
from django.utils.translation import get_language from django.utils.translation import get_language
import os
current_lang = get_language()[:2] current_lang = get_language()[:2]
if current_lang == 'ru': if current_lang == 'ru':
@ -105,7 +106,7 @@ def queryset_to_workbook(queryset, columns, report_date = None):
month = month_name,year = report_date.strftime("%Y")), main_style) month = month_name,year = report_date.strftime("%Y")), main_style)
for i in range(7): for i in range(7):
sheet.row(i).set_style(xlwt.Style.easyxf('font:height 300;')) sheet.row(i).set_style(xlwt.Style.easyxf('font:height 300;'))
sheet.insert_bitmap('/home/www/proj/static/logo.bmp', row=0, col=5, x=0, y=0, scale_x=0.3, scale_y=2) sheet.insert_bitmap(os.path.join(settings.MEDIA_ROOT, 'logo.bmp'), row=0, col=5, x=0, y=0, scale_x=0.3, scale_y=2)
# drawing headers # drawing headers
for i, column in enumerate(columns): for i, column in enumerate(columns):

@ -297,7 +297,7 @@ def download_workbook(request):
workbook = queryset_to_workbook(qs, columns, earliest_event) workbook = queryset_to_workbook(qs, columns, earliest_event)
response = HttpResponse(content_type='application/vnd.ms-excel') response = HttpResponse(content_type='application/vnd.ms-excel')
response['Content-Disposition'] = 'attachment; filename="My calendar.xls"' response['Content-Disposition'] = 'attachment; filename="My calendar for %s.xls"' % earliest_event.strftime("%B %Y")
workbook.save(response) workbook.save(response)
return response return response
else: else:

@ -50,7 +50,7 @@
}, },
tags:{ tags:{
placeholder:"{% trans 'Выберите ключевые теги' %}", placeholder:"{% trans 'Выберите ключевые теги' %}",
url:'http://{{ request.get_host }}/theme/get-tag/' url:'http://{{ request.get_host }}/theme/get-article-tags/'
} }
}); });
</script> </script>

@ -3,4 +3,5 @@ from django.conf.urls import patterns, url
urlpatterns = patterns('', urlpatterns = patterns('',
url(r'^get-tag/$', 'theme.views.get_tag'), url(r'^get-tag/$', 'theme.views.get_tag'),
url(r'^get-article-tags/$', 'theme.views.get_article_tags'),
) )

@ -5,16 +5,30 @@ from theme.models import Tag
def get_tag(request): def get_tag(request):
#if request.is_ajax(): #if request.is_ajax():
themes = request.GET.getlist('themes[]') themes = request.GET.getlist('themes[]')
term = request.GET['term'].capitalize() term = request.GET['term'].capitalize()
qs = Tag.objects.language().exclude(theme__article__id=None).distinct() qs = Tag.objects.language().exclude(theme__article__id=None).distinct()
if term: if term:
qs = qs.filter(translations__name__contains=term) qs = qs.filter(translations__name__contains=term)
if themes: if themes:
qs = qs.filter(theme__id__in=themes).order_by('translations__name') qs = qs.filter(theme__id__in=themes).order_by('translations__name')
result = [{'id': tag.id, 'label': '%s (%s)'%(tag.name, tag.theme.name)} for tag in qs] result = [{'id': tag.id, 'label': '%s (%s)'%(tag.name, tag.theme.name)} for tag in qs]
result = sorted(result, key=lambda x:x['label']) result = sorted(result, key=lambda x:x['label'])
return HttpResponse(json.dumps(result), content_type='application/json') return HttpResponse(json.dumps(result), content_type='application/json')
#else: #else:
# return HttpResponse('not ajax') # return HttpResponse('not ajax')
def get_article_tags(request):
themes = request.GET.getlist('themes[]')
term = request.GET['term'].capitalize()
qs = Tag.objects.language().exclude(article=None).filter(article__type=1).distinct()
if themes:
qs = qs.filter(theme__id__in=themes).order_by('translations__name')
if term:
qs = qs.filter(translations__name__contains=term)
result = [{'id': tag.id, 'label': '%s (%s)'%(tag.name, tag.theme.name)} for tag in qs]
result = sorted(result, key=lambda x:x['label'])
return HttpResponse(json.dumps(result), content_type='application/json')
Loading…
Cancel
Save