Projet

Général

Profil

Development #29209

matérialiser les sources d'exceptions

Ajouté par Benjamin Dauvergne il y a plus de 5 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
19 décembre 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

On a pas mal de tickets sur les exceptions, sur la gestion des récurrences, les soucis d'interaction entre fichier uploaded, fichiers remote, utilisé UID ou pas, etc..

Pas mal de ces problèmes me sembleraient plus simple si à chaque source (fichier uploadé ou URL) on associé un modèle, visible, modifiable et que chaque exception soit lié à un des ces modèles, chaque groupe d'exception venant de chacun de ces sources seraient ainsi bien compartimenté et gérable (on supprime une source, les exceptions associés disparaissent, on la modifie, toutes les exceptions associées sont mises à jour et seulement celles-ci).


Fichiers

0002-agendas-add-exception-source-model-29209.patch (32,2 ko) 0002-agendas-add-exception-source-model-29209.patch Lauréline Guérin, 12 décembre 2019 10:57
0001-misc-fix-flake8-errors-29209.patch (48,7 ko) 0001-misc-fix-flake8-errors-29209.patch Lauréline Guérin, 12 décembre 2019 10:57
0004-agendas-refresh-an-exception-source-29209.patch (10,9 ko) 0004-agendas-refresh-an-exception-source-29209.patch Lauréline Guérin, 12 décembre 2019 10:57
0003-agendas-delete-an-exception-source-29209.patch (7,49 ko) 0003-agendas-delete-an-exception-source-29209.patch Lauréline Guérin, 12 décembre 2019 10:57
0004-agendas-refresh-an-exception-source-29209.patch (10,8 ko) 0004-agendas-refresh-an-exception-source-29209.patch Lauréline Guérin, 13 décembre 2019 14:46
0003-agendas-delete-an-exception-source-29209.patch (7,47 ko) 0003-agendas-delete-an-exception-source-29209.patch Lauréline Guérin, 13 décembre 2019 14:46
0002-agendas-add-exception-source-model-29209.patch (39,8 ko) 0002-agendas-add-exception-source-model-29209.patch Lauréline Guérin, 13 décembre 2019 14:46
0001-misc-black-29209.patch (74,8 ko) 0001-misc-black-29209.patch Lauréline Guérin, 13 décembre 2019 14:46
0004-agendas-refresh-an-exception-source-29209.patch (11,6 ko) 0004-agendas-refresh-an-exception-source-29209.patch Lauréline Guérin, 13 décembre 2019 22:19
0003-agendas-delete-an-exception-source-29209.patch (6,8 ko) 0003-agendas-delete-an-exception-source-29209.patch Lauréline Guérin, 13 décembre 2019 22:19
0002-agendas-add-exception-source-model-29209.patch (40,3 ko) 0002-agendas-add-exception-source-model-29209.patch Lauréline Guérin, 13 décembre 2019 22:19
0001-misc-black-29209.patch (279 ko) 0001-misc-black-29209.patch Lauréline Guérin, 13 décembre 2019 22:19

Demandes liées

Lié à Chrono - Bug #27263: crash sur import d'un icsFermé11 octobre 2018

Actions
Lié à Chrono - Development #19825: import ics: synchroniser les evenements issus d'un fichier uploadéFermé31 octobre 2017

Actions
Lié à Chrono - Bug #25962: mettre à jour/créer les exceptions en fonction des dates et non du sommaire de l'evenementRejeté30 août 2018

Actions
Lié à Chrono - Development #36167: Lever la limite de 600 jours lors de l'import des exceptionsRejeté16 septembre 2019

Actions
Lié à Chrono - Development #39259: conserver les fichiers d'exception uploadésFermé26 janvier 2020

Actions

Révisions associées

Révision a5a8a3fe (diff)
Ajouté par Lauréline Guérin il y a plus de 4 ans

