1
0
mirror of https://gitlab.crans.org/bde/nk20 synced 2025-06-23 10:56:35 +02:00

Compare commits

..

1 Commits

Author SHA1 Message Date
0d0fdef363 fix issue with activity entry view 2025-02-09 17:58:38 +01:00
6 changed files with 19 additions and 100 deletions

View File

@ -329,7 +329,7 @@ class ActivityEntryView(LoginRequiredMixin, SingleTableMixin, TemplateView):
context["noteuser_ctype"] = ContentType.objects.get_for_model(NoteUser).pk context["noteuser_ctype"] = ContentType.objects.get_for_model(NoteUser).pk
context["notespecial_ctype"] = ContentType.objects.get_for_model(NoteSpecial).pk context["notespecial_ctype"] = ContentType.objects.get_for_model(NoteSpecial).pk
activities_open = Activity.objects.filter(open=True).filter( activities_open = Activity.objects.filter(open=True, activity_type__manage_entries=True).filter(
PermissionBackend.filter_queryset(self.request, Activity, "view")).distinct().all() PermissionBackend.filter_queryset(self.request, Activity, "view")).distinct().all()
context["activities_open"] = [a for a in activities_open context["activities_open"] = [a for a in activities_open
if PermissionBackend.check_perm(self.request, if PermissionBackend.check_perm(self.request,

View File

@ -44,10 +44,10 @@ class ProfileForm(forms.ModelForm):
""" """
A form for the extras field provided by the :model:`member.Profile` model. A form for the extras field provided by the :model:`member.Profile` model.
""" """
# Remove widget=forms.HiddenInput() if you want to use report frequency.
report_frequency = forms.IntegerField(required=False, initial=0, label=_("Report frequency"), widget=forms.HiddenInput())
report_frequency = forms.IntegerField(required=False, initial=0, label=_("Statement frequency (in days)")) last_report = forms.DateTimeField(required=False, disabled=True, label=_("Last report date"))
last_report = forms.DateTimeField(required=False, disabled=True, label=_("Last statement date"))
VSS_charter_read = forms.BooleanField( VSS_charter_read = forms.BooleanField(
required=True, required=True,

View File

@ -114,12 +114,12 @@ class Profile(models.Model):
) )
report_frequency = models.PositiveSmallIntegerField( report_frequency = models.PositiveSmallIntegerField(
verbose_name=_("Statement frequency (in days)"), verbose_name=_("report frequency (in days)"),
default=0, default=0,
) )
last_report = models.DateTimeField( last_report = models.DateTimeField(
verbose_name=_("Last statement date"), verbose_name=_("last report date"),
default=timezone.now, default=timezone.now,
) )

View File

@ -26,7 +26,6 @@ from note_kfet.middlewares import _set_current_request
from permission.backends import PermissionBackend from permission.backends import PermissionBackend
from permission.models import Role from permission.models import Role
from permission.views import ProtectQuerysetMixin, ProtectedCreateView from permission.views import ProtectQuerysetMixin, ProtectedCreateView
from django import forms
from .forms import UserForm, ProfileForm, ImageForm, ClubForm, MembershipForm, \ from .forms import UserForm, ProfileForm, ImageForm, ClubForm, MembershipForm, \
CustomAuthenticationForm, MembershipRolesForm CustomAuthenticationForm, MembershipRolesForm
@ -73,23 +72,11 @@ class UserUpdateView(ProtectQuerysetMixin, LoginRequiredMixin, UpdateView):
form.fields['email'].required = True form.fields['email'].required = True
form.fields['email'].help_text = _("This address must be valid.") form.fields['email'].help_text = _("This address must be valid.")
profile_form = self.profile_form(instance=context['user_object'].profile, if PermissionBackend.check_perm(self.request, "member.change_profile", context['user_object'].profile):
data=self.request.POST if self.request.POST else None) context['profile_form'] = self.profile_form(instance=context['user_object'].profile,
if not self.object.profile.report_frequency: data=self.request.POST if self.request.POST else None)
del profile_form.fields["last_report"] if not self.object.profile.report_frequency:
del context['profile_form'].fields["last_report"]
fields_to_check = list(profile_form.fields.keys())
fields_modifiable = False
# Delete the fields for which the user does not have the permission to modify
for field_name in fields_to_check:
if not PermissionBackend.check_perm(self.request, f"member.change_profile_{field_name}", context['user_object'].profile):
profile_form.fields[field_name].widget = forms.HiddenInput()
else :
fields_modifiable = True
if fields_modifiable :
context['profile_form'] = profile_form
return context return context

View File

@ -3832,74 +3832,6 @@
"description": "Voir les profils des membres du club" "description": "Voir les profils des membres du club"
} }
}, },
{
"model": "permission.permission",
"pk": 244,
"fields": {
"model": [
"member",
"profile"
],
"query": "{}",
"type": "change",
"mask": 3,
"field": "ml_events_registration",
"permanent": false,
"description": "Modifier l'abonnement à la Newsletter BDE pour n'importe quel profil"
}
},
{
"model": "permission.permission",
"pk": 245,
"fields": {
"model": [
"member",
"profile"
],
"query": "{}",
"type": "change",
"mask": 3,
"field": "ml_art_registration",
"permanent": false,
"description": "Modifier l'abonnement à la Newsletter Art pour n'importe quel profil"
}
},
{
"model": "permission.permission",
"pk": 246,
"fields": {
"model": [
"member",
"profile"
],
"query": "{}",
"type": "change",
"mask": 3,
"field": "ml_sport_registration",
"permanent": false,
"description": "Modifier l'abonnement à la Newsletter Sport pour n'importe quel profil"
}
},
{
"model": "permission.permission",
"pk": 247,
"fields": {
"model": [
"member",
"profile"
],
"query": "{}",
"type": "view",
"mask": 3,
"field": [
"ml_events_registration",
"ml_art_registration",
"ml_sport_registration"
],
"permanent": false,
"description": "Voir les abonnements aux Newsletters de n'importe quel profil"
}
},
{ {
"model": "permission.role", "model": "permission.role",
"pk": 1, "pk": 1,

View File

@ -794,12 +794,12 @@ msgid "Permission mask"
msgstr "Masque de permissions" msgstr "Masque de permissions"
#: apps/member/forms.py:46 #: apps/member/forms.py:46
msgid "Statement frequency (in days)" msgid "Report frequency"
msgstr "Fréquence des relevés (en jours)" msgstr "Fréquence des rapports (en jours)"
#: apps/member/forms.py:48 #: apps/member/forms.py:48
msgid "Last statement date" msgid "Last report date"
msgstr "Date de dernier relevé" msgstr "Date de dernier rapport"
#: apps/member/forms.py:52 #: apps/member/forms.py:52
msgid "" msgid ""
@ -1044,12 +1044,12 @@ msgstr ""
"artistiques sur le campus (1 mail par semaine)" "artistiques sur le campus (1 mail par semaine)"
#: apps/member/models.py:117 #: apps/member/models.py:117
msgid "Statement frequency (in days)" msgid "report frequency (in days)"
msgstr "Fréquence des relevés (en jours)" msgstr "fréquence des rapports (en jours)"
#: apps/member/models.py:122 #: apps/member/models.py:122
msgid "Last statement date" msgid "last report date"
msgstr "Date de dernier relevé" msgstr "date de dernier rapport"
#: apps/member/models.py:127 #: apps/member/models.py:127
msgid "email confirmed" msgid "email confirmed"