удалил приложение wizard

remotes/origin/tests
Slava Kyrachevsky 9 years ago
parent 4706d1eeb4
commit 9b7037c34d
  1. 0
      apps/wizard/__init__.py
  2. 2
      apps/wizard/description.txt
  3. 76
      apps/wizard/forms.py
  4. 0
      apps/wizard/models.py
  5. 16
      apps/wizard/tests.py
  6. 7
      apps/wizard/urls.py
  7. 131
      apps/wizard/views.py
  8. 1
      requirements.txt
  9. 209
      templates/client/wizard/first_step.html
  10. 259
      templates/client/wizard/second_step.html
  11. 147
      templates/client/wizard/third_step.html
  12. 25
      templates/client/wizard/wizard.html

@ -1,2 +0,0 @@
Должен был быть модуль для добавления событий и других даных через кабинет пользователя.
Остановленна разработка по ненадобности, так как делается функционал добавление событий через црм

@ -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'}
))

@ -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)

@ -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'))

@ -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'))

@ -15,7 +15,6 @@ django-haystack==2.3.2
django-hvad==1.2.0 django-hvad==1.2.0
django-model-utils==2.2 django-model-utils==2.2
django-modeltranslation==0.12 django-modeltranslation==0.12
django-multiupload==0.5
django-redis==4.0.0 django-redis==4.0.0
django-redis-cache==0.13.1 django-redis-cache==0.13.1
django-rosetta==0.7.6 django-rosetta==0.7.6

@ -1,209 +0,0 @@
{% extends 'client/base_catalog.html' %}
{% load static %}
{% load i18n %}
{% block head_scripts %}
<script src="{% static 'js/select/select2.js' %}"></script>
<script src="{% static 'custom_js/wizard.js' %}"></script>
{% endblock %}
{% block content_list %}
{{ form.errors }}
<div class="page-body clearfix">
<div class="set-sect p-form adm-form">
<div class="set-sect-title clearfix">
{{ wizard.form.media }}
<h3>{% blocktrans with step=wizard.steps.step1%}Шаг {{ step }}. Основная информация{% endblocktrans %}</h3>
</div>
<form action="" enctype="multipart/form-data" method="post">{% csrf_token %}
{{ wizard.management_form }}
{% with wizard.form as form %}
<div class="adm-form-body">
<div class="mf-line ">
<div class="mf-field">
<label>{% trans "Тематика:" %}</label>
{{ form.theme }}
</div>
<div class="mf-field">
<label>{% trans "Теги:" %}</label>
{{ form.tag }}
</div>
</div>
<hr/>
<h2>{% trans "Описание выставки" %}</h2>
<div class="mf-line">
<div class="mf-field">
{{ form.name }}
</div>
</div>
<div class="mf-line full-width">
<div class="mf-field">
{{ form.main_title }}
</div>
</div>
<div class="mf-line full-width">
<div class="mf-field">
{{ form.description }}
</div>
</div>
<hr/>
<div id="dates-range" class="mf-line">
<label class="h2">{% trans "Даты проведения:" %}</label>
<div class="mf-field">
<div class="period">
<div class="pwf-field">
<label>{% trans "с" %}</label>
{{ form.date_start }}
</div>
<div class="pwf-field">
<label>{% trans "по" %}</label>
{{ form.date_end }}
</div>
</div>
</div>
</div>
<hr/>
<div class="mfs-location">
<h2>{% trans "Локация" %}</h2>
<div class="mf-line">
<div class="mf-field">
<h3>{% trans "Место проведения:" %}</h3>
{{ form.place }}
</div>
</div>
<div class="mf-line">
<div class="mf-field">
<h3>{% trans "Страна:" %}</h3>
{{ form.country }}
</div>
<div class="mf-field">
<h3>{% trans "Город:" %}</h3>
{{ form.city }}
</div>
</div>
</div>
<hr/>
<div class="mfs-additional">
<h2>{% trans "Дополнительная информация" %}</h2>
<div class="mf-line mf-targets">
<label>{% trans "Аудитория:" %}</label>
<div class="mf-field">
<div class="clearfix">
<div class="mff-col">
<label class="checkbox">{{ form.audience1 }}{% trans "специалисты" %}</label>
<label class="checkbox">{{ form.audience2 }}{% trans "специалисты и потребители" %}</label>
<label class="checkbox">{{ form.audience3 }}{% trans "широкая публика" %}</label>
</div>
<div class="mff-col">
{% trans "Периодичность:" %}
{{ form.periodic }}
</div>
</div>
<hr/>
</div>
</div>
<div class="mf-line mf-membership">
<label>{% trans "Членства и знаки качества:" %}</label>
<div class="mf-field">
<label class="checkbox">{{ form.membership1 }}Exporating</label>
<label class="checkbox">{{ form.membership2 }}RSVA</label>
<label class="checkbox">{{ form.membership3 }}UFI</label>
<hr/>
</div>
</div>
<div class="mf-line mf-prod">
<div class="mf-field">
{{ form.web_site }}
{{ form.products }}
<hr/>
</div>
</div>
<div class="mf-line mf-time">
<label>{% trans "Время работы:" %}</label>
<div id="work-time" class="mf-field">
<div class="w-time">
<div class="w-time-wrap">
<label>c</label>
{{ form.time_start }}
</div>
<div class="w-time-wrap">
<label>до</label>
{{ form.time_end }}
</div>
</div>
</div>
</div>
</div>
<hr/>
<div class="mf-line mf-logo">
<label class="h2">{% trans "Логотип:" %}</label>
<div class="mf-field">
<div class="input-file clearfix">
{{ form.logo }}
</div>
</div>
</div>
<hr/>
</div>
<div class="a-bot-buttons-line clearfix">
<div class="abb-right">
<input class="button big orange a-more" type="submit" value="Дале >"/>
</div>
</div>
</form>
{% endwith %}
</div>
<div class="set-sect p-form adm-form not-active">
<div class="set-sect-title clearfix">
<h3>{% trans "Шаг 2. Статистика и условия участия" %}</h3>
</div>
</div>
<div class="set-sect p-form adm-form not-active">
<div class="set-sect-title clearfix">
<h3>{% trans "Шаг 3. Добавление фото" %}</h3>
</div>
</div>
</div>
<hr/>
{% endblock %}

