diff --git a/apps/wizard/__init__.py b/apps/wizard/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/wizard/description.txt b/apps/wizard/description.txt deleted file mode 100644 index 9da7860c..00000000 --- a/apps/wizard/description.txt +++ /dev/null @@ -1,2 +0,0 @@ -Должен был быть модуль для добавления событий и других даных через кабинет пользователя. -Остановленна разработка по ненадобности, так как делается функционал добавление событий через црм \ No newline at end of file diff --git a/apps/wizard/forms.py b/apps/wizard/forms.py deleted file mode 100644 index 374f9dcb..00000000 --- a/apps/wizard/forms.py +++ /dev/null @@ -1,76 +0,0 @@ -# -*- coding: utf-8 -*- -from django import forms -from theme.models import Theme -from place_exposition.models import PlaceExposition -from country.models import Country -from multiupload.fields import MultiFileField, MultiFileInput -from django.utils.translation import ugettext as _ - - -choices = ((0, ''), (1.0, _(u'Ежегодно')), (2.0, _(u'2 раза в год')), (3.0, _(u'3 раза в год')), (4.0, _(u'4 раза в год')), - (5.0, _(u'5 раз в год')), (0.5, _(u'Раз в 2 года')), ( - 0.33, _(u'Раз в 3 года')), (0.25, _(u'Раз в 4 года'))) - -places = [(item.id, item.name) for item in PlaceExposition.objects.language().all()] -places.insert(0,('', _(u'Не выбрано'))) - - -class ExpoForm1(forms.Form): - """ - main information about exposition - """ - name = forms.CharField(max_length=255, widget=forms.TextInput(attrs={'placeholder': _(u"Введите название выставки")})) - main_title = forms.CharField(max_length=255, widget=forms.TextInput(attrs={'placeholder': _(u"Краткое описание выставки (необязательно)")})) - description = forms.CharField(widget=forms.Textarea(attrs={'placeholder': _(u"Полное описание выставки"), 'cols':30, 'rows':10})) - date_start = forms.DateField(widget=forms.TextInput(attrs={'class':'data dateFrom', 'placeholder':_(u'дд.мм.гг')})) - date_end = forms.DateField(widget=forms.TextInput(attrs={'class':'data dateTo','placeholder':_(u'дд.мм.гг')})) - - country = forms.ChoiceField(label=_(u'Страна'), choices=[(c.id, c.name) for c in Country.objects.all()], widget=forms.Select(attrs={'id':'id_country'})) - theme = forms.MultipleChoiceField(label=_('Тематики'), choices=[(item.id, item.name) for item in Theme.objects.language().all()], widget=forms.SelectMultiple(attrs={'id':'id_theme'})) - place = forms.ChoiceField(label=_(u'Место проведения'), required=False, choices=places, widget=forms.Select(attrs={'id':'id_place'})) - city = forms.CharField(label=_(u'Город'), widget=forms.HiddenInput(attrs={'id':'id_city'})) - tag = forms.CharField(label=_(u'Теги'), widget=forms.HiddenInput(attrs={'id':'id_tag'}), required=False) - - audience1 = forms.BooleanField(required=False) - audience2 = forms.BooleanField(required=False) - audience3 = forms.BooleanField(required=False) - periodic = forms.ChoiceField(choices=choices, required=False) - membership1 = forms.BooleanField(required=False) - membership2 = forms.BooleanField(required=False) - membership3 = forms.BooleanField(required=False) - web_site = forms.URLField(required=False, widget=forms.TextInput(attrs={'placeholder': _(u"Веб-сайт (необязательно)")})) - products = forms.CharField(widget=forms.Textarea(attrs={'placeholder': _(u"Экспонируемые продукты"), 'cols':30, 'rows':10})) - time_start = forms.TimeField() - time_end = forms.TimeField() - logo = forms.ImageField(widget=forms.FileInput(attrs={'class':"button big icon-clip"}), required=False) - - -class ExpoForm2(forms.Form): - """ - statistics - """ - found_year = forms.IntegerField() - # ticket price - pre_one_day = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':_(u'на один день')})) - pre_all_days = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':_(u'на все дни')})) - one_day = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':_(u'на один день')})) - all_days = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':_(u'на все дни')})) - - # rent price - equiped = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':_(u'оборудованная площадь')})) - unequiped = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':_(u'необорудованная площадь')})) - open_square = forms.FloatField(widget=forms.TextInput(attrs={'placeholder':_(u'открытая площадь')})) - min_square = forms.FloatField() - registration_depos = forms.FloatField() - deadline_date = forms.DateField(widget=forms.TextInput(attrs={'placeholder':_(u'дд.мм.гг')})) - - -class ExpoForm3(forms.Form): - """ - photos from last expositions - """ - attachments = MultiFileField(min_num=0, max_num=6, max_file_size=1024*1024*5, widget=MultiFileInput( - attrs={'class':'button big icon-camera', 'value': _(u'выберите фотографии'), 'id': 'files'} - )) - - diff --git a/apps/wizard/models.py b/apps/wizard/models.py deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/wizard/tests.py b/apps/wizard/tests.py deleted file mode 100644 index 501deb77..00000000 --- a/apps/wizard/tests.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -This file demonstrates writing tests using the unittest module. These will pass -when you run "manage.py test". - -Replace this with more appropriate tests for your application. -""" - -from django.test import TestCase - - -class SimpleTest(TestCase): - def test_basic_addition(self): - """ - Tests that 1 + 1 always equals 2. - """ - self.assertEqual(1 + 1, 2) diff --git a/apps/wizard/urls.py b/apps/wizard/urls.py deleted file mode 100644 index 527cd96d..00000000 --- a/apps/wizard/urls.py +++ /dev/null @@ -1,7 +0,0 @@ -from django.conf.urls import patterns, url -from .views import ExpoWizard -from .forms import ExpoForm1, ExpoForm2,ExpoForm3 - -formlist = [ExpoForm1,ExpoForm2, ExpoForm3] - -urlpatterns = patterns('', url(r'^$', ExpoWizard.as_view(formlist), name = 'add_exposition')) \ No newline at end of file diff --git a/apps/wizard/views.py b/apps/wizard/views.py deleted file mode 100644 index 01dadcac..00000000 --- a/apps/wizard/views.py +++ /dev/null @@ -1,131 +0,0 @@ -from django.contrib.formtools.wizard.views import SessionWizardView -from django.core.files.storage import FileSystemStorage -from django.http import HttpResponseRedirect, HttpResponseForbidden -from django.conf import settings -from django.contrib.auth.decorators import login_required -from django.utils.decorators import method_decorator -from django.core.exceptions import PermissionDenied - -import os -from photologue.models import Photo -from exposition.models import Exposition -from functions.form_check import translit_with_separator -from accounts.models import User -from country.models import Country -from city.models import City -from place_exposition.models import PlaceExposition -from theme.models import Tag, Theme - -class LoginRequiredMixin(object): - @method_decorator(login_required) - def dispatch(self, request, *args, **kwargs): - if not request.user.organiser: - raise PermissionDenied - return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs) - - -# defining different template for every form -TEMPLATES = { - '0': 'client/wizard/first_step.html', - '1': 'client/wizard/second_step.html', - '2': 'client/wizard/third_step.html' -} - - -class ExpoWizard(LoginRequiredMixin, SessionWizardView): - - """main view that handle all data from 3 forms(steps) and finally create an Exposition""" - - # storing temporary files during upload - location = os.path.join(settings.MEDIA_ROOT, 'temp') - file_storage = FileSystemStorage(location, settings.MEDIA_URL) - SUCCESS_URL = "/" - - def get_template_names(self): - return [TEMPLATES[self.steps.current]] - - def done(self, form_list, **kwargs): - # getting data and files - upload_logo = form_list[0].cleaned_data.get('logo') - upload_images = self.request.FILES.getlist(u'2-attachments') - data = self.get_all_cleaned_data() - - # creating new exposition - lang = self.request.LANGUAGE_CODE - expo = Exposition.objects.language(lang).create( - name=data.get('name'), - data_begin=data.get('date_start'), - data_end=data.get('date_end'), - main_title=data.get('main_title'), - description=data.get('description'), - products=data.get('products'), - - country=Country.objects.language(lang).get(id=data.get('country')), - city=City.objects.language(lang).get(id=data.get('city')), - place=PlaceExposition.objects.language(lang).get(id=data.get('place')), - - periodic=data.get('periodic'), - web_page=data.get('web_site'), - logo=data.get('logo'), - - foundation_year=data.get('found_year'), - area=data.get('square'), - price_day=data.get('one_day'), - price_all=data.get('all_days'), - price_day_bar=data.get('pre_one_day'), - price_all_bar=data.get('pre_all_days'), - - min_area=data.get('min_square'), - registration_payment=data.get('registration_depos'), - application_deadline=data.get('deadline_date'), - min_closed_area=data.get('unequiped'), - min_open_area=data.get('open_square'), - min_closed_equipped_area=data.get('equiped'), - url=translit_with_separator(data.get('name')), - quality_label=0, - audience=0, - creator=User.objects.get(id=self.request.user.id) - ) - # adding photo to gallery - photos = [] - for i, photo in enumerate(upload_images): - photos.append(Photo.objects.language(self.request.LANGUAGE_CODE).create( - image=photo, - title=data.get(u'pdescr_%i' % i, photo.name)) - ) - for photo in photos: - expo.upload_photo(photo) - - expo.tag = Tag.objects.language(lang).filter(id__in=data.get('tag').split(',')) - expo.theme = Theme.objects.language(lang).filter(id__in=data.get('theme')) - - # setting bit fields audience and quality_label - self.set_flags(expo, data) - expo.save() - - # remove temporary files if it has any - if upload_logo: - self.file_storage.delete(upload_logo.name) - if upload_images: - for f in upload_images: - self.file_storage.delete(f.name) - - return HttpResponseRedirect(self.SUCCESS_URL) - - @staticmethod - def set_flags(expo, data): - if data['membership1']: - expo.quality_label = (expo.quality_label | Exposition.quality_label.exporating) - if data['membership2']: - expo.quality_label = (expo.quality_label | Exposition.quality_label.rsva) - if data['membership3']: - expo.quality_label = (expo.quality_label | Exposition.quality_label.ufi) - - if data['audience1']: - expo.audience = (expo.audience | Exposition.audience.experts) - if data['audience2']: - expo.audience = expo.audience | getattr(Exposition.audience, 'experts and consumers') - if data['audience3']: - expo.audience = expo.audience | (getattr(Exposition.audience, 'general public')) - - diff --git a/requirements.txt b/requirements.txt index 3cb5922b..b366156d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,7 +15,6 @@ django-haystack==2.3.2 django-hvad==1.2.0 django-model-utils==2.2 django-modeltranslation==0.12 -django-multiupload==0.5 django-redis==4.0.0 django-redis-cache==0.13.1 django-rosetta==0.7.6 diff --git a/templates/client/wizard/first_step.html b/templates/client/wizard/first_step.html deleted file mode 100644 index b5eb43d2..00000000 --- a/templates/client/wizard/first_step.html +++ /dev/null @@ -1,209 +0,0 @@ -{% extends 'client/base_catalog.html' %} -{% load static %} -{% load i18n %} - -{% block head_scripts %} - - -{% endblock %} - -{% block content_list %} - {{ form.errors }} -