What’s new¶
Development¶
A single source base for both Python 2.7 and Python 3.3
A single source base for both PyQt4 and PySide, see How to use the PySide bindings instead of PyQt ?
The application itself is an action, camelot.admin.action.application.Application. This makes it easy to customize the startup process by overwritting its model_run method.
Modified progress dialog to add and clear details while the action runs.
Default sizes for forms are calculated, avoiding the need of setting the form_size attribute on the Admin class.
The OneToMany editor can display query attributes, created with lazy=’dynamic’.
The count query no longer uses subselects, reducing the time needed to build up an initial table view on databases that are slow when handling subselects, such as MySQL.
New available actions :
- Start and stop a profiler : camelot.admin.action.application_action.Profiler.
- Change authentication picture : camelot.admin.action.application_action.Authentication.
New action steps :
- camelot.view.action_steps.item_view.OpenTableView
- camelot.view.action_steps.select_file.SaveFile
- camelot.view.action_steps.select_file.SelectDirectory
- camelot.view.action_steps.select_object.SelectObjects
- camelot.view.action_steps.gui.SelectItem
- camelot.view.action_steps.gui.SelectSubclass
- camelot.view.action_steps.application.MainWindow
- camelot.view.action_steps.form_view.ToFirstForm
- camelot.view.action_steps.form_view.ToLastForm
- camelot.view.action_steps.form_view.ToNextForm
- camelot.view.action_steps.form_view.ToPreviousForm
Reworked import/export action to handle tables with many columns and allow the user to customize the imported and exported columns.
New database profiles api in camelot.core.profile.ProfileStore
Integer and float editors display None as an empty string
The list_action state is used to determine the icon in a table view
Delayed primary key type definition in default models, so the default models can be used with other types of primary keys, such as UUID.
See Migrate from Camelot 13.04.13 to the development branch for documentation on how to upgrade an existing Camelot project to the latest version.
Tested with SQLAlchemy 1.0.8
Removed the ColoredFloatDelegate as it is not a basic type of editor
nullable, visible, validator are dynamic field attributes
ObjectAdmin does introspeciton on properties to see if they have a setter defined
EntityAdmin does introspection on hybrid attributes to look for default field attributes
camelot.view.filters module has been moved to camelot.admin.action.list_filter
Remove ‘delete_mode’ and ‘save_mode’ Admin attributes, as this behavour is customizable with actions.
Remove the ‘search_all_fields’ Admin attribute, as this behavour can is customizable with the get_search_fields method.
Add the get_search_fields method to the EntityAdmin for fine grained customization of the fields to search.
The tableview shows the number of selected rows.
Release 13.04.13¶
- Uses SQLAlchemy 0.8.0
- All default models migrated from Elixir to Declarative
- Replacements for most of the Elixir functions that are compatible with Declarative
- Search splits search strings between spaces and searches for a combination of the elements
- Russian translations
- The camelot.model.batch_job.BatchJob is reworked to have more robust error handling, and a batch job becomes useable as a context manager
- Decouple the camelot.core.memento.SqlMemento from camelot.model.memento.Memento, so the change tracking system becomes customizable.
- List of changes can be accessed from the form view
- Support for using an existing database through SQLAlchemy reflection
- Primary key columns are not editable by default
- Documents in print preview can be edited before printing
- Import and export have configurable columns
- Add camelot.view.action_steps.print_preview.PrintChart action step.
- Adapt printing of charts to matplotlib 1.0
- Fix maximum field attribute of rating fields in editor and delegate.
- Workaround for form window hiding on Mac
- The frozen columns feature has been removed in favor of the column groups
- The embedded form has been removed in favour of camelot.admin.object_admin.ObjectAdmin.get_compounding_objects()
- Unittests cover 80% of the code
- See Migrate from Camelot 12.06.29 to 13.04.13 for documentation on how to upgrade an existing Camelot project to 13.04.13.
Release 12.06.29¶
camelot_manage has been removed, since it did not contain essential functions for the development of Camelot applications.
Port the camelot_example application and Creating a Movie Database Application to Declarative
Add a toolbar to the form view, configurable through the camelot.admin.object_admin.ObjectAdmin.get_form_toolbar_actions() method.
Move the progress widget from the removed status bar to the toolbar
Add camelot.admin.table.ColumnGroup in the list view.
See Migrate from Camelot 11.12.30 to 12.06.29 for documentation on how to upgrade an existing Camelot project.
Tracking of changes goes through the camelot.admin.object_admin.ObjectAdmin
Cleanup of the default Camelot models :
- they can be used independently of each other
- Persons, Organizations, etc. have been moved to camelot.model.party
- Simplification of the underlying tables
- The default metadata was moved camelot.core.sql
Store user changed column width in settings and column_width field attribute
camelot.admin.not_editable_admin.not_editable_admin() has an actions argument
Reworked searching for translation files
Portuguese (Brazil) translations
Workaround for mainwindow bug on OS X
Release 11.12.30¶
- Fix inclusion of stylesheets and templates in the egg
Release 11.12.29¶
Import from file wizard supports importing excel files
A number of new ActionStep classes that can be used in custom Action classes or serve as an example :
- camelot.view.action_steps.change_object.ChangeObjects
- camelot.view.action_steps.gui.CloseView
- camelot.view.action_steps.gui.MessageBox
- camelot.view.action_steps.select_object.SelectObject
Move the repository to gitorious
The toolbar in the one-to-many and many-to-many editor are configurable using the ObjectAdmin.get_related_toolbar_actions() method.
Spanish translations
Possibility to add a close button to a form and to customize the form close action
Filters can have a default value
Main menu and toolbars are configurable in the ApplicationAdmin through the use of actions, which allows creation of reduced main windows
Rewrite of Camelot functions behind toolbars and menus to actions, resulting in a number of Action classes with sample code :
- camelot.admin.action.application_action.ShowHelp
- camelot.admin.action.application_action.ShowAbout
- camelot.admin.action.application_action.Backup
- camelot.admin.action.application_action.Restore
- camelot.admin.action.form_action.CloseForm
- camelot.admin.action.list_action.OpenNewView
- camelot.admin.action.list_action.ToPreviousRow
- camelot.admin.action.list_action.ToNextRow
- camelot.admin.action.list_action.ToFirstRow
- camelot.admin.action.list_action.ToLastRow
- camelot.admin.action.list_action.ExportSpreadsheet
- camelot.admin.action.list_action.PrintPreview
- camelot.admin.action.list_action.SelectAll
- camelot.admin.action.list_action.ImportFromFile
- camelot.admin.action.list_action.ReplaceFieldContents
Move to SQLAlchemy 7.x
Undefer all fields that are going to be used in a view when querying the database
Reduction of the lines of code with 4%
Release 11.11.16¶
- Implementation of the new actions proposal (Actions), please consult the documentation and the tutorial (Add an import wizard to an application) of the actions to ease the migration. Most old style actions can be replaced with the new style action camelot.admin.action.list_action.CallMethod
- Delayed creation of widgets on tabs to improve performance for screens with lots of fields
- Move to migrate 7.1
- New splashscreen
- Italian translations
- PySide compatibility
Release 11.09.10¶
Refresh reexecutes queries in the table view
Deleted entities are grayed out in the GUI if they are deleted when visible
Add setup.py to new projects for easy packaging
The settings mechanism becomes plugable
Print preview does pdf export when no printer is available
Wizard to create a new project
API documentation integrated with sphinx
camelot.core.exception.UserException, a subclass of Exception that can be used to inform the user in a gentle way he should behave different.
Reduced memory usage
Experimental PySide support
Table views are sorted by primary key to avoid row flicker
German, French and Dutch translations
Generation of .po files integrated with setuptools
Fixes of VirtualAddress editor
example renamed to camelot_example to resolve naming conflicts with other projects
Release 11.05.13¶
Faster opening of forms
‘Home’ tab with application actions
add legend function to chart container
Workspace maximizes when double clicking on tab bar
Fix tab behavour of some editors
Support for editing columns in the frozen part of a table view
New DateTime Editor
More intuitive Code editor
More intuitive navigation pane
progress dialog when records are deleted
FileEditor supports removing files after copying them
EntityAdmin changes
- supports objects mapped with plain SQLAlchemy, documentation on how to use this
- confirm_delete reworked to delete_mode
- expanded_list_search option to tune which fields show up
ApplicationAdmin changes
actions_changed_signal
application actions show up in desktop workspace
postgres support for backup / restore
new actions : DocxApplicationAction, PixmapFormAction
Most editors now support background_color, editable and tooltip as dynamic attributes
Release 10.11.27¶
Tab based desktop
Faster table view
Improved search queries
Much more dynamic field attributes : tooltip, background_color, editable, choices, prefix, suffix, arrow
Document merge wizard
Support for SQLAlchemy 0.6.x
Charts and matplotlib integration
Move from PyExcelerator to xlwt and xlrd
Move to new style signal/slot connections
Support for frozen columns in a table view
Faster backup and restore
Release 10.07.02¶
Expanded search and filter options
Search works for integer, date and float fields
Sorting in table views and OneToMany widgets
Importer forces validation before importing
User translatable labels on forms
Litebox image preview for image fields
New editors and delegates :
NoteDelegate
LabelDelegate
TextBoolDelegate
i18n improvements
Fix date editor on windows
Add a default model to store batch job information
Backup and restore available from the File menu
More documentation
Release 09.12.07¶
Sqlalchemy 5.6 compatible
Dynamic background colors and tooltips
Generic import wizard
The busy indicator in the status bar
Support for lazy translations
Remove PIL dependency and only depend on QImage
Support multiple levels of class inheritance in the model
Various bugfixes, usability and speed improvements
Code cleanup