forked from CGM_Public/pretix_original
Basic item settings
This commit is contained in:
@@ -17,4 +17,5 @@
|
||||
</li>
|
||||
<li {% if url_name == "event.index" %}class="active"{% endif %}><a href="{% url 'control:event.index' organizer=request.event.organizer.slug event=request.event.slug %}">{% trans "Dashboard" %}</a></li>
|
||||
<li {% if url_name == "event.settings" %}class="active"{% endif %}><a href="{% url 'control:event.settings' organizer=request.event.organizer.slug event=request.event.slug %}">{% trans "Settings" %}</a></li>
|
||||
<li {% if "event.item" in url_name %}class="active"{% endif %}><a href="{% url 'control:event.items' organizer=request.event.organizer.slug event=request.event.slug %}">{% trans "Items" %}</a></li>
|
||||
{% endblock %}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
{% extends "tixlcontrol/event/base.html" %}
|
||||
{% load i18n %}
|
||||
{% block title %}{{ item.name }} :: {% trans "Item" %}{% endblock %}
|
||||
{% block content %}
|
||||
<h1>{% trans "Modify item:" %} {{ item.name }}</h1>
|
||||
<ul class="nav nav-pills">
|
||||
<li {% if "event.item" == url_name %}class="active"{% endif %}><a href="{% url 'control:event.item' organizer=request.event.organizer.slug event=request.event.slug item=item.pk %}">{% trans "General information" %}</a></li>
|
||||
</ul>
|
||||
{% block inside %}
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,39 @@
|
||||
{% extends "tixlcontrol/item/base.html" %}
|
||||
{% load i18n %}
|
||||
{% load bootstrap3 %}
|
||||
{% block inside %}
|
||||
<h2>{% trans "General information" %}</h2>
|
||||
|
||||
{% if "success" in request.GET %}
|
||||
<div class="alert alert-success">
|
||||
{% trans "Your changes have been saved." %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<form action="" method="post" class="form-horizontal">
|
||||
{% csrf_token %}
|
||||
<fieldset>
|
||||
<legend>{% trans "General information" %}</legend>
|
||||
{% bootstrap_field form.name layout="horizontal" %}
|
||||
{% bootstrap_field form.active layout="horizontal" %}
|
||||
{% bootstrap_field form.category layout="horizontal" %}
|
||||
{% bootstrap_field form.short_description layout="horizontal" %}
|
||||
{% bootstrap_field form.long_description layout="horizontal" %}
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{% trans "Price settings" %}</legend>
|
||||
{% bootstrap_field form.default_price layout="horizontal" %}
|
||||
{% bootstrap_field form.tax_rate layout="horizontal" %}
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{% trans "Variations" %}</legend>
|
||||
{% bootstrap_field form.properties layout="horizontal" %}
|
||||
</fieldset>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
{% trans "Save" %}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,12 @@
|
||||
{% extends "tixlcontrol/event/base.html" %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "Items" %}{% endblock %}
|
||||
{% block content %}
|
||||
<ul class="nav nav-pills">
|
||||
<li {% if "event.items" == url_name %}class="active"{% endif %}><a href="{% url 'control:event.items' organizer=request.event.organizer.slug event=request.event.slug %}">{% trans "Items" %}</a></li>
|
||||
<li {% if "event.items.categories" in url_name %}class="active"{% endif %}><a href="{% url 'control:event.items.categories' organizer=request.event.organizer.slug event=request.event.slug %}">{% trans "Categories" %}</a></li>
|
||||
<li {% if "event.items.properties" in url_name %}class="active"{% endif %}><a href="{% url 'control:event.items.properties' organizer=request.event.organizer.slug event=request.event.slug %}">{% trans "Properties" %}</a></li>
|
||||
</ul>
|
||||
{% block inside %}
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,20 @@
|
||||
{% extends "tixlcontrol/items/base.html" %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "Items" %}{% endblock %}
|
||||
{% block inside %}
|
||||
<h1>{% trans "Items" %}</h1>
|
||||
<table class="table table-condensed table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Item name" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for i in items %}
|
||||
<tr>
|
||||
<td><strong><a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=i.pk %}">{{ i.name }}</a></strong></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endblock %}
|
||||
@@ -1,5 +1,5 @@
|
||||
from django.conf.urls import patterns, url, include
|
||||
from tixlcontrol.views import main, event
|
||||
from tixlcontrol.views import main, event, item
|
||||
|
||||
urlpatterns = patterns('',)
|
||||
urlpatterns += patterns(
|
||||
@@ -16,9 +16,13 @@ urlpatterns += patterns(
|
||||
'tixlcontrol.views.event',
|
||||
url(r'^event/(?P<organizer>[^/]+)/(?P<event>[^/]+)/', include(
|
||||
patterns(
|
||||
'tixlcontrol.views.event',
|
||||
url(r'^$', 'index', name='event.index'),
|
||||
'tixlcontrol.views',
|
||||
url(r'^$', 'event.index', name='event.index'),
|
||||
url(r'^settings$', event.EventUpdate.as_view(), name='event.settings'),
|
||||
url(r'^items$', item.ItemList.as_view(), name='event.items'),
|
||||
url(r'^items/(?P<item>\d+)/$', item.ItemUpdateGeneral.as_view(), name='event.item'),
|
||||
url(r'^categories$', item.CategoryList.as_view(), name='event.items.categories'),
|
||||
url(r'^properties$', item.PropertyList.as_view(), name='event.items.properties'),
|
||||
)
|
||||
))
|
||||
)
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
from django.views.generic import ListView
|
||||
from django.views.generic.edit import UpdateView
|
||||
from django.core.urlresolvers import resolve, reverse
|
||||
from django import forms
|
||||
|
||||
from tixlbase.models import Item, ItemCategory, Property
|
||||
from tixlcontrol.permissions import EventPermissionRequiredMixin
|
||||
|
||||
|
||||
class ItemList(ListView):
|
||||
model = Item
|
||||
context_object_name = 'items'
|
||||
template_name = 'tixlcontrol/items/index.html'
|
||||
|
||||
def get_queryset(self):
|
||||
return Item.objects.filter(
|
||||
event=self.request.event
|
||||
)
|
||||
|
||||
|
||||
class CategoryList(ListView):
|
||||
model = ItemCategory
|
||||
context_object_name = 'items'
|
||||
template_name = 'tixlcontrol/items/index.html'
|
||||
|
||||
def get_queryset(self):
|
||||
return ItemCategory.objects.filter(
|
||||
event=self.request.event
|
||||
)
|
||||
|
||||
|
||||
class PropertyList(ListView):
|
||||
model = Property
|
||||
context_object_name = 'items'
|
||||
template_name = 'tixlcontrol/items/index.html'
|
||||
|
||||
def get_queryset(self):
|
||||
return Property.objects.filter(
|
||||
event=self.request.event
|
||||
)
|
||||
|
||||
|
||||
class ItemUpdateFormGeneral(forms.ModelForm):
|
||||
|
||||
class Meta:
|
||||
model = Item
|
||||
localized_fields = '__all__'
|
||||
fields = [
|
||||
'category',
|
||||
'name',
|
||||
'active',
|
||||
'short_description',
|
||||
'long_description',
|
||||
'default_price',
|
||||
'tax_rate',
|
||||
'properties',
|
||||
]
|
||||
|
||||
|
||||
class ItemUpdateGeneral(EventPermissionRequiredMixin, UpdateView):
|
||||
model = Item
|
||||
form_class = ItemUpdateFormGeneral
|
||||
template_name = 'tixlcontrol/item/index.html'
|
||||
permission = 'can_change_items'
|
||||
context_object_name = 'item'
|
||||
|
||||
def get_object(self, queryset=None):
|
||||
url = resolve(self.request.path_info)
|
||||
return self.request.event.items.get(
|
||||
id=url.kwargs['item']
|
||||
)
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse('control:event.item', kwargs={
|
||||
'organizer': self.request.event.organizer.slug,
|
||||
'event': self.request.event.slug,
|
||||
'item': self.get_object().pk,
|
||||
}) + '?success=true'
|
||||
Reference in New Issue
Block a user