From 11ade8477b08f66eb4f45028c6f3ca3aab26b079 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B0=D0=B7=D0=B0=D1=80=20=D0=9A=D0=BE=D1=82=D1=8E?= =?UTF-8?q?=D0=BA?= Date: Thu, 12 Feb 2015 16:06:30 +0200 Subject: [PATCH] Task 115 --- exposition/views.py | 7 ++- service/models.py | 5 +- service/order_forms.py | 12 +++-- service/urls.py | 1 + service/views.py | 18 ++++++- .../exposition/exposition_object.html | 5 ++ templates/client/popups/advertise_member.html | 47 +++++++++++++++++++ 7 files changed, 89 insertions(+), 6 deletions(-) create mode 100644 templates/client/popups/advertise_member.html diff --git a/exposition/views.py b/exposition/views.py index 1e709f0a..da69a6e3 100644 --- a/exposition/views.py +++ b/exposition/views.py @@ -145,12 +145,17 @@ def exposition_visit(request, id): return HttpResponse(json.dumps(args), content_type='application/json') #------------------------------------------------------------------------------ - +from service.order_forms import AdvertiseForm class ExpoDetail(DetailView): model = Exposition slug_field = 'url' template_name = 'client/exposition/exposition_detail.html' + def get_context_data(self, **kwargs): + context = super(ExpoDetail, self).get_context_data(**kwargs) + context['advertising_form'] = AdvertiseForm() + return context + class ExpositionProgramme(DetailView): model = Exposition slug_field = 'url' diff --git a/service/models.py b/service/models.py index 377f4578..28ca45b4 100644 --- a/service/models.py +++ b/service/models.py @@ -4,7 +4,7 @@ from hvad.models import TranslatableModel, TranslatedFields, TranslationManager from functions.custom_fields import EnumField -CURENCIES = ('USD', 'RUB', 'EUR') +CURENCIES = ('', 'USD', 'RUB', 'EUR') @@ -122,3 +122,6 @@ class Visit(AbstractOrder): excursion = models.BooleanField() notes = models.TextField(blank=True) + +class Advertising(AbstractOrder): + pass \ No newline at end of file diff --git a/service/order_forms.py b/service/order_forms.py index 8b459adb..12d6dbfc 100644 --- a/service/order_forms.py +++ b/service/order_forms.py @@ -2,7 +2,7 @@ from django import forms from django.utils.translation import ugettext as _ from accounts.models import User -from models import Catalog, Tickets, Remote, Participation, Translation, Visit, CURENCIES +from models import Catalog, Tickets, Remote, Participation, Translation, Visit, CURENCIES, Advertising from exposition.models import Exposition from conference.models import Conference from seminar.models import Seminar @@ -15,7 +15,7 @@ class AbstractOrderForm(forms.ModelForm): phone = forms.CharField(widget=forms.TextInput(attrs={'placeholder': _(u'Контактный номер телефона')})) person = forms.EmailField(widget=forms.TextInput(attrs={'placeholder': _(u'Электронная почта')})) - currency = forms.CharField(widget=forms.HiddenInput()) + currency = forms.CharField(widget=forms.HiddenInput(), required=False) exposition = forms.CharField(widget=forms.HiddenInput(), required=False) conference = forms.CharField(widget=forms.HiddenInput(), required=False) @@ -195,4 +195,10 @@ class VisitForm(AbstractOrderForm): if not avia_type: return '' else: - return ', '.join(avia_type) \ No newline at end of file + return ', '.join(avia_type) + +class AdvertiseForm(AbstractOrderForm): + action = '/service/advertise/' + class Meta: + model = Advertising + diff --git a/service/urls.py b/service/urls.py index bb0f88f7..44ef4f0f 100644 --- a/service/urls.py +++ b/service/urls.py @@ -3,6 +3,7 @@ from django.conf.urls import patterns, include, url from views import ServiceView urlpatterns = patterns('', + url(r'service/advertise/$', 'service.views.advertise'), url(r'service/(?P.*)/$', ServiceView.as_view()), ) diff --git a/service/views.py b/service/views.py index 605a14a2..b6ea0fd8 100644 --- a/service/views.py +++ b/service/views.py @@ -9,7 +9,7 @@ from django.http import Http404 import json from functions.search_forms import CompanySearchForm -from order_forms import TranslationForm, CatalogForm, VisitForm, RemoteForm, ParticipationForm, TicketsForm +from order_forms import TranslationForm, CatalogForm, VisitForm, RemoteForm, ParticipationForm, TicketsForm, AdvertiseForm order_forms = {'translator': TranslationForm, 'catalog': CatalogForm, 'participation': ParticipationForm, @@ -34,3 +34,19 @@ class ServiceView(FormView): return service.template + +def advertise(request): + if request.POST: + response = {'success': False} + form = AdvertiseForm(request.POST) + if form.is_valid(): + form.save() + response['success'] = True + else: + response['erros'] = form.errors + + return HttpResponse(json.dumps(response), content_type='application/json') + + + + diff --git a/templates/client/includes/exposition/exposition_object.html b/templates/client/includes/exposition/exposition_object.html index daf154e3..26486f16 100644 --- a/templates/client/includes/exposition/exposition_object.html +++ b/templates/client/includes/exposition/exposition_object.html @@ -362,6 +362,7 @@ {% endfor %} + {% include 'client/popups/advertise_member.html' with form=advertising_form %} {% endif %} diff --git a/templates/client/popups/advertise_member.html b/templates/client/popups/advertise_member.html new file mode 100644 index 00000000..566e88a3 --- /dev/null +++ b/templates/client/popups/advertise_member.html @@ -0,0 +1,47 @@ +{% load static %} +{% load i18n %} + + \ No newline at end of file