Commit graph

267 commits

Author SHA1 Message Date
Gaetan Delannay 699cc8346b [gen] Field.indexed, instead of being a Boolean, can be a str, to represent the name of a Zope Index. This way, it is possible to bypass the standard Appy choice for index types, ie for Computed fields whose content may produce any type of value; added missing translation labels in the macro displaying object's history; added default fields Tool.dateFormat and Tool.hourFormat that give application-wide default formats for dates with/without hour; added a table in Config->Users that shows the connected users and the date/time of their last access to the app; added the missing search macro for a Computed field. 2012-07-18 21:58:11 +02:00
Gaetan Delannay 21ffa7b46d [gen] Added UserWrapper.checkPassword allowing to check if a password is the right one for a user. 2012-07-12 17:54:14 +02:00
Gaetan Delannay a0837a758f [gen] Bugfix in the 'change user id' function. Now, the method browses every object in the database and updates local roles where the old ID was potentially mentioned. 2012-07-11 17:27:40 +02:00
Gaetan Delannay a7bcd1a098 [gen] allow Manager to change the login of a user; bugfix in dumping XHTML tables whose column sizes are automatically computed; bugfix: apply styles mapping to 'p' tags that are added automatically by xhtml2odt (was only implemented for p tags inside li tags). 2012-07-10 14:21:08 +02:00
Gaetan Delannay ad14c1258c [gen] Implemented a mechanism 'forgot password?'. 2012-07-09 15:47:38 +02:00
Gaetan Delannay bc505b335f [gen] Bugfix in RTL languages support; [pod] xhtml2odt: bugfix in management of styles applied to inner p tags added within li tags. 2012-07-03 15:00:45 +02:00
Gaetan Delannay 1b375d387c [gen] Added support for right-to-left (RTL) languages. 2012-06-27 13:27:24 +02:00
Gaetan Delannay b680a5ddcb [gen] When raising Unauthorized, give more explanations. 2012-06-21 11:31:27 +02:00
Gaetan Delannay 188fdc9761 [gen] More simpler result.pt. 2012-06-13 09:59:19 +02:00
Gaetan Delannay e13575c506 Added method Wrapper.isEmpty(name) that checks if the content of some field is empty or not on a given object. 2012-06-13 09:31:09 +02:00
Gaetan Delannay 5b255ce55d [gen] Added boolean Tool.loadTranslationsAtStartup that, if False, prevents to overwrite, on a production site, translations edited through-the-web by users. If True, at every Zope startup, Translation objects are overwritten by the content of their corresponding po files on disk. 2012-06-03 21:55:26 +02:00
Gaetan Delannay 8f57163c2a [gen] Finalized pending i18n. 2012-06-03 18:34:56 +02:00
Gaetan Delannay 2710fb6c39 [gen] Bugfix: attribute Field.focus and UserWrapper password management. 2012-06-02 20:55:25 +02:00
Gaetan Delannay 77331cd216 [gen] Possibility to define, programmatically, for a given class, the default view and edit pages, by defining, respectively, methods getDefaultViewPage and getDefaultEditPage; various bugfixes. 2012-06-02 17:39:05 +02:00
Gaetan Delannay f843d5b7d6 [gen] Security: added missing checks at the code level, ensuring that a user can create instances of a given class (root classes, or instances created via an initiator field); bugfixes in the test system, which works again (was broken after deplonization); [shared] XmlUnmarshaller can now be ran in 'non utf-8' mode: if enabled, any marshalled string will no be Python unicode, but simple str. 2012-06-02 14:36:49 +02:00
Gaetan Delannay 0d7afb685f [gen] added obj.mayEdit, an additional condition for editing an object (similar to mayDelete); bugfix: specifying a workflow for a User class crashed because, in installer.py, Appy took into account the standard workflow on this Class instead of the custom one. 2012-06-01 15:57:19 +02:00
Gaetan Delannay e3b7f5364f [gen] CSS improvements; bugfix: parsing now works even if encoding is declared at the beginning of the Python file; a default layout for Boolean fields, including a description, is now available in Boolean.dLayouts. 2012-05-31 17:29:06 +02:00
Gaetan Delannay ede29fb6c1 [gen] Bugfix while managing languages, ui improvements. 2012-05-29 20:50:18 +02:00
Gaetan Delannay aaaccb0669 [gen] added the possibility to define a sortOrder of a Search class. 2012-05-25 14:27:53 +02:00
Gaetan Delannay e66daeb151 [gen] More robust XHTML cleaning. 2012-05-22 16:42:20 +02:00
Gaetan Delannay 028040351c appy.gen: improved cleaning and formatting of XHTML content; appy.pod: added some default appy-related table styles for producing cells with text in bold/normal, aligned right/left, etc. 2012-05-14 17:35:34 +02:00
Gaetan Delannay d3a2b85a10 appy.gen: bugfixes. 2012-05-09 09:45:15 +02:00
Gaetan Delannay 8cc20b0d34 appy.gen: bugfixes. 2012-05-08 14:49:45 +02:00
Gaetan Delannay 6245023365 appy.bin: backup.py: added field 'To' to mails sent by the backup procedure (so it not less directly considered as junk mail); bugfix in job.py used with Appy > 0.8; appy.gen: optimized performance (methods defined in 'show' attrs were called twice on edit.pt and view.pt); appy.gen: added String.richText allowing to have ckeditor with more text-formatting icons; added ckeditor 'show source' button by default (impossible to live without that); appy.gen: solved security-related problems; appy.gen.mail: allowto send mail as authenticated user; appy.gen: bugfixes in pages when rendered by IE. 2012-05-05 17:04:19 +02:00
Gaetan Delannay 459a714b76 appy.bin: adapted job.py for Appy >0.8; appy.gen: improved mail notification mechanism. 2012-05-03 10:51:54 +02:00
Gaetan Delannay 9b8064b0cd appy.gen: bugfix while searching the catalog based on object state; added XHTML cleanup code; added String.generatePassword; bugfix: mising HTTP header while sending some responses back to Apache (caused a bug in ckeditor image upload); bugfix while importing images via an image resolver (Zope behind a reverse proxy). 2012-04-25 16:21:23 +02:00
Gaetan Delannay d52e601ea8 ckeditor: removed files that begin with an underscore. 2012-04-24 16:27:00 +02:00
Gaetan Delannay b30d6f18c2 ckeditor 3.6.3 2012-04-24 16:24:18 +02:00
Gaetan Delannay 094e571b74 ckeditor 3.6.3 2012-04-24 16:22:12 +02:00
Gaetan Delannay af351f87d3 Minor changes and bugfixes. 2012-04-19 09:20:15 +02:00
Gaetan Delannay abdd0ee52d appy.shared.diff: bugfix: work internally on unicode representations of strings to diff: this way, we are sure every char is one char length. 2012-04-13 18:07:48 +02:00
Gaetan Delannay 40e8a5f258 appy.gen: bugfix while using Zope behind Apache and using the VHM; Ref.view macro is not called via Ajax anymore for single-valued Refs (when displaying lists containing single-valued Ref fields, it produces too many ajax requests, leading to ConflictErrors in the ZODB). 2012-03-27 15:49:41 +02:00
Gaetan Delannay 5928996730 appy.gen: added Ref.navigable: if True, referenced objects can appear within the portlet. 2012-03-27 10:37:41 +02:00
Gaetan Delannay 1e9e4df5a6 appy.gen: added the possibility to create and manage web pages into an app; every class can now define a method showPortlet. If the class does not define it or if it returns False, the portlet won't be shown when showing/editing instances of this class. 2012-03-26 19:09:45 +02:00
Gaetan Delannay 8aa03a091a appy.gen: minor updates. 2012-03-23 23:26:35 +01:00
Gaetan Delannay f6a828bc13 appy.gen: removed fields Tool.showWorkflowCommentFieldForxx (workflow comment may not be entered into the confirm popup); appy.gen: security-related bugfixes. 2012-03-19 17:00:44 +01:00
Gaetan Delannay cbb8d5cd12 appy.pod: variable named 'loop' is now available in the POD context of any section within a 'for' statement, with attributes like loop.[iterVariableName].length (=total number of looped elements) and loop.[iterVariableName].nb (=index of currently looped element). 2012-03-16 14:59:59 +01:00
Gaetan Delannay 0dd8b72dca appy.gen: bugfixes. 2012-03-08 20:56:14 +01:00
Gaetan Delannay 7b0b7e147d appy.gen: allow to define several layoutTypes (ie: ('edit', 'result')) as a tuple/list in 'show' attributes of fields. 2012-03-06 17:02:41 +01:00
Gaetan Delannay 431511026c appy.gen: bugfixes. 2012-03-03 23:29:32 +01:00
Gaetan Delannay 91d3887847 appy.gen: minor bufgixes. 2012-03-02 15:42:22 +01:00
Gaetan Delannay 7d605d1fbb appy.gen: bugfixes in the List field. 2012-03-01 17:35:23 +01:00
Gaetan Delannay 6d0549e6ce Minor updates. 2012-02-27 14:06:39 +01:00
Gaetan Delannay 13f3400577 appy.pod: bugfix while including a PDF file into a document; ease the inclusion of Plone images from a Plone/Zope DB through 'do text from document' statements; appy.gen: added obj.mayAct method that allows to display conditionnally the column 'Actions' when an object is shown in a list (query or ref); improved navigation from sub-objects to parent objects; improved layout. 2012-02-23 15:58:06 +01:00
Gaetan Delannay 9c5f92337b appy.gen: improvements in user management. 2012-02-21 12:09:42 +01:00
Gaetan Delannay 9394490d33 appy.gen: allow to define a method Tool.getHomePage that returns the URL of the home page for any user (authenticated, anonymous, manager, or any other code-based distinction); allow an app to define a 'ui' folder for storing new UI-related elements (pages, images, etc) or overriding standard Appy UI elements; logo.jog is replaced with banner.jpg (size 900 x 75px). 2012-02-18 19:48:00 +01:00
Gaetan Delannay a80ef513ff appy.gen: added new format 'captcha' for a String. 2012-02-16 18:13:51 +01:00
Gaetan Delannay 0b6d2d2165 appy.gen: added method wrapper.search1 that returns a single result (which is the only difference with wrapper.search); bugfix while getting objects from the catalog (bypass security when called from code). 2012-02-09 16:36:50 +01:00
Gaetan Delannay 1275df5753 appy.shared: improved deployment of a Appy app (creation of a Zope instance is no more required; corresponding folders are created in standard unix locations: /etc for the config file, /var/log for logs, /var/lib for the database, /usr/bin for scripts that start and stop the instance). appy.gen: first draft of a migration script that allows to migrate data from Plone-dependent Appy apps (<= 0.7.1) to Ploneless Appy 0.8.0. 2012-02-02 17:30:54 +01:00
Gaetan Delannay 13443ea79e appy.bin: generate.py: one less arg: outputFolder has been removed (the script now generates the Zope product in <appFolder>/zope); generate.py: new option '-d', for generating a Debian package from the Python (Appy) app. 2012-01-18 14:27:24 +01:00
Gaetan Delannay 7d844070df appy.pod: improved styles mapping system: one may now express things like: 'p[text-align=center]':'StandardCentered' (ie, map an HTML tag having some CSS attributes to a specific ODT style). See verbose docstrings in styles_manager.py. 2012-01-12 21:49:23 +01:00
Gaetan Delannay 30a51b7c1d appy.gen: added params String.allowImageUpload and String.styles for tuning the in-line editor corresponding to a String instance with format=XHTML; managed borders images uploaded in such a field; bugfix for https://bugs.launchpad.net/appy/+bug/913171 (appy.shared.dav). 2012-01-09 17:00:47 +01:00
Gaetan Delannay 2bd3fe1eeb appy.pod: xhtml2odt: ability to include images from img tags (anonymously). Non-anonymous solution for a Appy/Zope server only; function 'document': allow to specify size of images in cm or px, or via a 'style' tag; appy.gen: allow to upload images in ckeditor fields; improved error management. 2012-01-04 18:03:46 +01:00
Gaetan Delannay 98fafad14a appy.gen: configured ckeditor for Appy; bugfix in jscalendar integration. 2012-01-02 16:59:11 +01:00
Gaetan Delannay 0e7dfa3aaf appy.gen: replaced tiny_mce with ckeditor. 2012-01-02 13:54:03 +01:00
Gaetan Delannay 6ece750d9a appy.bin: updated publish.py, that is now able to generate a DistUtils tar.gz for Appy; publish.py can now be called with option '-s' (silent): in this mode no question is asked to the user, default values are used; updated new.py that generates a better Plone4-ready simple Zope instance; appy: moved FileWrapper from appy.gen.utils to appy.shared.utils to avoid circular package dependencies; appy.gen: use of .pyt extensions for template Python classes in appy.gen.templates in order to avoid byte-compilation errors when distutils installs the package; appy.pod: when using function 'document' in 'from' statements, first arg can now be a appy.shared.utils.FileWrapper instance. 2011-12-15 22:56:53 +01:00
Gaetan Delannay e78cf62694 appy.gen: bugfix in group widget 'tabs'; improved layout of grid widgets in view mode; appy.pod: class OdtTable allows to generate HTML tables as well. 2011-12-09 08:56:37 +01:00
Gaetan Delannay c1174fac79 appy.gen: solved a tricky encoding problem. 2011-12-08 16:01:57 +01:00
Gaetan Delannay d5f26dd1df appy.gen: bugfixes. 2011-12-05 18:15:45 +01:00
Gaetan Delannay c5a8968bd3 appy.gen: Refactoring due to De-Plonization. 2011-12-05 15:11:29 +01:00
Gaetan Delannay d934f49a99 appy.gen: refactoring due to De-Plonization. 2011-12-05 10:52:18 +01:00
Gaetan Delannay 6733f4c7dc appy.gen: various bugfixes (creation of ZCTextIndexes and of the associated lexicon...). 2011-12-01 20:53:13 +01:00
Gaetan Delannay a321257e55 appy.gen: Ploneless version. 2011-11-28 22:50:01 +01:00
Gaetan Delannay d0cbe7e573 appy.gen: first Ploneless version. 2011-11-25 18:01:20 +01:00
Gaetan Delannay 8e1760842e appy.gen: Type 'float': added the possibility to define a separator for thousands; bugfixes in master/slave relationships; permission-related bugfix while creating objects through AbstractWrapper.create; appy.shared.diff: more improvements (still ongoing work). 2011-11-10 21:59:02 +01:00
Gaetan Delannay 040cdafb8c appy.gen: use appy.shared.utils.formatNumber function; visual bugfix while displaying boolean fields; appy.shared.dav: error bugfix in error handling; appy.shared.utils: added french-accents-aware functions lower and upper; appy.shared.xml_parser: bugfix while managing 'any' tags. 2011-11-03 16:14:23 +01:00
Gaetan Delannay 331db304e7 appy.gen: bugfixes in List field and in master-slave relationships. 2011-10-27 17:55:17 +02:00
Gaetan Delannay 3ab6cec7d6 appy.gen: generalized use of appy.Object; existence of a field value (that triggers search for a default value) is now based on Type.isEmptyValue, and not '==None'; bugfix with default values for List fields; prevent search icon to be shown for a Ref when there is no linked object; appy.pod: added class appy.pod.parts.OdtTable that allows to create a complex (ie, with a dynamic number of columns) table programmatically (to be imported with a statement 'do ... from'); appy.shared.diff: improvements in the multiple XHTML diff; appy.shared.xml_parser.XmlMarshaller: support for default namespaces and 'any' tags. 2011-10-26 10:21:09 +02:00
Gaetan Delannay c11378c747 appy.gen: added a widget 'List' for rendering grids of data. 2011-10-19 09:37:44 +02:00
Gaetan Delannay f1136eb786 appy.gen: ugly Zope acquisition-related bugfix; bugfix while rendering file widgets. 2011-10-11 17:32:23 +02:00
Gaetan Delannay f13b7ea307 appy.gen: various bugfixes and minor improvements. 2011-10-06 16:27:58 +02:00
Gaetan Delannay 4b44f8d565 appy.gen: bugfixes in Ref fields, IE CSS and master/slave relationships. 2011-10-04 20:12:58 +02:00
Gaetan Delannay e821307b4c appy.gen: reimplemented master/slave-related Javascript code without Plone queryCss. 2011-10-01 22:40:13 +02:00
Gaetan Delannay c9353b46db appy.gen: integrated tinyMCE; appy.gen: Ref.shownInfo can now specify column widths (ie, 'title*70%'); appy.gen: updated default page and field layouts; appy.gen: stop generating label for back references it not needed. 2011-09-28 21:17:15 +02:00
Gaetan Delannay 93619dafe1 appy.gen: reworked management of Ref fields, that do not use Archetypes and reference catalog anymore. appy.gen: added a mechanism for migrating from one Appy version to another, automatically, when reinstalling an Appy application. 2011-09-26 21:19:34 +02:00
Gaetan Delannay eceb9175fd appy.bin: backup.py: added the possibility to define login and password for SMTP authentication (the script allows to send mail); appy.pod: added the possibility to specify size of images to import (see https://answers.launchpad.net/appy/+question/171846). 2011-09-24 12:53:33 +02:00
Gaetan Delannay 96a592f125 appy.pod: bugfix when importing images under Windows (https://answers.launchpad.net/appy/+question/171611); appy.gen: bugfix while validating file fields which are mandatory; stopped using uid_catalog and added index 'UID' in portal_catalog; bugfix while searching objects in the limits of a Ref field; display user info in the main template (name, id, roles); when creating an object from a reference, after creation, appy brings the user back to the view page where the Ref field was. 2011-09-20 19:21:48 +02:00
Gaetan Delannay 7ff56a6520 Continued work on new Appy GUI. 2011-09-18 15:00:05 +02:00
Gaetan Delannay 48acf65bdc appy.gen: continued work on Appy-specific template. 2011-09-15 15:52:21 +02:00
Gaetan Delannay b6dcc42038 appy.gen: use new index 'getState' for indexing object states; reduced size of generated file config.py; optimized debug mode: class reload is not done automatically: a 'refresh' icon is available on view and edit views. 2011-09-14 21:01:58 +02:00
Gaetan Delannay 9258b76bdf appy.gen: do not generate _action_ok and action_ko i18n messages anymore; added param Group.label, similar to Type.label; allowed to specify in param Group.wide any table width. 2011-09-11 01:59:22 +02:00
Gaetan Delannay 5be03c2ed4 appy.gen: bugfixes in the new workflow engine and in macro 'history'. 2011-09-09 17:39:58 +02:00
Gaetan Delannay 1cd9aaaf69 appy.gen: implemented a variant of Zope's 'has_permission' in method called 'mixin.allows', which does not make some assumptions, like the fact that an admin is Owner of any object or the fact that an Authenticated user has also role Anonymous; added button 'refresh security' for refreshing security information on every database object (it is needed because Zope requires us to duplicate security info on every object). 2011-09-08 16:33:16 +02:00
Gaetan Delannay d2d3f9a745 appy.gen: removed from some pages superfluous translations of inexistent labels. 2011-09-07 09:56:53 +02:00
Gaetan Delannay b9c6283d9e appy.gen: stopped generating properties on wrapppers by setting AbstractWrapper as new-style class and using __getattribute__. 2011-09-07 01:33:09 +02:00
Gaetan Delannay 3c95ac083d appy.gen: added, for every Type, param 'label' allowing to specify an existing i18n label (the one from another field for instance), thus avoiding to generate i18n labels for this Type; optimized generation of appyWrappers.py (more than twice less code). 2011-09-06 21:46:57 +02:00
Gaetan Delannay 7514eb31a9 appy.pod: bugfix in html2odt: in some situations, while using stylesMappings, some empty tags were present in the result, producing a superflous empty paragraph; bugfix while importing PNG files under Windows; appy.gen: began to implement a new global Appy-specific page template and styles. 2011-09-02 09:59:49 +02:00
Gaetan Delannay ddec7cd62c appy.gen: workflows are now implemented as full Appy worlflows. Plone (DC) workflow are not generated anymore. From the Appy user point of view (=developer), no change has occurred: it is a pure implementation concern. This is one more step towards Appy independence from Plone. 2011-07-26 22:15:04 +02:00
Gaetan Delannay 93eb16670b appy.gen: in the default context of any pod field, added function '_' corresponding to obj.translate; appy.gen: xhtml2odt bugfix: when a <div> was contained in <ol><li> or <ul><li>, the whole function ouput was an empty string. 2011-07-07 09:43:16 +02:00
Gaetan Delannay e38b78d10c appy.bin: job.py: allow to specify several commands to execute (to separate with semicolons); appy.gen: translate: added the possibility to escape XML special chars in translations; appy.pod: bugfix in buffers.write: if content is already utf-8-encoded it does not crash anymore. 2011-06-28 09:12:20 +02:00
Gaetan Delannay de8df53f42 appy.gen: xhtml2odt: better management of 'div' tag (considered exactly like a 'p' tag). 2011-06-17 01:44:42 +02:00
Gaetan Delannay 791ee42164 appy.gen: added a session invalidation mechanism: authenticated users will be automatically logged out when their Zope session will expire; improvements in the CodeAnalysis system: more Zope-related extensions are recognized: .vpy, .cpy for Python files, .cpt for Zope Page Templates. 2011-06-10 17:20:09 +02:00
Gaetan Delannay bce384e2da appy.gen: added param 'maxChars' for any Type, allowing to limit the amount of data in user input fields. Wherever possible, it is implemented using HTML attribute 'maxlength'; on server-side, content that is bigger than specified by maxChars is truncated (ie, it is not possible to force a maxlength for html textareas); implemented a first protection against XSS attacks (Javasscript detection in user input). 2011-05-05 16:44:06 +02:00
Gaetan Delannay 9e7ddcc771 appy.shared: added support for country codes (iso-3166-1) - appy.gen: non-string variables are now allowed in i18n variable replacements; bugfix while browsing translation pages with the 'next' arrows in 'edit' mode. 2011-04-26 20:49:33 +02:00
Gaetan Delannay 4e848ce0a8 appy.pod: added param 'stylesMapping' for the 'text' function (which calls 'xhtml' internally); appy.gen: bufgix in the translation system (translation of group-related labels); appy.shared.dav: bugfix while getting the 'content-type' HTTP header key; appy.shared.dav: smart error handling when parsing wrong XML content. 2011-04-15 11:26:20 +02:00
Gaetan Delannay 36237c3ee5 appy.gen: bugfix with the master/slave mechanism while launching Zope in debug mode; added boolean attribute Date.reverseYears allowing to display years in reverse order in the widgets for choosing the year; bugfix in Javascript code for hiding slave widgets with Google Chrome. 2011-03-25 18:03:45 +01:00
Gaetan Delannay a608a9b43f appy.gen: minor improvements and IE fixes in the GUI. 2011-03-24 16:21:57 +01:00
Gaetan Delannay e87547b789 appy.gen: bugfix while comparing values for historization purposes. 2011-03-22 16:45:46 +01:00
Gaetan Delannay 4fe5c5e164 appy.gen: bugfix in the validator for the default field 'UNO-enabled Python interpreter'; appy.pod: added default function 'text' that allows to dump a string containing carriage returns into the ODT, with statements like 'do... from text(someString)'; appy.pod: bugfix in the management of conflictual inner-tags in the odt2html conversion: in some cases (when style mappings are applied), empty tags that needed to be removed were not removed because of the presence of tag attributes. 2011-03-18 16:52:15 +01:00
Gaetan Delannay 66a02c453e appy.gen: every field can now define a dict of i18n mappings that will be used for translating their label and/or description and/or help message(s). 2011-03-04 10:30:45 +01:00