summaryrefslogtreecommitdiff
path: root/addons/base_setup
diff options
context:
space:
mode:
authorOlivier Dony <odo@openerp.com>2011-10-13 19:03:27 +0200
committerOlivier Dony <odo@openerp.com>2011-10-13 19:03:27 +0200
commit3bffe65b2ca8bc50ece644e7947ad2bbd5c9341a (patch)
treeb307874680dbdce7b2f5109b7b696ea38e679e20 /addons/base_setup
parenta93ca01b5b1365f92e191e3c429ef655e751b455 (diff)
parent8a7c61cb96a541a9aaca51ffe3ee903407b26360 (diff)
[MERGE] sync with latest trunk
bzr revid: odo@openerp.com-20111013170327-9rvfdkbgj01hdgxb
Diffstat (limited to 'addons/base_setup')
-rw-r--r--addons/base_setup/__openerp__.py2
-rw-r--r--addons/base_setup/base_setup.py400
-rw-r--r--addons/base_setup/base_setup_views.xml142
-rw-r--r--addons/base_setup/i18n/et.po42
4 files changed, 345 insertions, 241 deletions
diff --git a/addons/base_setup/__openerp__.py b/addons/base_setup/__openerp__.py
index c483b4324c1..4417ebf2439 100644
--- a/addons/base_setup/__openerp__.py
+++ b/addons/base_setup/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Base Setup',
'version': '1.0',
- 'category': 'Tools',
+ 'category': 'Hidden',
'complexity': "easy",
'description': """
This module helps to configure the system at the installation of a new database.
diff --git a/addons/base_setup/base_setup.py b/addons/base_setup/base_setup.py
index 5717df8681f..3610c227142 100644
--- a/addons/base_setup/base_setup.py
+++ b/addons/base_setup/base_setup.py
@@ -20,123 +20,300 @@
##############################################################################
import pytz
+import simplejson
+import cgi
import pooler
import tools
from osv import fields, osv
from tools.translate import _
+from lxml import etree
#Application and feature chooser, this could be done by introspecting ir.modules
+DEFAULT_MODULES = {
+ 'Customer Relationship Management' : ['crm',],
+ 'Sales Management' : ['sale',],
+ 'Project Management' : ['project',],
+ 'Knowledge Management' : ['document',],
+ 'Warehouse Management' : ['stock',],
+ 'Manufacturing' : ['mrp', 'procurement'],
+ 'Accounting & Finance' : ['account'],
+ 'Purchase Management' : ['purchase'],
+ 'Human Resources' : ['hr',],
+ 'Point of Sales' : ['pos',],
+ 'Marketing' : ['marketing',],
+}
class base_setup_installer(osv.osv_memory):
_name = 'base.setup.installer'
+
_inherit = 'res.config.installer'
- _install_if = {
- ('sale','crm'): ['sale_crm'],
- ('sale','project'): ['project_mrp'],
- }
_columns = {
- # Generic modules
- 'crm':fields.boolean('Customer Relationship Management',
- help="Helps you track and manage relations with customers such as"
- " leads, requests or issues. Can automatically send "
- "reminders, escalate requests or trigger business-specific "
- "actions based on standard events."),
- 'sale':fields.boolean('Sales Management',
- help="Helps you handle your quotations, sale orders and invoicing"
- "."),
- 'project':fields.boolean('Project Management',
- help="Helps you manage your projects and tasks by tracking them, "
- "generating plannings, etc..."),
- 'knowledge':fields.boolean('Knowledge Management',
- help="Lets you install addons geared towards sharing knowledge "
- "with and between your employees."),
- 'stock':fields.boolean('Warehouse Management',
- help="Helps you manage your inventory and main stock operations: delivery orders, receptions, etc."),
- 'mrp':fields.boolean('Manufacturing',
- help="Helps you manage your manufacturing processes and generate "
- "reports on those processes."),
- 'account_voucher':fields.boolean('Invoicing & Payments',
- help="Allows you to create your invoices and track the payments. It is an easier version of the accounting module for managers who are not accountants."),
- 'account_accountant':fields.boolean('Accounting & Finance',
- help="Helps you handle your accounting needs, if you are not an accountant, we suggest you to install only the Invoicing "),
- 'purchase':fields.boolean('Purchase Management',
- help="Helps you manage your purchase-related processes such as "
- "requests for quotations, supplier invoices, etc..."),
- 'hr':fields.boolean('Human Resources',
- help="Helps you manage your human resources by encoding your employees structure, generating work sheets, tracking attendance and more."),
- 'point_of_sale':fields.boolean('Point of Sales',
- help="Helps you get the most out of your points of sales with "
- "fast sale encoding, simplified payment mode encoding, "
- "automatic picking lists generation and more."),
- 'marketing':fields.boolean('Marketing',
- help="Helps you manage your marketing campaigns step by step."),
- 'profile_tools':fields.boolean('Extra Tools',
- help="Lets you install various interesting but non-essential tools "
- "like Survey, Lunch and Ideas box."),
- 'report_designer':fields.boolean('Advanced Reporting',
- help="Lets you install various tools to simplify and enhance "
- "OpenERP's report creation."),
- # Vertical modules
- 'product_expiry':fields.boolean('Food Industry',
- help="Installs a preselected set of OpenERP applications "
- "which will help you manage your industry."),
- 'association':fields.boolean('Associations',
- help="Installs a preselected set of OpenERP "
- "applications which will help you manage your association "
- "more efficiently."),
- 'auction':fields.boolean('Auction Houses',
- help="Installs a preselected set of OpenERP "
- "applications selected to help you manage your auctions "
- "as well as the business processes around them."),
- }
+ 'selection' : fields.text('Selection'),
+ }
- def _if_knowledge(self, cr, uid, ids, context=None):
- if self.pool.get('res.users').browse(cr, uid, uid, context=context)\
- .view == 'simple':
- return ['document_ftp']
- return None
+ def fields_get(self, cr, uid, fields=None, context=None):
+ if context is None:
+ context = {}
+ if fields is None:
+ fields = {}
- def _if_misc_tools(self, cr, uid, ids, context=None):
- return ['profile_tools']
+ fields = {}
+ category_proxy = self.pool.get('ir.module.category')
+ domain = [('parent_id', '=', False),
+ ('name', '!=', 'Uncategorized'),
+ ('visible', '=', True)]
+ category_ids = category_proxy.search(cr, uid, domain, context=context)
+ for category in category_proxy.browse(cr, uid, category_ids, context=context):
+ category_name = 'category_%d' % (category.id,)
+ fields[category_name] = {
+ 'type' : 'boolean',
+ 'string' : category.name,
+ 'name' : category_name,
+ 'help' : category.description,
+ }
- def onchange_moduleselection(self, cr, uid, ids, *args, **kargs):
- value = {}
- # Calculate progress
- closed, total = self.get_current_progress(cr, uid)
- progress = round(100. * closed / (total + len(filter(None, args))))
- value.update({'progress':progress})
- if progress < 10.:
- progress = 10.
-
- return {'value':value}
+ module_proxy = self.pool.get('ir.module.module')
+ module_ids = module_proxy.search(cr, uid, [], context=context)
+ for module in module_proxy.browse(cr, uid, module_ids, context=context):
+ module_name = 'module_%d' % (module.id,)
+ module_is_installed = module.state == 'installed'
+ fields[module_name] = {
+ 'type' : 'boolean',
+ 'string' : module.shortdesc,
+ 'name' : module_name,
+ 'help' : module.description,
+ }
- def execute(self, cr, uid, ids, context=None):
- module_pool = self.pool.get('ir.module.module')
- modules_selected = []
- datas = self.read(cr, uid, ids, context=context)[0]
- for mod in datas.keys():
- if mod in ('id', 'progress'):
+ return fields
+
+ def default_get(self, cr, uid, fields=None, context=None):
+ if context is None:
+ context = {}
+ if fields is None:
+ fields = {}
+
+ result = {}
+
+ if 'dont_compute_virtual_attributes' not in context:
+ module_proxy = self.pool.get('ir.module.module')
+ module_ids = module_proxy.search(cr, uid, [], context=context)
+ for module in module_proxy.browse(cr, uid, module_ids, context=context):
+ result['module_%d' % (module.id,)] = module.state == 'installed'
+
+ cat_proxy = self.pool.get('ir.module.category')
+ cat_ids = cat_proxy.search(cr, uid, [], context=context)
+ for cat in cat_proxy.browse(cr, uid, cat_ids, context=context):
+ m = DEFAULT_MODULES.get(cat.name,[])
+ r = module_proxy.search(cr, uid, [('state','=','installed'),('name','in',m)])
+ result['category_%d' % (cat.id,)] = bool(r)
+
+ return result
+
+ def fields_view_get(self, cr, uid, view_id=None, view_type='from', context=None, toolbar=False, submenu=False):
+ def in_extended_view_group(cr, uid, context=None):
+ try:
+ model, group_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'group_extended')
+ except ValueError:
+ return False
+ return group_id in self.pool.get('res.users').read(cr, uid, uid, ['groups_id'], context=context)['groups_id']
+
+ result = super(base_setup_installer, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu)
+
+ module_category_proxy = self.pool.get('ir.module.category')
+ domain = [('parent_id', '=', False),
+ ('name', '!=', 'Uncategorized'),
+ ('visible', '=', True)]
+ module_category_ids = module_category_proxy.search(cr, uid, domain, context=context, order='sequence asc')
+
+ arch = ['<form string="%s">' % _('Automatic Base Setup')]
+ arch.append('<separator string="%s" colspan="4" />' % _('Install Applications'))
+ module_proxy = self.pool.get('ir.module.module')
+
+ extended_view = in_extended_view_group(cr, uid, context=context)
+
+ for module_category in module_category_proxy.browse(cr, uid, module_category_ids, context=context):
+ domain = [('category_id', '=', module_category.id)]
+ if not extended_view:
+ domain.append(('complexity', '!=', 'expert'))
+
+ modules = module_proxy.browse(cr, uid, module_proxy.search(cr, uid, domain, context=context), context=context)
+ if not modules:
continue
- if datas[mod] == 1:
- modules_selected.append(mod)
-
- module_ids = module_pool.search(cr, uid, [('name', 'in', modules_selected)], context=context)
- need_install = False
- for module in module_pool.browse(cr, uid, module_ids, context=context):
- if module.state == 'uninstalled':
- module_pool.state_update(cr, uid, [module.id], 'to install', ['uninstalled'], context)
- need_install = True
- cr.commit()
- elif module.state == 'installed':
+
+ m = DEFAULT_MODULES.get(module_category.name, [])
+ r = module_proxy.search(cr, uid, [('state', '=', 'installed'),('name', 'in', m)], context=context)
+ readonly = bool(r)
+
+ attributes = {
+ 'name' : 'category_%d' % (module_category.id,),
+ 'on_change' : 'on_change_%s_%d(category_%d)' % ('category', module_category.id, module_category.id,),
+ }
+ if readonly:
+ attributes['modifiers'] = simplejson.dumps({'readonly' : True})
+
+ arch.append("""<field %s />""" % (" ".join(["%s='%s'" % (key, value,)
+ for key, value in attributes.iteritems()]),))
+
+ # Compute the modules to show
+ for module_category in module_category_proxy.browse(cr, uid, module_category_ids, context=context):
+ domain = [('category_id', '=', module_category.id)]
+
+ if not extended_view:
+ domain.append(('complexity', '!=', 'expert'))
+
+ default_modules = DEFAULT_MODULES.get(module_category.name, False)
+ if default_modules:
+ domain.append(('name', 'not in', default_modules))
+
+ modules = module_proxy.browse(cr, uid, module_proxy.search(cr, uid, domain, context=context), context=context)
+
+ if not modules:
+ continue
+
+ modifiers = {
+ 'invisible' : [('category_%d' % (module_category.id), '=', False)],
+ }
+ module_modifiers = dict(modifiers)
+
+ arch.append("""<separator string="%s Features" colspan="4" modifiers='%s'/>""" % (
+ cgi.escape(module_category.name),
+ simplejson.dumps(modifiers))
+ )
+
+ for module in modules:
+ #module_modifiers['readonly'] = module.state == 'installed'
+
+ arch.append("""<field name="module_%d" modifiers='%s' />""" % (
+ module.id,
+ simplejson.dumps(module_modifiers))
+ )
+
+ arch.append(
+ '<separator colspan="4" />'
+ '<group colspan="4" col="2">'
+ '<button special="cancel" string="Cancel" icon="gtk-cancel" />'
+ '<button string="Install Modules" type="object" name="apply_cb" icon="gtk-apply" />'
+ '</group>'
+ )
+
+ arch.append('</form>')
+
+ result['arch'] = ''.join(arch)
+ return result
+
+ def __getattr__(self, name):
+ if name.startswith('on_change_category_'):
+ def proxy(cr, uid, ids, value, context=None):
+ item = 'category_%s' % name[len('on_change_category_'):]
+ return self._on_change_selection(cr, uid, ids, item, value, context=context)
+ return proxy
+ return getattr(super(base_setup_installer, self), name)
+
+ def _on_change_selection(self, cr, uid, ids, item, value, context=None):
+ if not isinstance(item, basestring) or not value:
+ return {}
+
+ if item.startswith('category_') or item.startswith('module_'):
+ object_name, identifier = item.split('_')
+ else:
+ return {}
+
+ values = {
+ }
+
+ #if object_name == 'category':
+ # module_ids = self.pool.get('ir.module.module').search(cr, uid, [('category_id', '=', int(identifier))], context=context)
+ # for module_id in module_ids:
+ # values['module_%d' % module_id] = 1
+
+ return {'value': values}
+
+ def create(self, cr, uid, values, context=None):
+ to_install = {'categories' : [], 'modules' : []}
+
+ for key, value in values.iteritems():
+ if value == 1 and (key.startswith('module_') or key.startswith('category_')):
+ kind, identifier = key.split('_')
+ if kind == 'category':
+ to_install['categories'].append(long(identifier))
+ if kind == 'module':
+ to_install['modules'].append(long(identifier))
+
+ values = {
+ 'selection' : simplejson.dumps(to_install),
+ }
+ context.update(dont_compute_virtual_attributes=True)
+ return super(base_setup_installer, self).create(cr, uid, values, context=context)
+
+ def apply_cb(self, cr, uid, ids, context=None):
+ category_proxy = self.pool.get('ir.module.category')
+ for installer in self.browse(cr, uid, ids, context=context):
+ to_install = simplejson.loads(installer.selection)
+
+ proxy = self.pool.get('ir.module.module')
+
+ module_ids = proxy.search(cr, uid, [('id', 'in', to_install['modules'])], context=context)
+ modules = set(record['name']
+ for record in proxy.read(cr, uid, module_ids, ['name'], context=context))
+
+ category_ids = category_proxy.search(cr, uid, [('id', 'in', to_install['categories'])], context=context)
+ selected_categories = set(record['name']
+ for record in category_proxy.read(cr, uid, category_ids, ['name'], context=context))
+
+ # FIXME: Use a workaround, but can do better
+ for category_name, default_modules in DEFAULT_MODULES.iteritems():
+ if category_name in selected_categories:
+ modules.update(default_modules)
+
+ # Special Cases:
+ # * project_mrp: the dependencies are sale, project, procurement, mrp_jit
+ if 'sale' in modules and 'project' in modules:
+ modules.add('project_mrp')
+
+ need_update = False
+ module_ids = proxy.search(cr, uid, [('name', 'in', list(modules))], context=context)
+ if module_ids:
+ proxy.state_update(cr, uid, module_ids, 'to install', ['uninstalled'], context=context)
+ need_update = True
+
+ category_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'module_category_hidden_link')
+ while True and category_id:
+ cr.execute("select id, name from ir_module_module m where category_id = %s \
+ and (select count(d.id) from ir_module_module_dependency d \
+ where d.module_id = m.id) = (select count(d.id) from \
+ ir_module_module_dependency d inner join ir_module_module m2 on d.name = m2.name \
+ where d.module_id=m.id and m2.state in %s ) and state = %s",
+ (category_id[1], ('installed', 'to install', 'to upgrade', ), 'uninstalled',))
+ inner_modules = [name for _, name in cr.fetchall()]
+
+ module_ids = proxy.search(cr, uid, [('name', 'in', inner_modules)], context=context)
+ if not module_ids:
+ break
+
+ modules.update(inner_modules)
+
+ proxy.state_update(cr, uid, module_ids, 'to install', ['uninstalled'], context=context)
+ need_update = True
+
+
+ domain = [('name', 'in', list(modules)),
+ ('state', '=', 'installed')]
+ for module in proxy.browse(cr, uid, proxy.search(cr, uid, domain, context=context), context):
cr.execute("update ir_actions_todo set state='open' \
- from ir_model_data as data where data.res_id = ir_actions_todo.id \
- and ir_actions_todo.type='special'\
- and data.model = 'ir.actions.todo' and data.module=%s", (module.name, ))
- if need_install:
- self.pool = pooler.restart_pool(cr.dbname, update_module=True)[1]
- return
+ from ir_model_data as data where data.res_id = ir_actions_todo.id \
+ and ir_actions_todo.type='special'\
+ and data.model = 'ir.actions.todo' and data.module=%s", (module.name, ))
+
+ if need_update:
+ cr.commit()
+ self.pool = pooler.restart_pool(cr.dbname, update_module=True)[1]
+
+ if 'html' in context:
+ return {'type' : 'ir.actions.reload'}
+ else:
+ return {'type' : 'ir.actions.act_window_close'}
#Migrate data from another application Conf wiz
@@ -158,11 +335,10 @@ class product_installer(osv.osv_memory):
_name = 'product.installer'
_inherit = 'res.config'
_columns = {
- 'customers': fields.selection([('create','Create'), ('import','Import')], 'Customers', size=32, required=True, help="Import or create customers"),
-
+ 'customers': fields.selection([('create','Create'), ('import','Import')], 'Customers', size=32, required=True, help="Import or create customers"),
}
_defaults = {
- 'customers': 'create',
+ 'customers': 'create',
}
def execute(self, cr, uid, ids, context=None):
@@ -247,19 +423,19 @@ class specify_partner_terminology(osv.osv_memory):
_name = 'base.setup.terminology'
_inherit = 'res.config'
_columns = {
- 'partner': fields.selection([('Customer','Customer'),
- ('Client','Client'),
- ('Member','Member'),
- ('Patient','Patient'),
- ('Partner','Partner'),
- ('Donor','Donor'),
- ('Guest','Guest'),
- ('Tenant','Tenant')
- ],
- 'Choose how to call a Customer', required=True ),
+ 'partner': fields.selection([
+ ('Customer','Customer'),
+ ('Client','Client'),
+ ('Member','Member'),
+ ('Patient','Patient'),
+ ('Partner','Partner'),
+ ('Donor','Donor'),
+ ('Guest','Guest'),
+ ('Tenant','Tenant')
+ ], 'How do you call a Customer', required=True ),
}
_defaults={
- 'partner' :'Partner',
+ 'partner' :'Customer',
}
def make_translations(self, cr, uid, ids, name, type, src, value, res_id=0, context=None):
diff --git a/addons/base_setup/base_setup_views.xml b/addons/base_setup/base_setup_views.xml
index a6059148b51..01051c4cc60 100644
--- a/addons/base_setup/base_setup_views.xml
+++ b/addons/base_setup/base_setup_views.xml
@@ -1,93 +1,35 @@
<openerp>
<data>
- <record id="view_base_setup_installer" model="ir.ui.view">
- <field name="name">base.setup.installer.view</field>
- <field name="model">base.setup.installer</field>
- <field name="type">form</field>
- <field name="inherit_id" ref="base.res_config_installer"/>
- <field name="arch" type="xml">
- <data>
- <form position="attributes">
- <attribute name="string">Install Applications</attribute>
- </form>
- <xpath expr="//label[@string='description']" position="attributes">
- <attribute name="string">Select the Applications you want your system to cover. If you are not sure about your exact needs at this stage, you can easily install them later.</attribute>
- </xpath>
- <xpath expr="//separator[@string=&quot;vsep&quot;]" position="attributes">
- <attribute name="string"/>
- <attribute name="rowspan">15</attribute>
- </xpath>
- <xpath expr="//button[@string='Install Modules']" position="attributes">
- <attribute name="string">Install</attribute>
- </xpath>
- <separator string="title" position="attributes">
- <attribute name="string">Install Applications</attribute>
- </separator>
- <group colspan="8">
- <field name="crm" />
- <field name="sale" />
- <field name="project" />
- <field name="knowledge" />
- <field name="stock" />
- <field name="mrp" />
- <field name="account_voucher" />
- <field name="account_accountant" />
- <field name="purchase" />
- <field name="hr" />
- <field name="profile_tools" />
- <field name="marketing" groups="base.group_extended" />
- <field name="point_of_sale"/>
- <field name="report_designer" groups="base.group_extended" />
- <separator string="Install Specific Industry Applications" colspan="4"/>
- <field name="association" />
- <field name="auction" />
- <field name="product_expiry" />
- <group name="crm"/>
- <group name="sale"/>
- <group name="project"/>
- <group name="knowledge"/>
- <group name="mrp"/>
- <group name="account_accountant"/>
- <group name="purchase"/>
- <group name="hr"/>
- <group name="profile_tools"/>
- <group name="marketing"/>
- <group name="report_designer"/>
- <group name="association"/>
- </group>
- </data>
- </field>
- </record>
- <record id="action_base_setup_installer" model="ir.actions.act_window">
- <field name="name">Install Applications</field>
- <field name="type">ir.actions.act_window</field>
- <field name="res_model">base.setup.installer</field>
- <field name="view_id" ref="view_base_setup_installer"/>
- <field name="view_type">form</field>
- <field name="view_mode">form</field>
- <field name="target">new</field>
- </record>
- <record id="base_setup_installer_todo" model="ir.actions.todo">
- <field name="action_id" ref="action_base_setup_installer"/>
- <field name="category_id" ref="base.category_administration_config"/>
- <field name="sequence">2</field>
- </record>
+ <record model="ir.actions.act_window" id="action_base_setup_installer_beta">
+ <field name="name">Install Applications</field>
+ <field name="res_model">base.setup.installer</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">form</field>
+ <field name="target">new</field>
+ </record>
- <record id="action_start_configurator" model="ir.actions.server">
- <field name="name">Start Configuration</field>
- <field name="model_id" ref="base.model_ir_actions_todo"/>
- <field name="state">code</field>
- <field name="code" eval="'# obj is a browse_record and will provide stupid ids to method\n' 'action = pool.get(\'ir.actions.todo\').action_launch(cr, uid, ' + str([ref('base_setup_installer_todo')]) + ', context=context)'"/>
- </record>
- <menuitem name="Add More Features" action="action_start_configurator" id="menu_view_base_module_configuration" parent="base.menu_config" type="server" icon="STOCK_EXECUTE" sequence="100"/>
- <record id="ir_ui_view_sc_configuration" model="ir.ui.view_sc">
- <field name="name">Add More Features</field>
- <field name="resource">ir.ui.menu</field>
- <field name="user_id" ref="base.user_root"/>
- <field name="res_id" ref="menu_view_base_module_configuration"/>
- </record>
+ <record id="base_setup_installer_todo" model="ir.actions.todo">
+ <field name="action_id" ref="action_base_setup_installer_beta" />
+ <field name="category_id" ref="base.category_administration_config"/>
+ <field name="sequence">2</field>
+ </record>
+
+ <record id="action_start_configurator" model="ir.actions.server">
+ <field name="name">Start Configuration</field>
+ <field name="model_id" ref="base.model_ir_actions_todo"/>
+ <field name="state">code</field>
+ <field name="code" eval="'# obj is a browse_record and will provide stupid ids to method\n' 'action = pool.get(\'ir.actions.todo\').action_launch(cr, uid, ' + str([ref('base_setup_installer_todo')]) + ', context=context)'"/>
+ </record>
+
+ <menuitem name="Add More Features" action="action_start_configurator" id="menu_view_base_module_configuration" parent="base.menu_config" type="server" icon="STOCK_EXECUTE" sequence="100"/>
+ <record id="ir_ui_view_sc_configuration" model="ir.ui.view_sc">
+ <field name="name">Add More Features</field>
+ <field name="resource">ir.ui.menu</field>
+ <field name="user_id" ref="base.user_root"/>
+ <field name="res_id" ref="menu_view_base_module_configuration" />
+ </record>
<!-- Import or create customers configartion view -->
<record id="action_import_create_installer" model="ir.actions.act_window">
@@ -113,13 +55,13 @@
<field name="arch" type="xml">
<data>
<form position="attributes">
- <attribute name="string">Define default users preferences</attribute>
+ <attribute name="string">Define Users's Preferences</attribute>
</form>
<xpath expr="//separator[@string=&quot;title&quot;]" position="attributes">
- <attribute name="string">Define default users preferences</attribute>
+ <attribute name="string">Define Users's Preferences</attribute>
</xpath>
<xpath expr="//label[@string='description']" position="attributes">
- <attribute name="string">Specify default values. This will set the default values for each new user, each user is free to change his own preferences.</attribute>
+ <attribute name="string">This will set the default preferences for all users. After this, each user will be able to update his own preferences.</attribute>
</xpath>
<xpath expr="//separator[@string=&quot;vsep&quot;]" position="attributes">
<attribute name="string"/>
@@ -148,6 +90,7 @@
<record id="config_action_user_preferences_config_form" model="ir.actions.todo">
<field name="action_id" ref="action_user_preferences_config_form"/>
<field name="category_id" ref="base.category_administration_config"/>
+ <field name="type">once</field>
</record>
<!-- Create Additional Users -->
@@ -156,14 +99,13 @@
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.users</field>
<field name="view_type">form</field>
- <field name="view_mode">form</field>
- <field name="view_id" ref="base.view_users_form"/>
+ <field name="view_mode">tree,form</field>
+ <field name="view_id" eval="False"/>
</record>
<record id="config_wizard_action_config_user_form" model="ir.actions.todo">
<field name="action_id" ref="action_config_access_other_user"/>
<field name="category_id" ref="base.category_administration_config"/>
<field name="sequence">1000</field>
- <field name="state">done</field>
</record>
@@ -182,7 +124,7 @@
<attribute name="string">Specify Your Terminology</attribute>
</xpath>
<xpath expr="//label[@string='description']" position="attributes">
- <attribute name="string">Based on the industry needs you can use this wizard to change the terminologies for Partners. </attribute>
+ <attribute name="string">You can use this wizard to change the terminologies for customers in the whole application.</attribute>
</xpath>
<xpath expr="//separator[@string=&quot;vsep&quot;]" position="attributes">
<attribute name="string"/>
@@ -208,6 +150,7 @@
<record id="config_action_partner_terminology_config_form" model="ir.actions.todo">
<field name="action_id" ref="action_partner_terminology_config_form"/>
<field name="category_id" ref="base.category_administration_config"/>
+ <field name="type">once</field>
</record>
<!-- Company config -->
@@ -225,21 +168,6 @@
<field name="category_id" ref="base.category_administration_config"/>
<field name="sequence">1</field>
</record>
- <!-- register Upload Logo configuration wizard -->
- <record id="base_setup_company_logo_action" model="ir.actions.act_window">
- <field name="name">Upload Your Company Logo</field>
- <field name="type">ir.actions.act_window</field>
- <field name="res_model">res.company</field>
- <field name="view_id" ref="base.view_company_form"/>
- <field name="view_type">form</field>
- <field name="view_mode">form</field>
- <field name="context">{'res_id': user.company_id.id}</field>
- </record>
- <record id="config_wizard_action_res_company_logo" model="ir.actions.todo">
- <field name="action_id" ref="base_setup_company_logo_action"/>
- <field name="category_id" ref="base.category_administration_config"/>
- <field name="state">done</field>
- </record>
</data>
</openerp>
diff --git a/addons/base_setup/i18n/et.po b/addons/base_setup/i18n/et.po
index dfa1b770fb7..ab59560bbb5 100644
--- a/addons/base_setup/i18n/et.po
+++ b/addons/base_setup/i18n/et.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2009-09-16 14:54+0000\n"
-"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
+"PO-Revision-Date: 2011-10-10 19:33+0000\n"
+"Last-Translator: Aare Vesi <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:11+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-10-11 05:35+0000\n"
+"X-Generator: Launchpad (build 14123)\n"
#. module: base_setup
#: field:base.setup.company,city:0
@@ -29,12 +29,12 @@ msgstr "Paigalda"
#. module: base_setup
#: field:base.setup.installer,account_voucher:0
msgid "Invoicing"
-msgstr ""
+msgstr "Arveldamine"
#. module: base_setup
#: field:base.setup.installer,hr:0
msgid "Human Resources"
-msgstr ""
+msgstr "Inimressursid"
#. module: base_setup
#: field:base.setup.company,email:0
@@ -44,7 +44,7 @@ msgstr "E-post"
#. module: base_setup
#: field:base.setup.company,account_no:0
msgid "Bank Account No"
-msgstr ""
+msgstr "Pangakonto number"
#. module: base_setup
#: field:base.setup.installer,profile_tools:0
@@ -100,7 +100,7 @@ msgstr ""
#: field:base.setup.company,progress:0
#: field:base.setup.installer,progress:0
msgid "Configuration Progress"
-msgstr ""
+msgstr "Seadistamise edenemine"
#. module: base_setup
#: field:base.setup.company,rml_footer2:0
@@ -116,12 +116,12 @@ msgstr "Valuuta"
#. module: base_setup
#: field:base.setup.company,state_id:0
msgid "Fed. State"
-msgstr ""
+msgstr "Maakond"
#. module: base_setup
#: field:base.setup.installer,marketing:0
msgid "Marketing"
-msgstr ""
+msgstr "Turundus"
#. module: base_setup
#: field:base.setup.company,company_id:0
@@ -131,7 +131,7 @@ msgstr ""
#. module: base_setup
#: field:base.setup.installer,sale:0
msgid "Sales Management"
-msgstr ""
+msgstr "Müügihaldus"
#. module: base_setup
#: help:base.setup.installer,profile_tools:0
@@ -172,7 +172,7 @@ msgstr ""
#. module: base_setup
#: view:base.setup.installer:0
msgid "title"
-msgstr ""
+msgstr "pealkiri"
#. module: base_setup
#: field:base.setup.installer,knowledge:0
@@ -292,7 +292,7 @@ msgstr ""
#. module: base_setup
#: field:base.setup.company,zip:0
msgid "Zip Code"
-msgstr ""
+msgstr "Postiindeks"
#. module: base_setup
#: view:base.setup.config:0
@@ -335,7 +335,7 @@ msgstr ""
#. module: base_setup
#: field:base.setup.installer,purchase:0
msgid "Purchase Management"
-msgstr ""
+msgstr "Ostuhaldus"
#. module: base_setup
#: help:base.setup.installer,sale:0
@@ -345,12 +345,12 @@ msgstr ""
#. module: base_setup
#: field:base.setup.installer,stock:0
msgid "Warehouse Management"
-msgstr ""
+msgstr "Laohaldus"
#. module: base_setup
#: field:base.setup.installer,project:0
msgid "Project Management"
-msgstr ""
+msgstr "Projektihaldus"
#. module: base_setup
#: field:base.setup.config,installed_users:0
@@ -360,12 +360,12 @@ msgstr ""
#. module: base_setup
#: view:base.setup.config:0
msgid "New Database"
-msgstr ""
+msgstr "Uus andmebaas"
#. module: base_setup
#: field:base.setup.installer,crm:0
msgid "Customer Relationship Management"
-msgstr ""
+msgstr "Kliendisuhete haldus"
#. module: base_setup
#: help:base.setup.installer,auction:0
@@ -407,17 +407,17 @@ msgstr ""
#: field:base.setup.config,config_logo:0
#: field:base.setup.installer,config_logo:0
msgid "Image"
-msgstr ""
+msgstr "Pilt"
#. module: base_setup
#: field:base.setup.installer,product_expiry:0
msgid "Food Industry"
-msgstr ""
+msgstr "Toidutööstus"
#. module: base_setup
#: field:base.setup.installer,mrp:0
msgid "Manufacturing"
-msgstr ""
+msgstr "Tootmine"
#. module: base_setup
#: view:base.setup.company:0