diff --git a/service/admin.py b/service/admin.py index 16bb9707..752890b4 100644 --- a/service/admin.py +++ b/service/admin.py @@ -117,34 +117,6 @@ def get_city(request): return HttpResponse('error') -class ServiceControlList(ListView): - model = Service - template_name = 'admin/service/control_list.html' - paginate_by = 20 - -from django.views.generic.detail import SingleObjectMixin -from django.views.generic.edit import FormMixin -from django.views.generic import DetailView -from service.forms import ServiceControlForm -class ServiceControl(FormMixin, DetailView): - form_class = ServiceControlForm - template_name = 'admin/service/control.html' - model = Service - - - def get_form(self, form_class): - obj = self.object - data = obj.get_current_state() - - return form_class(data) - - def get_context_data(self, **kwargs): - context = super(ServiceControl, self).get_context_data(**kwargs) - context['form'] = self.get_form(self.form_class) - return context - - - from django.shortcuts import get_object_or_404 from django.views.generic import UpdateView, ListView, DeleteView from .forms import LinkedServiceForm @@ -157,7 +129,7 @@ class LinkedServiceUpdateView(UpdateView): form_class = LinkedServiceForm model = LinkedService template_name = "admin/service/linked_service.html" - success_url = "/admin/service/test/all/" + success_url = "/admin/service/control/all/" def get_object(self, queryset=None): url = self.kwargs['url'] diff --git a/service/admin_urls.py b/service/admin_urls.py index 4b025595..a4744e78 100644 --- a/service/admin_urls.py +++ b/service/admin_urls.py @@ -2,11 +2,9 @@ from django.conf.urls import patterns, include, url from views import CallBackListView, VisitListView, TranslationListView, AdvertisingListView, \ ParticipationListView, RemoteListView,TicketsListView -from service.admin import ServiceControlList, ServiceControl, LinkedServiceList, LinkedServiceUpdateView, LinkedServiceDeleteView +from service.admin import LinkedServiceList, LinkedServiceUpdateView, LinkedServiceDeleteView urlpatterns = patterns('service.admin', - #url(r'^control/list/$', ServiceControlList.as_view()), - #url(r'^control/(?P.*)/$', ServiceControl.as_view()), url(r'^add.*/$', 'service_add'), url(r'^delete/(?P.*)/$', 'service_delete'), url(r'^change/(?P.*)/$', 'service_change'), @@ -19,13 +17,10 @@ urlpatterns = patterns('service.admin', url(r'order/remote/$', RemoteListView.as_view()), url(r'order/tickets/$', TicketsListView.as_view()), url(r'^control/delete/(?P[a-z]*)/', LinkedServiceDeleteView.as_view(), name='linked_service_delete'), - url(r'^control/all/', LinkedServiceList.as_view(), name = 'linked_service_all'), - url(r'^control/(?P[a-z]*)/', LinkedServiceUpdateView.as_view(), name= 'linked_service_update'), - + url(r'^control/all/', LinkedServiceList.as_view(), name='linked_service_all'), + url(r'^control/(?P[a-z]*)/', LinkedServiceUpdateView.as_view(), name='linked_service_update'), #ajax url(r'^get_city/$', 'get_city'), -#url(r'^get_country/$', 'get_country'), - ) diff --git a/service/forms.py b/service/forms.py index 95460a5b..a6c6192c 100644 --- a/service/forms.py +++ b/service/forms.py @@ -128,36 +128,16 @@ from country.models import Area, Country from exposition.models import Exposition from conference.models import Conference -class ServiceControlForm(forms.Form): - event = [{'verbose': 'Выставки', 'model': Exposition, 'id': 1, 'service_bit': 'expo'}, - {'verbose': 'Конференции', 'model': Conference, 'id': 2, 'service_bit': 'conference'}] - region = forms.ChoiceField(required=False, label='Регион', - choices=[('', '')]+[(item.id, item.name) - for item in list(Area.objects.all())]) - country = forms.MultipleChoiceField(required=False, label='Страны', - choices=[('', '')]+[(item.id, item.name) - for item in list(Country.objects.all())]) - country_all = forms.BooleanField(required=False) - expositions = forms.CharField(label=u'Выставки', widget=forms.HiddenInput(), required=False) - conferences = forms.CharField(label=u'Конференции', widget=forms.HiddenInput(), required=False) - - def __init__(self, *args, **kwargs): - super(ServiceControlForm, self).__init__(*args, **kwargs) - self.fields['event_type'] = forms.MultipleChoiceField(required=False, label = 'Тип события', - widget=forms.CheckboxSelectMultiple(), - choices=[(item['service_bit'], item['verbose']) - for item in self.event]) - from .models import LinkedService from django.db.models.query import EmptyQuerySet 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()))]) + type = forms.MultipleChoiceField(label='Тип', choices = [(x, x) for x in list(Service.type)], widget = forms.CheckboxSelectMultiple, required=False) + expositions = forms.CharField(label='Выставки', widget=forms.HiddenInput,required=False) + conferences = forms.CharField(label='Конференции', widget=forms.HiddenInput, required=False) + countries = forms.MultipleChoiceField(label='Страны', choices=[(c.id, c.name) for c in list(set(Country.objects.language()))]) class Meta: model = LinkedService @@ -167,7 +147,7 @@ class LinkedServiceForm(forms.ModelForm): } def clean_countries(self): - countries = Country.objects.language().filter(id__in=self.cleaned_data['countries']) + countries = Country.objects.language().filter(id__in=self.cleaned_data['countries']) return countries def clean_expositions(self): diff --git a/service/models.py b/service/models.py index 471bc6fa..f39824d7 100644 --- a/service/models.py +++ b/service/models.py @@ -47,60 +47,6 @@ class Service(TranslatableModel): def get_price(self): pr = self.price - def get_current_state(self): - """ - uses for control form - :return: - """ - from country.models import Country - country_all = False - country = [] - region = [] - expositions = [] - conferences = [] - service = self.url - event_type = [key for key, value in self.type.iteritems() if value] - if not event_type: - return {'event_type': event_type, - 'region': region, - 'country': country, - 'country_all': country_all, - 'expositions': expositions, - 'conferences': conferences} - - count1 = Country.objects.filter().count() - count2 = Country.objects.filter(services=getattr(Country.services, service)).count() - country_all = count1 == count2 - if not country_all: - from exposition.models import Exposition - from conference.models import Conference - from country.models import Area - from django.utils.translation import get_language - lang = get_language() - - countries = list(Country.objects.language(lang).filter(services=getattr(Country.services, service))) - - expositions = [(item.id, item.name) for item in Exposition.enable.upcoming().exclude(country__in=countries, services=getattr(Exposition.services, service))] - conferences = [(item.id, item.name) for item in Conference.enable.upcoming().exclude(country__in=countries, services=getattr(Conference.services, service))] - - region = [] - countries = set(countries) - for item in list(Area.objects.language(lang).all()): - print(item) - area_countries = item.countries() - if set(area_countries).issubset(countries): - region.append((item.id, item.name)) - countries = countries - set(area_countries) - - country = [(item.id, item.name) for item in list(countries)] - - state = {'event_type': event_type, - 'region': region, - 'country': country, - 'country_all': country_all, - 'expositions': expositions, - 'conferences': conferences} - return state from django.db.models.signals import post_save from functions.signal_handlers import post_save_handler diff --git a/templates/admin/includes/admin_nav.html b/templates/admin/includes/admin_nav.html index f70cb26a..bfcf5ae2 100644 --- a/templates/admin/includes/admin_nav.html +++ b/templates/admin/includes/admin_nav.html @@ -43,6 +43,7 @@
  • Тематики для блогов
  • Теги
  • Услуги
  • +
  • Управление услугами
  • Главная страница
  • Мета
  • diff --git a/templates/admin/service/control_list.html b/templates/admin/service/control_list.html deleted file mode 100644 index 38bf41b8..00000000 --- a/templates/admin/service/control_list.html +++ /dev/null @@ -1,39 +0,0 @@ -{% extends 'admin_list.html' %} - -{% block body %} -
    -
    -

    Список услуг

    -
    -
    - - - - - - - - - - - {% for item in object_list %} - - - - - - - - - {% endfor %} - -
    idНазвание 
    {{ item.id }}{{ item.name }} - - Управлять - -
    -
    - {# pagination #} - {% include 'admin/includes/admin_pagination.html' with page_obj=object_list %} -
    -{% endblock %} \ No newline at end of file diff --git a/templates/admin/service/linked_service.html b/templates/admin/service/linked_service.html index 38908896..ac734e4d 100644 --- a/templates/admin/service/linked_service.html +++ b/templates/admin/service/linked_service.html @@ -119,11 +119,12 @@ {# Uses multilang.html template for translated fields #}
    {% csrf_token %} +
    -

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

    +

    - +
    {% for f in form %}
    @@ -132,11 +133,13 @@
    {% endfor %} -
    - - -
    + +
    + + +
    +