IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Odoo (ex-OpenERP) Discussion :

Modification module POS Enhanced / Problème Jquery


Sujet :

Odoo (ex-OpenERP)

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2014
    Messages : 27
    Points : 14
    Points
    14
    Par défaut Modification module POS Enhanced / Problème Jquery
    Bonjour,

    je tente de modifier le module de thierry godin : Module TG POS Enhanced et malheuresement je n'y arrive pas. En fait le problème c'est que je souhaite remplacer la liste déroulante des caissiers dans la caisse par des input radio. Un input radio par caissier.

    J'ai donc modifié le fichier XML pour y ajouter les lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="radio" id="cashiers" name="cashiers" value="Dupond" />
    <input type="radio" id="cashiers" name="cashiers" value="Durand" />
    <input type="radio" id="cashiers" name="cashiers" value="Jack" />
    Et j'ai modifié le fichier JS : tg_pos.js pour y insérer le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $('#cashiers').click(function(){
                    var name = $('input:radio[name=cashiers]:checked').val();
                    $('#cashier-select').val(name);
                });
    Le code ci-dessus fonctionne mais QUE lorsque je sélectionne le premier input (le caissier dupond donc) et donc pas pour les autres caissiers.

    Je ne sais pas pas d'où le problème peut venir. Le truc c'est que normalement la fonction JS que j'ai crée devrait être appelé à chaque fois que je clique sur l'un des input radio, mais ce n'est pas le cas. La fonction est appelé que lorsque je clique sur le premier enregistrement (j'ai ajouté une alerte javascript pour en être certain). J'ai vérifié sur Internet et je ne crois pas avoir fait une erreur.

    Comment faire pour résoudre ce problème s'il vous plaît ?

    Merci

    Salutations.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2014
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Finalement, j'ai trouvé la solution à mon problème. J'ai crée un ID unique pour chaque input radio et j'ai ensuite vérifier si mes inputs étaient cliqués en vérifiant le nom de chaque input radio et non l'ID (vu qu'avant il n'était pas unique).

    Voici donc mes lignes de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="radio" id="cashiers1" name="cashiers" value="Dupond" />
    <input type="radio" id="cashiers2" name="cashiers" value="Durant" />
    <input type="radio" id="cashiers3" name="cashiers" value="Jack" />
    et ensuite dans le fichier tg_pos.js :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $('input:radio[name=cashiers]').click(function(){
                    var name = $('input:radio[name=cashiers]:checked').val();
                    $('#cashier-select').val(name);
                });
    Désolé pour le dérangement.

    Salutations

    PS : je marque le sujet comme résolu.

  3. #3
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Oui, mais là tu as codé "en dur" les radios pour tes caissiers, mais que se passe t'il lorsque tu crées un nouveau caissier? Faut il a chaque fois que tu modifies le XML ???
    Il faudrait au moins que tu codes tes radios dynamiquement en fonction des caissiers existants ( dans une boucle), ce serait plus clean

  4. #4
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2014
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Oui en fait au début j'ai juste fait un premier test avec des boutons radio en statique, il fallait effectivement modifier le fichier XML à chaque ajout/mise à jour/suppression d'un caissier.

    Maintenant, j'ai ajouté quelques instructions dans le fichier JS pour automatiquement générer la portion de code HTML et l'insérer directement dans un DIV spécialement créer pour l'occasion.

    Voici mes lignes de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(var a = 1, len2 = cashier_list2.length; a <= len2; a++){
                                var ncontent = self.$('#cashier_list').html();
                                var nnew_option = '<div class="cashier-list">' + cashier_list2[a] + '<br /><input type="radio" id="cashiers' + a + '" name="cashiers" value="' + cashier_list2[a] + '" /></div>\n';
                                self.$('#cashier_list').html(ncontent + nnew_option);
                                }
    Code inséré dans le fichier suivant : tg_pos.js (dans le moduile tg_pos_enhanced).

    Donc maintenant ça m'insére correctement la liste des caissiers de manière dynamique. Par contre du coup, le script qui fonctionnait plus haut ne semble plus fonctionner maintenant et je trouve ça bizarre. En fait, ça ne préselectionne plus un caissier (toujours le message qui apparaît : You must select a cashier).

    Tu vois d'où pourrait venir l'erreur ?

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème jQuery Dreamweaver CS5 Code Hinting
    Par Nicooolas dans le forum Dreamweaver
    Réponses: 3
    Dernier message: 03/02/2011, 14h15
  2. Modification nb elements <input> via jquery
    Par Invité(e) dans le forum jQuery
    Réponses: 3
    Dernier message: 16/11/2009, 20h40
  3. CGI/Python, module gnomevfs, et problème de permissions
    Par Maxhysteria dans le forum Apache
    Réponses: 1
    Dernier message: 25/11/2007, 19h18
  4. Modification de modèle .dot : problème!
    Par virgakagini dans le forum VBA Word
    Réponses: 8
    Dernier message: 20/08/2007, 09h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo