Modèles de commentaires et de notifications #18

Merged
lstephan merged 21 commits from Aufinal/communication_models into master 2017-07-21 16:58:51 +02:00
lstephan commented 2017-07-15 18:39:50 +02:00 (Migrated from git.eleves.ens.fr)

En plus du changement du .gitignore qui ne suit désormais plus les *.pyc voici les modifications apportés par cette MR.

Modification mineures dans les modèles déjà présents

  • Ajout d'un champ amount à EquipementRemark pour indiquer le nombre d'équipement concerné par cette remarque.
  • Bas de casse pour quelques verbose_name.
  • Ajout de date début et fin aux activités.

Nouvelles dépendances

Gestion des souscriptions aux notifications

Placé dans l'application communication, les modèles UserSubscription et GroupSubscription permettent de sauvegarder les souscriptions par utilisateur et groupe.
Pour autoriser la souscription à des instances de modèle, celui-ci doit hériter du mixin SubscriptionMixin.

Gestion des instances de modèles optionnellement relatives à un événement

Les modèles dont les instances peuvent être spécifiques à un événement ou de niveau "root" (c'est à dire non-spécifique) héritent du mixin EventSpecificMixin.

Voilà voilà,
@lstephan @narmanli @delobell

En plus du changement du `.gitignore` qui ne suit désormais plus les `*.pyc` voici les modifications apportés par cette MR. ### Modification mineures dans les modèles déjà présents * Ajout d'un champ `amount` à `EquipementRemark` pour indiquer le nombre d'équipement concerné par cette remarque. * Bas de casse pour quelques `verbose_name`. * Ajout de date début et fin aux activités. ## Nouvelles dépendances * [django-contrib-comments](https://github.com/django/django-contrib-comments) pour la gestion des commentaires. * [django-notifications](https://github.com/django-notifications/django-notifications) pour la gestion des notifications. * Il reste à utiliser ces dépendances... ## Gestion des souscriptions aux notifications Placé dans l'application ``communication``, les modèles ``UserSubscription`` et ``GroupSubscription`` permettent de sauvegarder les souscriptions par utilisateur et groupe. Pour autoriser la souscription à des instances de modèle, celui-ci doit hériter du mixin ``SubscriptionMixin``. ## Gestion des instances de modèles optionnellement relatives à un événement Les modèles dont les instances peuvent être spécifiques à un événement ou de niveau "root" (c'est à dire non-spécifique) héritent du mixin ``EventSpecificMixin``. Voilà voilà, @lstephan @narmanli @delobell
narmanli commented 2017-07-15 18:42:17 +02:00 (Migrated from git.eleves.ens.fr)

changed the description

changed the description
lstephan commented 2017-07-15 21:22:43 +02:00 (Migrated from git.eleves.ens.fr)

added 1 commit

Compare with previous version

added 1 commit * 6f158638 - Various bugfixes [Compare with previous version](https://git.eleves.ens.fr/cof-geek/GestionEvenementiel/merge_requests/13/diffs?diff_id=538&start_sha=26c02df53d52976c31d6fdae22a9bdf5e2fb9105)
mpepin commented 2017-07-16 16:24:16 +02:00 (Migrated from git.eleves.ens.fr)

Si je comprends bien, Notifying n'est pas supposée être utilisée tel quel mais doit être implémentée par une sous classe (et c'est probablement le cas de Commentable aussi ?). Je pense qu'elles devraient abstraites pour éviter des créer des tables inutiles avec plein de foreign keys.

Si je comprends bien, `Notifying` n'est pas supposée être utilisée tel quel mais doit être implémentée par une sous classe (et c'est probablement le cas de `Commentable` aussi ?). Je pense qu'elles devraient [abstraites](https://docs.djangoproject.com/en/1.11/topics/db/models/#abstract-base-classes) pour éviter des créer des tables inutiles avec plein de foreign keys.
lstephan commented 2017-07-16 16:26:58 +02:00 (Migrated from git.eleves.ens.fr)

On y avait pensé, mais le problème est que les classes Thread et Notification pointent vers Commentable et Notifying, donc elles vont nécessiter une table quoi qu'il arrive.

On y avait pensé, mais le problème est que les classes `Thread` et `Notification` pointent vers `Commentable` et `Notifying`, donc elles vont nécessiter une table quoi qu'il arrive.
mpepin commented 2017-07-16 16:27:46 +02:00 (Migrated from git.eleves.ens.fr)

