Commit graph

  • 73f81d9304 [gen] Bug and performance fixes in the authentication mechanism. Gaetan Delannay 2015-01-26 14:10:50 +0100
  • 0961dc591f [gen] More translations in German. Gaetan Delannay 2015-01-23 20:37:03 +0100
  • 6f488644e3 [gen] Table of indexes: indexed date values are now correctly displayed as DateTime instances. Gaetan Delannay 2015-01-22 18:43:10 +0100
  • 195adf8d11 [gen] ToolMixin::getHomePage: removed unneeded calls to m_goto. Gaetan Delannay 2015-01-21 15:59:28 +0100
  • 307f4e152e [gen] Bugfix: one could authentify with a ldap user even if ldap.enabled was False. Gaetan Delannay 2015-01-21 14:30:42 +0100
  • 30dbcb7dc7 [gen] Stop caching methods used as default values for gen field: it can lead to headaches. Gaetan Delannay 2015-01-20 14:02:57 +0100
  • d9a89f7ad5 [gen] Allow Refs with render='menus' to appear in layout 'buttons'. Gaetan Delannay 2015-01-20 01:03:23 +0100
  • 34cafcdbc1 [gen] Improvements in the rendering of buttons throughout the web UI. [gen] Ref field and Search: added param 'showActions' allowing to show or not the range of icons and buttons below or besides every tied or queried object. Gaetan Delannay 2015-01-19 15:44:09 +0100
  • a905aaa139 [shared] Added utils::flipDict allowing to flip keys<->values of a dict. [gen] file.py: added missing i18n labels. [gen] Added css style for rendering nice tables within the message popup. Gaetan Delannay 2015-01-16 20:22:29 +0100
  • ffb8bed189 [pod] If you define a variable named 'tableName' inside a table, it will be used to name the table. For information, with Calc, every spreadsheet is represented as a table; the table name is the name that appears in the corresponding tab, in the bottom of the screen. Gaetan Delannay 2015-01-14 11:46:25 +0100
  • 1730ce3c19 [pod] In an ods template, you can now define a variable 'columnsRepeated' that specifies, for every column of the table representing a spreadsheet, how much times it will be repeated bysubsequent 'for... cell' statements. For example, if you have a spreadsheet with 2 columns, and you will need to repeat the second one 100 times, define a statement 'do table with columnsRepeated=(1,100)'. If you don't do that, pod will be unable to guess what column must be repeated and how, will consider your table has having 2 columns and will produce a resulting table spreading the cells within a 2-columns wide table. Gaetan Delannay 2015-01-13 17:02:59 +0100
  • 70906b0117 [gen] Indexes: bugfix. Gaetan Delannay 2015-01-09 13:18:45 +0100
  • 863952ac3d [gen] Table of indexed fields: for managers only; added local roles in it. Gaetan Delannay 2015-01-09 12:05:49 +0100
  • bccc9c8320 [gen] Ensure the tool can't be deleted. [gen] Wrapper.sort can now sort according to param field.insert if sortKey is None. Gaetan Delannay 2015-01-08 13:18:14 +0100
  • 90657e0faf [gen] Executng actions from list of tied objects (ref field): bugfix. Gaetan Delannay 2015-01-07 18:20:48 +0100
  • 746a6cd52d [gen] Display action fields with layout 'buttons' in query results and tied objects for refs, besides transitions. [gen] Show delete button when allowed on the view layout. [gen] Improved method AbstractWrapper::createFrom. Gaetan Delannay 2015-01-06 21:13:30 +0100
  • 225ea927a4 [gen] Bugfixes in the search machinery. Gaetan Delannay 2015-01-02 16:16:48 +0100
  • cf2cbc52d6 [gen] Highlight keywords in query results. Gaetan Delannay 2014-12-30 11:23:03 +0100
  • 92d1276ffb [gen] Implemented live search. Gaetan Delannay 2014-12-29 15:55:17 +0100
  • 8591611aac [gen] Added param Field.mustIndex, that, for indexed fields, defines (via a method) when indexation must occur or not. Indeed, in some cases, an index is required on some field but we don't want all objects to have an index value for this field at any time. Gaetan Delannay 2014-12-26 17:29:14 +0100
  • 4461cbb9a8 [gen] Authorize anyone to get static content (images, css, js...) from any Appy app. Gaetan Delannay 2014-12-26 13:51:40 +0100
  • fd5e88928d [gen] Indexer: textual content of indexes now keep only words of more than 2 chars and other improvements. Gaetan Delannay 2014-12-26 12:24:38 +0100
  • 06c656d278 [gen] Added the possibility to display the content of indexes for a given object on its view layout (param 'indexed' in the request). Gaetan Delannay 2014-12-19 11:21:43 +0100
  • 982ae08997 [gen] Added method UserWrapper.addRole (add a role programmatically). Added to the LDAP config, a user map allowing to automatically assign roles and groups to ldap-imported users. Gaetan Delannay 2014-12-18 13:54:12 +0100
  • 865e6bf08e [gen] Added the possiblity to synchronize external users from a LDAP. Gaetan Delannay 2014-12-17 16:19:45 +0100
  • 6cd64fdc50 [gen] Bugfixes. Gaetan Delannay 2014-12-15 19:36:00 +0100
  • 50bd996c3b [gen] Bugfixes. Gaetan Delannay 2014-12-15 10:30:24 +0100
  • 8511c22612 [gen] Mixin.xml: if an error occurs, log it before xml-marshalling it to the caller app. Gaetan Delannay 2014-12-12 14:47:39 +0100
  • 897b183b01 [shared] LinesCounter now counts lines of XML code. Gaetan Delannay 2014-12-10 12:32:09 +0100
  • e01615476b [gen] Added attribute Field.view allowing to specify, for any field, an alternative pxView. Gaetan Delannay 2014-12-09 15:19:28 +0100
  • 186175250d [gen] Bugfix: the mime type received by Zope in FileUpload instances seems to be wrong under some unknown circumnstances. Gaetan Delannay 2014-12-09 12:22:09 +0100
  • b39c5553ea [shared] Improvements to the XmlMarshaller and bugfix: Mixin.xml returns appy.Object instances correctly marshalled. Gaetan Delannay 2014-12-09 11:40:30 +0100
  • 12836a40dc [gen] Ref field: param 'shownInfo' can now be a method. Gaetan Delannay 2014-12-09 09:27:40 +0100
  • c53654a1a1 [gen] Added attribute 'xml' on every field allowing to customize the XML marshalling process. [gen] Added new layout 'xml', now different from the 'view' layout, allowing to define which fields are to be dumped in the XML version of some object. [gen] Security fix in ToolMixin::getUser. [gen] Bugfix in Mixin::getUrl. [shared] dav.py: method 'get' can now accept parameters. [shared] xml_parser: changes to the XmlMarshaller (due to XML-related changes). Gaetan Delannay 2014-12-08 14:52:04 +0100
  • f055ec1754 [gen] Bugfix: For showing a field on layout buttons, the buttons layout must explicitly be returned by the show method. [gen] Action.py: added param 'icon' allowing to specify a specific icon. Gaetan Delannay 2014-12-05 11:55:25 +0100
  • 2ef3cdb006 [shared] List of MIME types completed. Gaetan Delannay 2014-12-02 00:19:01 +0100
  • fa9ef1b76c [gen] Boolean field: bugfix (defaut layouts). Gaetan Delannay 2014-11-30 11:38:29 +0100
  • c11002b7d5 [gen] Class.listColumns can now be a static method (accepting the tool as single arg). [gen] Indexed Ref fields are now sortable. For every such field, 2 indexes are created: a list index for searching, and a standard index for sorting (by their title). Gaetan Delannay 2014-11-28 14:42:32 +0100
  • 5c41f1b3d2 [gen] Bugfix while creating default users. Bugfix: do not perform LDAP authhentication when ldapConfig.enabled is False. Gaetan Delannay 2014-11-26 10:49:59 +0100
  • 79ebc1cbf9 [gen] Bugfix in model.py::class User. Gaetan Delannay 2014-11-25 22:15:46 +0100
  • 02a7be98ff [gen] One can define statis attribute 'showHistory', being a method or a boolean value. It indicates if the history is visible or not. Added on the User, passwords fields on the main page. This way, when creating a user, those fields are used. When the user wants to change it own password, passwords on the 'passwords' page are then used. Gaetan Delannay 2014-11-25 14:56:38 +0100
  • 1d721d61f4 [gen] Wrapper.getLastEvent: parameter 'not before' can also hold a list of transitions. Gaetan Delannay 2014-11-25 12:50:59 +0100
  • 7821280d35 [gen] appy.Hack: added method 'inject' taht injects from some class all static attributes and method to another one. Gaetan Delannay 2014-11-22 13:14:52 +0100
  • 477a533728 [gen] appy.Object: allow to get object attributes like accessing dict keys, ie object[attr]; Pod field: bugfix (download name of pod template being links to other pod templates + UI bug); Pod field: Manager does not have all output formats anymore, because in some situations, generating a doc in some formats does make sens (ie for frozen docs); Wrapper.getLastEvent can now work on some history given as parameter instead of object.history. Gaetan Delannay 2014-11-20 09:47:37 +0100
  • e6adfe39d4 [gen] string.py: bugfixes: show differences in multilingual fields. Gaetan Delannay 2014-11-17 11:44:00 +0100
  • 0465fae6dc [gen] appy.gen.mail.py: bugfix (management of recipients). When Config.userLink is False, still display the user name, but as non-clickable text. Gaetan Delannay 2014-11-14 13:19:47 +0100
  • f3849d4f92 [gen] Added boolean param Config.userLink allowing to show/hide (show by default) the link, in the user strip, to go to the user page. Gaetan Delannay 2014-11-13 15:02:33 +0100
  • 55c36a1123 [gen] Added UserWrapper.isSpecial that returns True fr special users (admin, system, anon). Gaetan Delannay 2014-11-12 08:49:11 +0100
  • 4a393e76af [gen] Allow an ajax request to return a message, carried as a custom HTTP header and retrieved by appy.js to display a message. Gaetan Delannay 2014-11-10 13:34:52 +0100
  • 8d03f6ca9c [gen] Wrapper.sendMailIf can now send a mail to an individual user. Gaetan Delannay 2014-11-10 10:01:20 +0100
  • d560738718 [gen] Workflow.onTrigger method now accepts one more arg, fromState, the name of the state from which the triggered transition starts. Gaetan Delannay 2014-11-05 19:57:31 +0100
  • 717128047e [gen] Wrapper.sendMailIf: one may now send mail to everyone belonging to some group. Gaetan Delannay 2014-11-04 12:50:36 +0100
  • 50544aaecf [gen] Removed the obsolete mail notification system. Gaetan Delannay 2014-10-28 17:48:54 +0100
  • cc776dc2f0 [gen] Bugfix. Gaetan Delannay 2014-10-24 16:34:47 +0200
  • 412d9f939f [gen] A page can now be visible on edit but not on view (ie, the new User page containing only fields 'password' and 'retype password'. Default User class has now 2 pages: the 2 password fields are on a separate page. Zone containing user name in the user strip has evolved. Gaetan Delannay 2014-10-24 15:55:45 +0200
  • c316ab896b [gen] SOme CSS changes. Gaetan Delannay 2014-10-23 16:05:19 +0200
  • ccf7e44eef [gen] [gen] Action field: param confirm can be 'text': in this case, the confirm popup contains a textarea whose content is passed as param to the method speficied in param 'action'. Action fields can now be defined in a new layout 'buttons' (show='buttons') in order to appear, on the view layout, besides the extsting series of buttons (edit, next/previous pages...). Gaetan Delannay 2014-10-22 22:17:26 +0200
  • 960a4c6a46 [gen] Added an utility method on any wrapper class for removing an event from an object's history. Gaetan Delannay 2014-10-21 15:39:29 +0200
  • 7484fbca93 [gen] Added the possibility to navigate to tied object number X within a list of tied objects from a Ref that is numbered. Gaetan Delannay 2014-10-21 09:25:37 +0200
  • 4577855d60 [gen] Added a new hook in the object creation algorithm: 'onEditEarly', called before an object being created is linked to its initiator object. Indeed, 'onEdit' is called after the link has been done, and sometimes, the linking may need some information that must be set before calling onEdit, thus via this new method onEditEarly. Gaetan Delannay 2014-10-17 11:22:49 +0200
  • 1ed4f0bf23 [pod] Bugfix: repeated error in a for loop (https://bugs.launchpad.net/appy/+bug/394267). [gen] pod field: get the value of appy cookie 'showSubTitle' in any pod template. Gaetan Delannay 2014-10-16 17:35:35 +0200
  • 3dfb90b5b3 [gen] Allow to have data change events that contain comments. Gaetan Delannay 2014-10-15 15:39:11 +0200
  • e72f53c0d9 [gen] Added field.getCatalogValue allowing, for indexed values, to get the value as indexed in the Zope catalog. [gen] field Computed: added param formatMethod allowing to define the way to format the computed value (ie: the formatted value can then be different from the 'raw' value: this can be interesting if the raw value must be indexed. Gaetan Delannay 2014-10-15 09:39:01 +0200
  • ecb970e519 [gen] workflow state: make it performant to write, in a gen-workflow: someState=State(otherState.permissions.copy()). Gaetan Delannay 2014-10-13 18:55:49 +0200
  • a16871f4b5 [gen] Ref field: added a confirmation popup when the user wants to sort the ref. Indeed, most users think it is like sorting query results: they are not conscious it is a permanent change in the database, with effect for all users. Gaetan Delannay 2014-10-07 15:03:07 +0200
  • c2676c9cf8 [gen] pod field: bugfix with attr 'formats' without method 'showTemplate'; [shared] bugfix: renamed module ldap to ldap_connector. Gaetan Delannay 2014-10-07 13:14:16 +0200
  • 5ac8e71a6f [gen] Bugfix: ref field: empty index value [''] could be stored within the db, as the real value. Added field.setSlave allowing to lazy-define master/slave relationships. Gaetan Delannay 2014-10-06 12:51:40 +0200
  • d9d93a650b [gen] pod field: bugfix: download a generated or frozen pod result. Gaetan Delannay 2014-10-03 20:27:54 +0200
  • 1455a74056 [shared] xml_parser::XmlUnmarshaller: bugfix: in non-utf8 mode. Gaetan Delannay 2014-10-03 19:56:34 +0200
  • 441dc0b423 [gen] Bugfix: display bilingual info in object history. Gaetan Delannay 2014-10-03 12:44:26 +0200
  • a671094167 [gen] When duplicating a file via appy.fields.file::FileInfo.replicateFile, the source file can be binary data in a str instead of an opened file handler. Gaetan Delannay 2014-10-01 16:21:12 +0200
  • ae69509354 [shared] xml_parser: added parser XthmlToText that produces the pure textual version of a XHTML content. Gaetan Delannay 2014-09-29 16:03:26 +0200
  • abe56a5add [gen] Ref.linkObject and unlinkObject (and caller methods like wrapper.create) can now be called with attr 'executeMethods' being False: in this case, all methods defined in attrs like 'insert', 'beforelink', 'afterLink' will not be called. Can be useful while migrating data or duplicating objects. Gaetan Delannay 2014-09-29 10:06:40 +0200
  • 1d81dc768b [gen] Allow to bypass class.onEdit when creating an object. Gaetan Delannay 2014-09-25 09:52:22 +0200
  • dcf90f2b94 [gen] Created method mixin.getListTitle that is responsible for displaying an object's title in the various lists (queries, refs). Gaetan Delannay 2014-09-23 18:38:55 +0200
  • 701eae1b19 [gen] Performance improvements. Gaetan Delannay 2014-09-23 12:47:44 +0200
  • 2f30730d3b [gen] Complete NL translation, thanks to Winand Eerens. Gaetan Delannay 2014-09-21 21:24:59 +0200
  • ecc3f07a09 [gen] SMTP and LDAP configuration updated. Module appy.gen.mail can now be used independently of a gen-application. Gaetan Delannay 2014-09-18 11:08:29 +0200
  • 4947e2956c [gen] Pod field: send pod results by emails. Gaetan Delannay 2014-09-17 18:09:30 +0200
  • b565f38d97 [gen] Pod field: more work on mailing lists. Gaetan Delannay 2014-09-17 14:23:05 +0200
  • e6f2b5213e [gen] Pod field: more work on mailing lists. Gaetan Delannay 2014-09-17 14:22:36 +0200
  • f4ea1a5570 [gen] Bugfixes in the pod field. Gaetan Delannay 2014-09-16 15:38:29 +0200
  • f64493764f [gen] bugfixes in the pod field. Gaetan Delannay 2014-09-15 18:32:45 +0200
  • 4d12293dc8 [gen] Added wrapper.createFrom, similar to wrapper.create, but allows to create an object with data from another object (kind of 'duplicate' functionality). Gaetan Delannay 2014-09-14 21:40:35 +0200
  • 400158a0a1 [gen] Users have now a workflow allowing them to deactivated. An inactive user can't log in anymore. This is useful if the User is tied to other objects and cannot be removed without braking the data model, but does not correspond anymore to an active user that is allowed to log in. Gaetan Delannay 2014-09-11 16:41:08 +0200
  • 4fc74b36e7 [gen] Some changes in ckeditor config. Gaetan Delannay 2014-09-11 11:24:53 +0200
  • c40e133113 [gen] Integrated ckeditor 4.4.4. Gaetan Delannay 2014-09-11 10:49:48 +0200
  • 1e29611746 [gen] Removed old ckeditor (4.1) version. Gaetan Delannay 2014-09-11 10:28:29 +0200
  • 326523cc3a [gen] Cached the user language on the request. Gaetan Delannay 2014-09-10 18:21:14 +0200
  • 194b455816 [gen] pod field: one of the listed templates in field.template can simply be a pointer to another template from the list. For example, template=('Item.odt', 'Item.odt.variant'). The second file is an empty file and gen will use the first one for the second template. It allows to have similar files for templates that, in the UI, are different, ie, can have different names and appear under different conditions. Note that in the default context of every template, variable 'template' contains the name of the template file. It allows the template to know if he is 'called' under the name 'Item.odt' or 'Item.odt.variant'. Gaetan Delannay 2014-09-10 16:26:19 +0200
  • 71bc58a8b0 [gen] While <obj>.<fieldName> allows to get the 'DB' value of some field, <obj>.getValue allows to get a variant of it, ie, the formatted version (via an internal call to field.getFormattedValue). Gaetan Delannay 2014-09-08 15:13:18 +0200
  • 8aed007623 [gen] Bugfixes: handle multilingual titles in queries, references, breadcrumbs... Gaetan Delannay 2014-09-06 15:20:59 +0200
  • f8a7103c7a [gen] Changes in parameters of some basic field methods to enable field.languages to be defined dymanically via a method. Gaetan Delannay 2014-09-05 17:13:23 +0200
  • 18afb4416c [gen] Bugfix in string.py (inline editing). Gaetan Delannay 2014-09-04 11:29:00 +0200
  • c8cf3911fa [gen] Historization of multilingual fields. Gaetan Delannay 2014-09-03 18:18:27 +0200
  • 7889277328 [gen] Adapted all logged messages because thhe logged user is now automatically prepended to any message. Gaetan Delannay 2014-09-01 14:14:32 +0200
  • ac1d710288 [shared] utils.py::normalizeString bugfix: when a string was not utf-8-encoded but latin-1-encoded, the method raised an exception. Gaetan Delannay 2014-08-27 09:53:45 +0200
  • 2e1bdb9491 [gen] Bugfixes. Gaetan Delannay 2014-08-15 11:43:46 +0200
  • fb65cf82d8 [gen] More work on string multilingual fields. Gaetan Delannay 2014-08-15 10:46:28 +0200
  • 7c2d4c1b7a [gen] More work on multilingual string fields. Gaetan Delannay 2014-08-14 16:46:37 +0200