1
0
mirror of https://gitlab.crans.org/bde/nk20 synced 2025-06-21 18:08:21 +02:00

Merge branch 'beta-soon' into 'master'

Beta soon

See merge request bde/nk20!85
This commit is contained in:
ynerant
2020-07-21 22:47:50 +02:00
26 changed files with 353 additions and 68 deletions

View File

@ -25,7 +25,8 @@ class ClubTable(tables.Table):
order_by = ('id',)
model = Club
template_name = 'django_tables2/bootstrap4.html'
fields = ('id', 'name', 'email')
fields = ('name', 'email',)
order_by = ('name',)
row_attrs = {
'class': 'table-row',
'id': lambda record: "row-" + str(record.pk),

View File

@ -299,6 +299,22 @@ class ClubListView(ProtectQuerysetMixin, LoginRequiredMixin, SingleTableView):
model = Club
table_class = ClubTable
def get_queryset(self, **kwargs):
"""
Filter the user list with the given pattern.
"""
qs = super().get_queryset().filter()
if "search" in self.request.GET:
pattern = self.request.GET["search"]
qs = qs.filter(
Q(name__iregex=pattern)
| Q(note__alias__name__iregex="^" + pattern)
| Q(note__alias__normalized_name__iregex=Alias.normalize("^" + pattern))
)
return qs
class ClubDetailView(ProtectQuerysetMixin, LoginRequiredMixin, DetailView):
"""

View File

@ -163,6 +163,12 @@ class Transaction(PolymorphicModel):
When saving, also transfer money between two notes
"""
if not self.source.is_active or not self.destination.is_active:
if 'force_insert' not in kwargs or not kwargs['force_insert']:
if 'force_update' not in kwargs or not kwargs['force_update']:
raise ValidationError(_("The transaction can't be saved since the source note "
"or the destination note is not active."))
# If the aliases are not entered, we assume that the used alias is the name of the note
if not self.source_alias:
self.source_alias = str(self.source)
@ -171,7 +177,7 @@ class Transaction(PolymorphicModel):
self.destination_alias = str(self.destination)
if self.source.pk == self.destination.pk:
# When source == destination, no money is transfered
# When source == destination, no money is transferred
super().save(*args, **kwargs)
return

View File

@ -121,7 +121,7 @@ class ConsoView(ProtectQuerysetMixin, LoginRequiredMixin, SingleTableView):
table_class = HistoryTable
def get_queryset(self, **kwargs):
return super().get_queryset(**kwargs).order_by("-created_at", "-id").all()[:20]
return super().get_queryset(**kwargs).order_by("-created_at", "-id")[:20]
def get_context_data(self, **kwargs):
"""

View File

@ -272,7 +272,7 @@
"note",
"alias"
],
"query": "[\"OR\", {\"note__in\": [\"NoteUser\", \"objects\", [\"filter\", {\"user__memberships__club__name\": \"Kfet\"}], [\"all\"]]}, {\"note__in\": [\"NoteClub\", \"objects\", [\"all\"]]}]",
"query": "[\"AND\", [\"OR\", {\"note__in\": [\"NoteUser\", \"objects\", [\"filter\", {\"user__memberships__club__name\": \"Kfet\"}], [\"all\"]]}, {\"note__in\": [\"NoteClub\", \"objects\", [\"all\"]]}], {\"note__is_active\": true}]",
"type": "view",
"mask": 1,
"field": "",
@ -2200,6 +2200,22 @@
"description": "View my past activities"
}
},
{
"model": "permission.permission",
"pk": 127,
"fields": {
"model": [
"note",
"transaction"
],
"query": "[\"AND\", [\"OR\", {\"source\": [\"club\", \"note\"]}, {\"destination\": [\"club\", \"note\"]}], [\"OR\", {\"amount__lte\": {\"F\": [\"ADD\", [\"F\", \"source__balance\"], 5000]}}, {\"valid\": true}]]",
"type": "change",
"mask": 1,
"field": "valid",
"permanent": false,
"description": "Update validation status of a club transaction if possible"
}
},
{
"model": "permission.rolepermissions",
"pk": 1,
@ -2287,7 +2303,8 @@
27,
60,
61,
62
62,
127
]
}
},