diff --git a/README b/README index 5683fa0f84c..e255e3607e1 100644 --- a/README +++ b/README @@ -1,55 +1,29 @@ -About OpenERP +pydot - Python interface to Graphviz's Dot language +Ero Carrera (c) 2004-2007 +ero@dkbza.org + +This code is distributed under the MIT license. + +Requirements: ------------- -OpenERP is an OpenSrouce/Free software Enterprise Resource Planning and -Customer Relationship Management software. More info at: +pyparsing: pydot requires the pyparsing module in order to be + able to load DOT files. - http://www.openerp.com +GraphViz: is needed in order to render the graphs into any of + the plethora of output formats supported. -Installation on Debian Ubuntu ------------------------------ +Installation: +------------- -Add the the apt repository in your source.list and type: +Should suffice with doing: - $ apt-get install openerp + python setup.py install -Installation on RedHat, Fedora, CentOS --------------------------------------- +Needless to say, no installation is needed just to use the module. A mere: -Install the required dependencies: + import pydot - $ yum install python - $ easy_install pip - $ pip install ..... - -Install the openerp rpm - - $ rpm -i openerp-VERSION.rpm - -Installation on Windows ------------------------ - -Installation on MacOSX ------------------------ - -Setuping you first database ---------------------------- - -Point your browser to http://localhost:8069/ and click "Database", the default -master password is "admin". - -Detailed System Requirements ----------------------------- - -You need the following software installed: - -python, postgresql-client, python-dateutil, python-gdata, python-ldap, -python-libxslt1, python-lxml, python-mako, python-openid, python-psycopg2, -python-pybabel, python-pychart, python-pydot, python-pyparsing, -python-reportlab, python-simplejson, python-tz, python-vobject, python-webdav, -python-werkzeug, python-yaml, python-zsi, graphviz, ghostscript, postgresql, -python-imaging, python-matplotlib - -For Luxembourg localization, you also need: -* pdftk (http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/) +should do it, provided that the directory containing the modules is on Python +module search path. diff --git a/openerp/addons/base/base.sql b/openerp/addons/base/base.sql index 55c4d41aba5..6f3a8ed1ee8 100644 --- a/openerp/addons/base/base.sql +++ b/openerp/addons/base/base.sql @@ -287,6 +287,7 @@ CREATE TABLE ir_module_module ( name character varying(128) NOT NULL, author character varying(128), url character varying(128), + icon character varying(64), state character varying(16), latest_version character varying(64), shortdesc character varying(256), @@ -294,6 +295,7 @@ CREATE TABLE ir_module_module ( category_id integer REFERENCES ir_module_category ON DELETE SET NULL, certificate character varying(64), description text, + core boolean default False, demo boolean default False, web boolean DEFAULT FALSE, license character varying(32), diff --git a/openerp/addons/base/base_menu.xml b/openerp/addons/base/base_menu.xml index 5096681abd3..5a5d3d91b64 100644 --- a/openerp/addons/base/base_menu.xml +++ b/openerp/addons/base/base_menu.xml @@ -22,8 +22,7 @@ - + diff --git a/openerp/addons/base/ir/ir_actions.py b/openerp/addons/base/ir/ir_actions.py index e01f23b6cc0..af78f96da17 100644 --- a/openerp/addons/base/ir/ir_actions.py +++ b/openerp/addons/base/ir/ir_actions.py @@ -321,6 +321,13 @@ class act_window(osv.osv): act_window() +VIEW_TYPES = [ + ('tree', 'Tree'), + ('form', 'Form'), + ('graph', 'Graph'), + ('calendar', 'Calendar'), + ('gantt', 'Gantt'), + ('kanban', 'Kanban')] class act_window_view(osv.osv): _name = 'ir.actions.act_window.view' _table = 'ir_act_window_view' @@ -329,12 +336,7 @@ class act_window_view(osv.osv): _columns = { 'sequence': fields.integer('Sequence'), 'view_id': fields.many2one('ir.ui.view', 'View'), - 'view_mode': fields.selection(( - ('tree', 'Tree'), - ('form', 'Form'), - ('graph', 'Graph'), - ('calendar', 'Calendar'), - ('gantt', 'Gantt')), string='View Type', required=True), + 'view_mode': fields.selection(VIEW_TYPES, string='View Type', required=True), 'act_window_id': fields.many2one('ir.actions.act_window', 'Action', ondelete='cascade'), 'multi': fields.boolean('On Multiple Doc.', help="If set to true, the action will not be displayed on the right toolbar of a form view."), diff --git a/openerp/addons/base/module/module.py b/openerp/addons/base/module/module.py index 7a4ca000e63..fd69c0750ab 100644 --- a/openerp/addons/base/module/module.py +++ b/openerp/addons/base/module/module.py @@ -215,6 +215,7 @@ class module(osv.osv): 'views_by_module': fields.function(_get_views, method=True, string='Views', type='text', multi="meta", store=True), 'certificate' : fields.char('Quality Certificate', size=64, readonly=True), 'web': fields.boolean('Has a web component', readonly=True), + 'core': fields.boolean('Is a Core Application', readonly=True), 'icon': fields.char('Icon URL', size=128), 'complexity': fields.selection([('easy','Easy'), ('normal','Normal'), ('expert','Expert')], string='Complexity', readonly=True, diff --git a/openerp/addons/base/module/module_view.xml b/openerp/addons/base/module/module_view.xml index 80a13a75e35..ff4dee3b3c0 100644 --- a/openerp/addons/base/module/module_view.xml +++ b/openerp/addons/base/module/module_view.xml @@ -39,24 +39,19 @@ + + + + - - + - - - - - - - - - - - - - - + + @@ -118,13 +113,16 @@ form
- - - - - - - + + + + + + + + + + diff --git a/openerp/addons/base/module/wizard/base_module_import_view.xml b/openerp/addons/base/module/wizard/base_module_import_view.xml index 0ca3e14ea96..b17b8ec565f 100644 --- a/openerp/addons/base/module/wizard/base_module_import_view.xml +++ b/openerp/addons/base/module/wizard/base_module_import_view.xml @@ -60,6 +60,7 @@ After importing a new module you can install it by clicking on the button "Insta action="action_view_base_module_import" id="menu_view_base_module_import" parent="menu_management" + groups="base.group_extended" sequence="1"/> diff --git a/openerp/addons/base/module/wizard/base_module_update_view.xml b/openerp/addons/base/module/wizard/base_module_update_view.xml index 51f0c94f31c..3e879b1e766 100644 --- a/openerp/addons/base/module/wizard/base_module_update_view.xml +++ b/openerp/addons/base/module/wizard/base_module_update_view.xml @@ -55,12 +55,13 @@ + name="Update Modules List" + action="action_view_base_module_update" + id="menu_view_base_module_update" + groups="base.group_extended" + parent="menu_management" + sequence="2" + icon="STOCK_CONVERT"/> diff --git a/openerp/addons/base/module/wizard/base_module_upgrade_view.xml b/openerp/addons/base/module/wizard/base_module_upgrade_view.xml index 0c9423a22b7..2bb42913b88 100644 --- a/openerp/addons/base/module/wizard/base_module_upgrade_view.xml +++ b/openerp/addons/base/module/wizard/base_module_upgrade_view.xml @@ -31,11 +31,12 @@ + name="Apply Scheduled Upgrades" + action="action_view_base_module_upgrade" + groups="base.group_extended" + id="menu_view_base_module_upgrade" + parent="menu_management" + sequence="3"/> Module Upgrade Install diff --git a/openerp/modules/db.py b/openerp/modules/db.py index 692bf9732f1..4f8032716a9 100644 --- a/openerp/modules/db.py +++ b/openerp/modules/db.py @@ -75,14 +75,14 @@ def initialize(cr): cr.execute('INSERT INTO ir_module_module \ (author, website, name, shortdesc, description, \ - category_id, state, certificate, web, license, complexity) \ - VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) RETURNING id', ( + category_id, state, certificate, web, license, complexity, core, icon) \ + VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) RETURNING id', ( info['author'], info['website'], i, info['name'], info['description'], category_id, state, info['certificate'], info['web'], info['license'], - info['complexity'])) + info['complexity'], info['core'], info['icon'])) id = cr.fetchone()[0] cr.execute('INSERT INTO ir_model_data \ (name,model,module, res_id, noupdate) VALUES (%s,%s,%s,%s,%s)', ( diff --git a/openerp/modules/module.py b/openerp/modules/module.py index 53e8b86d6bf..09fcb2e9a0a 100644 --- a/openerp/modules/module.py +++ b/openerp/modules/module.py @@ -250,6 +250,8 @@ def load_information_from_description_file(module): info.setdefault('name', False) info.setdefault('description', '') info.setdefault('complexity', 'normal') + info.setdefault('core', False) + info.setdefault('icon', '') info['certificate'] = info.get('certificate') or None info['web'] = info.get('web') or False info['license'] = info.get('license') or 'AGPL-3' diff --git a/setup.py b/setup.py index 40695bd7c41..7f61d534db0 100755 --- a/setup.py +++ b/setup.py @@ -92,7 +92,7 @@ setuptools.setup( 'mako', 'psycopg2', 'pydot', - 'python-dateutil', + 'python-dateutil < 2', 'python-ldap', 'python-openid', 'pytz',