Parité v4.3 des programmes #114

Open
opened 2 months ago by Lephenixnoir · 4 comments
Owner

Une sous-issue de #20 concernant la parité des programmes, ie. le fait d'avoir au moins toutes les fonctionnalités de la v4.3, ce qui devrait permettre de migrer.

Modèle

  • Notes
  • Tests
  • Tags
    • Modèles de calculatrices
    • Langage d'implémentation
    • Catégories (jeux/cours/etc)

Divers

  • Métadonnées : auteur (quand ce n'est pas le posteur)
  • Métadonnées : taille (calculée automatiquement ?)
  • Métadonnées : version
  • Métadonnées : license
  • Bannière de fond
  • Label de qualité
  • Identifiant de concours

Systèmes

  • Job pour le progrank
  • Implémentation de la formule du progrank
Une sous-issue de #20 concernant la parité des programmes, ie. le fait d'avoir au moins toutes les fonctionnalités de la v4.3, ce qui devrait permettre de migrer. **Modèle** - [ ] Notes - [ ] Tests - [x] Tags * [x] Modèles de calculatrices * [x] Langage d'implémentation * [x] Catégories (jeux/cours/etc) **Divers** - [x] Métadonnées : auteur (quand ce n'est pas le posteur) - [x] Métadonnées : taille (calculée automatiquement ?) - [x] Métadonnées : version - [x] Métadonnées : license - [ ] Bannière de fond - [x] Label de qualité - [x] Identifiant de concours **Systèmes** - [x] Job pour le progrank - [ ] Implémentation de la formule du progrank
Lephenixnoir self-assigned this 2 months ago
Lephenixnoir added a new dependency 2 months ago
Poster
Owner

J'ai ajouté les tags dans c74abf3fcc. Je garde la case décochée parce qu'il n'y a pas encore d'UI, c'est juste dans la base de données.

J'ai ajouté les tags dans https://gitea.planet-casio.com/devs/PCv5/commit/c74abf3fcca4b4a739e94ebd21425bd83c8dad09. Je garde la case décochée parce qu'il n'y a pas encore d'UI, c'est juste dans la base de données.
Poster
Owner

Gros commit ci-dessus, j'ai ajouté un champ de saisie pour les tags. Les fonctionnalités côté front :

  • Sélection de tags au clic en Javascript
  • Saisie manuelle des IDs (eg. calc.g90+e) dans un champ de texte hors Javascript
  • Supporte les valeurs initiales
  • Supporte les modifications par les scripts
  • Jolies couleurs sur tous les thèmes (un peu à l'arrache)

Et côté back :

  • Champ TagListField avec validation automatique que les tags existent bien
  • Méthode .selected_tags() évite de passer par .value
  • widgets/tag_selector.html fournit le système de sélection

Comme truc subtil il reste donc essentiellement que le progrank.

Gros commit ci-dessus, j'ai ajouté un champ de saisie pour les tags. Les fonctionnalités côté front : * Sélection de tags au clic en Javascript * Saisie manuelle des IDs (eg. `calc.g90+e`) dans un champ de texte hors Javascript * Supporte les valeurs initiales * Supporte les modifications par les scripts * Jolies couleurs sur tous les thèmes (un peu à l'arrache) Et côté back : * Champ `TagListField` avec validation automatique que les tags existent bien * Méthode `.selected_tags()` évite de passer par `.value` * `widgets/tag_selector.html` fournit le système de sélection ![](https://gitea.planet-casio.com/attachments/e8ac690b-18fc-457a-83ea-ba2aab9f56b3) Comme truc subtil il reste donc essentiellement que le progrank.
Poster
Owner

Le commit ci-dessus utilise le module flask-crontab pour exécuter le job de calcul du progrank chaque jour à 4 heures du matin. Pour l'instant ça donne juste un progrank de 0 et on stocke la date de dernière mise à jour.

J'ai cherché les options pour les jobs comme ça ; la réponse générale est "utilisez crontab", et l'avantage de ce module par rapport à le faire directement c'est que les données sont sur le dépôt et pas dans la config système.

Le module génère une crontab quand on exécute flask crontab add (ce qui sert aussi à mettre à jour après une modification) et la supprime quand on exécute flask crontab remove. On peut aussi lancer les jobs à la main avec flask crontab run <hash>.

Le commit ci-dessus utilise le module [flask-crontab](https://github.com/frostming/flask-crontab) pour exécuter le job de calcul du progrank chaque jour à 4 heures du matin. Pour l'instant ça donne juste un progrank de 0 et on stocke la date de dernière mise à jour. J'ai cherché les options pour les jobs comme ça ; la réponse générale est "utilisez crontab", et l'avantage de ce module par rapport à le faire directement c'est que les données sont sur le dépôt et pas dans la config système. Le module génère une crontab quand on exécute `flask crontab add` (ce qui sert aussi à mettre à jour après une modification) et la supprime quand on exécute `flask crontab remove`. On peut aussi lancer les jobs à la main avec `flask crontab run <hash>`.
Poster
Owner

Le commit ci-dessus ajoute la plupart des métadonnées, en plus d'une nouvelle table Event pour noter les événements dans le futur, ce qui devrait nous permettre tout u tas de petits trucs sympas pour chaque événement :

  • A link to the event's main topic
  • List of programs published in the event
  • Possibly, a list of all related topics (announcement, start, results, etc) all sharing a common 1-line header so they are linked together
  • This would be used for event-related trophies
  • And possibly for an event calendar
Le commit ci-dessus ajoute la plupart des métadonnées, en plus d'une nouvelle table `Event` pour noter les événements dans le futur, ce qui devrait nous permettre tout u tas de petits trucs sympas pour chaque événement : > - A link to the event's main topic > - List of programs published in the event > - Possibly, a list of all related topics (announcement, start, results, > etc) all sharing a common 1-line header so they are linked together > - This would be used for event-related trophies > - And possibly for an event calendar
Sign in to join this conversation.
Loading…
There is no content yet.