mirror of
https://github.com/pretix/pretix.git
synced 2026-10-10 20:44:41 +00:00
Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6b7f2ad684 | ||
|
|
54b249acf5 | ||
|
|
0cf2ba763b | ||
|
|
b44c3d707e | ||
|
|
45603c6624 |
@@ -1,6 +1,6 @@
|
||||
sphinx==9.1.*
|
||||
sphinx-rtd-theme~=3.1.0
|
||||
sphinxcontrib-httpdomain~=2.0.0
|
||||
sphinxcontrib-httpdomain~=2.1.0
|
||||
sphinxcontrib-images~=1.0.1
|
||||
sphinxcontrib-jquery~=4.1
|
||||
sphinxcontrib-spelling~=8.0.2
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
-e ../
|
||||
sphinx==9.1.*
|
||||
sphinx-rtd-theme~=3.1.0
|
||||
sphinxcontrib-httpdomain~=2.0.0
|
||||
sphinxcontrib-httpdomain~=2.1.0
|
||||
sphinxcontrib-images~=1.0.1
|
||||
sphinxcontrib-jquery~=4.1
|
||||
sphinxcontrib-spelling~=8.0.2
|
||||
|
||||
+3
-3
@@ -34,7 +34,7 @@ dependencies = [
|
||||
"celery==5.6.*",
|
||||
"chardet==5.2.*",
|
||||
"cryptography>=50.0.2",
|
||||
"css-inline==0.21.*",
|
||||
"css-inline==0.22.*",
|
||||
"defusedcsv>=3.0.0",
|
||||
"dnspython==2.*",
|
||||
"Django[argon2]==5.2.*,>=5.2.17",
|
||||
@@ -83,7 +83,7 @@ dependencies = [
|
||||
"psycopg2-binary",
|
||||
"pycountry",
|
||||
"pycparser==3.0",
|
||||
"pycryptodome==3.23.*",
|
||||
"pycryptodome==3.24.*",
|
||||
"pypdf==6.19.*",
|
||||
"python-bidi==0.6.*", # Support for Arabic in reportlab
|
||||
"python-dateutil==2.9.*",
|
||||
@@ -112,7 +112,7 @@ dev = [
|
||||
"aiohttp==3.14.*",
|
||||
"coverage",
|
||||
"coveralls",
|
||||
"fakeredis==2.38.*",
|
||||
"fakeredis==2.39.*",
|
||||
"flake8==7.4.*",
|
||||
"freezegun",
|
||||
"isort==9.0.*",
|
||||
|
||||
@@ -261,7 +261,9 @@ class ItemAddOnSerializer(serializers.ModelSerializer):
|
||||
def validate(self, data):
|
||||
data = super().validate(data)
|
||||
|
||||
ItemAddOn.clean_max_min_count(data.get('max_count'), data.get('min_count'))
|
||||
full_data = self.to_internal_value(self.to_representation(self.instance)) if self.instance else {}
|
||||
full_data.update(data)
|
||||
ItemAddOn.clean_max_min_count(full_data.get('max_count'), full_data.get('min_count'))
|
||||
|
||||
return data
|
||||
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
{% include "pretixpresale/fragment_event_list_filter.html" with request=request %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="panel-body" id="events-filter-result">
|
||||
<div class="panel-body">
|
||||
{% cache_large 15 subevent_list subevent_list_cache_key %}
|
||||
{% if subevent_list.list_type == "calendar" %}
|
||||
{% include "pretixpresale/event/fragment_subevent_calendar.html" %}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
{% load getitem %}
|
||||
|
||||
{% if filter_form.fields %}
|
||||
<form class="event-list-filter-form" method="get" data-save-scrollpos data-focus-after-submit="events-filter-result">
|
||||
<form class="event-list-filter-form" method="get" data-save-scrollpos>
|
||||
<input type="hidden" name="filtered" value="1">
|
||||
{% for f, v in request_get_items %}
|
||||
{% if f not in filter_form.fields and f != "page" %}
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
{% include "pretixpresale/fragment_event_list_filter.html" with request=request %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="panel-body" id="events-filter-result">
|
||||
<div class="panel-body">
|
||||
<nav aria-label="{% trans "calendar navigation" %}">
|
||||
<ul class="row calendar-nav">
|
||||
<li class="text-left flip">
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
{% include "pretixpresale/fragment_event_list_filter.html" with request=request %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="panel-body" id="events-filter-result">
|
||||
<div class="panel-body">
|
||||
<nav aria-label="{% trans "calendar navigation" %}">
|
||||
<ul class="row calendar-nav">
|
||||
<li class="text-left flip">
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
{% include "pretixpresale/fragment_event_list_filter.html" with request=request %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="panel-body" id="events-filter-result">
|
||||
<div class="panel-body">
|
||||
<nav aria-label="{% trans "calendar navigation" %}">
|
||||
<ul class="row calendar-nav">
|
||||
<li class="text-left flip">
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if events %}
|
||||
<div class="panel-body" id="events-filter-result">
|
||||
<div class="panel-body">
|
||||
<div class="event-list full-width-list alternating-rows">
|
||||
{% for e in events %}{% eventurl e "presale:event.index" as url %}
|
||||
<article class="row" aria-labelledby="event-{{ e.pk }}-label" aria-describedby="event-{{ e.pk }}-desc">
|
||||
|
||||
@@ -135,29 +135,6 @@ let form_handlers = function (el) {
|
||||
}
|
||||
wait();
|
||||
});
|
||||
|
||||
// usually a hash in the action-url of a form is enough to make the browser jump to the focus-point
|
||||
// filter-form on subevents needs to be a bit more clever as we only want the list/calendar to be focused
|
||||
// when the form was actually submitted, not when an URL-with-hash is shared/loaded without form-submit
|
||||
el.find("form[data-focus-after-submit]").each(function (i, form) {
|
||||
$(form).on("submit", function (e) {
|
||||
var currentElement = document.activeElement;
|
||||
if (currentElement && !$(currentElement).is(':submit')) {
|
||||
window.sessionStorage.setItem("autofocus", currentElement.id);
|
||||
} else {
|
||||
window.sessionStorage.setItem("autofocus", form.getAttribute("data-focus-after-submit"));
|
||||
}
|
||||
});
|
||||
});
|
||||
if (window.sessionStorage.getItem("autofocus")) {
|
||||
var afElement = document.getElementById(window.sessionStorage.getItem("autofocus"));
|
||||
if (afElement) {
|
||||
afElement.tabIndex = 0;
|
||||
afElement.focus();
|
||||
}
|
||||
window.sessionStorage.removeItem("autofocus");
|
||||
}
|
||||
|
||||
el.find('.input-item-count-dec, .input-item-count-inc').on('click', function (e) {
|
||||
e.preventDefault()
|
||||
let step = parseFloat(this.getAttribute('data-step'))
|
||||
|
||||
@@ -1925,6 +1925,14 @@ def test_addons_create(token_client, organizer, event, item, category, category2
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_addons_update(token_client, organizer, event, item, addon):
|
||||
resp = token_client.patch(
|
||||
'/api/v1/organizers/{}/events/{}/items/{}/addons/{}/'.format(organizer.slug, event.slug, item.pk, addon.pk),
|
||||
{
|
||||
},
|
||||
format='json'
|
||||
)
|
||||
assert resp.status_code == 200
|
||||
|
||||
resp = token_client.patch(
|
||||
'/api/v1/organizers/{}/events/{}/items/{}/addons/{}/'.format(organizer.slug, event.slug, item.pk, addon.pk),
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user