Compare commits

..

7 Commits

Author SHA1 Message Date
Yohann D'ANELLO f870af139e Typos 2020-08-02 09:51:39 +02:00
Yohann D'ANELLO 7742358b8f Secretaries can view and add memberships 2020-08-02 09:49:45 +02:00
Yohann D'ANELLO 8de7ba14bd Add permission for secretaries 2020-08-02 09:35:32 +02:00
Yohann D'ANELLO 8497dbb25c Club members can see the club 2020-08-02 09:30:18 +02:00
Yohann D'ANELLO f148c8dacb Better autocomplete field 2020-08-02 09:20:21 +02:00
Yohann D'ANELLO 2f018f8c9d Always query distinct objects 2020-08-02 08:57:16 +02:00
Yohann D'ANELLO 0ae61f3643 BDE memberships can start on 1st august 2020-08-02 08:47:23 +02:00
7 changed files with 104 additions and 15 deletions

View File

@ -131,7 +131,7 @@ class UserDetailView(ProtectQuerysetMixin, LoginRequiredMixin, DetailView):
"""
We can't display information of a not registered user.
"""
return super().get_queryset().filter(profile__registration_valid=True).distinct()
return super().get_queryset().filter(profile__registration_valid=True)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)

View File

@ -33,7 +33,9 @@ class TransactionCreateView(ProtectQuerysetMixin, LoginRequiredMixin, SingleTabl
extra_context = {"title": _("Transfer money")}
def get_queryset(self, **kwargs):
return super().get_queryset(**kwargs).order_by("-created_at").all()[:20]
return Transaction.objects.filter(
PermissionBackend.filter_queryset(self.request.user, Transaction, "view")
).order_by("-created_at").all()[:20]
def get_context_data(self, **kwargs):
"""
@ -139,7 +141,9 @@ class ConsoView(ProtectQuerysetMixin, LoginRequiredMixin, SingleTableView):
table_class = HistoryTable
def get_queryset(self, **kwargs):
return super().get_queryset(**kwargs).order_by("-created_at")[:20]
return Transaction.objects.filter(
PermissionBackend.filter_queryset(self.request.user, Transaction, "view")
).order_by("-created_at").all()[:20]
def get_context_data(self, **kwargs):
"""

View File

@ -68,7 +68,7 @@
"mask": 1,
"field": "",
"permanent": true,
"description": "Vioir sa propre note d'utilisateur"
"description": "Voir sa propre note d'utilisateur"
}
},
{
@ -353,7 +353,7 @@
],
"query": "{\"pk\": [\"club\", \"pk\"]}",
"type": "view",
"mask": 3,
"mask": 1,
"field": "",
"permanent": false,
"description": "Voir les informations d'un club"
@ -868,7 +868,7 @@
"mask": 3,
"field": "",
"permanent": false,
"description": "Modifier n'import quel utilisateur"
"description": "Modifier n'importe quel utilisateur"
}
},
{
@ -2263,6 +2263,54 @@
"description": "Modifier mes préférences en terme de bus et d'équipe si mon inscription n'est pas validée et que je suis en 2A+"
}
},
{
"model": "permission.permission",
"pk": 145,
"fields": {
"model": [
"note",
"noteclub"
],
"query": "{}",
"type": "view",
"mask": 1,
"field": "",
"permanent": false,
"description": "Voir toutes les notes de club"
}
},
{
"model": "permission.permission",
"pk": 146,
"fields": {
"model": [
"member",
"membership"
],
"query": "{}",
"type": "view",
"mask": 3,
"field": "",
"permanent": false,
"description": "Voir tous les adhérents du club"
}
},
{
"model": "permission.permission",
"pk": 147,
"fields": {
"model": [
"member",
"membership"
],
"query": "{}",
"type": "add",
"mask": 3,
"field": "",
"permanent": false,
"description": "Ajouter un membre à n'importe quel club"
}
},
{
"model": "permission.role",
"pk": 1,
@ -2282,6 +2330,7 @@
11,
12,
13,
22,
48,
52,
126
@ -2306,6 +2355,7 @@
15,
16,
17,
22,
78,
79,
83,
@ -2327,7 +2377,9 @@
"fields": {
"for_club": null,
"name": "Membre de club",
"permissions": []
"permissions": [
22
]
}
},
{
@ -2337,7 +2389,6 @@
"for_club": null,
"name": "Bureau de club",
"permissions": [
22,
47,
49,
50,
@ -2437,7 +2488,9 @@
137,
138,
139,
143
143,
146,
147
]
}
},
@ -2587,7 +2640,10 @@
141,
142,
143,
144
144,
145,
146,
147
]
}
},
@ -2757,6 +2813,30 @@
]
}
},
{
"model": "permission.role",
"pk": 19,
"fields": {
"for_club": 1,
"name": "Secrétaire BDE",
"permissions": [
54,
55,
56,
57,
58,
135,
136,
137,
138,
139,
140,
145,
146,
147
]
}
},
{
"model": "wei.weirole",
"pk": 12,

View File

@ -20,7 +20,7 @@ class ProtectQuerysetMixin:
"""
def get_queryset(self, **kwargs):
qs = super().get_queryset(**kwargs)
return qs.filter(PermissionBackend.filter_queryset(self.request.user, qs.model, "view"))
return qs.filter(PermissionBackend.filter_queryset(self.request.user, qs.model, "view")).distinct()
def get_form(self, form_class=None):
form = super().get_form(form_class)

@ -1 +1 @@
Subproject commit 4b37f8286f493b1a28bd0faa0052ee3967fe543e
Subproject commit 1f300c3b7bac0b7a31c1a252a83ba68a8268d33d

View File

@ -18,7 +18,8 @@ $(document).ready(function () {
html += li(prefix + "_" + obj.id, obj[name_field]);
});
$("#" + prefix + "_list").html(html);
let results_list = $("#" + prefix + "_list");
results_list.html(html);
objects.results.forEach(function (obj) {
$("#" + prefix + "_" + obj.id).click(function() {
@ -32,6 +33,10 @@ $(document).ready(function () {
if (input === obj[name_field])
$("#" + prefix + "_pk").val(obj.id);
});
if (results_list.children().length === 1 && e.originalEvent.keyCode >= 32) {
results_list.children().first().trigger("click");
}
});
});
});

View File

@ -86,8 +86,8 @@ function getMatchedNotes(pattern, fun) {
* Generate a <li> entry with a given id and text
*/
function li(id, text, extra_css) {
return "<li class=\"list-group-item py-1 px-2 d-flex justify-content-between align-items-center text-truncate " + extra_css + "\"" +
" id=\"" + id + "\">" + text + "</li>\n";
return "<li class=\"list-group-item py-1 px-2 d-flex justify-content-between align-items-center text-truncate "
+ (extra_css ? extra_css : "") + "\"" + " id=\"" + id + "\">" + text + "</li>\n";
}
/**