Compare commits

...

9 Commits

Author SHA1 Message Date
Raphael Michel
25beb8f6c6 Bump to 4.18.2.post1 2023-03-30 09:48:33 +02:00
Raphael Michel
e3c55fd0fe Bump redis to 4.5.4+ 2023-03-30 09:48:13 +02:00
Raphael Michel
5bc92a9f04 Bump to 4.18.2 2023-03-29 11:05:35 +02:00
Richard Schreiber
1de57aaa80 Widget: fix default-open variations being hidden (Z#23118652) 2023-03-29 11:05:35 +02:00
Raphael Michel
6ae2fa5964 Bump to 4.18.1 2023-03-29 11:05:32 +02:00
Raphael Michel
d5ed1b87a1 Create log entry for ordering items, categories and questions 2023-03-28 17:42:17 +02:00
Raphael Michel
2b0f754f4b Widget: improve accessibility with aria-label and role=button (#3179)
Including fixes for previous commit
2023-03-28 15:14:49 +02:00
Raphael Michel
aaebcae12b Revert "Widget: improve accessibility with aria-label and role=button (#3179)"
This reverts commit 2b479f59d5.
2023-03-28 15:03:14 +02:00
Raphael Michel
8096e958b8 Bump version to 4.19.0.dev0 2023-03-28 13:37:38 +02:00
6 changed files with 56 additions and 27 deletions

View File

@@ -19,4 +19,4 @@
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
# <https://www.gnu.org/licenses/>.
#
__version__ = "4.18.0"
__version__ = "4.18.2.post1"

View File

@@ -470,6 +470,7 @@ def pretixcontrol_logentry_display(sender: Event, logentry: LogEntry, **kwargs):
'pretix.voucher.redeemed': _('The voucher has been redeemed in order {order_code}.'),
'pretix.event.item.added': _('The product has been created.'),
'pretix.event.item.changed': _('The product has been changed.'),
'pretix.event.item.reordered': _('The product has been reordered.'),
'pretix.event.item.deleted': _('The product has been deleted.'),
'pretix.event.item.variation.added': _('The variation "{value}" has been created.'),
'pretix.event.item.variation.deleted': _('The variation "{value}" has been deleted.'),
@@ -488,9 +489,11 @@ def pretixcontrol_logentry_display(sender: Event, logentry: LogEntry, **kwargs):
'pretix.event.category.added': _('The category has been added.'),
'pretix.event.category.deleted': _('The category has been deleted.'),
'pretix.event.category.changed': _('The category has been changed.'),
'pretix.event.category.reordered': _('The category has been reordered.'),
'pretix.event.question.added': _('The question has been added.'),
'pretix.event.question.deleted': _('The question has been deleted.'),
'pretix.event.question.changed': _('The question has been changed.'),
'pretix.event.question.reordered': _('The question has been reordered.'),
'pretix.event.discount.added': _('The discount has been added.'),
'pretix.event.discount.deleted': _('The discount has been deleted.'),
'pretix.event.discount.changed': _('The discount has been changed.'),

View File

@@ -136,6 +136,11 @@ def item_move(request, item, up=True):
if item.position != i:
item.position = i
item.save()
item.log_action(
'pretix.event.item.reordered', user=request.user, data={
'position': i,
}
)
messages.success(request, _('The order of items has been updated.'))
@@ -185,6 +190,11 @@ def reorder_items(request, organizer, event):
if pos != i.position: # Save unneccessary UPDATE queries
i.position = pos
i.save(update_fields=['position'])
i.log_action(
'pretix.event.item.reordered', user=request.user, data={
'position': i,
}
)
return HttpResponse()
@@ -243,7 +253,7 @@ class CategoryUpdate(EventPermissionRequiredMixin, UpdateView):
messages.success(self.request, _('Your changes have been saved.'))
if form.has_changed():
self.object.log_action(
'pretix.event.category.changed', user=self.request.user, data={
'pretix.event.category.reordered', user=self.request.user, data={
k: form.cleaned_data.get(k) for k in form.changed_data
}
)
@@ -338,6 +348,11 @@ def category_move(request, category, up=True):
if cat.position != i:
cat.position = i
cat.save()
cat.log_action(
'pretix.event.category.reordered', user=request.user, data={
'position': i,
}
)
messages.success(request, _('The order of categories has been updated.'))
@@ -381,6 +396,11 @@ def reorder_categories(request, organizer, event):
if pos != c.position: # Save unneccessary UPDATE queries
c.position = pos
c.save(update_fields=['position'])
c.log_action(
'pretix.event.category.reordered', user=request.user, data={
'position': pos,
}
)
return HttpResponse()
@@ -510,6 +530,11 @@ def reorder_questions(request, organizer, event):
if pos != q.position: # Save unneccessary UPDATE queries
q.position = pos
q.save(update_fields=['position'])
q.log_action(
'pretix.event.question.reordered', user=request.user, data={
'position': pos,
}
)
system_question_order = {}
for s in ('attendee_name_parts', 'attendee_email', 'company', 'street', 'zipcode', 'city', 'country'):
@@ -518,6 +543,11 @@ def reorder_questions(request, organizer, event):
else:
system_question_order[s] = -1
request.event.settings.system_question_order = system_question_order
request.event.log_action(
'pretix.event.settings', user=request.user, data={
'system_question_order': system_question_order,
}
)
return HttpResponse()
@@ -731,7 +761,7 @@ class QuestionUpdate(EventPermissionRequiredMixin, QuestionMixin, UpdateView):
if form.has_changed():
self.object.log_action(
'pretix.event.question.changed', user=self.request.user, data={
'pretix.event.question.reordered', user=self.request.user, data={
k: form.cleaned_data.get(k) for k in form.changed_data
}
)

View File

@@ -482,30 +482,27 @@ Vue.component('item', {
expanded: this.$root.show_variations_expanded
};
},
watch: {
expanded: function (newValue) {
var v = this.$refs.variations;
if (newValue) {
v.hidden = false;
} else {
// Vue.nextTick does not work here
window.setTimeout(function () {
v.style.maxHeight = 0;
}, 50);
}
v.style.maxHeight = v.scrollHeight + 'px';
}
},
mounted: function () {
if (this.$refs.variations) {
this.$refs.variations.hidden = !this.expanded;
this.$refs.variations.addEventListener('transitionend', function (event) {
if (this.style.maxHeight && this.style.maxHeight != '0px') {
this.style.maxHeight = 'none';
} else {
this.hidden = true;
}
});
if (!this.expanded) {
var $this = this;
this.$refs.variations.hidden = true;
this.$refs.variations.addEventListener('transitionend', function (event) {
if (event.target == this) {
this.hidden = !$this.expanded;
this.style.maxHeight = 'none';
}
});
this.$watch('expanded', function (newValue) {
var v = this.$refs.variations;
v.hidden = false;
v.style.maxHeight = (newValue ? 0 : v.scrollHeight) + 'px';
// Vue.nextTick does not work here
window.setTimeout(function () {
v.style.maxHeight = (!newValue ? 0 : v.scrollHeight) + 'px';
}, 50);
})
}
}
},
methods: {

View File

@@ -373,7 +373,6 @@
.pretix-widget-item-variations {
overflow: hidden;
max-height: 0;
padding-top: 0;
padding-bottom: 0;
margin-top: 0;

View File

@@ -218,7 +218,7 @@ setup(
'python-u2flib-server==4.*',
'pytz',
'pyuca',
'redis==4.5.*',
'redis==4.5.*,>=4.5.4',
'reportlab==3.6.*',
'requests==2.28.*',
'sentry-sdk==1.15.*',