Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
Pretix public registrations
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Model registry
Monitor
Service Desk
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
KIF
Pretix public registrations
Compare revisions
aedf61b649dd6ed1d955501a25a44445fa36b430 to cd833153454e263df5d9f93044854f489e43e3ca
Compare revisions
Changes are shown as if the
source
revision was being merged into the
target
revision.
Learn more about comparing revisions.
Source
kif/pretix-public-registrations
Select target project
No results found
cd833153454e263df5d9f93044854f489e43e3ca
Select Git revision
Branches
10-update-to-django-4
main
Swap
Target
kif/pretix-public-registrations
Select target project
kif/pretix-public-registrations
1 result
aedf61b649dd6ed1d955501a25a44445fa36b430
Select Git revision
Branches
10-update-to-django-4
main
Show changes
Only incoming changes from source
Include changes to target since source was created
Compare
Commits on Source (2)
Change gravatar URLs to SHA256 hashes
#11
· e9dfa96e
Felix Schäfer
authored
4 months ago
e9dfa96e
Formatting (black)
· cd833153
Felix Schäfer
authored
4 months ago
cd833153
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
pretix_public_registrations/signals.py
+15
-8
15 additions, 8 deletions
pretix_public_registrations/signals.py
setup.py
+1
-1
1 addition, 1 deletion
setup.py
with
16 additions
and
9 deletions
pretix_public_registrations/signals.py
View file @
cd833153
import
hashlib
from
django
import
forms
from
django
import
forms
from
django.dispatch
import
receiver
from
django.dispatch
import
receiver
from
django.template.loader
import
get_template
from
django.template.loader
import
get_template
from
django.urls
import
resolve
,
reverse
from
django.urls
import
resolve
,
reverse
from
django.utils.translation
import
gettext_lazy
as
_
from
django.utils.translation
import
gettext_lazy
as
_
from
django_gravatar.helpers
import
get_gravatar_url
from
pretix.base.models
import
Order
,
OrderPosition
,
QuestionAnswer
from
pretix.base.models
import
Order
,
OrderPosition
,
QuestionAnswer
from
pretix.base.settings
import
settings_hierarkey
from
pretix.base.settings
import
settings_hierarkey
from
pretix.base.signals
import
event_copy_data
from
pretix.base.signals
import
event_copy_data
...
@@ -14,6 +14,7 @@ from pretix.presale.signals import (
...
@@ -14,6 +14,7 @@ from pretix.presale.signals import (
process_response
,
process_response
,
question_form_fields
,
question_form_fields
,
)
)
from
urllib.parse
import
urlencode
settings_hierarkey
.
add_default
(
"
public_registrations_items
"
,
[],
list
)
settings_hierarkey
.
add_default
(
"
public_registrations_items
"
,
[],
list
)
settings_hierarkey
.
add_default
(
"
public_registrations_questions
"
,
[],
list
)
settings_hierarkey
.
add_default
(
"
public_registrations_questions
"
,
[],
list
)
...
@@ -67,6 +68,12 @@ def add_public_registration_question(sender, position, **kwargs):
...
@@ -67,6 +68,12 @@ def add_public_registration_question(sender, position, **kwargs):
@receiver
(
signal
=
front_page_bottom
,
dispatch_uid
=
"
public_registrations_table
"
)
@receiver
(
signal
=
front_page_bottom
,
dispatch_uid
=
"
public_registrations_table
"
)
def
add_public_registrations_table
(
sender
,
**
kwargs
):
def
add_public_registrations_table
(
sender
,
**
kwargs
):
def
get_gravatar_url
(
email
,
size
=
40
):
email_encoded
=
email
.
lower
().
encode
(
"
utf-8
"
)
email_hash
=
hashlib
.
sha256
(
email_encoded
).
hexdigest
()
params
=
urlencode
({
"
d
"
:
"
wavatar
"
,
"
s
"
:
str
(
size
),
"
r
"
:
"
g
"
})
return
f
"
https://gravatar.com/avatar/
{
email_hash
}
?
{
params
}
"
if
not
sender
.
settings
.
get
(
"
public_registrations_items
"
)
and
not
(
if
not
sender
.
settings
.
get
(
"
public_registrations_items
"
)
and
not
(
sender
.
settings
.
get
(
"
public_registrations_questions
"
)
sender
.
settings
.
get
(
"
public_registrations_questions
"
)
and
sender
.
settings
.
get
(
"
public_registrations_show_item_name
"
)
and
sender
.
settings
.
get
(
"
public_registrations_show_item_name
"
)
...
@@ -111,9 +118,7 @@ def add_public_registrations_table(sender, **kwargs):
...
@@ -111,9 +118,7 @@ def add_public_registrations_table(sender, **kwargs):
public_answers
=
{(
a
.
orderposition_id
,
a
.
question_id
):
a
for
a
in
answers
}
public_answers
=
{(
a
.
orderposition_id
,
a
.
question_id
):
a
for
a
in
answers
}
public_registrations
=
[
public_registrations
=
[
{
{
"
gr_url
"
:
get_gravatar_url
(
"
gr_url
"
:
get_gravatar_url
(
pop
.
attendee_email
or
pop
.
order
.
code
,
size
=
24
),
pop
.
attendee_email
or
pop
.
order
.
code
,
size
=
24
,
default
=
"
wavatar
"
),
"
fields
"
:
(
"
fields
"
:
(
[
pop
.
item
.
name
]
[
pop
.
item
.
name
]
if
sender
.
settings
.
get
(
"
public_registrations_show_item_name
"
)
if
sender
.
settings
.
get
(
"
public_registrations_show_item_name
"
)
...
@@ -125,9 +130,11 @@ def add_public_registrations_table(sender, **kwargs):
...
@@ -125,9 +130,11 @@ def add_public_registrations_table(sender, **kwargs):
else
[]
else
[]
)
)
+
[
+
[
public_answers
[(
pop
.
pk
,
pq
.
pk
)].
answer
(
if
public_answers
.
get
((
pop
.
pk
,
pq
.
pk
))
public_answers
[(
pop
.
pk
,
pq
.
pk
)].
answer
else
""
if
public_answers
.
get
((
pop
.
pk
,
pq
.
pk
))
else
""
)
for
pq
in
public_questions
for
pq
in
public_questions
],
],
}
}
...
@@ -142,7 +149,7 @@ def add_public_registrations_table(sender, **kwargs):
...
@@ -142,7 +149,7 @@ def add_public_registrations_table(sender, **kwargs):
@receiver
(
signal
=
process_response
,
dispatch_uid
=
"
public_registragions_csp_headers
"
)
@receiver
(
signal
=
process_response
,
dispatch_uid
=
"
public_registragions_csp_headers
"
)
def
add_public_registrations_csp_headers
(
sender
,
request
=
None
,
response
=
None
,
**
kwargs
):
def
add_public_registrations_csp_headers
(
sender
,
request
=
None
,
response
=
None
,
**
kwargs
):
if
"
event.index
"
in
resolve
(
request
.
path_info
).
url_name
:
if
"
event.index
"
in
resolve
(
request
.
path_info
).
url_name
:
response
[
"
Content-Security-Policy
"
]
=
"
img-src https://
secure.
gravatar.com
"
response
[
"
Content-Security-Policy
"
]
=
"
img-src https://gravatar.com
"
return
response
return
response
...
...
This diff is collapsed.
Click to expand it.
setup.py
View file @
cd833153
...
@@ -47,7 +47,7 @@ setup(
...
@@ -47,7 +47,7 @@ setup(
"
License :: OSI Approved :: MIT License
"
,
"
License :: OSI Approved :: MIT License
"
,
"
Programming Language :: Python :: 3
"
,
"
Programming Language :: Python :: 3
"
,
],
],
install_requires
=
[
"
django-gravatar2
"
],
install_requires
=
[],
packages
=
find_packages
(
exclude
=
[
"
tests
"
,
"
tests.*
"
]),
packages
=
find_packages
(
exclude
=
[
"
tests
"
,
"
tests.*
"
]),
include_package_data
=
True
,
include_package_data
=
True
,
cmdclass
=
cmdclass
,
cmdclass
=
cmdclass
,
...
...
This diff is collapsed.
Click to expand it.