diff --git a/article/forms.py b/article/forms.py index e476d26b..ccf65d08 100644 --- a/article/forms.py +++ b/article/forms.py @@ -46,7 +46,7 @@ class BlogForm(forms.Form): self.fields['descriptions_%s' % code] = forms.CharField(label='Дескрипшен', required=False, max_length=255, widget=forms.TextInput(attrs={'style':'width: 550px'})) - def save(self, author, article=None): + def save(self, author, article=None, commit=True): data = self.cleaned_data # create new Article object or get exists if not article: @@ -55,7 +55,7 @@ class BlogForm(forms.Form): article.type = self.type if not getattr(article, 'slug', None): - article.slug = data['slug'] + article.slug = data['slug'] if data['logo']: article.logo = data['logo'] @@ -77,8 +77,8 @@ class BlogForm(forms.Form): #for item in data['tag']: # article.tag.add(item) - article.save() - + if commit == True: + article.save() return article def clean_tag(self): diff --git a/article/models.py b/article/models.py index 352d2f08..2be01f4a 100644 --- a/article/models.py +++ b/article/models.py @@ -59,6 +59,7 @@ class Article(TranslatableModel): "set a custom description."), default=False) created = models.DateTimeField(auto_now_add=True) modified = models.DateTimeField(auto_now=True) + draft = models.BooleanField(_(u'Черновик'), default=False, db_index=True) #translated fields translations = TranslatedFields( @@ -234,4 +235,4 @@ class Article(TranslatableModel): .order_by('-publish_date')[:3]) -post_save.connect(post_save_handler, sender=Article) \ No newline at end of file +post_save.connect(post_save_handler, sender=Article) diff --git a/templates/admin/article/article_admin_list.html b/templates/admin/article/article_admin_list.html index ad2a85a4..a0d9f5f1 100644 --- a/templates/admin/article/article_admin_list.html +++ b/templates/admin/article/article_admin_list.html @@ -1,20 +1,22 @@ {% extends 'base.html' %} +{% load i18n %} + {% block body %}
-

Список статей

+

{% trans "Список статей" %}

- - + + @@ -26,19 +28,19 @@ @@ -46,8 +48,8 @@
ЗаголовокАвтор{% trans "Заголовок" %}{% trans "Автор" %}  
{% ifnotequal item.author None %}{{ item.author }} {% endifnotequal %} - Изменить + {% trans "Изменить" %} - Копировать + {% trans "Копировать" %} - Удалить + {% trans "Удалить" %}
- Добавить - {% if blog_flag %}статью{% else %}{% if news_flag %}новость{% endif %}{% endif %} + {% trans "Добавить" %} + {% if blog_flag %}{% trans "статью" %}{% else %}{% if news_flag %}{% trans "новость" %}{% endif %}{% endif %}
@@ -63,4 +65,4 @@
-{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/templates/admin/article/blog_form.html b/templates/admin/article/blog_form.html index 1b41a403..239463bc 100644 --- a/templates/admin/article/blog_form.html +++ b/templates/admin/article/blog_form.html @@ -1,5 +1,6 @@ {% extends 'base.html' %} {% load static %} +{% load i18n %} {# Displays article form #} {% block scripts %} @@ -34,11 +35,11 @@ {{ form.errors }}
{% csrf_token %}
- {% if article %} Изменить {% else %} Добавить {% endif %}статью{% if article %}(на сайте){% endif %} + {% if article %} {% trans "Изменить" %} {% else %} {% trans "Добавить" %} {% endif %}{% trans "статью" %}{% if article %}({% trans "на сайте" %}){% endif %}
-

Основная информация

+

{% trans "Основная информация" %}

@@ -124,14 +125,14 @@
-

Файлы

+

{% trans "Файлы" %}

{% if article %} {# button that shows modal window with file form #} - Добавить файл + {% trans "Добавить файл" %} {% else %} -

Файлы можно добавлять только после введения основных данных

+

{% trans "Файлы можно добавлять только после введения основных данных" %}

{% endif %} {# this div shows list of files and refreshes when new file added #}
@@ -139,10 +140,10 @@ - id - Файл - Имя - Назначение + {% trans "id" %} + {% trans "Файл" %} + {% trans "Имя" %} + {% trans "Назначение" %} @@ -205,4 +206,4 @@ $(document).ready(function(){ }); -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/theme/admin.py b/theme/admin.py index d2288161..d481feed 100644 --- a/theme/admin.py +++ b/theme/admin.py @@ -1,17 +1,34 @@ -# -*- coding: utf-8 -*- -from django.shortcuts import render_to_response -from django.http import HttpResponseRedirect, HttpResponse -from django.core.context_processors import csrf +#custom views +import json + from django.conf import settings -from django.views.generic import CreateView, UpdateView, DeleteView from django.contrib.auth.decorators import login_required +from django.core.context_processors import csrf +from django.core.urlresolvers import reverse_lazy +from django.http import HttpResponse, HttpResponseRedirect +from django.shortcuts import render_to_response +from django.views.generic import CreateView, DeleteView, UpdateView +# -*- coding: utf-8 -*- #forms and models -from forms import ThemeForm, TagForm, ThemeDeleteForm, TagDeleteForm, TagFilterForm, ThemeFilterForm -from models import Theme, Tag, ThemeBlog -#custom views -from functions.custom_views import objects_list, add_object, delete_object, ListView -from functions.views_help import get_referer +from forms import ( + TagDeleteForm, + TagFilterForm, + TagForm, + ThemeDeleteForm, + ThemeFilterForm, + ThemeForm +) from functions.admin_views import AdminListView +from functions.custom_views import ( + ListView, + add_object, + delete_object, + objects_list +) +from functions.views_help import get_referer + +from .forms import ThemeBlogForm +from .models import Tag, Theme, ThemeBlog def theme_all(request): @@ -131,8 +148,6 @@ def tag_change(request, tag_id=None): return render_to_response('tag_add.html', args) -from django.http import HttpResponse -import json def search_tag(request): theme = request.GET['theme'] @@ -149,6 +164,7 @@ def search_tag(request): return HttpResponse(json.dumps(tags), content_type='application/json') + def search2(request): term = request.GET['term'] if not term: @@ -171,9 +187,6 @@ class TagListView(AdminListView): model = Tag -from functions.custom_views import ListView -from django.core.urlresolvers import reverse_lazy -from .forms import ThemeBlogForm class ThemeBlogListView(ListView): @@ -234,4 +247,4 @@ class ThemeBlogCreateView(CreateView): template_name = "admin/theme/theme_blog_new.html" model = ThemeBlog form_class = ThemeBlogForm - success_url = reverse_lazy("theme_blog_all") \ No newline at end of file + success_url = reverse_lazy("theme_blog_all")