Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Jelle van der Waa
Archweb
Commits
86f8ca67
Commit
86f8ca67
authored
Aug 11, 2019
by
Lars Rustand
Browse files
Send notification once packages has enough signoffs
parent
b1eee27f
Changes
2
Hide whitespace changes
Inline
Side-by-side
packages/views/signoff.py
View file @
86f8ca67
...
...
@@ -4,10 +4,12 @@
from
django
import
forms
from
django.contrib.auth.decorators
import
permission_required
from
django.contrib.auth.models
import
User
from
django.core.mail
import
EmailMessage
from
django.core.serializers.json
import
DjangoJSONEncoder
from
django.db
import
transaction
from
django.http
import
HttpResponse
,
Http404
from
django.shortcuts
import
get_list_or_404
,
redirect
,
render
from
django.template
import
loader
from
django.utils.timezone
import
now
from
django.views.decorators.cache
import
never_cache
...
...
@@ -53,6 +55,30 @@ def signoff_package(request, name, repo, arch, revoke=False):
return
render
(
request
,
'403.html'
,
status
=
403
)
signoff
,
created
=
Signoff
.
objects
.
get_or_create_from_package
(
package
,
request
.
user
)
signoffs
=
Signoff
.
objects
.
for_package
(
package
).
filter
(
revoked__isnull
=
True
)
if
signoffs
.
count
()
>=
spec
.
required
:
packager
=
package
.
packager
# TODO: Handle notification when packager does not exist
if
packager
:
toemail
=
[
packager
.
email
]
subject
=
f
'
{
package
.
repo
.
name
}
package '
+
\
f
'[
{
package
.
pkgname
}
{
package
.
full_version
}
] approved'
# send notification email to the maintainers
tmpl
=
loader
.
get_template
(
'packages/approved.txt'
)
ctx
=
{
'signoffs'
:
signoffs
,
'pkg'
:
package
,
}
msg
=
EmailMessage
(
subject
,
tmpl
.
render
(
ctx
),
'Arch Website Notification <nobody@archlinux.org>'
,
toemail
,
)
msg
.
send
(
fail_silently
=
True
)
all_signoffs
=
Signoff
.
objects
.
for_package
(
package
)
...
...
templates/packages/approved.txt
0 → 100644
View file @
86f8ca67
{% autoescape off %} The {{ pkg.repo.name }} package {{ pkg.pkgname }} {{ pkg.full_version }} has received the required number of signoffs.
The package was signed off by the following users:{% for s in signoffs %}
- {{ s.user.username }}{% endfor %}{% endautoescape %}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment