Issue 2551126
Created on 2021-04-08 07:15 by reda, last changed 2021-10-09 19:14 by rouilj.
Files | ||||
---|---|---|---|---|
File name | Uploaded | Description | Edit | Remove |
templating_py_patch-r1.6.1.patch | rouilj, 2021-04-11 02:39 | patch to fix traceback against 1.6.1. |
Messages | |||
---|---|---|---|
msg7173 | Author: [hidden] (reda) | Date: 2021-04-08 07:15 | |
I am using roundup 1.6.1 and i get the following exception with the Date property "chiffrageDelai": <type 'exceptions.AttributeError'> : 'str' object has no attribute 'local' Les informations de déboguage suivent Dans python expression "context.chiffrageDelai.pretty('%Y-%m-%d')" Lors de l'évaluation de l'expression à la ligne 485 Variables actuelles : config <roundup.configuration.CoreConfig instance at 0x7fe2cd32ca70> context <HTMLItem(0x7fe2cad4a8d0) issue 30774> db <roundup.cgi.templating.HTMLDatabase instance at 0x7fe2cad595a8> default <roundup.cgi.PageTemplates.TALES.Default instance at 0x7fe2cd42d050> false 0 i18n <roundup.cgi.TranslationService.TranslationService instance at 0x7fe2cb47f248> loop <roundup.cgi.PageTemplates.TALES.SafeMapping instance at 0x7fe2cad595f0> nothing None options {'ok_message': [], 'error_message': ['Erreur de modification\xc2\xa0: Cl\xc3\xa9 doc incorrecte : sans']} repeat <roundup.cgi.PageTemplates.TALES.SafeMapping instance at 0x7fe2cad595f0> request <HTMLRequest {'_context': None, 'startwith': 0, 'show': <roundup.support.TruthDict instance at 0x7fe2cad59560>, 'classname': 'issue', 'special_char': '@', 'dispname': None, 'group': [], '_client': <roundup.cgi.client.Client instance at 0x7fe2cb45eb48>, 'template': 'item', 'input': <function input_html4 at 0x7fe2cd3d8398>, 'columns': [], 'sort': [], 'env': {'CONTENT_LENGTH': '4030', 'HTTP_AUTHORIZATION': None, 'SERVER_PORT': '8080', 'SERVER_NAME': 'xxxxxxx.com', 'HTTP_COOKIE': 'roundup_session_REX=MTYxNDk2NDQwMy41NjAuMDQwMDI5NjY0NzM0OA', 'HTTP_X_FORWARDED_FOR': '10.107.48.53', 'HTTP_ACCEPT_LANGUAGE': 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3', 'HTTP_REFERER': 'https://xxxxxx.com/rex/issue30774', 'HTTP_X_FORWARDED_HOST': 'xxxxxxx.com', 'SCRIPT_NAME': '', 'REQUEST_METHOD': 'POST', 'HTTP_HOST': 'xxxxxx.com', 'PATH_INFO': 'issue30774', 'CONTENT_TYPE': 'multipart/form-data; boundary=---------------------------36321429803449636767669947981', 'TRACKER_NAME': 'rex', 'HTTP_ORIGIN': 'https://xxxxxxx.com'}, 'form': FieldStorage(None, None, [FieldStorage('@template', None, 'item'), FieldStorage('title', None, 'foating point error'), FieldStorage('priority', None, '2'), FieldStorage('type', None, '1'), FieldStorage('status', None, '5'), FieldStorage('produit', None, '3'), FieldStorage('version', None, '85'), FieldStorage('nosy', None, 'jerome'), FieldStorage('projet', None, '1'), FieldStorage('validReal', None, 'yes'), FieldStorage('versCible', None, '-1'), FieldStorage('assignedto', None, '728'), FieldStorage('intervenant', None, '3'), FieldStorage('etatIntervenant', None, '3'), FieldStorage('chiffrageCharge', None, '0.5'), FieldStorage('chiffrageDelai', None, '2021-03-25'), FieldStorage('realiseCharge', None, '0.5'), FieldStorage('realiseDelai', None, '2021-03-25'), FieldStorage('validation', None, 'test fourni'), FieldStorage('corrVexpl', None, 'no'), FieldStorage('fauxVexpl', None, ''), FieldStorage('corrVdev', None, 'no'), FieldStorage('fauxVdev', None, ''), FieldStorage('impactDoc', None, 'sans objet'), FieldStorage('nbJours', None, '0.5'), FieldStorage('@note', None, ''), FieldStorage('@file', '', ''), FieldStorage('@file@comment', None, ''), FieldStorage('@lastactivity', None, '2021-03-26.15:30:00'), FieldStorage('@csrf', None, '8df2abf461f1eb851382cd3a88b0b3b6e35eca8519bed2356315b5088bcda918'), FieldStorage('@action', None, 'edit'), FieldStorage('submit_button', None, 'Soumettre les changements')]), 'nodeid': '30774', 'base': 'https://xxxxxxx.com/rex/', 'user': <HTMLItem(0x7fe2cad4a690) user 728>, 'search_text': None, 'pagesize': 50, 'language': ['fr', 'fr_FR', 'en_US', 'en'], 'filterspec': {}, 'filter': [], 'client': <roundup.cgi.client.Client instance at 0x7fe2cb45eb48>}> template <roundup.cgi.engine_zopetal.RoundupPageTemplate instance at 0x7fe2cb783050> templates <roundup.cgi.engine_zopetal.Loader instance at 0x7fe2cd426ea8> tracker <roundup.instance.Tracker instance at 0x7fe2cd32c9e0> true 1 utils <roundup.cgi.templating.TemplatingUtils instance at 0x7fe2cad59518> admin True attrs {'tal:condition': 'python:context.chiffrageDelai.isset()', 'name': 'chiffrageDelai', 'tal:attributes': "value python:context.chiffrageDelai.pretty('%Y-%m-%d')"} columns_emises 'priority,type,id,creation,title,creator,produit,version,status' columns_enregistres 'priority,type,id,creation,title,creator,produit,version,assignedto,status' columns_showall 'priority,type,id,creation,title,creator,produit,version,assignedto,status' creator False edit_chif_pipe True edit_etat_pipe True edit_issue True edit_pipe True edit_real_pipe True fixer True inter False is_edf True status_notresolved '-1,1,2,3,4,5,6,7' view_chif_pipe True view_real_pipe True Un problème est apparu dans votre modèle « issue.item.html ». Historique complet : Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/client.py", line 1647, in renderContext result = pt.render(self, None, None, **args) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/engine_zopetal.py", line 92, in render getEngine().getContext(c), output, tal=1, strictinsert=0)() File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 192, in __call__ self.interpret(self.program) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret handlers[opcode](self, args) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 666, in do_useMacro self.interpret(macro) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret handlers[opcode](self, args) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 411, in do_optTag_tal self.do_optTag(stuff) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 396, in do_optTag return self.no_tag(start, program) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 391, in no_tag self.interpret(program) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret handlers[opcode](self, args) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 689, in do_defineSlot self.interpret(slot) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret handlers[opcode](self, args) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 632, in do_condition self.interpret(block) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret handlers[opcode](self, args) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 632, in do_condition self.interpret(block) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret handlers[opcode](self, args) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 632, in do_condition self.interpret(block) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret handlers[opcode](self, args) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 632, in do_condition self.interpret(block) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 236, in interpret handlers[opcode](self, args) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 293, in do_startTag ok, name, s = attrAction(self, item) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/TAL/TALInterpreter.py", line 359, in attrAction_tal evalue = self.engine.evaluateText(item[3]) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/PageTemplates/TALES.py", line 231, in evaluateText text = self.evaluate(expr) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/PageTemplates/TALES.py", line 225, in evaluate return expression(self) File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/PageTemplates/PythonExpr.py", line 67, in __call__ return f() File "<string>", line 2, in f File "/usr/local/lib/python2.7/dist-packages/roundup/cgi/templating.py", line 1958, in pretty return self._value.local(offset).pretty(format) How can i fix this ? |
|||
msg7174 | Author: [hidden] (rouilj) | Date: 2021-04-08 15:44 | |
Hello reda: This does looks like a bug. However the bug was triggered by an error in your form. It reports as: Erreur de modification\xc2\xa0: Cl\xc3\xa9 doc incorrecte : sans I am not able to understand what failed. Because of this error the string submitted as the value of chiffrageDelai was not converted into a date. So calling local on it failed. Fixing the issue that caused the initial error would remove the trigger for the failure. Changing context.chiffrageDelai.pretty('%Y-%m-%d') to plain() will succeed even if the trigger is present. I started a discussion on the developer mailing list on the best way to fix this. You can view the archive at: https://sourceforge.net/p/roundup/mailman/roundup-devel/. The next version 2 release (mid July) will include the fix. I do not expect there to be any more releases in the 1.6 line. So I will also generate a patch for 1.6.1 that you can apply to fix this issue. Hopefully we will have a patch by next week. Have a great day. -- rouilj |
|||
msg7180 | Author: [hidden] (reda) | Date: 2021-04-09 07:27 | |
Hello Rouilj, Thank you for your help. I will wait for the patch. best regards, |
|||
msg7183 | Author: [hidden] (rouilj) | Date: 2021-04-11 02:02 | |
Hi Reda: Can you verify that the error message I reported was valid? Please try the same update that caused the error after fixing the error. Can you verify that the exception doesn't happen. I just want to make sure I have diagnosed the cause of the error correctly. Thanks. -- rouilj |
|||
msg7184 | Author: [hidden] (rouilj) | Date: 2021-04-11 02:39 | |
Hi reda: Can you try this patch after testing with input that doesn't trigger the error. Then with this patch applied, please test with the same input that caused the error. Here is the patch against 1.6.1. Thanks. -- rouilj |
|||
msg7185 | Author: [hidden] (rouilj) | Date: 2021-04-11 02:40 | |
Fix for this is on the main branch as rev 6377:a7e7314fb7d9. |
|||
msg7197 | Author: [hidden] (reda) | Date: 2021-04-15 08:21 | |
Hi rouilj, Thank u for the patch, i will not be able to test this week. I ll let you know next week. Best regards, |
|||
msg7343 | Author: [hidden] (rouilj) | Date: 2021-09-12 02:17 | |
Reda, did you test the patch? It is in release 2.1.0 so if it needs more work I would like to know. |
|||
msg7351 | Author: [hidden] (rouilj) | Date: 2021-10-09 19:14 | |
Assuming it works. Closing. |
History | |||
---|---|---|---|
Date | User | Action | Args |
2021-10-09 19:14:00 | rouilj | set | status: pending -> fixed resolution: fixed messages: + msg7351 |
2021-09-12 02:17:09 | rouilj | set | messages: + msg7343 |
2021-04-15 08:21:09 | reda | set | messages: + msg7197 |
2021-04-11 02:41:43 | rouilj | set | status: open -> pending |
2021-04-11 02:40:42 | rouilj | set | messages: + msg7185 |
2021-04-11 02:39:45 | rouilj | set | files:
+ templating_py_patch-r1.6.1.patch keywords: + patch messages: + msg7184 |
2021-04-11 02:02:21 | rouilj | set | messages: + msg7183 |
2021-04-09 07:27:52 | reda | set | messages: + msg7180 |
2021-04-08 15:44:10 | rouilj | set | status: new -> open versions: + 1.6.1 nosy: + rouilj messages: + msg7174 priority: high assignee: rouilj type: crash |
2021-04-08 07:15:51 | reda | create |