service form and views

remotes/origin/1203
Ivan Kovalkovskyi 10 years ago
parent 48ffa7fa35
commit 9e19d6c57d
  1. 27
      service/admin.py
  2. 5
      service/admin_urls.py
  3. 11
      service/forms.py
  4. 2
      templates/admin/service/service_add.html
  5. 155
      templates/admin/service/test_add.html

@ -141,4 +141,29 @@ class ServiceControl(FormMixin, DetailView):
def get_context_data(self, **kwargs):
context = super(ServiceControl, self).get_context_data(**kwargs)
context['form'] = self.get_form(self.form_class)
return context
return context
from .forms import _ServiceForm
class ServiceAddView(FormView):
form_class = _ServiceForm
template_name = 'admin/service/test_add.html'
success_url = '/'
def get(self, request, *args, **kwargs):
data = request.GET
form = self.form_class(data)
if form.is_valid():
countries = form.cleaned_data['countries']
types = form.cleaned_data['type']
expos = form.cleaned_data['expos']
confs = form.cleaned_data['confs']
is_all_cnt = form.cleaned_data['all_counties']
raise
else:
pass

@ -2,7 +2,7 @@
from django.conf.urls import patterns, include, url
from views import CallBackListView, VisitListView, TranslationListView, AdvertisingListView, \
ParticipationListView, RemoteListView,TicketsListView
from service.admin import ServiceControlList, ServiceControl
from service.admin import ServiceControlList, ServiceControl, ServiceAddView
urlpatterns = patterns('service.admin',
url(r'^control/list/$', ServiceControlList.as_view()),
@ -18,8 +18,11 @@ urlpatterns = patterns('service.admin',
url(r'order/participation/$', ParticipationListView.as_view()),
url(r'order/remote/$', RemoteListView.as_view()),
url(r'order/tickets/$', TicketsListView.as_view()),
url('^test/$', ServiceAddView.as_view()),
#ajax
url(r'^get_city/$', 'get_city'),
url('^get_expos/$', 'get_country'),
#url(r'^get_country/$', 'get_country'),
)

@ -146,4 +146,13 @@ class ServiceControlForm(forms.Form):
self.fields['event_type'] = forms.MultipleChoiceField(required=False, label = 'Тип события',
widget=forms.CheckboxSelectMultiple(),
choices=[(item['service_bit'], item['verbose'])
for item in self.event])
for item in self.event])
from bitfield import BitField
class _ServiceForm(forms.Form):
type = forms.MultipleChoiceField(choices=[(x, x) for x in Service.type], widget=forms.CheckboxSelectMultiple)
countries = forms.MultipleChoiceField(choices=[(x.id,x.name) for x in Country.objects.language().all()])
all_counties = forms.BooleanField(widget=forms.CheckboxInput)
expos = forms.CharField(widget=forms.HiddenInput)
confs = forms.CharField(widget=forms.HiddenInput)

@ -48,7 +48,7 @@
{% include 'admin/forms/multilang.html' %}
{% endwith %}
{# url #}
<div class="control-group {% if form.url.errors %}error{% endif %}">
<div class="control-group {% if form.url.errors %}error{% endif %}">
<label class="control-label">{{ form.url.label }}:</label>
<div class="controls">
{{ form.url }}

@ -0,0 +1,155 @@
{% extends 'base.html' %}
{% load static %}
{% block scripts %}
{# selects #}
<link href="{% static 'js/select/select2.css' %}" rel="stylesheet"/>
<style >
ul{
list-style: none;
}
</style>
<script src="{% static 'js/select/select2.js' %}"></script>
<script>
$(document).ready(function () {
$('#id_expos').select2({
placeholder: "Expositions",
width: 'element',
multiple: true,
ajax: {
url: "/admin/exposition/search/",
dataType: "json",
quietMillis: 200,
multiple: true,
data: function (term, page) {
return {
term: term,
page: page
};
},
results: function (data) {
var results = [];
$.each(data, function (index, item) {
results.push({
id: item.id,
text: item.label
});
});
return {results: results};
}
},
initSelection: function (element, callback) {
var data = [];
$(element.val().split(",")).each(function (i) {
var item = this.split(':');
data.push({
id: item[0],
text: item[1]
});
});
callback(data);
}
});
$('#id_confs').select2({
placeholder: "Conferences",
width: 'element',
multiple: true,
ajax: {
url: "/admin/conference/search/",
dataType: "json",
quietMillis: 200,
multiple: true,
data: function (term, page) {
return {
term: term,
page: page
};
},
results: function (data) {
var results = [];
$.each(data, function (index, item) {
results.push({
id: item.id,
text: item.label
});
});
return {results: results};
}
},
initSelection: function (element, callback) {
var data = [];
$(element.val().split(",")).each(function (i) {
var item = this.split(':');
data.push({
id: item[0],
text: item[1]
});
});
callback(data);
}
});
});
</script>
{% endblock %}
{% block body %}
{# Uses multilang.html template for translated fields #}
<form class="form-horizontal" method="get" action="" >
{{ form.errors }}
<div class="form-group">
<label class="col-sm-2 control-label">Type:</label>
<div id = 'types' class="col-sm-10">
{{ form.type }}
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Countries:</label>
<div class="col-sm-10">
{{ form.countries }}
</div>
</div>
<div class="row">
<label class="col-sm-4 control-label">All:</label>
<div class="col-sm-8">
{{ form.all_counties }}
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Expos:</label>
<div class="col-sm-10">
{{ form.expos }}
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Conferences:</label>
<div class="col-sm-10">
{{ form.confs }}
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">Submit</button>
<button type="reset" class="btn">Reset</button>
</div>
</div>
</form>
{% endblock %}
Loading…
Cancel
Save