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

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

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

@ -178,10 +178,15 @@ class LinkedServiceUpdateView(UpdateView):
return self.success_url return self.success_url
def form_valid(self, form): def form_valid(self, form):
self.object = form.save() obj = form.save()
self.object.update_all_flags() 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()) return HttpResponseRedirect(self.get_success_url())
class LinkedServiceList(ListView): class LinkedServiceList(ListView):
model = LinkedService model = LinkedService
template_name = 'admin/service/linked_service_list.html' 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) 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) expositions = forms.CharField(widget=forms.HiddenInput,required=False)
conferences = 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: class Meta:
model = LinkedService model = LinkedService
@ -166,7 +167,8 @@ class LinkedServiceForm(forms.ModelForm):
} }
def clean_countries(self): 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): def clean_expositions(self):
expositions = EmptyQuerySet() expositions = EmptyQuerySet()

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

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

Loading…
Cancel
Save