# -*- coding: utf-8 -*- from django.shortcuts import render_to_response from django.http import HttpResponseRedirect, HttpResponse from django.template import RequestContext from django.shortcuts import get_object_or_404 from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage #models from models import Exposition from accounts.models import User from functions.custom_views import ExpoListView, ExpoMixin, EventDetail from django.views.generic import ListView, DetailView # import json from django.utils.translation import ugettext as _ class ExpositionView(ExpoListView): model = Exposition template_name = 'event_catalog.html' class ExpositionVisitors(ExpositionView): model = Exposition template_name = 'event_visitors.html' def get_queryset(self): params = self.get_params() for param in params: if param.get('type') == 'event': exp = Exposition.objects.safe_get(url=param.get('url')) #query = exp.users param['name'] = exp.name params.append({'type':'visitors', 'name':_(u'Посетители')}) self.params = params return exp.users.all() class ExpositionMembers(ExpoListView): model = Exposition template_name = 'event_members.html' def get_queryset(self): params = self.get_params() for param in params: if param.get('type') == 'event': exp = Exposition.objects.safe_get(url=param.get('url')) param['name'] = exp.name #query = exp.users params.append({'type':'members', 'name':_(u'Участники')}) self.params = params return exp.company.all() class ExpositionStatistic(ExpoListView): model = Exposition template_name = 'exposition_statistic.html' def get_queryset(self): params = self.get_params() for param in params: if param.get('type') == 'event': exp = Exposition.objects.filter(url=param.get('url')) param['name'] = exp[0].name #query = exp.users self.single_page = True params.append({'type':'statistic', 'name':_(u'Статистика')}) self.params = params return exp class ExpositionProgramme(ExpoListView): model = Exposition template_name = 'exposition_programm.html' def get_queryset(self): params = self.get_params() for param in params: if param.get('type') == 'event': exp = Exposition.objects.filter(url=param.get('url')) param['name'] = exp[0].name #query = exp.users self.single_page = True params.append({'type':'programme', 'name':_(u'Программа')}) self.params = params return exp class ExpositionPrice(ExpoListView): model = Exposition template_name = 'exposition_price.html' def get_queryset(self): params = self.get_params() for param in params: if param.get('type') == 'event': exp = Exposition.objects.filter(url=param.get('url')) param['name'] = exp[0].name #query = exp.users self.single_page = True params.append({'type':'price', 'name':_(u'Стоимость посещения и участия')}) self.params = params return exp def exposition_add_calendar(request, id): args = {'success': False} user = request.user if user.is_authenticated(): exp = Exposition.objects.safe_get(id=id) if exp: user.calendar.expositions.add(exp) args['success'] = True else: args['not_authorized'] = True args['success'] = True return HttpResponse(json.dumps(args), content_type='application/json') def exposition_remove_calendar(request, id): args = {'success': False} user = request.user if user.is_authenticated(): exp = Exposition.objects.safe_get(id=id) if exp: user.calendar.expositions.remove(exp) args['success'] = True else: args['not_authorized'] = True args['success'] = True return HttpResponse(json.dumps(args), content_type='application/json') def exposition_visit(request, id): args = {'success': False} user = request.user if user.is_authenticated(): exp = Exposition.objects.safe_get(id=id) if exp: exp.users.add(user) args['success'] = True else: args['not_authorized'] = True args['success'] = True return HttpResponse(json.dumps(args), content_type='application/json') def exposition_unvisit(request, id): args = {'success': False} user = request.user if user.is_authenticated(): exp = Exposition.objects.safe_get(id=id) if exp: exp.users.remove(user) else: args['not_authorized'] = True args['success'] = True return HttpResponse(json.dumps(args), content_type='application/json')