Changelog from 5.0.2 (r1362) to 5.0.3 (r1492):
Koo Fixes:
- [FIX] auto_attach: Ensure file descriptor is always closed using 'finally' statement.
- [FIX] Use 2 decimal digits instead of 4 by default like in the rest of the application. Otherwise, it's always considered the field as modified when no 'digit's value has been set.
- [FIX] Take into account that 'needs_update()' may return False if there is no new version of the application.
- [FIX] Make some strings translatable.
- [FIX] Use normalizeLabel() for screen actions. Otherwise & was interpreted as a shortcut in Qt.
- [FIX] auto_attach: Only give access to Attachments menu to users in the auto_attach_user group.
- [FIX] auto_attach: Ensure server doesn't crash when user tries to upload a pdf with no images. Also rename filename to include the .jpg extension so files are correctly opened under windows.
- [FIX] We should disconnect from groupModified() not the object itself.
- [FIX] Improved object destruction, mainly by disconnecting recordChanged and recordModified.
- [FIX] In ManyToMany widgets, search when textbox loses focus. That was supposed to work but didn't due to a properly not being correctly initialized.
- [FIX] Improved behaviour when search dialog is cancelled in a ManyToOne widget. Now we clear the text so the dialog does not appear several times until the user selects a record.
- [FIX] In SearchDialog.py, do not try to select first record. That's already done by Screen.py the first time it's shown and if we try to force it, as current record will have not changed, it's not highlighted and in search dialog it's not possible to select items with the keyboard easily.
- [FIX] In AbstractFieldWidget.py, use palette.setColor(QPalette.Active, QPalette.Base, color) instead of palette.setColor(QPalette.Base, color) because the latter does not work with QTextEdit widgets.
- [FIX] In koopda.py, solved the problem that appeared when using koopda.py from certain RDP client applications by sending KeyPress events only when KeyRelease was received.
- [FIX] In ManyToOne.py, use the correct record ID for printing and executing actions.
- [FIX] auto_attach: analyzeDocumentWithTemplate() requires context.
- [FIX] Fixed import-translations.sh script, search po2ts.py at the correct directory.
- [FIX] In BinaryFieldWidget.py, check if filename has an extension before trying to use it.
- [FIX] auto_attach: Removed test statement in document workflow.
- [FIX] In binary.ui, use Preferred instead of Expanding as horizontal size policy.
- [FIX] In Rpc.py, do not crash if a Concurrency exception is received.
- [FIX] Do not use 'wkf' as id for the workflow as it gives problems updating the module, probably due to a bug in OpenERP.
- Added access rules to ir.actions.report.xml.file model. Report and fix by Jordi Esteve.
- [FIX] Ensure widget colors are updated the first they are shown as they sometimes were not being updated.
- [FIX] Use field context and domain when opening the record, the same way we do on search and create.
- [FIX] Properly handle state attributes (such as attrs="{'readonly':[('mapping_ids','!=',[])]}") which test for the value of a one2many or many2many field.
- [FIX] koo: Avoid 'Cursor not closed explicitly' when an exception occurs in koo.py.
- [FIX] Fixed bug when user tried to go to a resource ID which didn't exist. Also added a shortcut for this action.
- [FIX] full_text_search: Take into account that now 'search()' may send an exception. This is due to a recent change in the openobject-server (with a patch supplied by ourselves) that ensures that adds security checks in that function.
- [FIX] Fixed regression introduced when added code to take into account search fields in tree views. Fixes bug https://bugs.launchpad.net/openobject-client-kde/+bug/541890.
- [FIX] In ImageFieldWidget.py, do not crash when storing Semantic information due to missing import. Note the error was never shown to the user.
- [FIX] In Record.py, the 'validate()' function cannot relay on the record having all fields the group has.
- [FIX] NSIS installer fixes.
- [FIX] Do not get() from currentRecord() if it's None. This can happen when executing a plugin because those will always be called, even if no record was selected.
- [FIX] Ensure toolbar is not shown in search dialog.
- [FIX] In Record.py, take into account that trying to get() the fields of a record may not be able to return a value for all fields of the group if checkLoad was False.
- [FIX] Hide toolbar widget when there are no items to be shown, when the user doesn't want to see it and when Screen is executed in a Wizard.
- [FIX] Use 'Preferred' policy for label widgets.
- [FIX] In Screen.py, convert string to UTF-8 before trying to parse it.
- [FIX] In ManyToOne.py and ManyToMany.py, be smarter with editingFinished() events and try not to open the dialog several times if the user introduced some text and clicked the search button.
- [FIX] When opening a record from a reltional field using the Control key, not only open that record but also use it's ID as the domain. This means that when switching from form to tree, no other record will be loaded. This is necessary because otherwise, the rest of the records are loaded with ALL fields, including those in the form which can take a lot of time in some cases.
- [FIX] In setup.py, add more files to the list of hardcoded 'non-system' DLLs, due to py2exe inhability to properly detect them since PyQt4.7.
- [FIX] Fix login.ui and tip.ui to make them compatible with old versions of PyQt (such as 4.4.2 available in debian stable).
- [FIX] Allow 'select' attribute in both form and tree views, just like other clients do. Fixes bug https://bugs.launchpad.net/openobject-client-kde/+bug/510556.
- [FIX] In evaluateExpression() replace active_id by active_id for compatibility with other clients. This made it not possible to create a new sale order when the user had gone to the sales orders from the relate button in the partner.
- [FIX] Do not crash if base64.decodestring() fails.
- [FIX] smart_attach: Ensure cursor is closed after processing attachment.
- [FIX] full_text_search: Security fix: Not only 'search' records found in the index but also check 'read' permissions. This is necessary because, even if access to that record won't be allowed, the headline will already disclose some information, and even the fact of returning records given a search may allow users deduce information in the database the should not have access too. Fixes bug https://bugs.launchpad.net/openobject-client-kde/+bug/530852.
- [FIX] In Rpc.py, when using Net-RPC protocol, ensure socket is closed when an exception occurs.
Koo Improvements:
- [IMP] Check if record has been modified when reloading, just like we do with switch view.
- [REF] Removed commented code.
- [REF] Koo: Changed code that only works with newer PyQt versions.
- [IMP] koo: Add help for command_line field and use appropiate value for windows 'platform'.
- [IMP] Updated translations.
- [IMP] Upgraded version number to 5.0.3.
- [IMP] Allow using '$path' as a replacement for the directory where the file is downloaded. This allows using '$pathkoo-setup-5.0.3.exe' given that cwd is not used when searching the executable using subprocess.
- [IMP] Updated translation templates.
- [IMP] koo: Count theh number of times an installer has been downloaded.
- [IMP] Allow Koo to be updated automatically when new releases are uploaded to a new model in the koo module. This will ease deployment of new versions, specially in large organizations.
- [REF] Minor change so exceptionCallback paramter is no longer necessary because it wasn't used anyway.
- [IMP] Save current record (if modified) when user tries to execute one of the toolbar (or menu) actions. This seems more intuitive, as otherwise nothing happens or the record in the database (not the one on screen) is printed, for example. This is also consitent with the behaviour of buttons in forms which save the current record before executing the action.
- [IMP] Update translation templates.
- [REF] Minor code refactoring by removing an unnecessary variable.
- [IMP] Handle lost connection exceptions with a specific dialog, so that it retries the operation after waiting for 10 seconds. It also allows quitting the application without getting tons of errors, if desired.
- [IMP] Updated translations.
- [IMP] auto_attach: Added the reference with the attachment created by the process. Also create the attachment before executing the action in cas the action needs the reference to the attachment.
- [IMP] Updated translation templates.
- [IMP] In MassiveUpdateDialog.py, allow choosing what fields should be updated.
- [IMP] auto_attach: Moved 'attachableDocuments function inside nan.document class so other modules can override it easily.
- [ADD] Added new 'undo' icon.
- [IMP] Added tooltips in many fields and KooModel because too often they do not fit in the space provided.
- [IMP] Made TranslationDialog a little bit wider by default.
- [IMP] Updated translations.
- [IMP] First approach to adding shortcuts for OneToMany widgets. They still have a couple of issues: they're too complicated and do not set the focus properly in some cases.
- [REF] Updated translation templates.
- [IMP] In ManyToOne.py, added separator between open and action menu entries.
- [IMP] In ManyToOne.py, added an entry to the popup menu to open the related record. Specially interesting for Delegates (list) view.
- [ÌMP] auto-attach: Remove commented code and a added a small comment.
- [IMP] auto_attach: Use latest NanScan version and allow template_box_id to be empty.
- [IMP] Field template_box_id no longer a requirement in 'nan.document.box' model, and added new 'analysis_function' field in nan.template, so it's possible to have custom analysis functions in templates, which do not depend on the findTemplateByOffset infrastructure.
- [IMP] In WebFieldWidget.py, admit width and height attributes.
- [IMP] Updated translation templates.
- [IMP] Show a message box with the list of invalid fields, instead of just saying invalid
- [IMP] auto_attach: Add document.id parameter to action and attachment function calls.
- [IMP] Updated translations.
- [IMP] auto_attach: Optimize analysis process by executing only those recognizers that are used in any of the tempaltes. This means that if only DataMatrix recognizers are used in templates, OCR and normal barcodes won't be extracted.
- [IMP] Updated translation templates.
- [IMP] Improved strings in DocumentImporter plugin.
- [REF] Use 5px padding instead of 10px.
- [IMP] Updated translations.
- [REF] Updated translation template files.
- [IMP] auto_attach: Improved Spanish translation.
- [IMP] auto_attach: Improved Catalan and Spanish translations.
- [IMP] auto_attach: Improved existing wizards and workflow and added a new 'nan.document.execute' wizard which Analyzes and if a template was found Verifies and Processes the document automatically.
- [IMP] In AbstractFieldWidget.py, added the possibility of setting a keyboard shortcut for any field using the 'use' attribute (the same attribute used for setting stylesheets). If the fields is a button, it will activate it, but the view.rng field must be modified in the server. Inspired P. Christeas' work.
- [IMP] Set the uiText QTextEdit as FocusProxy for ManyToOne widget, so setting the focus to ManyToOneFieldWidget sets the focus to QLineEdit.
- [IMP] Support filename field in DocumentScanner and DocumentImporter which as recently added to nan.document model in auto_attach module.
- [IMP] auto_attach: Support passing the context parameter to action and attachment functions. Also create a context with the appropiate 'lang' if context is None because workflows do not currently support context, and we at least let translations work correctly, specially important for action functions when the 'explain' parameter is True.
- [REF] auto_attach: Renamed 'scan' state & process to 'analyze' so it doesn't confuse users with the optical scanning process.
- [IMP] auto_attach: Added 'task' field to document tree view and use new <openerp/> tags instead of deprecated <terp/>.
- [REF] In pos.qss, using font-size: 20px is a bit too much. Let's leave it in 16px.
- [ADD] Introduced new ManyToOnePos widget which uses a TreeView to handle many2one fields, which is specially useful in TouchScreen environments.
- [IMP] Make sizeHint of TreeView return a small size so it fits in small devices.
- In koopda.py, set wordWrap property of labels in warning/error message box to True.
- [REF] auto_attach: Use 5.0-style <menu/> tags.
- [IMP] Added -d and --database command line parameters.
- Added koopda.py which is similar to koopos.py but uses new error and warning handlers. The new handlers work better than standard message boxes in handheld devices.
- [ADD] Added new 'DocumentImporter' plugin to import documents into auto_attach document queue.
- [ADD] auto_attach: Added spanish translation.
- [IMP] Improved POS stylesheet.
- [ADD] auto_attach: Added security rules.
- [REF] Removed code comment: we no longer initialize gamera.
- [REF] auto_attach: Restructured menus and use 5.0 way of defining them.
- [IMP] Allow on_change calls to return a 'focus' entry so that the application will set the focus to the given field. For example, the following would be a valid value: {'value': {'field1': 'new_value'}, 'warning': {'title': 'Default Value', 'message': 'A default value for Field 1 has been set, you can change it if needed.'}, 'focus': 'field1'}
- [IMP] Increase font-size in pos.qss stylesheet.
- [IMP] In koopos.py, make it possible to use standard command line parameters and configuration file so it's no longer necessary to modify the source code in order to set connection parameters.
- [IMP] Free session and thus server connections as soon as possible. Otherwise connections were kept until next thread was started.
- Added new 'load_on_open' option (True by default) that if set to False, will make Koo not load any records the first time a view is opened. Although it's currently configurable using 'koo' module and .koorc file, the implementation is considered a proof of concept to make several performance tests before we can ensure there are no regressions.
- [IMP] In setup.py, improve installer under windows so data files required by NanScan library are also installed. This means scanning is already possible on Windows.
- [IMP] smart_attach: Set readonly states for fields in 'nan.document' model.
- [REF] Improvements in auto_attach module: mostly consistency changes and code cleanup.
- Added DocumentScanner plugin and auto_attach module. Both have been moved from NanScan repository in github.
- Updated debian/changelog to 5.0.2.
Jasper Reports Fixes:
- [FIX] jasper_reports: Added missing import for translations. Fixes bug https://bugs.launchpad.net/openobject-client-kde/+bug/586551.
- [IMP] jasper_reports: Allow setting a path prefix when calling subreports so it's possible to call reports which were not designed to be executed in the current model.
- [FIX] jasper_reports: Do not crash if given context == None.
- [FIX] jasper_reports: Avoid crashes if context is not set.
- [FIX] jasper_reports: Make the module run under windows by setting appropiate path separator in CLASSPATH environment variable. Fixes bug https://bugs.launchpad.net/openobject-client-kde/+bug/505786.
- [FIX] jasper_reports: Fix some regressions introduced in latest commit.
- [FIX] jasper_reports: Ensure all file descriptors are closed.
Jasper Reports Improvements:
- [IMP] jasper_reports: Updated JasperReports library to version 3.7.3.