Quand on regarde le code sans les explications, l'intérêt d'avoir une classe Commentable qui hérite de Notyfing sans rien modifier n'est pas clair. Je suppose que c'est séparé pour éventuellement étendre Commentable à l'avenir. Pourrait-on avoir une docstring / un commentaire d'une ou deux lignes max pour préciser ça ?

Quand on regarde le code sans les explications, l'intérêt d'avoir une classe `Commentable` qui hérite de `Notyfing` sans rien modifier n'est pas clair. Je suppose que c'est séparé pour éventuellement étendre `Commentable` à l'avenir. Pourrait-on avoir une docstring / un commentaire d'une ou deux lignes max pour préciser ça ?
lstephan commented 2017-07-16 16:29:35 +02:00 (Migrated from git.eleves.ens.fr)

Le principe, c'est que les commentaires doivent provoquer une notification, donc Commentable est une sous-classe de Notifying. Effectivement, ça peut être précisé.

Le principe, c'est que les commentaires doivent provoquer une notification, donc `Commentable` est une sous-classe de `Notifying`. Effectivement, ça peut être précisé.
mpepin commented 2017-07-16 16:47:44 +02:00 (Migrated from git.eleves.ens.fr)

Ça c'est pas clair du tout pour moi : à quoi correspondent les deux fk vers Notifying ?

Ça c'est pas clair du tout pour moi : à quoi correspondent les deux fk vers `Notifying` ?
delobell commented 2017-07-17 03:07:34 +02:00 (Migrated from git.eleves.ens.fr)

Notification peut utiliser une GenericForeignKey et Notifying deviendrait abstrait.

