mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-06-21 18:08:21 +02:00
Compare commits
34 Commits
finito_sda
...
f6649f155a
Author | SHA1 | Date | |
---|---|---|---|
f6649f155a | |||
5707abf9e2 | |||
056c4029f8 | |||
bfd865b3e3 | |||
6ceb43cb66 | |||
9635004520 | |||
05e21ed229 | |||
b2ccc4aede | |||
6229652dea | |||
eee87dcf13 | |||
bcf21507e5 | |||
6127ced143 | |||
f63e5dcb5a | |||
73aa0098bf | |||
694a5c7bd8 | |||
a4480258d7 | |||
821efbf78b | |||
a209e0d366 | |||
ef485e0628 | |||
1481aa0635 | |||
867bf9fd25 | |||
47fda0ea36 | |||
623290827a | |||
a87ce625f3 | |||
3559787fa7 | |||
bd6ed27ae5 | |||
43dc676747 | |||
caaeab6b0b | |||
54ba786884 | |||
80e109114f | |||
787005e60d | |||
942d887c2e | |||
a63c34fe37 | |||
2be6133458 |
@ -44,7 +44,8 @@ class ProfileForm(forms.ModelForm):
|
||||
"""
|
||||
A form for the extras field provided by the :model:`member.Profile` model.
|
||||
"""
|
||||
report_frequency = forms.IntegerField(required=False, initial=0, label=_("Report frequency"))
|
||||
# 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())
|
||||
|
||||
last_report = forms.DateTimeField(required=False, disabled=True, label=_("Last report date"))
|
||||
|
||||
@ -76,7 +77,8 @@ class ProfileForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Profile
|
||||
fields = '__all__'
|
||||
exclude = ('user', 'email_confirmed', 'registration_valid', )
|
||||
# Remove ml_[asso]_registration from exclude if the concerned association uses nk20 to manage its mailing list.
|
||||
exclude = ('user', 'email_confirmed', 'registration_valid', 'ml_sport_registration', )
|
||||
|
||||
|
||||
class ImageForm(forms.Form):
|
||||
|
@ -26,6 +26,7 @@ from note_kfet.middlewares import _set_current_request
|
||||
from permission.backends import PermissionBackend
|
||||
from permission.models import Role
|
||||
from permission.views import ProtectQuerysetMixin, ProtectedCreateView
|
||||
from django import forms
|
||||
|
||||
from .forms import UserForm, ProfileForm, ImageForm, ClubForm, MembershipForm, \
|
||||
CustomAuthenticationForm, MembershipRolesForm
|
||||
@ -72,11 +73,19 @@ class UserUpdateView(ProtectQuerysetMixin, LoginRequiredMixin, UpdateView):
|
||||
form.fields['email'].required = True
|
||||
form.fields['email'].help_text = _("This address must be valid.")
|
||||
|
||||
if PermissionBackend.check_perm(self.request, "member.change_profile", context['user_object'].profile):
|
||||
context['profile_form'] = self.profile_form(instance=context['user_object'].profile,
|
||||
data=self.request.POST if self.request.POST else None)
|
||||
if not self.object.profile.report_frequency:
|
||||
del context['profile_form'].fields["last_report"]
|
||||
profile_form = self.profile_form(instance=context['user_object'].profile,
|
||||
data=self.request.POST if self.request.POST else None)
|
||||
if not self.object.profile.report_frequency:
|
||||
del profile_form.fields["last_report"]
|
||||
|
||||
fields_to_check = list(profile_form.fields.keys())
|
||||
|
||||
# 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()
|
||||
|
||||
context['profile_form'] = profile_form
|
||||
|
||||
return context
|
||||
|
||||
|
@ -31,3 +31,4 @@ class RoleAdmin(admin.ModelAdmin):
|
||||
Admin customisation for Role
|
||||
"""
|
||||
list_display = ('name', )
|
||||
filter_horizontal = ('permissions',)
|
||||
|
@ -3800,6 +3800,106 @@
|
||||
"description": "Voir les utilisateurs adhérents au club parent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 242,
|
||||
"fields": {
|
||||
"model": [
|
||||
"note",
|
||||
"transaction"
|
||||
],
|
||||
"query": "[\"AND\", {\"destination\": [\"club\", \"note\"]}, [\"OR\", {\"source__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 2000]}}, {\"valid\": false}]]",
|
||||
"type": "add",
|
||||
"mask": 2,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Créer une transaction vers la note d'un club"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 243,
|
||||
"fields": {
|
||||
"model": [
|
||||
"member",
|
||||
"profile"
|
||||
],
|
||||
"query": "{\"user__memberships__club\": [\"club\"], \"user__memberships__date_start__lte\": [\"today\"],\"user__memberships__date_end__gte\": [\"today\"]}",
|
||||
"type": "view",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"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",
|
||||
"pk": 1,
|
||||
@ -4377,7 +4477,7 @@
|
||||
238
|
||||
]
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
"model": "wei.weirole",
|
||||
"pk": 12,
|
||||
|
@ -26,3 +26,5 @@ MAILTO=notekfet2020@lists.crans.org
|
||||
00 9 * * * root cd /var/www/note_kfet && env/bin/python manage.py refresh_highlighted_buttons -v 0
|
||||
# Vider les tokens Oauth2
|
||||
00 6 * * * root cd /var/www/note_kfet && env/bin/python manage.py cleartokens -v 0
|
||||
# Envoyer la liste des abonnés à la NL BDA
|
||||
00 8 * * 0 root cd /var/www/note_kfet && env/bin/python manage.py extract_ml_registrations -t art -v 0
|
Reference in New Issue
Block a user