Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix table's sequence fetching when inserting new record #604

Merged
merged 9 commits into from
Nov 27, 2023
Merged

Conversation

achraf-dridi
Copy link

in this pull request i fixed the table's sequence fetching when inserting new record. I also fixed a bug of ClassCastException of LocalDateTime to Instant in CallendarBlock. I tested the fetch of sequence of the base table.

… un block + changer le fonctionnement de la methode Utils.getNextTableId pour creer des sequence sous la format nomTable_COLONNEID_seq + test unitaires [APPS-01S8]
Achraf Dridi and others added 6 commits September 6, 2023 17:01
Clean : Cosmetics
galite-data :
        - Remove tables Dummy and Dual from Galite.
        - Fix method Utils.getNextTableId : Use the first sequence found from the following : `user defined sequence`, `<Table>id`, `<Table>_<IdField>_seq`
galite-demo :
        - Change forms ClientForm and ProductForm to allow insertMode
        - Define all tables sequence names
galite-tests : Fix automated tests, add a user defined sequence for table Training
@mgrati mgrati requested review from RiadhCherni and removed request for mgrati and yahiaoui97 November 22, 2023 14:47
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci de supprimer cette modification :
La classe Calendar présente plusieurs problèmes. Je propose de créer un dossier spécifique pour traiter toutes les anomalies présentées dans l'implémentation du composant FullCalendar.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je ne suis pas d'accord pour la suppression de cette modification. C'est une modification pour résoudre un problème trouvé lors du test, et qui est aussi décrite dans la description du pull request.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Le formulaire Task présente plusieurs anomalies ( ainsi que la class Calendar), comme j'ai mentionné précédemment. Il est nécessaire de créer un dossier spécifique pour traiter tous les problèmes.
exemple d'anomalie :
Capture d’écran du 2023-11-24 12-14-50

autre anomalie :
java.lang.RuntimeException: org.kopi.galite.visual.ui.vaadin.calendar.DAbstractFullCalendar$updateEntries$1@d56abff Fetch entries

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je pense que c'est une erreur fatale

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je pense que c'est une erreur fatale

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je pense que c'est une erreur fatale

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je pense que c'est une erreur fatale

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

À quoi sert ce changement ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai ajouté l'appel de databaseConfig dans galite-test pour initialiser le SQL Logger, Donc j'ai initialisé le paramètre schema par null pour un appel plus propre de la méthode (ne pas avoir besoin d'appeler databaseConfig(null)).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je propose de modifier la structure de cette fonction. Voici la structure proposée :

  • Si nous avons la séquence : nous l'utilisons pour retourner le prochain identifiant à utiliser.
  • Sinon : - nous essayons avec la séquence définie dans DbSchema.
    - Sinon, nous utilisons la séquence par défaut de Postgres.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quelle séquence de DBSchema? Il n'y a aucune liaison entre les séquences définies dans un DBSchema et le champ qui est incrémenté par cette séquence.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

À quoi servent tous ces changements ? On n'arrive pas à effectuer les tests nécessaires dans un bloc sans UC et TS field.
On n'arrive pas à ajouté des nouveaux clients
On n'arrive pas à ajouté des nouveaux Sales pour un client donné
Bouton Liste ne fonctionne pas correctement ..
Le bouton Save doit étre disponible dans le mode = INSERT ou mode = UPDATE seulement

Copy link
Member

@mgrati mgrati Nov 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci de détailler les erreurs que tu as rencontré car je peux :

  • Ajouter et sauvegarder des nouveaux clients
  • Ajouter des ventes à un client existant et sauvegarder les changements
  • Lister les clients
    De plus, il nest pas nécessaires d'avoir les champs uc et ts dans une table pour pouvoir manipuler les données.

J'ai changé l'accessibilité du bouton Save

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

j'arrive pas à ajouté un nouveau client :
Capture d’écran du 2023-11-24 12-26-59

Lorsque j'ai tenté d'ajouter un nouveau client avec ses ventes, j'ai rencontré cette erreur.
Capture d’écran du 2023-11-24 12-23-36

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

À quoi servent tous ces changements ? On n'arrive pas à effectuer les tests nécessaires dans un bloc sans UC et TS field.
autre remarque :
Le bouton Save doit étre disponible dans le mode = INSERT ou mode = UPDATE seulement

Copy link
Member

@mgrati mgrati Nov 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Il n'est pas nécessaire d'avoir les champs uc et ts pour créer et utiliser un formulaire dans galite. Merci de détailler les exceptions trouvées car je peux créer des nouveaux produits
J'ai changé l'accessibilité du bouton Save

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ci-dessous le résultat du test :
Capture d’écran du 2023-11-24 13-15-51
log : Caused by: java.lang.AssertionError: UC or TS field must exist (Block = BlockProduct).
at org.kopi.galite.visual.form.VBlock.insertRecord(VBlock.kt:3313)
at org.kopi.galite.visual.form.VBlock.save(VBlock.kt:1893)
at org.kopi.galite.visual.form.Commands$saveBlock$2.invoke(Commands.kt:373)
at org.kopi.galite.visual.form.Commands$saveBlock$2.invoke(Commands.kt:372)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:189)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.access$inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:1)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$1.invoke(ThreadLocalTransactionManager.kt:215)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:223)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:214)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$transaction$1.invoke(ThreadLocalTransactionManager.kt:165)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:223)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:135)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:132)
at org.kopi.galite.visual.database.WindowTransactionKt$transaction$1.invoke(WindowTransaction.kt:79)
at org.kopi.galite.visual.database.WindowTransactionKt.doAndWait(WindowTransaction.kt:124)
at org.kopi.galite.visual.database.WindowTransactionKt.transaction(WindowTransaction.kt:78)
at org.kopi.galite.visual.database.WindowTransactionKt.transaction$default(WindowTransaction.kt:75)
at org.kopi.galite.visual.form.Commands.saveBlock(Commands.kt:372)
... 8 more

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix accessiblity for save command in forms ClientForm and ProductForm [APPS-01S8]
Clean : Cosmetics
RiadhCherni pushed a commit that referenced this pull request Nov 27, 2023
@mgrati mgrati merged commit 4ae2bfb into master Nov 27, 2023
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants