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

remotes/origin/1203
pavel 11 years ago
commit d1f90c8c4f
  1. 2
      article/models.py
  2. 10
      article/urls.py
  3. 61
      article/views.py
  4. 2
      meta/models.py
  5. 44
      settings/templatetags/tempalte_tags.py
  6. 35
      templates/client/article/catalog.html
  7. 2
      templates/client/article/news.html
  8. 16
      templates/client/article/news_list.html
  9. 19
      templates/client/includes/article/catalog_filter_period.html
  10. 17
      templates/client/includes/article/news_list.html
  11. 2
      templates/client/includes/article_tags.html

@ -248,7 +248,7 @@ class Article(TranslatableModel):
def similar(self):
themes = [item ['id'] for item in self.theme.all().values('id')]
return list(Article.objects.language().exclude(id=self.id).filter(type=self.type, publish_date__isnull=False, theme__in=themes).order_by('-publish_date')[:3])
return list(Article.objects.language().exclude(id=self.id).filter(type=self.type, publish_date__isnull=False, theme__in=themes).distinct().order_by('-publish_date')[:3])
from django.db.models.signals import post_save

@ -1,10 +1,18 @@
# -*- coding: utf-8 -*-
from django.conf.urls import patterns, url
from views import BlogList, NewsList, BlogDetail, NewsDetail
from views import BlogList, NewsList, BlogDetail, NewsDetail, NewsTagCatalog
urlpatterns = patterns('',
url(r'^blogs/page/(?P<page>\d+)/$', BlogList.as_view()),
url(r'^blogs/$', BlogList.as_view()),
url(r'^news/tag/(?P<slug>.*)/(?P<year>\d+)/(?P<month>.*)/page/(?P<page>\d+)/$', NewsTagCatalog.as_view()),
url(r'^news/tag/(?P<slug>.*)/(?P<year>\d+)/page/(?P<page>\d+)/$', NewsTagCatalog.as_view()),
url(r'^news/tag/(?P<slug>.*)/page/(?P<page>\d+)/$', NewsTagCatalog.as_view()),
url(r'^news/tag/(?P<slug>.*)/(?P<year>\d+)/(?P<month>.*)/$', NewsTagCatalog.as_view()),
url(r'^news/tag/(?P<slug>.*)/(?P<year>\d+)/$', NewsTagCatalog.as_view()),
url(r'^news/tag/(?P<slug>.*)/$', NewsTagCatalog.as_view()),
url(r'^news/page/(?P<page>\d+)/$', NewsList.as_view()),
url(r'^news/$', NewsList.as_view()),
url(r'^blogs/(?P<slug>.*)/$', BlogDetail.as_view(), {'meta_id':19}),

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import json
from django.views.generic import DetailView, ListView
from django.http import HttpResponse
@ -106,4 +107,62 @@ class BlogList(ListView):
class BlogDetail(MetadataMixin, DetailView):
model = Article
slug_field = 'slug'
template_name = 'article/article.html'
template_name = 'article/article.html'
from exposition.views import ExpoCatalog
from django.conf import settings
from django.shortcuts import get_object_or_404
from django.utils.translation import ugettext as _
class NewsTagCatalog(MetadataMixin, ListView):
model = Article
template_name = 'client/article/catalog.html'
catalog_url = '/news/tag/'
filter_object = None
year = None
month = None
def get_queryset(self):
slug = self.kwargs.get('slug')
tag = get_object_or_404(Tag, url=slug)
self.filter_object = tag
qs = Article.objects.news().filter(tag=tag)
year = self.kwargs.get('year')
if year:
qs = qs.filter(publish_date__year=year)
# info for breadscrumbs
self.year = {'text': year, 'link': '%s%s/%s/'%(self.catalog_url, self.filter_object.url, year)}
month = self.kwargs.get('month')
monthes = {'jan': {'value': 1, 'name': _(u'Январь')}, 'feb': {'value': 2, 'name': _(u'Февраль')},
'mar': {'value': 3, 'name': _(u'Март')}, 'apr': {'value': 4, 'name': _(u'Апрель')},
'may': {'value': 5, 'name': _(u'Май')}, 'jun': {'value': 6, 'name': _(u'Июнь')},
'jul': {'value': 7, 'name': _(u'Июль')}, 'aug': {'value': 8, 'name': _(u'Август')},
'sep': {'value': 9, 'name': _(u'Сентябрь')}, 'oct': {'value': 10, 'name': _(u'Октябрь')},
'nov': {'value': 11, 'name': _(u'Ноябрь')}, 'dec': {'value': 12, 'name': _(u'Декабрь')}}
if month and monthes.get(month):
qs = qs.filter(publish_date__month=monthes[month]['value'])
self.month = {'text': monthes[month]['name'], 'link': '%s%s/%s/%s/'%(self.catalog_url, self.filter_object.url, year, month)}
return qs
def get_context_data(self, **kwargs):
context = super(NewsTagCatalog, self).get_context_data(**kwargs)
context['filter_object'] = self.filter_object
context['year'] = self.year
context['month'] = self.month
context['catalog_url'] = self.catalog_url
return context
return qs

@ -49,7 +49,7 @@ class MetaSetting(TranslatableModel):
h1 = models.CharField(max_length=255, blank=True),
)
object_params = {'object_name': 'name', 'object_title': 'main_title'}
object_params = {'object_name': 'name', 'object_title': 'main_title', 'city': 'city'}
params = {'month': get_month_inflect, 'country': get_obj_inflect, 'city': get_obj_inflect,
'theme': get_theme_inflect, 'tag': get_tag_inflect}

