chat.freenode.net #tryton-fr log beginning Wed Jun 29 00:03:01 CEST 2016 | ||
2016-06-29 08:50 -!- mrichez(~smuxi@mail.saluc.com) has joined #tryton-fr | ||
2016-06-29 09:24 -!- azerttyu(~azerttyu@polyscenic.pck.nerim.net) has joined #tryton-fr | ||
2016-06-29 09:25 -!- cedk(~ced@gentoo/developer/cedk) has joined #tryton-fr | ||
2016-06-29 11:24 -!- prevision(~prevision@ADijon-653-1-191-151.w90-39.abo.wanadoo.fr) has joined #tryton-fr | ||
2016-06-29 11:25 <prevision> Bonjour, je suis le tuto du guide du développeur, et pas moyen de faire imprimer quoique ce soit via mon wizard. Avez-vous une idée ??? | ||
2016-06-29 11:26 <cedk> prevision: ce serait bien si on pouvait voir le code | ||
2016-06-29 11:28 -!- prevision(~prevision@ADijon-653-1-191-151.w90-39.abo.wanadoo.fr) has joined #tryton-fr | ||
2016-06-29 11:28 <prevision> Merci pour la réponse. Il se trouve en ligne : http://tryton-documentation.readthedocs.io/en/latest/developer_guide/example_library_2.html | ||
2016-06-29 11:29 <prevision> Mais, il faut savoir que j'ai fait mon installe d'après les tar.gz | ||
2016-06-29 11:34 <prevision> Pour info, avec le xml que l'on peut aussi avoir sur github (https://github.com/tryton/tryton-documentation/blob/master/library_demo_module/library/library.xml), j'obtiens le message d'erreur suivant : ERROR:tryton.common.common:None ('Error', 'Missing report file!'), alors que book.odt existe et est fait avec les placeholder | ||
2016-06-29 11:36 <prevision> oups, me suis trompé de lien : https://github.com/tryton/tryton-documentation/blob/master/library_demo_module/library_rent/library.xml | ||
2016-06-29 11:37 <cedk> prevision: il y a une erreur dans le code | ||
2016-06-29 11:38 <cedk> prevision: ça doit être: print_ = StateAction('library.book_print') | ||
2016-06-29 11:38 <cedk> prevision: je ne suis pas sûr que l'auteur maintienne la documentation | ||
2016-06-29 11:39 <cedk> prevision: ceci est mieux maintenu: http://downloads.tryton.org/TUL2014/crash-course.pdf | ||
2016-06-29 11:40 <prevision> Ben, pourtant elle est présentée comme celle de la 4.1... Mais oui, sur git, le .cfg pointe vers une versions 3.8 de mémoire. Je teste tout de suite, et vous tiens informé cedk. Merci beaucoup pour la réactivité | ||
2016-06-29 11:40 <cedk> prevision: avec http://hg.tryton.org/training | ||
2016-06-29 11:43 <prevision> Ben ce n'était pas ça... Toujours le même message | ||
2016-06-29 11:46 <cedk> prevision: est-ce que c'est bien: <field name="report">library/book.odt</field> | ||
2016-06-29 11:47 <cedk> prevision: et le nom du module est bien library? | ||
2016-06-29 11:47 <cedk> prevision: ça doit être: print_ = StateAction('library.report_library') | ||
2016-06-29 11:48 <cedk> c'est le nom de l'action | ||
2016-06-29 11:50 <prevision> oui, c'est le bon field | ||
2016-06-29 11:50 <prevision> nom du module ou de la classe ? | ||
2016-06-29 11:51 <prevision> (Désolée, je lisais les liens) | ||
2016-06-29 12:07 <prevision> Et bien, library.report_library ne marche pas non plus. Et, j'ai deux modules, l'un qui s'appelle library, dont le nom de la classe est library.book, et library_rent dont le nom de la classe est aussi library.book. Le problème ne pourrait-il pas venir de là ? En suivant ce tuto, library.book de library est la classe mère de library.book de library_rent. Or, le wizard est créé dans library_rent. | ||
2016-06-29 12:11 <cedk> prevision: je sais pas, je ne connais absolument pas ce tutorial. Pour pouvoir répondre il faudrait le lire en entier | ||
2016-06-29 12:13 <prevision> Donc deux noms de classe identiques dans deux modules différents, dont l'un étend l'autre, n'est pas un problème, puisqu'il s'agit d'étendre le premier modèle. Sinon, merci beaucoup pour votre aide. | ||
2016-06-29 12:13 <cedk> prevision: il n'y a pas de problème avec des noms de classes identiques | ||
2016-06-29 12:17 <prevision> cedk: Le tuto qui permet de créer le module library est : http://tryton-documentation.readthedocs.io/en/latest/developer_guide/example_library_1.html et celui qui permet de créer library_rent est http://tryton-documentation.readthedocs.io/en/latest/developer_guide/example_library_2.html. Sinon, je crois bien que le lien vers le pdf que vous m'avez envoyé, n'est plus adapté pour les boutons (je me prend aussi la tête | ||
2016-06-29 12:17 <prevision> pour réussir à effacer un enregistrement, via un bouton, dans un tree | ||
2016-06-29 12:18 <prevision> Et, je pense que je suis tombée sur une de vos mises à jour concernant les groupes de bouton, pendant mes recherches... | ||
2016-06-29 12:20 <cedk> prevision: la suppression de record, ce fait via le menu du formulaire | ||
2016-06-29 12:21 <prevision> et on ne peut pas le coder avec un bouton, pour que ce soit plus élégant ??? | ||
2016-06-29 12:22 <prevision> Parce que si c'est le cas, heureusement que je vous en ai parlé, et je vous remercie donc encore... J'allais me prendre la tête longtemps. | ||
2016-06-29 12:22 <cedk> prevision: ça n'irait pas car un bouton s'éxécute sur un enregistrement | ||
2016-06-29 12:35 <cedk> prevision: en fait, il y a peut-être moyen d'utiliser un bouton avec une action client | ||
2016-06-29 12:38 <cedk> prevision: http://doc.tryton.org/4.0/trytond/doc/topics/views/index.html#button | ||
2016-06-29 12:56 <prevision> C'est exactement, ce que j'ai fait. Dans mon xml, j'ai ajouté : button name="deleteButton" string="Delete" confirm="Are you sure to delete the book?"/> | ||
2016-06-29 12:56 <prevision> Et dans ma classe, j'ai ajouté : :q! | ||
2016-06-29 12:57 <prevision> @classmethod | ||
2016-06-29 12:57 <prevision> def deleteButton(self, records): | ||
2016-06-29 12:58 <prevision> pool = Pool() | ||
2016-06-29 12:58 <prevision> Model = pool.get('nomDu.model') | ||
2016-06-29 12:59 <prevision> record = Model.search(['id','=',row.id)]) | ||
2016-06-29 12:59 <prevision> Modele.delete(record) | ||
2016-06-29 12:59 <prevision> Model.create(values) | ||
2016-06-29 12:59 <prevision> return 'reload' | ||
2016-06-29 13:00 <prevision> mais, je me heurte à l'erreur suivante : pas le droit d'appeller cette fonction, sur cette classe | ||
2016-06-29 13:03 <cedk> prevision: ce n'est pas ça du tout qui est expliqué dans la doc | ||
2016-06-29 13:04 <cedk> prevision: de plus les méthodes de button doivent être décorées par ModelView.button | ||
2016-06-29 13:06 <prevision> cedk: même avec def deleteButton(cls, records). Oh, j'ai tenté @ModelView.button. Ca ne mache pas. Tout comme, avec une fonction setup, impossible d'ajouter un bouton au dictionnaire de bouton, car même si ma classe hérite de modelview, le compilateur considère que ma classe n'a pas d'attribut _boutton | ||
2016-06-29 13:07 <prevision> cedk: Qu'est-ce que je n'ai pas compris dans la doc ? | ||
2016-06-29 13:08 <cedk> prevision: _button est définit par ModelView.__setup__ | ||
2016-06-29 13:10 <prevision> Oui, j'avais compris. Et, j'ai essayé ModelView, à la place de super, quand je créai la __setup__ de ma classe | ||
2016-06-29 13:12 <cedk> prevision: comprend pas | ||
2016-06-29 13:14 <prevision> cedk: Comme je débute sur Tryton, avant de coder quoique ce soit, je regarde soit les modules existant comme account_invoice ou party, mais aussi, ce que je trouve en ligne. | ||
2016-06-29 13:16 <prevision> Du coup, je suis tombée sur la manière classique de déclarer un bouton, qui consiste à créer sa propre __setup__, et d'y appeller la __setup de la mère via NomMere.__setup() ou super(NomMere, cls).__setup() | ||
2016-06-29 13:17 <prevision> J'ai tenté les deux, et pour autant, il n'acceptait pas d'ajouter mon boutton tout simple au dico | ||
2016-06-29 14:16 <cedk> prevision: sans voir le code, je peux rien dire | ||
2016-06-29 14:20 <prevision> cedk: Je ne sais pas pourquoi (peut - être les mises à jour systèmes, mais alors qu'hier soir l'appelle de ModelView._setup() retournait une erreur, là ça marche. Du coup, je suis en train de tout reprendre, et il me demande maintenant de définir _sql_constraints pour mon objet. Et il n'apprécie pas les mots clés de postgreSQL, tq : ('title', 'UNIQUE (title)', 'All the field are not unique'), il me répond | ||
2016-06-29 14:20 <prevision> gentilment unsupported operand type(s) for +: 'NoneType' and 'str'. Je me base sur le lien suivant : http://doc.tryton.org/4.0/trytond/doc/ref/models/models.html | ||
2016-06-29 14:23 <cedk> prevision: ça doit être des instances de Constraint comme indiqué dans la doc | ||
2016-06-29 14:35 <prevision> Comment se sert-on de Unique.columns ? | ||
2016-06-29 14:36 <prevision> cedk: En meme temps, ce serait plus utile de savoir comment créer une Constraint pour une ligne seulement, svp ? | ||
2016-06-29 14:37 <cedk> prevision: je comprends pas la question | ||
2016-06-29 14:38 <cedk> prevision: les contraints sont toujours sur l'ensemble | ||
2016-06-29 14:39 <prevision> Ok, ce qui veut dire que si j'impose que ma colonne "title", avec Unique.colums par exemple, les utilisateurs ne pourront donc pas enter des doublons sur la colonne title ? | ||
2016-06-29 14:44 <cedk> prevision: oui, c'est une contrainte au sense SQL | ||
2016-06-29 14:48 <prevision> cedk: donc pour table, j'entre le nom de mon modele, et, pour colonne, le nom du champ ? Et, le nom de mon model, c'est le nom de ma classe, et celui de ma colonne, c'est le nom d'un attribut de la classe ? | ||
2016-06-29 15:23 <prevision> Pour info, je confirme il est possible de créer un bouton qui efface un enregistrement dans sa vue. Et, j'avais simplement fait quelques erreurs de débutant, qui n'ont pas approfondis leur python depuis un moment... Il faut bien définir une méthode __setup__(cls), décorée @classmethod. Dans cette dernière, il faut appeller super(NomDeMaClasse,cls).__setup() pour créer tous les attributs de(s) classe(s) mère(s). | ||
2016-06-29 15:23 <prevision> Ensuite, on met à jour la liste des boutons avec cls._buttons.update({'nomBoutonIdentiqueNonFonction':{},}) | ||
2016-06-29 15:25 <prevision> Il se peut que l'attribut _sql_error_messages={'nomBoutonIdentiqueNonFonction':'Msg d'erreur'} doivent aussi être définit. Je n'ai pas pris la peine de tester... | ||
2016-06-29 15:26 <prevision> Et ensuite on crée une méthode décorée @classmethod @ModelView.button def nomBoutonIdentiqueNonFonction(cls, records): return 'delete' | ||
2016-06-29 15:27 <prevision> Dans le xml de l'arbre, on met <button name="nomBoutonIdentiqueNonFonction" string="NomAAfficher"/ | ||
2016-06-29 15:28 <prevision> Un problème de résolu, mais je ne sais pas ce qui arrive à mon wizard qui ne veut pas imprimer dans un fichier. Dans tous les cas, un grand merci à cedk... | ||
2016-06-29 16:20 -!- cedk(~ced@gentoo/developer/cedk) has joined #tryton-fr | ||
2016-06-29 16:58 -!- prevision(~prevision@ADijon-653-1-191-151.w90-39.abo.wanadoo.fr) has joined #tryton-fr | ||
2016-06-29 18:25 -!- azerttyu(~azerttyu@polyscenic.pck.nerim.net) has joined #tryton-fr | ||
2016-06-29 18:51 -!- nicoe(~nicoe@2a02:a03f:302d:1400:ee55:f9ff:fe7b:f7ac) has joined #tryton-fr | ||
2016-06-29 19:40 -!- mrechte(~Thunderbi@2001:41d0:fe43:7f00:fad1:11ff:fe10:a118) has joined #tryton-fr |
Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!