Salut à tous,
J'ai parcouru le code de Zeste de Savoir (mes félicitations, il est clair et lisible) à la recherche de comment faire en sorte de n'avoir, dans le menu des alertes, que celles du groupe associé. Par exemple, en tant que membre du staff, je vois les alertes levées par les administrateurs mais je ne peux pas y accéder (ce qui est normal).
De mes recherches, j'ai trouvé la fonction la fonction alerts_list
dans ce fichier (lignes 143 et 144).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | @register.filter(name='alerts_list') def alerts_list(user): total = [] alerts = Alert.objects.select_related('author', 'comment').all().order_by('-pubdate')[:10] nb_alerts = Alert.objects.count() for alert in alerts: if alert.scope == Alert.FORUM: post = Post.objects.select_related('topic').get(pk=alert.comment.pk) total.append({'title': post.topic.title, 'url': post.get_absolute_url(), 'pubdate': alert.pubdate, 'author': alert.author, 'text': alert.text}) elif alert.scope == Alert.CONTENT: note = ContentReaction.objects.select_related('related_content').get(pk=alert.comment.pk) total.append({'title': note.related_content.title, 'url': note.get_absolute_url(), 'pubdate': alert.pubdate, 'author': alert.author, 'text': alert.text}) return {'alerts': total, 'nb_alerts': nb_alerts} |
De plus, en examinant ce fichier, notamment la fonction settings_promote
(à partir de la ligne 956), on sait comment récupérer les groupes auxquels appartient un membre.
1 | usergroups = user.groups.all() |
Du coup, je réfléchis à comment modifier le code pour se faire, mais j'ai besoin d'aide ; c'est ma première plongée dans le code, donc je ne suis pas sûr de ce que je fais.. Est-ce que c'est bien dans la fonction alerts_list
qu'il faut faire les modifications ? Et est-ce que quelqu'un qui a un environnement de test installé pourra m'aider à faire les tests (pas possible d'en installer un avant mercredi soir au plus tôt) ?
Merci d'avance à tous,
La staffeuse gantée