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

remotes/origin/1203
Nazar Kotjuk 10 years ago
commit 9a254b2ff6
  1. 3
      article/admin.py
  2. 16
      article/forms.py
  3. 8
      article/models.py
  4. 9
      service/admin.py
  5. 4
      service/forms.py
  6. 10
      templates/admin/article/blog_form.html
  7. 2
      templates/admin/service/linked_service.html

@ -142,6 +142,7 @@ class BlogList(ListView):
context['blog_flag'] = True
return context
class BlogView(FormView):
form_class = BlogForm
template_name = 'article/blog_form.html'
@ -162,7 +163,6 @@ class BlogView(FormView):
form.save(author, article=self.obj)
return HttpResponseRedirect(self.success_url)
def get_form(self, form_class):
if self.request.POST:
return super(BlogView, self).get_form(form_class)
@ -170,6 +170,7 @@ class BlogView(FormView):
if self.obj:
article = self.obj
data = {}
data['slug'] = article.slug
data['theme'] = [item.id for item in article.blog_theme.all()]
if article.exposition:
data['exposition'] = article.exposition.id

@ -21,9 +21,11 @@ class BlogForm(forms.Form):
type = Article.blog
theme = forms.ModelMultipleChoiceField(label='Тематики', queryset=ThemeBlog.objects.all(), required=False,
widget=forms.SelectMultiple(attrs={'style':'width: 550px'}))
slug = forms.SlugField(label=u'URL', max_length=255, min_length=1)
publish_date = forms.DateField(label=u'Дата публикации', input_formats=['%Y-%m-%d', '%d.%m.%Y'], required=False)
tag = forms.CharField(label=u'Теги', widget=forms.HiddenInput(), required=False)
logo = forms.ImageField(label=u'Лого', required=False)
def __init__(self, *args, **kwargs):
"""
create dynamical translated fields fields
@ -49,21 +51,26 @@ class BlogForm(forms.Form):
def save(self, author, article=None):
data = self.cleaned_data
#create new Article object or get exists
# create new Article object or get exists
if not article:
article = Article()
article.author = author
article.type = self.type
article.slug = data.get('slug')
if data['logo']:
article.logo = data['logo']
article.publish_date = data['publish_date']
# fill translated fields and save object
fill_with_signal(Article, article, data)
# fill manytomany fields
article.blog_theme.clear()
if self.type == Article.blog:
article.blog_theme.clear()
article.blog_theme.add(*ThemeBlog.objects.filter(id__in=data['theme']))
else:
article.theme.clear()
article.theme.add(*Theme.objects.filter(id__in=data['theme']))
article.tag.clear()
article.blog_theme.add(*ThemeBlog.objects.filter(id__in=data['theme']))
article.tag.add(*Tag.objects.filter(id__in=data['tag']))
#for item in data['theme']:
# article.theme.add(item.id)#.id cause select uses queryset
@ -92,7 +99,8 @@ class NewsForm(BlogForm):
type = Article.news
exposition = forms.CharField(label=u'Выставка', widget=forms.HiddenInput(), required=False)
conference = forms.CharField(label=u'Конференция', widget=forms.HiddenInput(), required=False)
theme = forms.ModelMultipleChoiceField(label='Тематики', queryset=Theme.objects.all(), required=False,
widget=forms.SelectMultiple(attrs={'style':'width: 550px'}))
#exposition = forms.ModelChoiceField(label = u'Выставка', required=False, queryset=Exposition.objects.all())
#conference = forms.ModelChoiceField(label = u'Конференция', required=False, queryset=Conference.objects.all())

@ -147,15 +147,12 @@ class Article(TranslatableModel):
return self.conference
return None
def save(self, *args, **kwargs):
# If no slug is provided, generates one before saving.
if not self.slug:
self.slug = self.generate_unique_slug()
#Set the description field on save.
#if self.gen_description:
# Set the description field on save.
# if self.gen_description:
# self.description = strip_tags(self.description_from_content())
super(Article, self).save(*args, **kwargs)
@ -188,7 +185,6 @@ class Article(TranslatableModel):
#print self.lazy_translation_getter('main_title', self.pk)
return u'%s'%self.lazy_translation_getter('main_title', self.pk)
def _get_next_or_previous_by_publish_date(self, is_next, **kwargs):
"""
Retrieves next or previous object by publish date. We implement

@ -178,10 +178,15 @@ class LinkedServiceUpdateView(UpdateView):
return self.success_url
def form_valid(self, form):
self.object = form.save()
self.object.update_all_flags()
obj = form.save()
obj.countries = form.cleaned_data['countries']
obj.expositions = form.cleaned_data['expositions']
obj.conferences = form.cleaned_data['conferences']
obj.save()
obj.update_all_flags()
return HttpResponseRedirect(self.get_success_url())
class LinkedServiceList(ListView):
model = LinkedService
template_name = 'admin/service/linked_service_list.html'

@ -157,6 +157,7 @@ class LinkedServiceForm(forms.ModelForm):
type = forms.MultipleChoiceField(choices = [(x, x) for x in list(Service.type)], widget = forms.CheckboxSelectMultiple, required=False)
expositions = forms.CharField(widget=forms.HiddenInput,required=False)
conferences = forms.CharField(widget=forms.HiddenInput, required=False)
countries = forms.MultipleChoiceField(choices=[(c.id, c.name) for c in list(set(Country.objects.language()))])
class Meta:
model = LinkedService
@ -166,7 +167,8 @@ class LinkedServiceForm(forms.ModelForm):
}
def clean_countries(self):
return list(set(self.cleaned_data.get('countries')))
countries = Country.objects.language().filter(id__in=self.cleaned_data['countries'])
return countries
def clean_expositions(self):
expositions = EmptyQuerySet()

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

@ -15,6 +15,7 @@
<script>
$(document).ready(function () {
console.log(1);
$("#id_countries").select2({width:'element'});
$('#id_expositions').select2({
placeholder: "Expositions",
width: 'element',
@ -136,7 +137,6 @@
<button type="reset" class="btn btn-large">Reset</button>
</div>
</div>
</div>
</form>

Loading…
Cancel
Save