diff --git a/service/admin.py b/service/admin.py index d91251fb..16bb9707 100644 --- a/service/admin.py +++ b/service/admin.py @@ -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' diff --git a/service/forms.py b/service/forms.py index fa84b396..95460a5b 100644 --- a/service/forms.py +++ b/service/forms.py @@ -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() diff --git a/templates/admin/service/linked_service.html b/templates/admin/service/linked_service.html index 3ecb4f54..38908896 100644 --- a/templates/admin/service/linked_service.html +++ b/templates/admin/service/linked_service.html @@ -15,6 +15,7 @@