diff options
Diffstat (limited to 'addons/base_setup')
| -rw-r--r-- | addons/base_setup/__openerp__.py | 2 | ||||
| -rw-r--r-- | addons/base_setup/base_setup.py | 400 | ||||
| -rw-r--r-- | addons/base_setup/base_setup_views.xml | 142 | ||||
| -rw-r--r-- | addons/base_setup/i18n/et.po | 42 |
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="vsep"]" 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="title"]" 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="vsep"]" 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="vsep"]" 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 |
