Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • Teckids/hacknfun/AlekSIS-App-Paweljong
  • 8sercomcurro/AlekSIS-App-Paweljong
  • gassungtholbuy/AlekSIS-App-Paweljong
  • inturnickterc/AlekSIS-App-Paweljong
  • 3vibbergulyo/AlekSIS-App-Paweljong
  • 9fulcvoZdendmi/AlekSIS-App-Paweljong
  • 8stagitWriate/AlekSIS-App-Paweljong
  • 9sorneWpersma/AlekSIS-App-Paweljong
  • imelKgeshi/AlekSIS-App-Paweljong
  • ceotremagi/AlekSIS-App-Paweljong
  • niebutdiscchi/AlekSIS-App-Paweljong
  • plusultesetz/AlekSIS-App-Paweljong
  • 7tiadeKplicpu/AlekSIS-App-Paweljong
  • grehanbeci/AlekSIS-App-Paweljong
  • inocpuhaw/AlekSIS-App-Paweljong
  • 7inenprobko/AlekSIS-App-Paweljong
  • _weblate/AlekSIS-App-Paweljong
17 results
Show changes
Commits on Source (3)
...@@ -461,7 +461,7 @@ class EditInfoMailingForm(forms.ModelForm): ...@@ -461,7 +461,7 @@ class EditInfoMailingForm(forms.ModelForm):
layout = Layout( layout = Layout(
Row("sender", "reply_to", "active"), Row("sender", "reply_to", "active"),
Row("send_to_person", "send_to_guardians"), Row("send_to_person", "send_to_guardians", "send_to_retracted", "send_to_not_checked_in"),
Row("subject"), Row("subject"),
Row("text"), Row("text"),
) )
...@@ -507,11 +507,13 @@ class PersonGroupFormPerson(forms.Form): ...@@ -507,11 +507,13 @@ class PersonGroupFormPerson(forms.Form):
class EventCheckpointForm(forms.Form): class EventCheckpointForm(forms.Form):
class Media: class Media:
js = ("https://unpkg.com/html5-qrcode", "js/paweljong/qrscanner.js", "js/paweljong/checkpoint.js") js = (
"https://unpkg.com/html5-qrcode",
"js/paweljong/qrscanner.js",
"js/paweljong/checkpoint.js",
)
layout = Layout( layout = Layout("comment", "use_latlon", "username")
"comment", "use_latlon", "username"
)
comment = forms.CharField( comment = forms.CharField(
required=True, required=True,
......
...@@ -51,9 +51,12 @@ class InfoMailing(ExtensibleModel): ...@@ -51,9 +51,12 @@ class InfoMailing(ExtensibleModel):
sender = models.EmailField(verbose_name=_("Sender"), blank=True) sender = models.EmailField(verbose_name=_("Sender"), blank=True)
send_to_person = models.BooleanField(verbose_name=_("Send to registered person"), default=True) send_to_person = models.BooleanField(verbose_name=_("Send to registered person"), default=True)
send_to_guardians = models.BooleanField(verbose_name=_("Send to guardians"), default=False) send_to_guardians = models.BooleanField(verbose_name=_("Send to guardians"), default=False)
send_to_retracted = models.BooleanField(verbose_name=_("Send to participants who retracted"), default=False) send_to_retracted = models.BooleanField(
send_to_not_checked_in = models.BooleanField(verbose_name=_("Send to participants who did not check in"), default=True) verbose_name=_("Send to participants who retracted"), default=False
)
send_to_not_checked_in = models.BooleanField(
verbose_name=_("Send to participants who did not check in"), default=True
)
def __str__(self) -> str: def __str__(self) -> str:
return self.subject return self.subject
...@@ -418,13 +421,28 @@ class EventRegistration(ExtensibleModel): ...@@ -418,13 +421,28 @@ class EventRegistration(ExtensibleModel):
class Checkpoint(ExtensibleModel): class Checkpoint(ExtensibleModel):
event = models.ForeignKey(Event, verbose_name=_("Related event"), related_name="checkpoints", on_delete=models.CASCADE) event = models.ForeignKey(
person = models.ForeignKey(Person, verbose_name=_("Checked person"), related_name="event_checkpoints", on_delete=models.CASCADE) Event, verbose_name=_("Related event"), related_name="checkpoints", on_delete=models.CASCADE
checked_by = models.ForeignKey(Person, verbose_name=_("Checked by person"), related_name="event_checkpoints_created", on_delete=models.CASCADE) )
person = models.ForeignKey(
Person,
verbose_name=_("Checked person"),
related_name="event_checkpoints",
on_delete=models.CASCADE,
)
checked_by = models.ForeignKey(
Person,
verbose_name=_("Checked by person"),
related_name="event_checkpoints_created",
on_delete=models.CASCADE,
)
comment = models.CharField(max_length=60, verbose_name=_("Comment")) comment = models.CharField(max_length=60, verbose_name=_("Comment"))
timestamp = models.DateTimeField(verbose_name=_("Date and time of check"), auto_now_add=True) timestamp = models.DateTimeField(verbose_name=_("Date and time of check"), auto_now_add=True)
lat = models.DecimalField(max_digits=10, decimal_places=8, verbose_name=_("Latitude of check"), blank=True, null=True) lat = models.DecimalField(
lon = models.DecimalField(max_digits=11, decimal_places=8, verbose_name=_("Longitude of check"), blank=True, null=True) max_digits=10, decimal_places=8, verbose_name=_("Latitude of check"), blank=True, null=True
)
lon = models.DecimalField(
max_digits=11, decimal_places=8, verbose_name=_("Longitude of check"), blank=True, null=True
)
...@@ -50,7 +50,11 @@ urlpatterns = [ ...@@ -50,7 +50,11 @@ urlpatterns = [
), ),
path("event/<slug:slug>", views.EventFullView.as_view(), name="event_by_name"), path("event/<slug:slug>", views.EventFullView.as_view(), name="event_by_name"),
path("event/<slug:slug>/detail", views.EventDetailView.as_view(), name="event_detail_by_name"), path("event/<slug:slug>/detail", views.EventDetailView.as_view(), name="event_detail_by_name"),
path("event/<slug:slug>/checkpoint", views.EventCheckpointView.as_view(), name="event_by_name_checkpoint"), path(
"event/<slug:slug>/checkpoint",
views.EventCheckpointView.as_view(),
name="event_by_name_checkpoint",
),
path( path(
"event/<slug:slug>/start", "event/<slug:slug>/start",
views.RegisterEventStart.as_view(), views.RegisterEventStart.as_view(),
......
...@@ -44,7 +44,15 @@ from .forms import ( ...@@ -44,7 +44,15 @@ from .forms import (
RegistrationNotificationForm, RegistrationNotificationForm,
RegistrationStatesForm, RegistrationStatesForm,
) )
from .models import Checkpoint, Event, EventRegistration, InfoMailing, RegistrationState, Terms, Voucher from .models import (
Checkpoint,
Event,
EventRegistration,
InfoMailing,
RegistrationState,
Terms,
Voucher,
)
from .tables import ( from .tables import (
AdditionalFieldsTable, AdditionalFieldsTable,
ChildGroupsTable, ChildGroupsTable,
...@@ -1004,12 +1012,21 @@ class EventCheckpointView(PermissionRequiredMixin, FormView): ...@@ -1004,12 +1012,21 @@ class EventCheckpointView(PermissionRequiredMixin, FormView):
checkpoint.lon = form.cleaned_data["lon"] checkpoint.lon = form.cleaned_data["lon"]
checkpoint.save() checkpoint.save()
messages.success(self.request, _("{} successfully checked for {}.").format(str(checkpoint.person), str(checkpoint.comment))) messages.success(
self.request,
_("{} successfully checked for {}.").format(
str(checkpoint.person), str(checkpoint.comment)
),
)
self._comment = checkpoint.comment self._comment = checkpoint.comment
return super().form_valid(self) return super().form_valid(self)
def get_success_url(self): def get_success_url(self):
return reverse("event_by_name_checkpoint", kwargs={"slug": self.kwargs["slug"]}) + "?" + urlencode({"comment": self._comment}) return (
reverse("event_by_name_checkpoint", kwargs={"slug": self.kwargs["slug"]})
+ "?"
+ urlencode({"comment": self._comment})
)
class ViewTerms(PermissionRequiredMixin, DetailView): class ViewTerms(PermissionRequiredMixin, DetailView):
......
...@@ -10,7 +10,7 @@ skip_install = true ...@@ -10,7 +10,7 @@ skip_install = true
envdir = {toxworkdir}/globalenv envdir = {toxworkdir}/globalenv
commands_pre = commands_pre =
poetry install poetry install
poetry run aleksis-admin yarn install poetry run aleksis-admin webpack_bundle
poetry run aleksis-admin collectstatic --no-input poetry run aleksis-admin collectstatic --no-input
commands = commands =
poetry run pytest --cov=. {posargs} aleksis/ poetry run pytest --cov=. {posargs} aleksis/
...@@ -49,13 +49,13 @@ commands = ...@@ -49,13 +49,13 @@ commands =
[testenv:makemessages] [testenv:makemessages]
commands = commands =
poetry run aleksis-admin makemessages --no-wrap -e html,txt,py,email -i static -l ar -l de_DE -l fr -l nb_NO -l tr_TR -l la poetry run aleksis-admin makemessages --no-wrap -e html,txt,py,email -i static -l ar -l de_DE -l fr -l nb_NO -l tr_TR -l la -l uk -l ru
poetry run aleksis-admin makemessages --no-wrap -d djangojs -i **/node_modules -l ar -l de_DE -l fr -l nb_NO -l tr_TR -l la poetry run aleksis-admin makemessages --no-wrap -d djangojs -i **/node_modules -l ar -l de_DE -l fr -l nb_NO -l tr_TR -l la -l uk -l ru
[flake8] [flake8]
max_line_length = 100 max_line_length = 100
exclude = migrations,tests exclude = migrations,tests
ignore = BLK100,E203,E231,E266,W503,D100,D101,D102,D103,D104,D105,D106,D107,RST215,RST214,F821,F841,S106,T100,T101,DJ05 ignore = BLK100,E203,E231,W503,D100,D101,D102,D103,D104,D105,D106,D107,RST215,RST214,F821,F841,S106,T100,T101,DJ05
[isort] [isort]
profile = black profile = black
......