task 140. part

remotes/origin/1203
Назар Котюк 11 years ago
parent 5b561a7ebb
commit 7eaf794ce6
  1. 14
      article/admin.py
  2. 25
      article/forms.py
  3. 42
      templates/admin/article/blog_form.html

@ -156,9 +156,12 @@ class BlogView(FormView):
article = self.obj article = self.obj
data = {} data = {}
data['theme'] = [item.id for item in article.theme.all()] data['theme'] = [item.id for item in article.theme.all()]
data['exposition'] = article.exposition if article.exposition:
data['exposition'] = article.exposition.id
if article.conference:
data['conference'] = article.conference.id
data['publish_date'] = article.publish_date data['publish_date'] = article.publish_date
data['conference'] = article.conference
a = ','.join(['%s:%s'%(item.id, item.name) for item in article.tag.all()]) a = ','.join(['%s:%s'%(item.id, item.name) for item in article.tag.all()])
data['tag'] = ','.join(['%s:%s'%(item.id, item.name) for item in article.tag.all()]) data['tag'] = ','.join(['%s:%s'%(item.id, item.name) for item in article.tag.all()])
@ -172,7 +175,12 @@ class BlogView(FormView):
data['descriptions_%s' % code] = obj.descriptions data['descriptions_%s' % code] = obj.descriptions
form = form_class(data) form = form_class(data)
#form.fields['tag'].widget.attrs['data-init-text'] = [item.name for item in article.tag.all()] #form.fields['tag'].widget.attrs['data-init-text'] = [item.name for item in article.tag.all()]
return form_class(data) if article.exposition:
form.fields['exposition'].widget.attrs['data-init-text'] = article.exposition.name
if article.conference:
form.fields['conference'].widget.attrs['data-init-text'] = article.conference.name
return form
else: else:
return form_class() return form_class()

@ -90,8 +90,11 @@ class BlogForm(forms.Form):
class NewsForm(BlogForm): class NewsForm(BlogForm):
type = Article.news type = Article.news
exposition = forms.ModelChoiceField(label = u'Выставка', required=False, queryset=Exposition.objects.all()) exposition = forms.CharField(label=u'Выставка', widget=forms.HiddenInput(), required=False)
conference = forms.ModelChoiceField(label = u'Конференция', required=False, queryset=Conference.objects.all()) conference = forms.CharField(label=u'Конференция', widget=forms.HiddenInput(), required=False)
#exposition = forms.ModelChoiceField(label = u'Выставка', required=False, queryset=Exposition.objects.all())
#conference = forms.ModelChoiceField(label = u'Конференция', required=False, queryset=Conference.objects.all())
def save(self, author, article=None): def save(self, author, article=None):
article = super(NewsForm, self).save(author, article) article = super(NewsForm, self).save(author, article)
@ -102,6 +105,24 @@ class NewsForm(BlogForm):
article.save() article.save()
return article return article
def clean_exposition(self):
id = self.cleaned_data['exposition']
if not id:
return None
try:
return Exposition.objects.get(id=id)
except Exposition.DoesNotExist:
return None
def clean_conference(self):
id = self.cleaned_data['conference']
if not id:
return None
try:
return Conference.objects.get(id=id)
except Conference.DoesNotExist:
return None
class ArticleForm(forms.Form): class ArticleForm(forms.Form):
""" """
Create Article form for creating conference Create Article form for creating conference

@ -154,4 +154,46 @@
</form> </form>
{% include 'admin/includes/file_form.html' with file_form=file_form object=article %} {% include 'admin/includes/file_form.html' with file_form=file_form object=article %}
{% endblock %}
{% block bot_scripts %}
<script>
$(document).ready(function(){
$('#id_exposition').select2({
placeholder: "Выставки",
multiple: true,
ajax: {
url: "/admin/exposition/search/",
width: '550px',
dataType: "json",
quietMillis: 200,
data: function(term, page, theme){
return {term: term,
page: page};
},
results: function (data) {
var results = [];
$.each(data, function(index, item){
results.push({
id: item.id,
text: item.label
});
});
return {results: results};
}
},
initSelection : function(element, callback) {
var id= $(element).val();
var text = $(element).attr('data-init-text');
callback({id: id, text:text});
}
});
});
</script>
{% endblock %} {% endblock %}
Loading…
Cancel
Save