``Notification`` peut utiliser une [``GenericForeignKey``](https://docs.djangoproject.com/fr/1.11/ref/contrib/contenttypes/#generic-relations) et ``Notifying`` deviendrait abstrait.
delobell commented 2017-07-17 03:09:07 +02:00 (Migrated from git.eleves.ens.fr)

Il faudrait voir si un manager serait plus adapté pour les commantaires.

Dans un genre similaire, taggit fait ça :

Le modèle Comment aurait besoin d'une GenericForeignKey.

Il faudrait voir si un manager serait plus adapté pour les commantaires. Dans un genre similaire, [``taggit``](https://github.com/alex/django-taggit) fait ça : - https://github.com/alex/django-taggit/blob/master/taggit/managers.py - https://github.com/alex/django-taggit/blob/master/taggit/models.py Le modèle ``Comment`` aurait besoin d'une ``GenericForeignKey``.
delobell commented 2017-07-17 03:14:29 +02:00 (Migrated from git.eleves.ens.fr)

J'ai l'impression que get_url ne fait que décaler le problème.
On pourrait plutôt mettre en place une redirection de /notif/<notif_id> vers ce que renvoit get_absolute_url de l'instance reliée à la notification.

J'ai l'impression que ``get_url`` ne fait que décaler le problème. On pourrait plutôt mettre en place une redirection de ``/notif/<notif_id>`` vers ce que renvoit [``get_absolute_url``](https://docs.djangoproject.com/fr/1.11/ref/models/instances/#django.db.models.Model.get_absolute_url) de l'instance reliée à la notification.
delobell commented 2017-07-17 03:16:19 +02:00 (Migrated from git.eleves.ens.fr)

Je crois qu'il faut aussi null=True pour un DateTimeField.

Je crois qu'il faut aussi ``null=True`` pour un ``DateTimeField``.
delobell commented 2017-07-17 03:18:29 +02:00 (Migrated from git.eleves.ens.fr)

Il faudrait remplacer par :

from django.contrib.auth import get_user_model
...

User = get_user_model()
Il faudrait remplacer par : ``` from django.contrib.auth import get_user_model ... User = get_user_model() ```
lstephan commented 2017-07-17 17:55:23 +02:00 (Migrated from git.eleves.ens.fr)

added 1 commit

  • af75c90b - Refactor communication models

Compare with previous version

added 1 commit * af75c90b - Refactor communication models [Compare with previous version](https://git.eleves.ens.fr/cof-geek/GestionEvenementiel/merge_requests/13/diffs?diff_id=540&start_sha=6f158638bfd0c8d2b7c84d8ed3f4e9cfd71f0fb3)
lstephan commented 2017-07-18 13:55:30 +02:00 (Migrated from git.eleves.ens.fr)

added 2 commits

Compare with previous version

added 2 commits * 19093d01 - Small fixes * 4e887322 - Oops [Compare with previous version](https://git.eleves.ens.fr/cof-geek/GestionEvenementiel/merge_requests/13/diffs?diff_id=541&start_sha=af75c90b84072ff0ebc2971d10bb734529d33bdb)
lstephan commented 2017-07-18 17:19:34 +02:00 (Migrated from git.eleves.ens.fr)

added 2 commits

Compare with previous version

added 2 commits * 270e31f1 - adapt migrations and tests * da75dc7d - Test + small changes [Compare with previous version](https://git.eleves.ens.fr/cof-geek/GestionEvenementiel/merge_requests/13/diffs?diff_id=542&start_sha=4e8873226fb9b0ce371b94fd07532c58daef3e3e)
lstephan commented 2017-07-18 17:31:19 +02:00 (Migrated from git.eleves.ens.fr)

added 1 commit

  • 5b005571 - Event ending_date no longer optional

Compare with previous version

added 1 commit * 5b005571 - Event ending_date no longer optional [Compare with previous version](https://git.eleves.ens.fr/cof-geek/GestionEvenementiel/merge_requests/13/diffs?diff_id=543&start_sha=da75dc7d9cd465b4dc94fd8dc82a29980bf46e67)
lstephan commented 2017-07-18 19:09:55 +02:00 (Migrated from git.eleves.ens.fr)

added 2 commits

  • 53d9084d - Correct Activity inheritance and get_herited()
  • 670a9d45 - Use EventSpecificMixin for event-specific models

Compare with previous version

added 2 commits * 53d9084d - Correct Activity inheritance and get_herited() * 670a9d45 - Use EventSpecificMixin for event-specific models [Compare with previous version](https://git.eleves.ens.fr/cof-geek/GestionEvenementiel/merge_requests/13/diffs?diff_id=544&start_sha=5b005571d5ff68228d65678d23a7d1c4edadea6f)
lstephan commented 2017-07-20 15:24:46 +02:00 (Migrated from git.eleves.ens.fr)

added 5 commits

  • 670a9d45...bfa6e84b - 4 commits from branch master
  • 3439abe9 - Merge branch 'master' of git.eleves.ens.fr:cof-geek/GestionEvenementiel into Auf…

Compare with previous version

added 5 commits * 670a9d45...bfa6e84b - 4 commits from branch `master` * 3439abe9 - Merge branch &#x27;master&#x27; of git.eleves.ens.fr:cof-geek&#x2F;GestionEvenementiel into Auf… [Compare with previous version](https://git.eleves.ens.fr/cof-geek/GestionEvenementiel/merge_requests/13/diffs?diff_id=546&start_sha=670a9d45da782dc3db83da866da421411c77a2e0)
lstephan commented 2017-07-21 16:20:51 +02:00 (Migrated from git.eleves.ens.fr)

added 2 commits

Compare with previous version

added 2 commits * 8a587b3d - Override attribution save() + stuff * ef8c6283 - Migrations [Compare with previous version](https://git.eleves.ens.fr/cof-geek/GestionEvenementiel/merge_requests/13/diffs?diff_id=547&start_sha=3439abe92281fe299e9a506f55a74ecbc7e921a4)
lstephan commented 2017-07-21 16:25:06 +02:00 (Migrated from git.eleves.ens.fr)

added 1 commit

Compare with previous version

added 1 commit * 782cb34b - Change get_herited method [Compare with previous version](https://git.eleves.ens.fr/cof-geek/GestionEvenementiel/merge_requests/13/diffs?diff_id=548&start_sha=ef8c62835b6a5762cabcd6f8ac57b1806bd3fe73)
delobell commented 2017-07-21 16:57:21 +02:00 (Migrated from git.eleves.ens.fr)

changed the description

changed the description
delobell commented 2017-07-21 16:58:29 +02:00 (Migrated from git.eleves.ens.fr)

resolved all discussions

resolved all discussions
delobell commented 2017-07-21 16:58:52 +02:00 (Migrated from git.eleves.ens.fr)

merged

merged
delobell commented 2017-07-21 16:58:53 +02:00 (Migrated from git.eleves.ens.fr)

mentioned in commit 110e23a8d2

mentioned in commit 110e23a8d2238ffeef3259c5870e8ad83915c862
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: thubrecht/poulpe#18
No description provided.