@ -11,9 +11,10 @@ register = template.Library()
class Date(template.Node):
def __init__(self):
def __init__(self, reverse=False):
date = datetime.datetime.today().replace(day=1)
self.now = date
self.reverse = reverse
def render(self, context):
@ -27,16 +28,35 @@ class Date(template.Node):
date = self.now
month = monthes[date.month]
month_period =[{'month_url': month['url'], 'name':month['name'], 'date':date}]
for i in range(5):
try:
date = date.replace(month=date.month+1)
except ValueError:
if date.month == 12:
date = date.replace(year=date.year+1, month=1)
if not self.reverse:
for i in range(5):
try:
date = date.replace(month=date.month+1)
except ValueError:
if date.month == 12:
date = date.replace(year=date.year+1, month=1)
else:
raise
month = monthes.get(date.month)
month_period.append({'month_url': month['url'], 'name':month['name'], 'date':date})
else:
for i in range(5):
month = date.month - 1
if month == 0:
date = date.replace(year=date.year-1, month=12)
else:
raise
month = monthes.get(date.month)
month_period.append({'month_url': month['url'], 'name':month['name'], 'date':date})
date = date.replace(month=date.month-1)
"""
try:
date = date.replace(month=date.month-1)
except ValueError:
if date.month == 0:
date = date.replace(year=date.year-1, month=12)
else:
raise
"""
month = monthes.get(date.month)
month_period.append({'month_url': month['url'], 'name':month['name'], 'date':date})
context['monthes_period'] = month_period
return u""
@ -48,6 +68,9 @@ def get_date(parser, token):
return Date()
def get_date_reverse(parser, token):
return Date(reverse=True)
class SetVarNode(template.Node):
def __init__(self, var_name, var_value):
@ -73,4 +96,5 @@ def set_var(parser, token):
register.tag('set', set_var)
register.tag('get_date', get_date)
register.tag('get_date_reverse', get_date_reverse)

