ofbiz-framework issueshttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues2018-07-13T10:21:07Zhttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/4Reusinage de ‘RequestHandler::doRequest’2018-07-13T10:21:07ZMathieu LirzinReusinage de ‘RequestHandler::doRequest’La méthode `RequestHandler::doRequest` est excessivement longue, non testé, et a de multiple responsabilités:
- Association de la `request-map` au handler
- Benchmarking
- Suivi des utilisateur
- Gestion de HTTPS
- Gestion des redirectio...La méthode `RequestHandler::doRequest` est excessivement longue, non testé, et a de multiple responsabilités:
- Association de la `request-map` au handler
- Benchmarking
- Suivi des utilisateur
- Gestion de HTTPS
- Gestion des redirection vers d'autres routes
Ce qui la rend particulièrement difficile à lire est que c'est un gruyère de tests à null et de traitements d'erreurs, avec des variables mutées déclarées 200 lignes plus haut.
Il faudrait réusiner cette méthode en améliorant le traitement d'erreur et en déléguant les responsabilités à d'autres méthodes.
- [ ] Tester unitairement cette méthode
- [ ] Extraire le suivi des utilisateurs
- [ ] Extraire la mesure de temps
- [X] Extraire la résolution de la `request-map` ([OFBIZ-10438](https://issues.apache.org/jira/browse/OFBIZ-10438))
- [X] Extraire la vérification des certificats SSL ([OFBIZ-10450](https://issues.apache.org/jira/browse/OFBIZ-10450))
- [ ] Utiliser [`Optional`](https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html) quand cela est possible.https://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/5Renvoie de vues à partir d'URI composés2019-03-29T15:38:19ZMathieu LirzinRenvoie de vues à partir d'URI composésDans l'idée d'améliorer le support d'[API de type REST](https://issues.apache.org/jira/browse/OFBIZ-4274), on veut gérer les routes HTTP dont le *path* est composé de plusieurs segments. On veut pouvoir définir des `request-map` comme d...Dans l'idée d'améliorer le support d'[API de type REST](https://issues.apache.org/jira/browse/OFBIZ-4274), on veut gérer les routes HTTP dont le *path* est composé de plusieurs segments. On veut pouvoir définir des `request-map` comme dans l'exemple suivant :
```xml
<request-map uri="foo">…</request-map>
<request-map uri="foo/bar">…</request-map>
<request-map uri="foo/bar/baz">…</request-map>
```
Le problème de cette fonctionnalité est qu'il existe déjà une sémantique associée au *path* à segments multiples. Voici les usages actuels de cette fonctionnalité:
* Le mécanisme de **vue dynamique passée dans l'URI** est une fonctionnalité permettant de dynamiquement redéfinir la vue qui doit être affichée après avoir exécuter le gestionnaire de requête associé à une URI particulière. Ainsi le *path* `/earth/moon` sera associé avec la `request-map` avec l'attribut `uri="earth"` et la vue dont le nom est "moon" sera rendue.
* Les **paramètres de requête dans le *path*** est une fonctionnalité permettant de passer des paramètres de requête en utilisant une syntaxe alternative. De base une URI est définit au moyen de la syntaxe `/earth/moon?foo=1&bar=2` quit définit un *path* `/earth/moon` et deux paramètres `foo` et `bar` qui sont respectivement associés aux valeurs 1 et 2. Avec la syntaxe alternative la même URI peut être écrite `/earth/moon/~foo=1/~bar=2` mais aura la même interprétation au niveau d'OFBiz.
Il faut donc adapter et/ou supprimer ces fonctionnalités pour pouvoir définir des `request-map` à segments multiples. Dans le cas des vues dynamiques en utilisant les [templates d'URI](https://tools.ietf.org/html/rfc6570) on pourrait définir des routes:
```xml
<request-map uri="earth">
<response name="success" type="view" value="mars"/>
</request-map>
<request-map uri="earth/{viewName}">
<response name="success" type="view" from-variable="viewName"/>
</request-map>
```
pour la syntaxe alternative de paramètre on peut simplement supprimer tous les usages de cette syntaxe et en les remplaçant par la syntaxe canonique.Artemiy RozovykArtemiy Rozovykhttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/7Add some j/gunit test for EntityUtil refacto2018-10-16T08:04:19ZGil PortenseigneAdd some j/gunit test for EntityUtil refactoAdd some j/gunit test for EntityUtil refacto : refactoEntityUtilAdd some j/gunit test for EntityUtil refacto : refactoEntityUtilGil PortenseigneGil Portenseignehttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/8Add some J/Gunit test for impersonation permission controls2020-02-21T13:53:39ZGil PortenseigneAdd some J/Gunit test for impersonation permission controlsGil PortenseigneGil Portenseignehttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/10Export de liste (cvs, tableur, pdf) (8)2018-10-16T08:23:02ZGil PortenseigneExport de liste (cvs, tableur, pdf) (8)Ajouter un paramétrage dans les forms de type list/grid, pour la génération d'un lien d'export du résultat de la liste.Ajouter un paramétrage dans les forms de type list/grid, pour la génération d'un lien d'export du résultat de la liste.https://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/11Infinite Scroll (5)2018-12-18T14:41:10ZGil PortenseigneInfinite Scroll (5)Amélioration de la pagination pour mettre en place un infinite scroll ajax
@dmarine et @njulien Amélioration de la pagination pour mettre en place un infinite scroll ajax
@dmarine et @njulien Clôture des tâches anciennesMarine DesmarchelierMarine Desmarchelierhttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/12Filtre sur les header de liste (20)2018-10-16T08:27:01ZGil PortenseigneFiltre sur les header de liste (20)Donner la possibilité d'ajouter des filtres sur header de listes pour peaufiner une rechercheDonner la possibilité d'ajouter des filtres sur header de listes pour peaufiner une recherchehttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/13Personnalisation des colonnes (masquage, tri) (13)2018-10-16T08:28:05ZGil PortenseignePersonnalisation des colonnes (masquage, tri) (13)Définir la possibilité de paramétrage d'affichage des colonnes d'une liste/grid en UserPropertyDéfinir la possibilité de paramétrage d'affichage des colonnes d'une liste/grid en UserPropertyhttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/14Listes Multi avec multi actions (5)2018-10-16T09:02:44ZGil PortenseigneListes Multi avec multi actions (5)A redéfinir ...A redéfinir ...https://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/15Listes Multi avec modification a la ligne + validation groupée (?)2020-02-28T13:27:02ZGil PortenseigneListes Multi avec modification a la ligne + validation groupée (?)Modification de plusieurs items dans une liste, et validation du formulaire pour Maj tous les items modifiésModification de plusieurs items dans une liste, et validation du formulaire pour Maj tous les items modifiéshttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/16Nb d'enregistrements de la recherche sur un tableau (1)2019-05-17T14:28:42ZGil PortenseigneNb d'enregistrements de la recherche sur un tableau (1)Ludovic GILBONLudovic GILBONhttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/17Nb d'enregistrements de la recherche sur un tableau par statut (8)2020-02-28T13:27:02ZGil PortenseigneNb d'enregistrements de la recherche sur un tableau par statut (8)https://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/19Mise en forme du retour liste des lookups (formatage) (X)2018-10-16T09:04:15ZGil PortenseigneMise en forme du retour liste des lookups (formatage) (X)https://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/20Lookup avec selection multiples2018-10-16T09:04:30ZGil PortenseigneLookup avec selection multipleshttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/21Simplification du fonctionnement/paramétrage des lookup (X)2018-10-16T09:05:03ZGil PortenseigneSimplification du fonctionnement/paramétrage des lookup (X)A peaufiner, car trop largeA peaufiner, car trop largehttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/25Support des expansions imbriquées pour les instance de ‘FlexibleStringExpander’2019-12-07T13:05:36ZMathieu LirzinSupport des expansions imbriquées pour les instance de ‘FlexibleStringExpander’#### Contexte
La classe `FlexibleStringExpander` implemente l'expansion des valeurs `${foo}` dans des chaînes de caractères xml.
#### Description du problème
Le problème est qu'il n'est pas possible de faire des imbrications du type `${...#### Contexte
La classe `FlexibleStringExpander` implemente l'expansion des valeurs `${foo}` dans des chaînes de caractères xml.
#### Description du problème
Le problème est qu'il n'est pas possible de faire des imbrications du type `${foo-${bar}}`. En effet le processus d'expansion cherche une variable nommée `foo-${bar` dans l'environnement d'appel.
#### Étapes de résolution
1. [x] Séparation de la classe `FlexibleStringExpander` en 3 classes plus facilement testables:
+ `FlexibleString`: interface décrivant les services rendus par une *flexible string*.
+ `FlexibleStringStore`: Classe permettant de stocker des *flexible string* et implémentant le mécanisme de cache.
+ `FlexibleStringParser`: Classe fournissant le service de convertir une chaine de caractères en objet `FlexibleString`.
2. [ ] Écriture de tests unitaires permettant d'identifiés le problème
3. [ ] Implémentation du support des expansions imbriquéeshttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/26Migration groovy OrderServices.xml2018-10-16T21:16:03ZGil PortenseigneMigration groovy OrderServices.xml1. [x] Migrer le service `getNextOrderId`
+ [x] Convertir le code
+ [x] Tester fonctionnellement
2. [x] Migrer le service `getOrderedSummaryInformation`
+ [x] Convertir le code
+ [x] Tester fonctionnellement
3. [ ] Migrer...1. [x] Migrer le service `getNextOrderId`
+ [x] Convertir le code
+ [x] Tester fonctionnellement
2. [x] Migrer le service `getOrderedSummaryInformation`
+ [x] Convertir le code
+ [x] Tester fonctionnellement
3. [ ] Migrer le service `createRequirementAndCommitment`
+ [x] Convertir le code
+ [ ] Tester fonctionnellement
4. [ ] Migrer le service `getProductFacilityAndQuantities`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
5. [ ] Migrer le service `getProductRequirementMethod`
+ [x] Convertir le code
+ [ ] Tester fonctionnellement
6. [ ] Migrer le service `checkCreateOrderRequirement`
+ [x] Convertir le code
+ [ ] Tester fonctionnellement
7. [ ] Migrer le service `checkCreateStockRequirementQoh`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
8. [ ] Migrer le service `checkCreateStockRequirementAtp`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
9. [ ] Migrer le service `createRequirementFromItemATP`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
10. [ ] Migrer le service `checkCreateProductRequirementForFacility`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
11. [ ] Migrer le service `orderSequence_enforced`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
12. [ ] Migrer le service `createOrderHeader`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
13. [ ] Migrer le service `updateOrderHeader`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
14. [ ] Migrer le service `recreateOrderAdjustments`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
15. [ ] Migrer le service `updateOrderContactMech`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
16. [ ] Migrer le service `updateOrderItemShipGroup`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
17. [ ] Migrer le service `getOrderItemShipGroupEstimatedShipDate`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
18. [ ] Migrer le service `updateOrderNote`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
19. [ ] Migrer le service `addPaymentMethodToOrder`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
20. [ ] Migrer le service `getOrderStatus`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
21. [ ] Migrer le service `checkOrderIsOnBackOrder`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
22. [ ] Migrer le service `createOrderItemChange`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
23. [ ] Migrer le service `createUpdateShippingAddress`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
24. [ ] Migrer le service `createUpdateBillingAddress`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
25. [ ] Migrer le service `createUpdateCreditCard`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
26. [ ] Migrer le service `setUnitPriceAsLastPrice`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
27. [ ] Migrer le service `cancelAllBackOrders`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
28. [ ] Migrer le service `productAvailabalityByFacility`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
29. [ ] Migrer le service `createOrderPaymentApplication`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
30. [ ] Migrer le service `MoveItemBetweenShipGroups`
+ [ ] Convertir le code
+ [ ] Tester fonctionnellement
Gil PortenseigneGil Portenseignehttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/33‘String#toLowercase()’ and ‘String#toUppercase()’ devrait être utiliser si po...2019-02-21T13:38:50ZMathieu Lirzin‘String#toLowercase()’ and ‘String#toUppercase()’ devrait être utiliser si possibleVoir description du ticket [OFBIZ-10632](https://issues.apache.org/jira/browse/OFBIZ-10632) pour plus de détails.Voir description du ticket [OFBIZ-10632](https://issues.apache.org/jira/browse/OFBIZ-10632) pour plus de détails.https://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/42Formulaires de saisie 'Expression'2020-03-06T13:19:53ZLeila MekikaFormulaires de saisie 'Expression'Création d'un premier formulaire pour saisir un commentaire de manière anonyme.
Un second formulaire devra permettre de publier et afficher le(s) commentaire(s)
A priori, on peut utiliser les CommunicationEvent avec un type specifiqueCréation d'un premier formulaire pour saisir un commentaire de manière anonyme.
Un second formulaire devra permettre de publier et afficher le(s) commentaire(s)
A priori, on peut utiliser les CommunicationEvent avec un type specifiquehttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/47Calcul des disponibilités de calendrier2019-05-17T12:20:13ZMathieu LirzinCalcul des disponibilités de calendrierAfin de pouvoir gérer la planification de commandes, il serait utile de définir des service associés à l'entité `techDataCalendar` pour définir des calendriers de disponibilités et calculer les prochaines dates disponibles.
- [X] Implém...Afin de pouvoir gérer la planification de commandes, il serait utile de définir des service associés à l'entité `techDataCalendar` pour définir des calendriers de disponibilités et calculer les prochaines dates disponibles.
- [X] Implémenter un prototype permettant de gérer les jours et semaines d'exceptions
- [ ] Adapter aux besoins spécifiques liés à la planification de commandesBonne Année 2019Charles STELTZLENCharles STELTZLEN