agendas: add exception source model (#29209)

Révision 2aed92d1 (diff)
Ajouté par Lauréline Guérin il y a plus de 4 ans

agendas: delete an exception source (#29209)

Révision 7a33c415 (diff)
Ajouté par Lauréline Guérin il y a plus de 4 ans

agendas: refresh an exception source (#29209)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a plus de 5 ans

  • Lié à Bug #27263: crash sur import d'un ics ajouté
#2

Mis à jour par Benjamin Dauvergne il y a plus de 5 ans

  • Lié à Development #19825: import ics: synchroniser les evenements issus d'un fichier uploadé ajouté
#3

Mis à jour par Benjamin Dauvergne il y a plus de 5 ans

  • Lié à Bug #25962: mettre à jour/créer les exceptions en fonction des dates et non du sommaire de l'evenement ajouté
#4

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Lié à Development #36167: Lever la limite de 600 jours lors de l'import des exceptions ajouté
#5

Mis à jour par Frédéric Péters il y a plus de 4 ans

Pour préciser le côté pratique/UI de la chose, ça pourrait être étendre la popup de chargement des exceptions, commencer par une liste des sources d'exception existantes et ensuite avoir la définition d'une nouvelle source

Exceptions (titre)

* https://.../blah.ics               [rafraichir] [supprimer]
* FrenchHolidays.ics                  [remplacer] [supprimer]

Pour ajouter de nouvelles exceptions en masse, vous pouvez
télécharger un fichier ou spécifier l'adresse d'un calendrier
distant.

* Fichier ICS: [..............]
* URL: [......................]

                                       [Annuler]  [Importer]
#6

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Je trouve ça très bien.

#7

Mis à jour par Lauréline Guérin il y a plus de 4 ans

  • Assigné à mis à Lauréline Guérin
#8

Mis à jour par Lauréline Guérin il y a plus de 4 ans

J'ai fait un premier commit de nettoyage flake8 sur quelques modules que j'avais à modifier, histoire de voir où je mettais les pieds :)

#9

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Si tu supprimes toutes les exceptions à chaque chargement, tu peux complètement virer la partie keep_synced_by_uid elle
servait justement à gérer le rafraîchissement en l'absence d'objet « source », c'est donc devenu inutile.

Purement pour la forme: pour la vue de rafraîchissement c'est toujours plus joli et plus respectueux de la séparation vue/formulaire de mettre toute la validation dans Form.clean() plutôt que d'en déplacer des bouts dans form_valid() (ça oblige à des form.add_error(None, ...) un peu moche).

#10

Mis à jour par Frédéric Péters il y a plus de 4 ans

À propos de 0001, je me dis qu'on a décidé black pour chrono (#37464), que même sans l'infra pour vérifier côté jenkins que ça colle, on pourrait déjà faire la passe sur le code . (dans le commit de la branche de #37464, j'ai mis black --target-version py35 --skip-string-normalization --line-length 110, ça peut s'y discuter).

#11

Mis à jour par Lauréline Guérin il y a plus de 4 ans

Dans 0001 j'ai passé un coup de black, avec les options du commit de #37464

Dans 0002 j'ai supprimé la notion de keep_synced_by_uid et le champ external_id du model TimePeriodException qui du coup ne servait plus à rien.

J'ai déplacé un check dans la méthode clean du form ExceptionsImportForm, mais j'ai laissé la gestion des ICSError dans les vues.

#12

Mis à jour par Frédéric Péters il y a plus de 4 ans

Je pense que je ferais sans la confirmation lors du "refresh".

(et j'allais dire que ma version de black ne produit pas le même résultat, mais en fait c'est que tu as limité le changement aux fichiers que tu touchais, je te dirais d'y aller totalement, que tous les fichiers soient traités une fois pour toutes).

#13

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Lauréline Guerin a écrit :

J'ai déplacé un check dans la méthode clean du form ExceptionsImportForm, mais j'ai laissé la gestion des ICSError dans les vues.

Je parlais de TimePeriodExceptionSourceRefreshForm en fait.

#14

Mis à jour par Lauréline Guérin il y a plus de 4 ans

ExceptionsImportForm ou TimePeriodExceptionSourceRefreshForm, c'est la même mécanique: on valide le form, on save l'instance, puis on lance l'import en form_valid

#16

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Solution proposée à Solution validée

Pour moi c'est ok, une fois rebasé sur master (et j'ai brièvement regardé et c'est un peu plus chiant que juste zapper le premier commit), tu peux envoyer.

#17

Mis à jour par Lauréline Guérin il y a plus de 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 7a33c41586d095b0f2ec3f85855623025e50301a
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Thu Dec 12 10:56:14 2019 +0100

    agendas: refresh an exception source (#29209)

commit 2aed92d132ea154af465450a6d0c9e476e1fab80
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Thu Dec 12 09:45:54 2019 +0100

    agendas: delete an exception source (#29209)

commit a5a8a3fe3d2a1ac7feed68fd7e45f391aa3d70ab
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Tue Dec 10 15:28:39 2019 +0100

    agendas: add exception source model (#29209)
#18

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#19

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

Formats disponibles : Atom PDF