|
|
|
|
@ -1,25 +1,61 @@ |
|
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
|
import json |
|
|
|
|
from itertools import chain |
|
|
|
|
|
|
|
|
|
from django.http import HttpResponse |
|
|
|
|
from models import Service |
|
|
|
|
from functions.custom_views import ExpoListView |
|
|
|
|
from django.views.generic import ListView, FormView, TemplateView |
|
|
|
|
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 meta.views import MetadataMixin |
|
|
|
|
#from functions.search_forms import CompanySearchForm |
|
|
|
|
|
|
|
|
|
from haystack.query import EmptySearchQuerySet |
|
|
|
|
|
|
|
|
|
from meta.views import MetadataMixin |
|
|
|
|
from accounts.models import UserLog |
|
|
|
|
from exposition.models import Exposition |
|
|
|
|
from conference.models import Conference |
|
|
|
|
from functions.custom_views import ExpoListView |
|
|
|
|
from models import Service |
|
|
|
|
from order_forms import TranslationForm, CatalogForm, VisitForm, RemoteForm, ParticipationForm, TicketsForm,\ |
|
|
|
|
AdvertiseForm, BuildStandForm |
|
|
|
|
#from functions.search_forms import CompanySearchForm |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
order_forms = {'translator': TranslationForm, 'catalog': CatalogForm, 'participation': ParticipationForm, |
|
|
|
|
'remote': RemoteForm, 'tickets': TicketsForm, 'visit': VisitForm, 'buildstand': BuildStandForm} |
|
|
|
|
|
|
|
|
|
meta = {'translator': 80, 'participation': 85, |
|
|
|
|
'remote': 84, 'tickets': 81, 'visit': 82} |
|
|
|
|
meta = { |
|
|
|
|
'translator': 80, |
|
|
|
|
'participation': 85, |
|
|
|
|
'remote': 84, |
|
|
|
|
'tickets': 81, |
|
|
|
|
'visit': 82 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_userlog_data(request): |
|
|
|
|
userlog = None |
|
|
|
|
data = {} |
|
|
|
|
if request.user.is_authenticated(): |
|
|
|
|
try: |
|
|
|
|
userlog = UserLog.objects.get(pk=request.user.pk) |
|
|
|
|
except: |
|
|
|
|
pass |
|
|
|
|
attrs = [ |
|
|
|
|
'referer1', 'referer2', 'utm_source1', 'utm_medium1', |
|
|
|
|
'utm_campaign1', 'utm_source2', 'utm_medium2', 'utm_campaign2', |
|
|
|
|
] |
|
|
|
|
search_attrs = ['search1', 'search2', 'search3',] |
|
|
|
|
if userlog is not None: |
|
|
|
|
for attr in chain(attrs, search_attrs): |
|
|
|
|
data[attr] = getattr(userlog, attr) |
|
|
|
|
else: |
|
|
|
|
for attr in attrs: |
|
|
|
|
data[attr] = request.session.get(attr) |
|
|
|
|
for i, s in enumerate(request.session.get('search', []), start=1): |
|
|
|
|
data['search' + str(i)] = s |
|
|
|
|
return data |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ServiceView(MetadataMixin, FormView): |
|
|
|
|
success_url = '/service/thanks/' |
|
|
|
|
@ -44,7 +80,8 @@ class ServiceView(MetadataMixin, FormView): |
|
|
|
|
return self.form_invalid(form) |
|
|
|
|
|
|
|
|
|
def form_valid(self, form): |
|
|
|
|
order = form.save(commit=False) |
|
|
|
|
userlog = get_userlog_data(self.request) |
|
|
|
|
order = form.save(commit=False, userlog=userlog) |
|
|
|
|
order.save() |
|
|
|
|
return HttpResponseRedirect(self.success_url) |
|
|
|
|
|
|
|
|
|
@ -54,21 +91,18 @@ class ServiceView(MetadataMixin, FormView): |
|
|
|
|
kwargs.update({'meta_id': meta_id}) |
|
|
|
|
return super(ServiceView, self).get_context_data(**kwargs) |
|
|
|
|
|
|
|
|
|
from exposition.models import Exposition |
|
|
|
|
from conference.models import Conference |
|
|
|
|
|
|
|
|
|
def advertise(request, catalog=None, event_url=None): |
|
|
|
|
|
|
|
|
|
if request.POST: |
|
|
|
|
response = {'success': False} |
|
|
|
|
form = AdvertiseForm(request.POST) |
|
|
|
|
if form.is_valid(): |
|
|
|
|
userlog = get_userlog_data(request) |
|
|
|
|
if not catalog or not event_url: |
|
|
|
|
form.save() |
|
|
|
|
form.save(userlog=userlog) |
|
|
|
|
else: |
|
|
|
|
order = form.save(commit=False) |
|
|
|
|
order = form.save(commit=False, userlog=userlog) |
|
|
|
|
if catalog == 'expo': |
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
expo = Exposition.objects.get(url=event_url) |
|
|
|
|
except Exposition.DoesNotExist: |
|
|
|
|
@ -82,15 +116,9 @@ def advertise(request, catalog=None, event_url=None): |
|
|
|
|
order.conference= conf |
|
|
|
|
|
|
|
|
|
order.save() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
response['success'] = True |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else: |
|
|
|
|
response['errors'] = form.errors |
|
|
|
|
|
|
|
|
|
return HttpResponse(json.dumps(response), content_type='application/json') |
|
|
|
|
else: |
|
|
|
|
raise HttpResponse('not ajax') |
|
|
|
|
|