@ -0,0 +1,35 @@
{% extends 'base_catalog.html' %}
{% load template_filters %}
{% load i18n %}
{% block bread_scrumbs %}
<div class="bread-crumbs">
<a href="/">{% trans 'Главная страница' %}</a>
<a href="/news/">{% trans 'Новости' %}</a>
{% if month %}
<a href="{{ catalog_url }}{{ filter_object.url }}/">{{ filter_object.name }}</a>
<a href="{{ year.link }}">{{ year.text }}</a>
<strong>{{ month.text }}</strong>
{% else %}
{% if year %}
<a href="{{ catalog_url }}{{ filter_object.url }}/">{{ filter_object.name }}</a>
<strong>{{ year.text }}</strong>
{% else %}
<strong>{{ filter_object.name }}</strong>
{% endif %}
{% endif %}
</div>
{% endblock %}
{% block page_title %}
<div class="page-title">
<h1>{% if meta %}{{ meta.h1 }}{% else %}{% trans 'Новости' %}: <strong>{{ filter_object.name }}</strong>{% endif %}</h1>
</div>
{% include 'includes/article/catalog_filter_period.html' %}
{% endblock %}
{% block content_list %}
{% include 'client/includes/article/news_list.html' with object_list=object_list %}
{% endblock %}

@ -28,7 +28,7 @@
<div class="blog_avtormidle">
<i>{% trans 'Источник' %}: {{ object.author }}</i>
{% if object.tag.all.exists %}
{% include 'includes/article_tags.html' with obj=object %}
{% include 'client/includes/article_tags.html' with obj=object %}
{% endif %}
</div>
</div>

@ -35,21 +35,7 @@
</div>
</form>
</div>
<div class="rq-to-hide">
<div class="cat-list sc-comments">
{% for news in object_list %}
<div class="cl-item">
<div class="acticle_list">
<a href="{{ news.get_permanent_url }}" title="">
{% include 'includes/article/news_preview.html' with obj=news %}</a>
<h3><a href="{{ news.get_permanent_url }}" title="">{{ news.main_title }}</a></h3>
{{ news.preview }}
<strong><span>{{ news.publish_date|date:"d E Y" }}</span>{% with event=news.get_event %}{% if event %}<a href="{{ event.get_permanent_url }}" title=""><b>{{ event.name }}</b></a>{% endif %}{% endwith %}</strong>
</div>
</div>
{% endfor %}
</div>
</div>
{% include 'client/includes/article/news_list.html' with object_list=object_list %}
{% if request.GET.debug == '1' %}
<script src="{% static 'client/js/_modules/block.newsFilter.js' %}"></script>
{% else %}

@ -0,0 +1,19 @@
{% load i18n %}
{% load template_filters %}
{% load tempalte_tags %}
{% if month or year %}
{% else %}
{% get_date_reverse %}
<div class="p-filter clearfix">
<div class="pf-body">
<div class="pf-label">{% trans 'Период' %}:</div>
{% with path=request.path|without_page now=now %}
{% for month in monthes_period %}
<a href="{{ path }}{{ month.date|date:'Y' }}/{{ month.month_url }}/">{{ month.name|lower }} {{ month.date|date:'Y' }}</a>{% if month != monthes_period|last %},{% endif %}
{% endfor %}
{% endwith %}
</div>
</div>
{% endif %}

@ -0,0 +1,17 @@
<div class="rq-to-hide">
<div class="cat-list sc-comments">
{% for news in object_list %}
<div class="cl-item">
<div class="acticle_list">
<a href="{{ news.get_permanent_url }}" title="">
{% include 'includes/article/news_preview.html' with obj=news %}</a>
<h3><a href="{{ news.get_permanent_url }}" title="">{{ news.main_title }}</a></h3>
{{ news.preview }}
<strong><span>{{ news.publish_date|date:"d E Y" }}</span>{% with event=news.get_event %}{% if event %}<a href="{{ event.get_permanent_url }}" title=""><b>{{ event.name }}</b></a>{% endif %}{% endwith %}</strong>
</div>
</div>
{% endfor %}
</div>
</div>

@ -1,6 +1,6 @@
{% with tags=obj.tag.all %}
{% for tag in obj.tag.all %}
<a href="{{ obj.get_catalog }}?tag={{ tag.id }}" title="">{{ tag.name }}</a>{% if forloop.counter != tags|length %},{% endif %}
<a href="{{ obj.get_catalog }}tag/{{ tag.url }}/" title="">{{ tag.name }}</a>{% if forloop.counter != tags|length %},{% endif %}
{% endfor %}
{% endwith %}
Loading…
Cancel
Save