IRC logs of #tryton-fr for Wednesday, 2016-06-29

chat.freenode.net #tryton-fr log beginning Wed Jun 29 00:03:01 CEST 2016
-!- mrichez(~smuxi@mail.saluc.com) has joined #tryton-fr08:50
-!- azerttyu(~azerttyu@polyscenic.pck.nerim.net) has joined #tryton-fr09:24
-!- cedk(~ced@gentoo/developer/cedk) has joined #tryton-fr09:25
-!- prevision(~prevision@ADijon-653-1-191-151.w90-39.abo.wanadoo.fr) has joined #tryton-fr11:24
previsionBonjour, 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 ???11:25
cedkprevision: ce serait bien si on pouvait voir le code11:26
-!- prevision(~prevision@ADijon-653-1-191-151.w90-39.abo.wanadoo.fr) has joined #tryton-fr11:28
previsionMerci pour la réponse. Il se trouve en ligne : http://tryton-documentation.readthedocs.io/en/latest/developer_guide/example_library_2.html11:28
previsionMais, il faut savoir que j'ai fait mon installe d'après les tar.gz11:29
previsionPour 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 placeholder11:34
previsionoups, me suis trompé de lien : https://github.com/tryton/tryton-documentation/blob/master/library_demo_module/library_rent/library.xml11:36
cedkprevision: il y a une erreur dans le code11:37
cedkprevision: ça doit être: print_ = StateAction('library.book_print')11:38
cedkprevision: je ne suis pas sûr que l'auteur maintienne la documentation11:38
cedkprevision: ceci est mieux maintenu: http://downloads.tryton.org/TUL2014/crash-course.pdf11:39
previsionBen, 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é11:40
cedkprevision: avec http://hg.tryton.org/training11:40
previsionBen ce n'était pas ça... Toujours le même message11:43
cedkprevision: est-ce que c'est bien: <field name="report">library/book.odt</field>11:46
cedkprevision: et le nom du module est bien library?11:47
cedkprevision: ça doit être: print_ = StateAction('library.report_library')11:47
cedkc'est le nom de l'action11:48
previsionoui, c'est le bon field11:50
previsionnom du module ou de la classe ?11:50
prevision(Désolée, je lisais les liens)11:51
previsionEt 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.12:07
cedkprevision: je sais pas, je ne connais absolument pas ce tutorial. Pour pouvoir répondre il faudrait le lire en entier12:11
previsionDonc 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.12:13
cedkprevision: il n'y a pas de problème avec des noms de classes identiques12:13
previsioncedk: 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ête12:17
previsionpour réussir à effacer un enregistrement, via un bouton, dans un tree12:17
previsionEt, je pense que je suis tombée sur une de vos mises à jour concernant les groupes de bouton, pendant mes recherches...12:18
cedkprevision: la suppression de record, ce fait via le menu du formulaire12:20
previsionet on ne peut pas le coder avec un bouton, pour que ce soit plus élégant ???12:21
previsionParce 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.12:22
cedkprevision: ça n'irait pas car un bouton s'éxécute sur un enregistrement12:22
cedkprevision: en fait, il y a peut-être moyen d'utiliser un bouton avec une action client12:35
cedkprevision: http://doc.tryton.org/4.0/trytond/doc/topics/views/index.html#button12:38
previsionC'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?"/>12:56
previsionEt dans ma classe, j'ai ajouté : :q!12:56
prevision@classmethod12:57
previsiondef deleteButton(self, records):12:57
prevision    pool = Pool()12:58
previsionModel = pool.get('nomDu.model')12:58
previsionrecord = Model.search(['id','=',row.id)])12:59
previsionModele.delete(record)12:59
previsionModel.create(values)12:59
previsionreturn 'reload'12:59
previsionmais, je me heurte à l'erreur suivante : pas le droit d'appeller cette fonction, sur cette classe13:00
cedkprevision: ce n'est pas ça du tout qui est expliqué dans la doc13:03
cedkprevision: de plus les méthodes de button doivent être décorées par ModelView.button13:04
previsioncedk: 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 _boutton13:06
previsioncedk: Qu'est-ce que je n'ai pas compris dans la doc ?13:07
cedkprevision: _button est définit par ModelView.__setup__13:08
previsionOui, j'avais compris. Et, j'ai essayé ModelView, à la place de super, quand je créai la __setup__ de ma classe13:10
cedkprevision: comprend pas13:12
previsioncedk: 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.13:14
previsionDu 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()13:16
previsionJ'ai tenté les deux, et pour autant, il n'acceptait pas d'ajouter mon boutton tout simple au dico13:17
cedkprevision: sans voir le code, je peux rien dire14:16
previsioncedk: 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épond14:20
previsiongentilment 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.html14:20
cedkprevision: ça doit être des instances de Constraint comme indiqué dans la doc14:23
previsionComment se sert-on de Unique.columns ?14:35
previsioncedk: En meme temps, ce serait plus utile de savoir comment créer une Constraint pour une ligne seulement, svp ?14:36
cedkprevision: je comprends pas la question14:37
cedkprevision: les contraints sont toujours sur l'ensemble14:38
previsionOk, 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 ?14:39
cedkprevision: oui, c'est une contrainte au sense SQL14:44
previsioncedk: 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 ?14:48
previsionPour 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).15:23
previsionEnsuite, on met à jour la liste des boutons avec cls._buttons.update({'nomBoutonIdentiqueNonFonction':{},})15:23
previsionIl 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...15:25
previsionEt ensuite on crée une méthode décorée @classmethod @ModelView.button def nomBoutonIdentiqueNonFonction(cls, records): return 'delete'15:26
previsionDans le xml de l'arbre, on met <button name="nomBoutonIdentiqueNonFonction" string="NomAAfficher"/15:27
previsionUn 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...15:28
-!- cedk(~ced@gentoo/developer/cedk) has joined #tryton-fr16:20
-!- prevision(~prevision@ADijon-653-1-191-151.w90-39.abo.wanadoo.fr) has joined #tryton-fr16:58
-!- azerttyu(~azerttyu@polyscenic.pck.nerim.net) has joined #tryton-fr18:25
-!- nicoe(~nicoe@2a02:a03f:302d:1400:ee55:f9ff:fe7b:f7ac) has joined #tryton-fr18:51
-!- mrechte(~Thunderbi@2001:41d0:fe43:7f00:fad1:11ff:fe10:a118) has joined #tryton-fr19:40

Generated by irclog2html.py 2.11.0 by Marius Gedminas - find it at mg.pov.lt!