@ -1,259 +0,0 @@
{% extends 'client/base_catalog.html' %}
{% load static %}
{% load i18n %}
{% block head_scripts %}
<script src="{% static 'js/select/select2.js' %}"></script>
<script>
$(document).ready(function () {
$('select').select2({
width: 'element',
allowClear: true
});
});
</script>
{% endblock %}
{% block content_list %}
{{ form.errors }}
<div class="page-title">
<h1>{% trans "Добавить событие" %}</h1>
</div>
<div class="page-body clearfix">
<form action="" method="post">{% csrf_token %}
{{ wizard.form.media }}
<div class="set-sect p-form adm-form passed">
<div class="set-sect-title clearfix">
<h3>{% trans "Шаг 1. Основная информация" %}</h3>
<div class="afh-right">
<button name="wizard_goto_step" type="submit" class="button icon-edit"
value="{{ wizard.steps.prev }}">{% trans "изменить" %}
</button>
</div>
</div>
</div>
<div class="set-sect p-form adm-form">
<div class="set-sect-title clearfix">
<h3>{% trans "Шаг 2. Статистика и условия участия" %}</h3>
<div class="afh-right">
<div class="sst-info">{% blocktrans %}<b>+ 0,9 баллов</b> к рейтингу{% endblocktrans %}</div>
</div>
</div>
{{ wizard.management_form }}
{% if wizard.form.forms %}
{{ wizard.form.management_form }}
{% for form in wizard.form.forms %}
{{ form }}
{% endfor %}
{% else %}
{% with wizard.form as form %}
<hr/>
<div class="mfs-additional mf-stat">
<div class="mf-line mf-prod mf-short-input">
<label>{% trans "Год основания:" %}</label>
{{ form.found_year }}
<div class="mf-field">
</div>
</div>
<hr/>
<h2>{% trans "Стоимость посещения и участия" %}</h2>
<div class="e-price-wrap">
<div class="epr-layout">
<div class="eprl-col">
<div class="eprl-col-wrap">
<div class="epr-subtitle">{% trans "Стоимость билетов" %}</div>
<div class="tp-wrap">
<ul class="pr-list">
<li>
{{ form.one_day }}
<select name="oneDayCurrency1">
<option value="rur">{% trans "руб" %}</option>
<option value="usd">usd</option>
<option value="eur">eur</option>
</select>
</li>
<li>
{{ form.all_days }}
<select name="allDaysCurrency1">
<option value="rur">{% trans "руб" %}</option>
<option value="usd">usd</option>
<option value="eur">eur</option>
</select>
</li>
</ul>
<div class="tp-descr">{% trans "Предварительная регистрация" %}</div>
</div>
<hr/>
<div class="tp-wrap">
<ul class="pr-list">
<li>
{{ form.pre_one_day }}
<select name="oneDayCurrency2">
<option value="1">{% trans "руб" %}</option>
<option value="2">usd</option>
<option value="3">eur</option>
</select>
</li>
<li>
{{ form.pre_all_days }}
<select name="allDaysCurrency2">
<option value="1">{% trans "руб" %}</option>
<option value="2">usd</option>
<option value="3">eur</option>
</select>
</li>
</ul>
<div class="tp-descr grey">{% trans "Регистрация на&nbsp;стойке" %}</div>
</div>
</div>
</div>
<div class="eprl-col">
<div class="eprl-col-wrap">
<div class="epr-subtitle">{% trans "Стоимость аренды 1м²" %}</div>
<ul class="pr-list">
<li>
{{ form.equiped }}
<select name="areaCurrency1">
<option value="1">руб</option>
<option value="2">usd</option>
<option value="3">eur</option>
</select>
</li>
<li>
{{ form.unequiped }}
<select name="areaCurrency2">
<option value="1">{% trans "руб" %}</option>
<option value="2">usd</option>
<option value="3">eur</option>
</select>
</li>
<li>
{{ form.open_square }}
<select name="areaCurrency3">
<option value="1">{% trans "руб" %}</option>
<option value="2">usd</option>
<option value="3">eur</option>
</select>
</li>
</ul>
<hr/>
<div class="mf-line mf-min-area">
<label>{% trans "Минимальная площадь:" %}</label>
<div class="mf-field">
{{ form.min_square }}
м²
</div>
</div>
<hr/>
<div class="mf-line mf-reg-payment">
<label>{% trans "Регистрационный взнос:" %}</label>
<div class="mf-field">
{{ form.registration_depos }}
<select name="areaCurrency3">
<option value="1">{% trans "руб" %}</option>
<option value="2">usd</option>
<option value="3">eur</option>
</select>
</div>
</div>
<hr/>
<div class="mf-line mf-deadline">
<label>{% trans "Крайний срок подачи заявки:" %}</label>
<div class="mf-field">
<div class="period">
<div class="pwf-field">
{{ form.deadline_date }}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<hr/>
<div class="a-bot-buttons-line clearfix">
<div class="abb-left">
<div class="mfpl-button-line">
{# <div class="mfpl-button">#}
{# <a class="button big grey a-more" href="#">пропустить этот шаг</a>#}
{# </div>#}
<div class="mfpl-text">
<p>{% trans "более полная информация повышает рейтинг вашего мероприятия и позволяет ранжировать его выше других" %}</p>
</div>
</div>
</div>
<button class="button big orange a-more" type="submit">{% trans "Дале" %}</button>
</div>
</div>
<div class="set-sect p-form adm-form passed">
<div class="set-sect-title clearfix">
<h3>{% trans "Шаг 3. Добавление фото" %}</h3>
</div>
</div>
</form>
</div>
{% endwith %}
{% endif %}
{% endblock %}

@ -1,147 +0,0 @@
{% extends "client/base_catalog.html" %}
{% load i18n %}
{% block styles %}
<style>
.thumb {
height: 175px;
border: 1px solid #000;
}
</style>
{% endblock %}
{% block content_list %}
{{ wizard.form.media }}
<div class="page-title">
<h1>{% trans "Добавить событие" %}</h1>
</div>
<div class="page-body clearfix">
<form action="" method="post" enctype="multipart/form-data">{% csrf_token %}
<div class="set-sect p-form adm-form passed">
<div class="set-sect-title clearfix">
<h3>{% trans "Шаг 1. Основная информация" %}</h3>
<div class="afh-right">
<button name="wizard_goto_step" type="submit" class="button icon-edit"
value="{{ wizard.steps.first }}">{% trans "изменить" %}
</button>
</div>
</div>
</div>
<div class="set-sect p-form adm-form passed">
<div class="set-sect-title clearfix">
<h3>{% trans "Шаг 2. Статистика и условия участия" %}</h3>
<div class="afh-right">
<button name="wizard_goto_step" type="submit" class="button icon-edit"
value="{{ wizard.steps.prev }}">{% trans "изменить" %}
</button>
</div>
</div>
</div>
<div class="set-sect p-form adm-form">
<div class="set-sect-title clearfix">
<h3>{% trans "Шаг 3. Добавление фото" %}</h3>
<div class="afh-right">
<div class="sst-info">{% blocktrans %}<b>+ 1,2 балла</b> к рейтингу{% endblocktrans %}</div>
</div>
</div>
{{ form.errors }}
{{ wizard.management_form }}
{% if wizard.form.forms %}
{{ wizard.form.management_form }}
{% for form in wizard.form.forms %}
{{ form }}
{% endfor %}
{% else %}
{% with wizard.form as form %}
<hr/>
<div class="mf-photos-list">
<div class="mfpl-button-line">
<div class="mfpl-button">
{{ form.attachments }}
</div>
<div class="mfpl-text">
<p>{% trans "более полная информация повышает рейтинг вашего мероприятия и позволяет ранжировать его выше других" %}</p>
</div>
</div>
</div>
<ul id="list"></ul>
<div class="a-bot-buttons-line clearfix">
<div class="abb-left">
<button class="button big grey a-more" type="submit">{% trans "пропустить этот шаг" %}</button>
</div>
<div class="abb-right">
<button id="next" class="button big orange a-more" type="submit">{% trans "далее" %}</button>
</div>
<div id="res"> </div>
</div>
{% endwith %}
{% endif %}
</div>
</form>
</div>
<!-- for response debugging -->
{% comment %} <script>
$("#next").click(function(e){
e.preventDefault();
$.ajax({url: '/wizard/ajax/', success: function(result){
$("#res").html(result);
}});
});
</script>{% endcomment %}
<script type="text/javascript">
var cnt = 0;
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
// Loop through the FileList and render image files as thumbnails.
for (var i = 0, f; f = files[i]; i++) {
// Only process image files.
if (!f.type.match('image.*')) {
continue;
}
var reader = new FileReader();
// Closure to capture the file information.
reader.onload = (function (theFile) {
return function (e) {
// Render thumbnail.
var div = document.createElement('div');
div.innerHTML = ['<li><div class="mfpli-pict"> <img class="thumb" src="', e.target.result,
'" title="', theFile.name,
'"/></div>', '<div class="mfpli-body"> <div class="mf-line full-width"> <div class="mf-field"> <textarea name="pdescr_',
cnt.toString(), '" cols="30" rows="10" placeholder="Описание"></textarea></div></div>',
'</li>'].join('');
cnt +=1 ;
document.getElementById('list').insertBefore(div, null);
};
})(f);
// Read in the image file as a data URL.
reader.readAsDataURL(f);
}
}
document.getElementById('files').addEventListener('change', handleFileSelect, false);
</script>
{% endblock %}

@ -1,25 +0,0 @@
{% extends 'client/base_catalog.html' %}
{% load i18n %}
{% block content_list %}
{{ wizard.form.media }}
<p>{% blocktrans with step=wizard.steps.step1 count=wizard.steps.count %}Step {{ step }} of {{ count }}{% endblocktrans %}</p>
<form action="" method="post">{% csrf_token %}
<table>
{{ wizard.management_form }}
{% if wizard.form.forms %}
{{ wizard.form.management_form }}
{% for form in wizard.form.forms %}
{{ form }}
{% endfor %}
{% else %}
{{ wizard.form }}
{% endif %}
</table>
{% if wizard.steps.prev %}
<button name="wizard_goto_step" type="submit" value="{{ wizard.steps.first }}"> "{% trans "first step" %}" </button>
<button name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev }}"> "{% trans "prev step" %}"</button>
{% endif %}
<input type="submit" value= "submit"/>
</form>
{% endblock %}
Loading…
Cancel
Save