Compare commits

...

7 Commits

Author SHA1 Message Date
Raphael Michel
b4a7947062 Bump version 2017-05-18 10:19:21 +02:00
Raphael Michel
66ce94cac3 Add release config for GitLab CI 2017-05-18 10:18:59 +02:00
Raphael Michel
4556914a2d Fix critical bug in item creation 2017-05-18 10:18:11 +02:00
Raphael Michel
52f057053e Bump version 2017-04-17 13:36:10 +02:00
Raphael Michel
c3eb909742 Fix locale formatting in PDF exporter 2017-04-17 13:34:02 +02:00
Jan Felix Wiebe
8b88fb0988 Switched checkbox order (#461)
The boxes vor adding and editing vouchers were switched for new users.
2017-04-17 13:33:48 +02:00
Raphael Michel
8884502d19 Update minimal django version 2017-04-17 13:33:20 +02:00
7 changed files with 65 additions and 41 deletions

View File

@@ -2,11 +2,32 @@ before_script:
tests: tests:
stage: test stage: test
script: script:
- virtualenv-3.4 env - virtualenv env
- source env/bin/activate - source env/bin/activate
- pip install -U pip wheel setuptools - pip install -U pip wheel setuptools
- XDG_CACHE_HOME=/cache bash .travis.sh style - XDG_CACHE_HOME=/cache bash .travis.sh style
- XDG_CACHE_HOME=/cache bash .travis.sh tests - XDG_CACHE_HOME=/cache bash .travis.sh tests
- XDG_CACHE_HOME=/cache bash .travis.sh doctests
tags: tags:
- python3 - python3
pypi:
stage: release
script:
- cp /keys/.pypirc ~/.pypirc
- virtualenv env
- source env/bin/activate
- pip install -U pip wheel setuptools
- XDG_CACHE_HOME=/cache pip3 install -Ur src/requirements.txt -r src/requirements/dev.txt -r src/requirements/py34.txt
- cd src
- python setup.py sdist upload
- python setup.py bdist_wheel upload
tags:
- python3
only:
- release
artifacts:
paths:
- src/dist/
stages:
- test
- build
- release

View File

@@ -1 +1 @@
__version__ = "1.2.0" __version__ = "1.2.2"

View File

@@ -117,7 +117,18 @@ class ItemCreateForm(I18nModelForm):
) )
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
if self.cleaned_data.get('copy_from'):
self.instance.category = self.cleaned_data['copy_from'].category
self.instance.description = self.cleaned_data['copy_from'].description
self.instance.active = self.cleaned_data['copy_from'].active
self.instance.available_from = self.cleaned_data['copy_from'].available_from
self.instance.available_until = self.cleaned_data['copy_from'].available_until
self.instance.require_voucher = self.cleaned_data['copy_from'].require_voucher
self.instance.hide_without_voucher = self.cleaned_data['copy_from'].hide_without_voucher
self.instance.allow_cancel = self.cleaned_data['copy_from'].allow_cancel
instance = super().save(*args, **kwargs) instance = super().save(*args, **kwargs)
if self.cleaned_data.get('has_variations'): if self.cleaned_data.get('has_variations'):
if self.cleaned_data.get('copy_from') and self.cleaned_data.get('copy_from').has_variations: if self.cleaned_data.get('copy_from') and self.cleaned_data.get('copy_from').has_variations:
for variation in self.cleaned_data['copy_from'].variations.all(): for variation in self.cleaned_data['copy_from'].variations.all():
@@ -128,8 +139,9 @@ class ItemCreateForm(I18nModelForm):
item=instance, value=__('Standard') item=instance, value=__('Standard')
) )
for question in Question.objects.filter(items=self.cleaned_data.get('copy_from')): if self.cleaned_data.get('copy_from'):
question.items.add(instance) for question in self.cleaned_data['copy_from'].questions.all():
question.items.add(instance)
return instance return instance

View File

@@ -72,8 +72,8 @@
<td>{{ add_form.can_view_orders }}</td> <td>{{ add_form.can_view_orders }}</td>
<td>{{ add_form.can_change_orders }}</td> <td>{{ add_form.can_change_orders }}</td>
<td>{{ add_form.can_change_permissions }}</td> <td>{{ add_form.can_change_permissions }}</td>
<td>{{ add_form.can_change_vouchers }}</td>
<td>{{ add_form.can_view_vouchers }}</td> <td>{{ add_form.can_view_vouchers }}</td>
<td>{{ add_form.can_change_vouchers }}</td>
</tr> </tr>
</tfoot> </tfoot>
</table> </table>

View File

