diff --git a/conference/urls.py b/conference/urls.py index 29f29e3b..d7e88f96 100644 --- a/conference/urls.py +++ b/conference/urls.py @@ -2,7 +2,7 @@ from django.conf.urls import patterns, include, url from views import ConferenceDetail, ConferenceList, ConferenceByCity, ConferenceByCountry, ConferenceByTheme,\ ConferenceCountryCatalog, ConferenceCityCatalog, ConferenceTagCatalog, ConferenceThemeCatalog, ConferenceMembers,\ - ConferenceVisitors, ConferenceServiceView + ConferenceVisitors, ConferenceServiceView, ConferenceThankView from exposition.views import ExpositionSearchView urlpatterns = patterns('', @@ -53,6 +53,7 @@ urlpatterns = patterns('', url(r'conference/(?P.*)/visitors/$', ConferenceVisitors.as_view()), url(r'conference/(?P.*)/members/page/(?P\d+)/$', ConferenceMembers.as_view()), url(r'conference/(?P.*)/members/$', ConferenceMembers.as_view()), + url(r'^conference/(?P.*)/service/thanks/', ConferenceThankView.as_view()), url(r'conference/(?P.*)/service/(?P.*)/', ConferenceServiceView.as_view()), # conf list diff --git a/conference/views.py b/conference/views.py index 71ec8f9d..de034f2a 100644 --- a/conference/views.py +++ b/conference/views.py @@ -271,6 +271,12 @@ class ConferenceMembers(MetadataMixin, ListView): from service.models import Service from service.views import order_forms + +class ConferenceThankView(MetadataMixin, DetailView): + model = Conference + slug_field = 'url' + template_name = 'client/service/thank_u_page.html' + class ConferenceServiceView(FormMixin, DetailView): model = Conference slug_field = 'url' @@ -310,7 +316,7 @@ class ConferenceServiceView(FormMixin, DetailView): order.conference = self.object order.save() messages.success(self.request, _(u'Ваш запрос был успешно отправлен')) - return HttpResponseRedirect(self.success_url) + return HttpResponseRedirect(self.object.get_permanent_url()+'service/thanks/') def get_initial(self): """ diff --git a/exposition/urls.py b/exposition/urls.py index 71816f65..4cb8b972 100644 --- a/exposition/urls.py +++ b/exposition/urls.py @@ -7,7 +7,7 @@ from views import ExpositionStatistic, ExpositionPrice,\ from django.views.decorators.cache import cache_page from views import ExpositionServiceView from views import ExpoCountryCatalog, ExpoCityCatalog, ExpoThemeCatalog, ExpoTagCatalog, ExpoList, ExpoDetail,\ - ExpoVisitors, ExpoMembers + ExpoVisitors, ExpoMembers, ExpositionThankView urlpatterns = patterns('', @@ -70,6 +70,7 @@ urlpatterns = patterns('', url(r'^expo/(?P.*)/visitors/$', ExpoVisitors.as_view(), {'meta_id':64}), url(r'^expo/(?P.*)/members/page/(?P\d+)/$', ExpoMembers.as_view(), {'meta_id':63}), url(r'^expo/(?P.*)/members/$', ExpoMembers.as_view(), {'meta_id':63}), + url(r'^expo/(?P.*)/service/thanks/', ExpositionThankView.as_view()), url(r'^expo/(?P.*)/service/(?P.*)/', ExpositionServiceView.as_view()), # expo list url(r'^expo/(?P\d+)/(?P.*)/page/(?P\d+)/$', ExpoList.as_view(), {'meta_id':4}), diff --git a/exposition/views.py b/exposition/views.py index ffa4f6a7..bd8f33c2 100644 --- a/exposition/views.py +++ b/exposition/views.py @@ -165,6 +165,12 @@ class ExpositionStatistic(MetadataMixin, DetailView): template_name = 'client/exposition/statistic.html' from django.views.generic.edit import FormMixin, ModelFormMixin + +class ExpositionThankView(MetadataMixin, DetailView): + model = Exposition + slug_field = 'url' + template_name = 'client/service/thank_u_page.html' + class ExpositionServiceView(MetadataMixin, FormMixin, DetailView): model = Exposition slug_field = 'url' @@ -209,8 +215,7 @@ class ExpositionServiceView(MetadataMixin, FormMixin, DetailView): order = form.save(commit=False) order.exposition = self.object order.save() - messages.success(self.request, _(u'Ваш запрос был успешно отправлен')) - return HttpResponseRedirect(self.success_url) + return HttpResponseRedirect(self.object.get_permanent_url()+'service/thanks/') def get_initial(self): """ diff --git a/service/admin_urls.py b/service/admin_urls.py index 46e0b347..682785fc 100644 --- a/service/admin_urls.py +++ b/service/admin_urls.py @@ -1,11 +1,20 @@ # -*- coding: utf-8 -*- from django.conf.urls import patterns, include, url +from views import CallBackListView, VisitListView, TranslationListView, AdvertisingListView, \ + ParticipationListView, RemoteListView,TicketsListView urlpatterns = patterns('service.admin', url(r'^add.*/$', 'service_add'), url(r'^delete/(?P.*)/$', 'service_delete'), url(r'^change/(?P.*)/$', 'service_change'), url(r'^all/$', 'service_all'), + url(r'order/callback/$', CallBackListView.as_view()), + url(r'order/visit/$', VisitListView.as_view()), + url(r'order/translation/$', TranslationListView.as_view()), + url(r'order/advertising/$', AdvertisingListView.as_view()), + url(r'order/participation/$', ParticipationListView.as_view()), + url(r'order/remote/$', RemoteListView.as_view()), + url(r'order/tickets/$', TicketsListView.as_view()), #ajax url(r'^get_city/$', 'get_city'), #url(r'^get_country/$', 'get_country'), diff --git a/service/urls.py b/service/urls.py index 2508a156..ef77cb97 100644 --- a/service/urls.py +++ b/service/urls.py @@ -5,13 +5,6 @@ from views import ServiceView, CallBackListView, VisitListView, TranslationListV urlpatterns = patterns('', url(r'service/thanks/$', Thanks.as_view()), - url(r'service/order/callback/$', CallBackListView.as_view()), - url(r'service/order/visit/$', VisitListView.as_view()), - url(r'service/order/translation/$', TranslationListView.as_view()), - url(r'service/order/advertising/$', AdvertisingListView.as_view()), - url(r'service/order/participation/$', ParticipationListView.as_view()), - url(r'service/order/remote/$', RemoteListView.as_view()), - url(r'service/order/tickets/$', TicketsListView.as_view()), url(r'service/com_rek/$', 'service.views.advertise'), url(r'service/(?P.*)/$', ServiceView.as_view()), diff --git a/service/views.py b/service/views.py index 4eafa22d..e7c6c945 100644 --- a/service/views.py +++ b/service/views.py @@ -7,6 +7,7 @@ from haystack.query import EmptySearchQuerySet from django.shortcuts import get_object_or_404 from django.http import Http404 import json +from django.http import HttpResponseRedirect, HttpResponse #from functions.search_forms import CompanySearchForm from order_forms import TranslationForm, CatalogForm, VisitForm, RemoteForm, ParticipationForm, TicketsForm,\ @@ -19,19 +20,31 @@ order_forms = {'translator': TranslationForm, 'catalog': CatalogForm, 'participa class ServiceView(FormView): success_url = '/service/thanks/' + def dispatch(self, request, *args, **kwargs): + service_url = self.kwargs.get('url') + service = get_object_or_404(Service, url=service_url) + self.service = service + self.template_name = service.template + service_form = order_forms.get(service_url) + self.form_class = service_form + return super(ServiceView, self).dispatch(request, *args, **kwargs) - def get_form_class(self): + def post(self, request, *args, **kwargs): url = self.kwargs.get('url') - form = order_forms.get(url) - if form: - return form + #service_form = order_forms.get(url) + #self.form_class = service_form + form = self.form_class(request.POST) + if form.is_valid(): + return self.form_valid(form) else: - raise Http404 + return self.form_invalid(form) + + def form_valid(self, form): + order = form.save(commit=False) + order.save() + #messages.success(self.request, _(u'Ваш запрос был успешно отправлен')) + return HttpResponseRedirect(self.success_url) - def get_template_names(self): - url = self.kwargs.get('url') - service = get_object_or_404(Service, url=url) - return service.template def advertise(request): diff --git a/settings/old_urls.py b/settings/old_urls.py index a8be037b..4f0b8213 100644 --- a/settings/old_urls.py +++ b/settings/old_urls.py @@ -52,6 +52,7 @@ urlpatterns = patterns('', url(r'^catalog/city/(?P.*)/year-(?P\d+)/month-(?P.*)/$', old_redirect, {'redirect_url': '/expo/city/{city}/{year}/{month}'}), url(r'^catalog/city-(?P.*)/year-(?P\d+)/$', old_redirect, {'redirect_url': '/expo/city/{city}/{year}'}), url(r'^catalog/city/(?P.*)/year-(?P\d+)/$', old_redirect, {'redirect_url': '/expo/city/{city}/{year}'}), + url(r'^catalog/city-(?P.*)/page/(?P\d+)/$', old_redirect, {'redirect_url': '/expo/city/{city}/page/{page}/'}), url(r'^catalog/city-(?P.*)/$', old_redirect, {'redirect_url': '/expo/city/{city}/'}), # country url(r'^catalog/country-(?P)/theme-(?P.*)/year-(?P\d+)/month-(?P.*)/$', old_redirect, {'redirect_url': '/expo/theme/{theme}/country/{country}/{year}/'}), @@ -61,8 +62,9 @@ urlpatterns = patterns('', url(r'^catalog/country/(?P.*)/year-(?P\d+)/month-(?P.*)/$', old_redirect, {'redirect_url': '/expo/country/{country}/{year}/{month}/'}), url(r'^catalog/country-(?P.*)/year-(?P\d+)/$', old_redirect, {'redirect_url': '/expo/country/{country}/{year}/'}), url(r'^catalog/country/(?P.*)/year-(?P\d+)/$', old_redirect, {'redirect_url': '/expo/country/{country}/{year}/'}), - url(r'^catalog/country/(?P.*)/$', old_redirect, {'redirect_url': '/expo/country/{country}/'}), + url(r'^catalog/country/(?P.*)/page/(?P\d+)/$', old_redirect, {'redirect_url': '/expo/country/{country}/page/{page}/'}), url(r'^catalog/country-(?P.*)/$', old_redirect, {'redirect_url': '/expo/country/{country}/'}), + url(r'^catalog/country/page/(?P\d+)/$', old_redirect, {'redirect_url': '/expo/country/page/{page}/'}), url(r'^catalog/country/$', old_redirect, {'redirect_url': '/expo/country/'}), # theme url(r'^catalog/theme-(?P.*)/year-(?P\d+)/month-(?P.*)/$', old_redirect, {'redirect_url': '/expo/theme/{theme}/{year}/{month}/'}), diff --git a/settings/redirect_views.py b/settings/redirect_views.py index 99c9f2cd..1e9d4f68 100644 --- a/settings/redirect_views.py +++ b/settings/redirect_views.py @@ -50,12 +50,16 @@ class EventRedirect(object): obj = Exposition.objects.get(old_url=value) except Exposition.DoesNotExist: obj = Exposition.objects.safe_get(url=value) + except Exposition.MultipleObjectsReturned: + obj = Exposition.objects.filter(old_url=value)[0] if not obj: try: obj = Conference.objects.get(old_url=value) except Conference.DoesNotExist: obj = Conference.objects.safe_get(url=value) + except Conference.MultipleObjectsReturned: + obj = Conference.objects.filter(old=value)[0] if obj: return {'event_url': obj.url, 'event_catalog': obj.catalog} else: @@ -71,9 +75,15 @@ class UserRedirect(object): obj = get_object_or_404(User, url=value) return {key: obj.url} +class PageRedirect(object): + def get_object_url(self,key, value): + return {key: value} + + old_params = {'city': CityRedirect, 'country': CountryRedirect, 'theme': ThemeRedirect, 'tag': TagRedirect, - 'event': EventRedirect, 'company': Company, 'article': ArticleRedirect, 'user': UserRedirect} + 'event': EventRedirect, 'company': Company, 'article': ArticleRedirect, 'user': UserRedirect, + 'page': PageRedirect} def old_redirect(request, *args, **kwargs): redirect = kwargs.get('redirect_url') diff --git a/templates/client/service/remotely.html b/templates/client/service/remotely.html index 9c70ac35..afc56567 100644 --- a/templates/client/service/remotely.html +++ b/templates/client/service/remotely.html @@ -167,7 +167,11 @@
-
{% trans 'Стоимость базового пакета услуги 400 €' %}
+ {% if object and object.country_id in sng_countries %} +
{% trans 'Стоимость базового пакета услуги 10 000 р.' %}
+ {% else %} +
{% trans 'Стоимость базового пакета услуги 400 €' %}
+ {% endif %} diff --git a/templates/client/service/thank_u_page.html b/templates/client/service/thank_u_page.html index 02216948..2a50c2ca 100644 --- a/templates/client/service/thank_u_page.html +++ b/templates/client/service/thank_u_page.html @@ -20,7 +20,8 @@

Также Вы можете позвонить нам для ускорения процесса, если Ваш запрос является срочным.

- {% comment %} + {% if object %} +

Что дальше Вы хотите делать?

@@ -28,11 +29,14 @@
 
+ {% with theme=object.theme.all.0 %}

- Перейти к списку выставок по тематике «Ювелирное дело, антиквариат» + Перейти к списку выставок по тематике «{{ theme.name }}»

+ {% endwith %}
+ {% comment %}
 
@@ -43,17 +47,31 @@

+ {% endcomment %}
 
- Вернуться к просмотру выставки «Сувенирная ярмарка 2013/2014» + Вернуться к просмотру выставки «{{ object.name }}» +
+
+ +
+
+
 
+
+
+ {% with city=object.city %} +

+ Перейти к списку ближайших выставок в городе «{{ city.name }}» +

+ {% endwith %}
- {% endcomment %}
+ {% endif %}