Appy 0.9.10

This release contains lots of bugfixes, minor functional as well as performance improvements, on all framework parts.

Detailed changelog

Appy 0.9.10 corresponds to revision 592. Details are hereafter.

pod

  • Allow to modify, on a TableProperties instance, the cell and header cell content styles to apply.
  • do... from pod() and do... from document(): allow to insert page breaks before/after the sub-document based on its (odd or even) number of pages.
  • doc_importers: improved the way to insert page breaks into pod results.
  • Added parameter 'script' to the Renderer.
  • Added parameter 'managePageStyles' to the renderer: it allows to rename the sub-page styles as well as specify a start page number for the pages included into the sub-document.
  • Maintain temporary backward compatibility via the use of attribute pod(renamePageStyles=True) instead of pod(managePageStyles='rename').
  • converter.py retrieves LO version.
  • converter.py: added option -s for specifying a script allowing to customize the production of the POD result by allowing, via hook functions, to perform UNO calls to LibreOffice.
  • converter.py: bugfix (LibreOffice 3 compatibility).
  • Changed interface to the 'finalizeFunction', see https://answers.launchpad.net/appy/+question/660365
  • Allow to define a background color on span (inner) tags (fluotage).
  • pod statements: bugfix (use of the 'minus' operator in combination with meta-if statements).
  • Multiple meta-if statements: bugfix.
  • Bugfix (doc_importers), thanks Stephan.
  • Import sub-pods: bugfix.
  • Added parameter 'managePageStyles' to pod method 'pod' (do ... from pod(...)).
  • xhtml2odt: support for the 'abbr' tag (in the same way as 'acronym').
  • xhtml2odt: generation of object IDs (tables, etc): bugfix.
  • Completed class TableProperties: margins can now be defined for tables.
  • Added to the renderer and to converter.py parameter 'resolveFields'.
  • Manage deprecated parameter 'renamePageStyles' for statement 'do... from pod', but allow to use the new parameter 'managePageStyles'.

gen

  • Added detailed errors in the yellow error message popup.
  • User wrapper: bugfix and added method User.getFirstNameInitial.
  • fields/__init__.py and Date field: bugfixes.
  • Ref field: bugfixes (queryable fields).
  • Ref field: no crash (but log) when tied objets are not found.
  • Ref field: added attributes 'subTitle' and 'supTitle' allowing to override tied object's 'getSubTitle' and 'getSupTitle' methods.
  • Ref field: added parameter 'backSecurity'.
  • Pod field: bugfix (freeze formats).
  • Pod field: added parameters 'beforeAction' and 'script'.
  • Pod field (mailings): simplified developer interface and allow the end user to read the mail subject and modify the predefined mail body from the confirm popup.
  • Pod field: log successfull renderings and add more log for query-related pods that may slow down the system.
  • String field (format=String.TEXT) bugfix.
  • String field: take into account widths (for one-line text fields) expressed in percentages.
  • File field: added attribute 'nameStorer' allowing to initialise (in Javascript) another field with the file selected in the File field.
  • List field: allow to insert a row anywhere (no just at the end) and added the possibility to insert rows via the keyboard.
  • search.py: added attribute 'shownInfo' allowing to define search-specific columns to display, before using klass.listColumns.
  • Wrapper::getValue: added a parameter allowing to get a value without taking into account the default value/method.
  • Boolean field is now inline-editable.
  • Boolean field: one more layout for fields with long descriptions.
  • Action field: allow to use options in combination with result='redirect'.
  • Minor CSS change for audio tags.
  • An action can now be parameterized by creating a transient object in a popup from another Appy class.
  • UserWrapper::has_permission > hasPermission / UserWrapper::has_role > hasRole
  • Tag group: when an object is created, all tab groups are reinitialised to their first tab.
  • workflow.py: added attribute Transition.historizeActionMessage allowing to append the message produced by self.action to the corresponding event's comment.
  • Added a method Transition::addAction to dynamically add an action to an existing transition.
  • Bugfix for Microsoft Edge.
  • Apply a template for creating an object: bugfix (manage List fields).
  • Major refactoring for searches, refs and navigation.
  • Searches: calendar view: first working version.
  • Searches: calendar view: allow to show events spanning several days.
  • search::calendar mode: bugfixes.
  • Base model: xml layout: bugfixes.
  • Base model: bugfix (visibility of pages).
  • Optimized Javascript code following code analyis performed by CETIC vith tool SonarQube.
  • Keyword highlighting in search results: bugfix.
  • Show object ID in the exception raised when a transition can't be triggered.
  • Tool::computeConnectedUsers: allow to produce a filtered list of connected users, ie for displaying only connected users of a given group, or any other users's subset.
  • Added, in event.log, logging of caller's IP address when the app is behind a reverse proxy like Apache or NGINX.
  • Added a new hook method 'onCreate' allowing to set local roles on a temp object.
  • More appropriate loading icon for actions rendered as icons (and not buttons).
  • Prevent an error to be generated when an object referenced in the catalog does not exist, but generate an error in the log file.
  • appy.css: keep underlining acronym titles, it could be useful.
  • Auto-removal of wrong catalog entries while performing catalog queries, smart isn't it...
  • Added method ToolMixin::repairCatalog for removing dead brains in the catalog (and counting the total number of Appy objects in the database).
  • Wrapper::sendMailIf - allow to send a mail to several users or groups.
  • CSS bugfix (sidebar).
  • appy.js: added functions for managing fields being automatically ajax-refresh with a Javascript timeout.
  • OdtImporter: alternate way to implement 'duplex' sub-pod insertion.
  • Manage CSS color values expressed as rgba().
  • xhtml2odt: allow to keep images' ratios or not.

shared

  • google.py: updates (https, key mandatory).
  • Added in appy.shared.utils a class TextReplacements allowing to format text in a way that is similar to reStructuredText.
  • Added a date-related function in appy/shared/dates.py.
  • utils.py added method roundNumber for rounding integer values to another integer value.

px

  • Added the possibility to define PX-specific CSS and JS code.
  • Added some default variables in every PX context.

bin

  • odfgrep.py: with one more parameter (a replacement string) you can also perform a grep/replace instead of a simple grep. The output of the script is improved and contains the number of matches or replacements.
  • More improvements for odfgrep.py: added class RamGrep allowing to call it from another program, with an ODF file specified as a StringIO instance.
  • Updated checklo.py with a check measuring the time spent to optimize table column width with option -o.
  • publish.py: publish Appy on Pypi using twine.
Ajouter une image à partir du presse-papier (Taille maximale: 31,25 Mo)