@@ -790,15 +790,6 @@ class ItemCreate(EventPermissionRequiredMixin, CreateView):
@transaction.atomic @transaction.atomic
def form_valid(self, form): def form_valid(self, form):
messages.success(self.request, _('Your changes have been saved.')) messages.success(self.request, _('Your changes have been saved.'))
if form.cleaned_data['copy_from']:
form.instance.category = form.cleaned_data['copy_from'].category
form.instance.description = form.cleaned_data['copy_from'].description
form.instance.active = form.cleaned_data['copy_from'].active
form.instance.available_from = form.cleaned_data['copy_from'].available_from
form.instance.available_until = form.cleaned_data['copy_from'].available_until
form.instance.require_voucher = form.cleaned_data['copy_from'].require_voucher
form.instance.hide_without_voucher = form.cleaned_data['copy_from'].hide_without_voucher
form.instance.allow_cancel = form.cleaned_data['copy_from'].allow_cancel
ret = super().form_valid(form) ret = super().form_valid(form)
form.instance.log_action('pretix.event.item.added', user=self.request.user, data={ form.instance.log_action('pretix.event.item.added', user=self.request.user, data={

View File

@@ -7,7 +7,7 @@ from django import forms
from django.conf import settings from django.conf import settings
from django.contrib.staticfiles import finders from django.contrib.staticfiles import finders
from django.db.models import Sum from django.db.models import Sum
from django.utils.formats import date_format from django.utils.formats import date_format, localize
from django.utils.timezone import now from django.utils.timezone import now
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
@@ -187,43 +187,43 @@ class OverviewReport(Report):
tstyledata.append(('FONTNAME', (0, len(tdata)), (-1, len(tdata)), 'OpenSansBd')) tstyledata.append(('FONTNAME', (0, len(tdata)), (-1, len(tdata)), 'OpenSansBd'))
tdata.append([ tdata.append([
tup[0].name, tup[0].name,
str(tup[0].num_canceled[0]), str(tup[0].num_canceled[1]), str(tup[0].num_canceled[0]), localize(tup[0].num_canceled[1]),
str(tup[0].num_refunded[0]), str(tup[0].num_refunded[1]), str(tup[0].num_refunded[0]), localize(tup[0].num_refunded[1]),
str(tup[0].num_expired[0]), str(tup[0].num_expired[1]), str(tup[0].num_expired[0]), localize(tup[0].num_expired[1]),
str(tup[0].num_pending[0]), str(tup[0].num_pending[1]), str(tup[0].num_pending[0]), localize(tup[0].num_pending[1]),
str(tup[0].num_paid[0]), str(tup[0].num_paid[1]), str(tup[0].num_paid[0]), localize(tup[0].num_paid[1]),
str(tup[0].num_total[0]), str(tup[0].num_total[1]), str(tup[0].num_total[0]), localize(tup[0].num_total[1]),
]) ])
for item in tup[1]: for item in tup[1]:
tdata.append([ tdata.append([
" " + str(item.name), " " + str(item.name),
str(item.num_canceled[0]), str(item.num_canceled[1]), str(item.num_canceled[0]), localize(item.num_canceled[1]),
str(item.num_refunded[0]), str(item.num_refunded[1]), str(item.num_refunded[0]), localize(item.num_refunded[1]),
str(item.num_expired[0]), str(item.num_expired[1]), str(item.num_expired[0]), localize(item.num_expired[1]),
str(item.num_pending[0]), str(item.num_pending[1]), str(item.num_pending[0]), localize(item.num_pending[1]),
str(item.num_paid[0]), str(item.num_paid[1]), str(item.num_paid[0]), localize(item.num_paid[1]),
str(item.num_total[0]), str(item.num_total[1]), str(item.num_total[0]), localize(item.num_total[1]),
]) ])
if item.has_variations: if item.has_variations:
for var in item.all_variations: for var in item.all_variations:
tdata.append([ tdata.append([
" " + str(var), " " + str(var),
str(var.num_canceled[0]), str(var.num_canceled[1]), str(var.num_canceled[0]), localize(var.num_canceled[1]),
str(var.num_refunded[0]), str(var.num_refunded[1]), str(var.num_refunded[0]), localize(var.num_refunded[1]),
str(var.num_expired[0]), str(var.num_expired[1]), str(var.num_expired[0]), localize(var.num_expired[1]),
str(var.num_pending[0]), str(var.num_pending[1]), str(var.num_pending[0]), localize(var.num_pending[1]),
str(var.num_paid[0]), str(var.num_paid[1]), str(var.num_paid[0]), localize(var.num_paid[1]),
str(var.num_total[0]), str(var.num_total[1]), str(var.num_total[0]), localize(var.num_total[1]),
]) ])
tdata.append([ tdata.append([
_("Total"), _("Total"),
str(total['num_canceled'][0]), str(total['num_canceled'][1]), str(total['num_canceled'][0]), localize(total['num_canceled'][1]),
str(total['num_refunded'][0]), str(total['num_refunded'][1]), str(total['num_refunded'][0]), localize(total['num_refunded'][1]),
str(total['num_expired'][0]), str(total['num_expired'][1]), str(total['num_expired'][0]), localize(total['num_expired'][1]),
str(total['num_pending'][0]), str(total['num_pending'][1]), str(total['num_pending'][0]), localize(total['num_pending'][1]),
str(total['num_paid'][0]), str(total['num_paid'][1]), str(total['num_paid'][0]), localize(total['num_paid'][1]),
str(total['num_total'][0]), str(total['num_total'][1]), str(total['num_total'][0]), localize(total['num_total'][1]),
]) ])
table = Table(tdata, colWidths=colwidths, repeatRows=3) table = Table(tdata, colWidths=colwidths, repeatRows=3)

View File

@@ -1,5 +1,5 @@
# Functional requirements # Functional requirements
Django==1.10.* Django>=1.10.7,<1.11
python-dateutil python-dateutil
pytz pytz
django-bootstrap3==8.0.* django-bootstrap3==8.0.*