bzr revid: nicolas.vanhoren@openerp.com-20110708115051-qz2wwmuhwb5vafze
This commit is contained in:
niv-openerp 2011-07-08 13:50:51 +02:00
commit c9869e5c79
119 changed files with 2619 additions and 1165 deletions

View File

@ -45,35 +45,19 @@
<record id="view_account_modules_installer" model="ir.ui.view">
<field name="name">account.installer.modules.form</field>
<field name="model">account.installer.modules</field>
<field name="model">base.setup.installer</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_installer"/>
<field name="inherit_id" ref="base_setup.view_base_setup_installer"/>
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">Accounting Application Configuration</attribute>
</form>
<separator string="title" position="attributes">
<attribute name="string">Configure Your Accounting Application</attribute>
</separator>
<xpath expr="//label[@string='description']" position="attributes">
<attribute name="string">Add extra Accounting functionalities to the ones already installed.</attribute>
<xpath expr="//group[@name='account_accountant']" position="replace">
<newline/>
<separator string="Accounting &amp; Finance Features" colspan="4" />
<field name="account_followup"/>
<field name="account_payment"/>
<field name="account_analytic_plans"/>
<field name="account_anglo_saxon"/>
</xpath>
<xpath expr="//button[@string='Install Modules']" position="attributes">
<attribute name="string">Configure</attribute>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='string'></attribute>
</xpath>
<group colspan="8">
<field name="account_voucher"/>
<field name="account_followup"/>
<field name="account_payment"/>
<field name="account_analytic_plans"/>
<field name="account_anglo_saxon"/>
<!-- <field name="account_voucher_payment"/>-->
</group>
</data>
</field>
</record>
@ -88,27 +72,16 @@
<field name="target">new</field>
</record>
<record id="action_account_installer" model="ir.actions.act_window">
<field name="name">Accounting Application Configuration</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.installer.modules</field>
<field name="view_id" ref="view_account_modules_installer"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="category_accounting_configuration" model="ir.actions.todo.category">
<field name="name">Accounting</field>
<field name="sequence">5</field>
</record>
<record id="account_configuration_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_account_configuration_installer"/>
<field name="category_id" ref="category_accounting_configuration"/>
<field name="sequence">3</field>
<field name="restart">onskip</field>
</record>
<record id="account_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_account_installer"/>
<field name="sequence">5</field>
<field name="restart">always</field>
<field eval="[(6,0,[ref('base.group_extended')])]" name="groups_id"/>
<field name="type">special</field>
</record>
</data>

View File

@ -22,12 +22,9 @@
<field name="model">res.company</field>
<field name="type">form</field>
<field name="arch" type="xml">
<page string="Configuration" position="inside">
<group col="2" colspan="2">
<separator string="Reserve And Profit/Loss Account" colspan="2"/>
<field name="currency_id" position="after">
<field name="property_reserve_and_surplus_account" colspan="2"/>
</group>
</page>
</field>
</field>
</record>

View File

@ -612,12 +612,12 @@
<record id="conf_a_expense" model="account.account.template">
<field name="tax_ids" eval="[(6,0,[ref('otaxs')])]"/>
</record>
<record id="action_wizard_multi_chart_todo" model="ir.actions.todo">
<field name="name">Generate Chart of Accounts from a Chart Template</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="state">open</field>
<field name="restart">onskip</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
<field name="type">special</field>
</record>

File diff suppressed because it is too large Load Diff

View File

@ -240,8 +240,7 @@ class account_installer(osv.osv_memory):
account_installer()
class account_installer_modules(osv.osv_memory):
_name = 'account.installer.modules'
_inherit = 'res.config.installer'
_inherit = 'base.setup.installer'
_columns = {
'account_analytic_plans': fields.boolean('Multiple Analytic Plans',
help="Allows invoice lines to impact multiple analytic accounts "
@ -253,18 +252,11 @@ class account_installer_modules(osv.osv_memory):
help="Helps you generate reminder letters for unpaid invoices, "
"including multiple levels of reminding and customized "
"per-partner policies."),
'account_voucher': fields.boolean('Voucher Management',
help="Account Voucher module includes all the basic requirements of "
"Voucher Entries for Bank, Cash, Sales, Purchase, Expenses, Contra, etc... "),
'account_anglo_saxon': fields.boolean('Anglo-Saxon Accounting',
help="This module will support the Anglo-Saxons accounting methodology by "
"changing the accounting logic with stock transactions."),
}
_defaults = {
'account_voucher': True,
}
account_installer_modules()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
@ -15,10 +15,9 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import account_analytic_plans
import wizard
import report

View File

@ -69,7 +69,8 @@ of distribution models.
'account_analytic_plans_view.xml',
'account_analytic_plans_report.xml',
'wizard/analytic_plan_create_model_view.xml',
'wizard/account_crossovered_analytic_view.xml'
'wizard/account_crossovered_analytic_view.xml',
'account_analytic_plans_installer_view.xml'
],
'demo_xml' : [],
'test' : ['test/acount_analytic_plans_report.yml'],

View File

@ -0,0 +1,25 @@
<?xml version="1.0"?>
<openerp>
<data>
<record model="ir.actions.act_window" id="account_analytic_plan_form_action_installer">
<field name="name">Account Analytic Plans</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.analytic.plan</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="account_analytic_plans.account_analytic_plan_form"/>
</record>
<record id="account_analytic_plan_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="account_analytic_plan_form_action_installer"/>
<field name="category_id" ref="account.category_accounting_configuration"/>
<field name="sequence">15</field>
<field name="type">normal</field>
<field name="state">skip</field>
</record>
</data>
</openerp>

View File

@ -33,6 +33,20 @@ class followup(osv.osv):
_defaults = {
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'account_followup.followup', context=c),
}
def check_company_uniq(self, cr, uid, ids, context=None):
sr_id = self.search(cr,uid,[],context=context)
lines = self.browse(cr, uid, sr_id, context=context)
company = []
for l in lines:
if l.company_id.id in company:
return False
if l.company_id.id not in company:
company.append(l.company_id.id)
return True
_constraints = [
(check_company_uniq, 'Only One Folllowup by Company.',['company_id'] )
]
followup()
@ -47,6 +61,9 @@ class followup_line(osv.osv):
'followup_id': fields.many2one('account_followup.followup', 'Follow Ups', required=True, ondelete="cascade"),
'description': fields.text('Printed Message', translate=True),
}
_defaults = {
'start': 'days',
}
followup_line()

View File

@ -8,10 +8,9 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Follow-Up Lines">
<field name="sequence"/>
<field name="name"/>
<field name="delay"/>
<field name="start"/>
<field name="start" groups="base.group_extended"/>
</tree>
</field>
</record>
@ -22,12 +21,14 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Follow-Up Lines">
<field name="sequence"/>
<field name="name" />
<field name="delay" />
<field name="start" />
<group col="6" colspan="4">
<field name="name" />
<field name="delay" />
<field name="start" groups="base.group_extended"/>
</group>
<newline/>
<field colspan="4" name="description" />
<separator string="Message" colspan="4"/>
<field colspan="4" name="description" nolabel="1"/>
<separator string="Legend" colspan="4"/>
<label string="%%(partner_name)s: Partner Name" colspan="2"/>
<label string="%%(date)s: Current Date" colspan="2"/>
@ -45,9 +46,7 @@
<form string="Follow-Up">
<field name="name" />
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<separator colspan="4" string="Description"/>
<field colspan="4" name="description" nolabel="1" />
<separator colspan="4" string="Followup Lines"/>
<separator colspan="4" string="" />
<field colspan="4" name="followup_line" nolabel="1"/>
</form>
</field>
@ -75,6 +74,10 @@
<field name="name"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group>
<newline/>
<group expand="0" string="Group By...">
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
</group>
</search>
</field>
</record>
@ -85,6 +88,7 @@
<field name="res_model">account_followup.followup</field>
<field name="search_view_id" ref="view_account_followup_filter"/>
<field name="view_type">form</field>
<field name="help">Define follow up levels and their related messages and delay. For each step, specify the message and the day of delay. Use the legend to know the using code to adapt the email content to the good context (good name, good date) and you can manage the multi language of messages.</field>
</record>
<menuitem action="action_account_followup_definition_form" id="account_followup_menu"
parent="account.menu_configuration_misc"/>
@ -170,6 +174,28 @@
</field>
</field>
</record>
<!-- Configure Follow-Ups Wizard -->
<record id="action_view_account_followup_followup_form" model="ir.actions.act_window">
<field name="name">Configure Follow-Ups</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account_followup.followup</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="view_id" ref="view_account_followup_followup_form"/>
</record>
<!-- register configuration wizard -->
<record id="config_wizard_view_account_followup_followup_form" model="ir.actions.todo">
<field name="action_id" ref="action_view_account_followup_followup_form"/>
<field name="category_id" ref="account.category_accounting_configuration"/>
<field name="target">current</field>
<field name="type">normal</field>
<field name="state">skip</field>
</record>
</data>
</openerp>

View File

@ -1,8 +1,12 @@
-
In order to test account followup module in OpenERP I create a FollowUp structure
-
!record {model: res.company, id: ymltest_company_2}:
name: Acme 2
-
!record {model: account_followup.followup, id: account_followup_followup_testfollowups0}:
description: First letter after 15 net days, 30 net days and 45 days end of month levels.
company_id: ymltest_company_2
followup_line:
- delay: 15
name: 'level 0: 15 days'

View File

@ -171,7 +171,7 @@ class account_followup_print_all(osv.osv_memory):
"SELECT * "\
"FROM account_followup_followup_line "\
"WHERE followup_id=%s "\
"ORDER BY sequence", (fup_id,))
"ORDER BY delay", (fup_id,))
for result in cr.dictfetchall():
delay = datetime.timedelta(days=result['delay'])
fups[old] = (current_date - delay, result['id'])

View File

@ -49,8 +49,10 @@
<record id="account_seq_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_account_seq_installer"/>
<field name="category_id" ref="account.category_accounting_configuration"/>
<field name="sequence">3</field>
<field name="restart">onskip</field>
<field name="type">special</field>
<field name="state">skip</field>
</record>
</data>

View File

@ -22,17 +22,13 @@
from osv import fields, osv
class profile_association_config_install_modules_wizard(osv.osv_memory):
_name='profile.association.config.install_modules_wizard'
_inherit = 'res.config.installer'
_inherit = 'base.setup.installer'
_columns = {
'hr_expense':fields.boolean('Expenses Tracking', help="Tracks and manages employee expenses, and can "
'hr_expense':fields.boolean('Resources Management: Expenses Tracking', help="Tracks and manages employee expenses, and can "
"automatically re-invoice clients if the expenses are "
"project-related."),
'project':fields.boolean('Project Management',
help="Helps you manage your projects and tasks by tracking them, "
"generating plannings, etc..."),
'event_project':fields.boolean('Events', help="Helps you to manage and organize your events."),
'event_project':fields.boolean('Event Management: Events', help="Helps you to manage and organize your events."),
'project_gtd':fields.boolean('Getting Things Done',
help="GTD is a methodology to efficiently organise yourself and your tasks. This module fully integrates GTD principle with OpenERP's project management."),
'wiki': fields.boolean('Wiki', help="Lets you create wiki pages and page groups in order "

View File

@ -3,56 +3,22 @@
<data>
<record id="view_confirm_install_module_form" model="ir.ui.view">
<field name="name">Association Application Configuration</field>
<field name="model">profile.association.config.install_modules_wizard</field>
<field name="model">base.setup.installer</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_installer"/>
<field name="inherit_id" ref="base_setup.view_base_setup_installer"/>
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">Association Application Configuration</attribute>
</form>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='string'></attribute>
</xpath>
<xpath expr="//label[@string='description']"
position="attributes">
<attribute name="string">Here are specific applications related to the Association Profile you selected.</attribute>
<xpath expr="//group[@name='association']" position="replace">
<newline/>
<separator string="Associations Features" colspan="4" />
<field name="project_gtd" />
<field name="wiki" />
<field name="event_project" />
<field name="hr_expense" />
</xpath>
<xpath expr="//button[@string='Install Modules']" position="attributes">
<attribute name="string">Configure</attribute>
</xpath>
<separator string="title" position="replace"/>
<group colspan="8">
<separator string="Project Management" colspan="4"/>
<field name="project"/>
<field name="project_gtd"/>
<field name="wiki"/>
<separator string="Event Management" colspan="4"/>
<field name="event_project"/>
<separator string="Resources Management" colspan="4"/>
<field name="hr_expense"/>
</group>
</data>
</field>
</record>
<record id="action_config_install_module" model="ir.actions.act_window">
<field name="name">Association Application Configuration</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">profile.association.config.install_modules_wizard</field>
<field name="view_id" ref="view_confirm_install_module_form"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record model="ir.actions.todo"
id="config_install_module">
<field name="action_id" ref="action_config_install_module"/>
<field name="sequence">3</field>
<field name="restart">always</field>
</record>
<menuitem
name="Association"
id="base.menu_association"

View File

@ -7,19 +7,19 @@ 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: 2010-09-09 07:09+0000\n"
"PO-Revision-Date: 2011-07-07 11:06+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-04-29 05:25+0000\n"
"X-Generator: Launchpad (build 12758)\n"
"X-Launchpad-Export-Date: 2011-07-08 04:43+0000\n"
"X-Generator: Launchpad (build 13168)\n"
#. module: auction
#: model:ir.ui.menu,name:auction.auction_report_menu
msgid "Reporting"
msgstr ""
msgstr "Ataskaitos"
#. module: auction
#: model:ir.model,name:auction.model_auction_taken
@ -29,7 +29,7 @@ msgstr ""
#. module: auction
#: view:auction.lots:0
msgid "Set to draft"
msgstr ""
msgstr "Nustatyti kaip juodraštį"
#. module: auction
#: view:auction.deposit:0
@ -38,7 +38,7 @@ msgstr ""
#: view:report.auction:0
#: field:report.auction,seller:0
msgid "Seller"
msgstr ""
msgstr "Pardavėjas"
#. module: auction
#: field:auction.lots,name:0
@ -48,7 +48,7 @@ msgstr ""
#. module: auction
#: field:auction.lots.sms.send,text:0
msgid "SMS Message"
msgstr ""
msgstr "Trumpoji žinutė (SMS)"
#. module: auction
#: view:auction.catalog.flagey:0
@ -71,7 +71,7 @@ msgstr ""
#: field:auction.bid_line,lot_id:0
#: field:auction.lot.history,lot_id:0
msgid "Object"
msgstr ""
msgstr "Objektas"
#. module: auction
#: field:report.auction.object.date,obj_num:0
@ -96,7 +96,7 @@ msgstr ""
#: field:report.auction,buyer:0
#: report:report.auction.buyer.result:0
msgid "Buyer"
msgstr ""
msgstr "Pirkėjas"
#. module: auction
#: field:report.auction,object:0
@ -123,7 +123,7 @@ msgstr ""
#: field:auction.lots.make.invoice,amount:0
#: field:auction.lots.make.invoice.buyer,amount:0
msgid "Invoiced Amount"
msgstr ""
msgstr "Suma, kuriai išrašyta sąskaita-faktūra"
#. module: auction
#: help:auction.lots,name:0
@ -141,7 +141,7 @@ msgstr ""
#: field:auction.pay.buy,amount2:0
#: field:auction.pay.buy,amount3:0
msgid "Amount"
msgstr ""
msgstr "Suma"
#. module: auction
#: model:ir.actions.act_window,name:auction.action_deposit_border
@ -164,7 +164,7 @@ msgstr ""
#. module: auction
#: field:auction.dates,account_analytic_id:0
msgid "Analytic Account"
msgstr ""
msgstr "Analitinė sąskaita"
#. module: auction
#: help:auction.pay.buy,amount3:0

View File

@ -51,8 +51,10 @@
<record id="base_contact_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_base_contact_installer"/>
<field name="category_id" ref="base.category_administration_config"/>
<field name="sequence">3</field>
<field name="state">skip</field>
<field name="type">special</field>
</record>
</data>

View File

@ -56,8 +56,9 @@
<record id="report_designer_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_report_designer_installer"/>
<field name="category_id" ref="base.category_tools_customization_config"/>
<field name="sequence">3</field>
<field name="restart">always</field>
<field name="type">special</field>
</record>
<record id="action_report_designer_wizard" model="ir.actions.act_window">

View File

@ -20,7 +20,6 @@
##############################################################################
import installer
import todo
import wizard
import os
import base64

View File

@ -37,8 +37,8 @@ It also helps to easily configure your company.
'depends': ['base'],
'init_xml': ['base_setup_data.xml'],
'update_xml': ['security/ir.model.access.csv',
'wizard/res_company_logo_view.xml',
'base_setup_installer.xml',
'base_setup_todo.xml',
],
'demo_xml': ['base_setup_demo.xml'],
'installable': True,

View File

@ -1,5 +1,6 @@
<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>
@ -23,7 +24,7 @@
<separator string="title" position="attributes">
<attribute name="string">Install Applications</attribute>
</separator>
<group colspan="8">
<field name="crm" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account_accountant,purchase,hr,point_of_sale,marketing,profile_tools,report_designer,association,auction,product_expiry)"/>
<field name="sale" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account_accountant,purchase,hr,point_of_sale,marketing,profile_tools,report_designer,association,auction,product_expiry)"/>
@ -40,9 +41,21 @@
<field name="point_of_sale" groups="base.group_extended" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account_accountant,purchase,hr,point_of_sale,marketing,profile_tools,report_designer,association,auction,product_expiry)"/>
<field name="report_designer" groups="base.group_extended" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account_accountant,purchase,hr,point_of_sale,marketing,profile_tools,report_designer,association,auction,product_expiry)"/>
<separator string="Install Specific Industry Applications" colspan="4"/>
<field name="association" attrs="{'readonly':['|',('auction','=',True),('product_expiry','=',True)]}" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account_accountant,purchase,hr,point_of_sale,marketing,profile_tools,report_designer,association,auction,product_expiry)"/>
<field name="auction" attrs="{'readonly':['|',('association','=',True),('product_expiry','=',True)]}" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account_accountant,purchase,hr,point_of_sale,marketing,profile_tools,report_designer,association,auction,product_expiry)"/>
<field name="product_expiry" attrs="{'readonly':['|',('association','=',True),('auction','=',True)]}" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account_accountant,purchase,hr,point_of_sale,marketing,profile_tools,report_designer,association,auction,product_expiry)"/>
<field name="association" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account_accountant,purchase,hr,point_of_sale,marketing,profile_tools,report_designer,association,auction,product_expiry)"/>
<field name="auction" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account_accountant,purchase,hr,point_of_sale,marketing,profile_tools,report_designer,association,auction,product_expiry)"/>
<field name="product_expiry" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account_accountant,purchase,hr,point_of_sale,marketing,profile_tools,report_designer,association,auction,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>
@ -60,8 +73,237 @@
<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>
<field name="restart">always</field>
<field name="type">normal_recurring</field>
</record>
<!-- Migrate data from another application Conf Wiz-->
<record id="view_migrade_application_installer_modules" model="ir.ui.view">
<field name="name">migrade.application.installer.modules.form</field>
<field name="model">migrade.application.installer.modules</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">Migrate data from another application</attribute>
</form>
<separator string="title" position="attributes">
<attribute name="string">Migrate data from another application</attribute>
</separator>
<xpath expr="//label[@string='description']" position="attributes">
<attribute name="string">Import data from other applications. Following the selected application, you can import more or less type of data matching to OpenERP objects. Choose the application and then the data you want to import in OpenERP</attribute>
</xpath>
<xpath expr="//button[@string='Install Modules']" position="attributes">
<attribute name="string">Configure</attribute>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='string'></attribute>
</xpath>
<group colspan="8">
<field name="import_saleforce"/>
<field name="import_sugarcrm"/>
<field name="sync_google_contact"/>
<field name="quickbooks_ippids"/>
</group>
</data>
</field>
</record>
<record id="action_migrade_application_installer_modules" model="ir.actions.act_window">
<field name="name">Migrate data from another application</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">migrade.application.installer.modules</field>
<field name="view_id" ref="view_migrade_application_installer_modules"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="migrade_application_installer_modules_todo" model="ir.actions.todo">
<field name="action_id" ref="action_migrade_application_installer_modules"/>
<field name="category_id" ref="base.category_administration_config"/>
<field name="type">normal</field>
<field name="state">skip</field>
</record>
<!-- Import or create customers configartion view -->
<record id="action_import_create_installer" model="ir.actions.act_window">
<field name="name">Import or create customers </field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="base.view_partner_tree"/>
<field name="help">Create some customers, suppliers and their contacts manually or import a CSV spreadsheet by clicking on the import link</field>
</record>
<!-- register configuration wizard -->
<record id="config_wizard_action_import_create_installer" model="ir.actions.todo">
<field name="action_id" ref="action_import_create_installer"/>
<field name="category_id" ref="base.category_administration_config"/>
<field name="type">normal</field>
<field name="target">current</field>
<field name="state">skip</field>
</record>
<!-- Define default users preferences-->
<record id="view_user_preferences_config_form" model="ir.ui.view">
<field name="name">Define default users preferences</field>
<field name="model">user.preferences.config</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_view_base"/>
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">Define default users preferences</attribute>
</form>
<xpath expr='//separator[@string="title"]' position='attributes'>
<attribute name='string'>Define default users 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>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='string'></attribute>
<attribute name='rowspan'>12</attribute>
</xpath>
<group string="res_config_contents" position="replace">
<group colspan="4">
<field colspan="4" name="view" />
<field colspan="4" name="context_lang" />
<field colspan="4" name="context_tz" />
<field colspan="4" name="menu_tips" />
</group>
</group>
</data>
</field>
</record>
<record id="action_user_preferences_config_form" model="ir.actions.act_window">
<field name="name">Define default users preferences</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">user.preferences.config</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_user_preferences_config_form"/>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<!-- Register configuration wizard -->
<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">normal</field>
<field name="state">skip</field>
</record>
<!-- Config Wiz Create New User's Login -->
<record id="action_config_access_other_user" model="ir.actions.act_window">
<field name="name">Create New User's Login</field>
<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"/>
</record>
<!-- register configuration wizard -->
<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="type">normal</field>
<field name="target">current</field>
<field name="sequence">1000</field>
<field name="state">cancel</field>
</record>
<!-- register Upload Logo configuration wizard -->
<record id="config_wizard_action_res_company_logo" model="ir.actions.todo">
<field name="action_id" ref="action_res_company_logo"/>
<field name="category_id" ref="base.category_administration_config"/>
<field name="type">normal</field>
<field name="state">cancel</field>
</record>
<!-- Specify Your Terminology Config Wiz-->
<record id="view_partner_terminology_config_form" model="ir.ui.view">
<field name="name">Specify Your Terminology</field>
<field name="model">specify.partner.terminology</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_view_base"/>
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">Specify Your Terminology</attribute>
</form>
<xpath expr='//separator[@string="title"]' position='attributes'>
<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>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='string'></attribute>
<attribute name='rowspan'>12</attribute>
</xpath>
<group string="res_config_contents" position="replace">
<group colspan="4">
<field colspan="4" name="partner" />
</group>
</group>
</data>
</field>
</record>
<record id="action_partner_terminology_config_form" model="ir.actions.act_window">
<field name="name">Specify Your Terminology</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">specify.partner.terminology</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_partner_terminology_config_form"/>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<!-- Register configuration wizard -->
<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">normal</field>
<field name="state">skip</field>
</record>
<record id="action_base_setup_company" model="ir.actions.act_window">
<field name="name">Company Configuration</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="base_setup_company_todo" model="ir.actions.todo">
<field name="action_id" ref="action_base_setup_company"/>
<field name="category_id" ref="base.category_administration_config"/>
<field name="sequence">1</field>
<field name="type">normal</field>
<field name="state">skip</field>
</record>
</data>
</openerp>

View File

@ -1,73 +0,0 @@
<openerp>
<data>
<record id="view_base_setup_company" model="ir.ui.view">
<field name="name">Company Configuration</field>
<field name="model">base.setup.company</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_view_base"/>
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">Company Configuration</attribute>
</form>
<xpath expr="//label[@string='description']" position="attributes">
<attribute name="string">Your company information will be used to personalize documents issued with OpenERP such as invoices, sales orders and much more.</attribute>
</xpath>
<xpath expr='//separator[@string="title"]' position='attributes'>
<attribute name='string'>Configure Your Company Information</attribute>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='rowspan'>25</attribute>
<attribute name='string'></attribute>
</xpath>
<group string="res_config_contents" position="replace">
<group colspan="5">
<group colspan="2">
<field name="company_id" invisible="1"/>
<field name="name" required="True"/><field name="website"/>
<field name="street"/><field name="street2"/>
<field name="zip"/>
<field name="city"/>
<field name="country_id"/>
<field name="state_id"/>
<field name="phone"/>
<field name="email"/>
<field name="account_no"/>
<field name="currency" widget="selection"/>
</group>
<newline/>
<group colspan="2">
<field name="rml_header1" colspan="5" invisible="1" groups="base.group_extended"/>
<field name="rml_footer1" colspan="5" invisible="1" groups="base.group_extended"/>
<field name="rml_footer2" colspan="5" invisible="1" groups="base.group_extended"/>
<separator colspan="4"
string="Your Logo - Use a size of about 450x150 pixels."/>
<field colspan="5" name="logo" widget="image"
nolabel="1"/>
</group>
</group>
</group>
<xpath expr='//button[@name="action_skip"]' position='replace'/>
</data>
</field>
</record>
<record id="action_base_setup_company" model="ir.actions.act_window">
<field name="name">Company Configuration</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">base.setup.company</field>
<field name="view_id" ref="view_base_setup_company"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="base_setup_company_todo" model="ir.actions.todo">
<field name="action_id" ref="action_base_setup_company"/>
<field name="sequence">1</field>
<field name="restart">onskip</field>
</record>
</data>
</openerp>

View File

@ -19,6 +19,10 @@
#
##############################################################################
from osv import fields, osv
import pooler
import pytz
from tools.translate import _
import tools
class base_setup_installer(osv.osv_memory):
_name = 'base.setup.installer'
@ -49,7 +53,7 @@ class base_setup_installer(osv.osv_memory):
'mrp':fields.boolean('Manufacturing',
help="Helps you manage your manufacturing processes and generate "
"reports on those processes."),
'account_voucher':fields.boolean('Invoicing',
'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 "),
@ -101,5 +105,219 @@ class base_setup_installer(osv.osv_memory):
value.update({'progress':progress})
if progress < 10.:
progress = 10.
return {'value':value}
def execute(self, cr, uid, ids, context=None):
if context is None:
context = {}
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'):
continue
if datas[mod] == 1:
modules_selected.append(mod)
module_ids = module_pool.search(cr, uid, [('name', 'in', modules_selected)], context=context)
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)
cr.commit()
new_db, self.pool = pooler.restart_pool(cr.dbname, update_module=True)
elif module.state == 'installed':
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, ))
return
base_setup_installer()
#Migrate data from another application Conf wiz
class migrade_application_installer_modules(osv.osv_memory):
_name = 'migrade.application.installer.modules'
_inherit = 'res.config.installer'
_columns = {
'import_saleforce': fields.boolean('Import Saleforce',
help="For Import Saleforce"),
'import_sugarcrm': fields.boolean('Import Sugarcrm',
help="For Import Sugarcrm"),
'sync_google_contact': fields.boolean('Sync Google Contact',
help="For Sync Google Contact"),
'quickbooks_ippids': fields.boolean('Quickbooks Ippids',
help="For Quickbooks Ippids"),
}
migrade_application_installer_modules()
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"),
}
_defaults = {
'customers': 'create',
}
def execute(self, cr, uid, ids, context=None):
if context is None:
context = {}
data_obj = self.pool.get('ir.model.data')
val = self.browse(cr, uid, ids, context=context)[0]
if val.customers == 'create':
id2 = data_obj._get_id(cr, uid, 'base', 'view_partner_form')
if id2:
id2 = data_obj.browse(cr, uid, id2, context=context).res_id
return {
'view_type': 'form',
'view_mode': 'form',
'res_model': 'res.partner',
'views': [(id2, 'form')],
'type': 'ir.actions.act_window',
'target': 'current',
'nodestroy':False,
}
if val.customers == 'import':
return {'type': 'ir.actions.act_window'}
product_installer()
# Define default users preferences config wiz
def _lang_get(self, cr, uid, context=None):
obj = self.pool.get('res.lang')
ids = obj.search(cr, uid, [('translatable','=',True)])
res = obj.read(cr, uid, ids, ['code', 'name'], context=context)
res = [(r['code'], r['name']) for r in res]
return res
def _tz_get(self,cr,uid, context=None):
return [(x, x) for x in pytz.all_timezones]
class user_preferences_config(osv.osv_memory):
_name = 'user.preferences.config'
_inherit = 'res.config'
_columns = {
'context_tz': fields.selection(_tz_get, 'Timezone', size=64,
help="Set default for new user's timezone, used to perform timezone conversions "
"between the server and the client."),
'context_lang': fields.selection(_lang_get, 'Language', required=True,
help="Sets default language for the all user interface, when UI "
"translations are available. If you want to Add new Language, you can add it from 'Load an Official Translation' wizard from 'Administration' menu."),
'view': fields.selection([('simple','Simplified'),
('extended','Extended')],
'Interface', required=True, help= "If you use OpenERP for the first time we strongly advise you to select the simplified interface, which has less features but is easier. You can always switch later from the user preferences." ),
'menu_tips': fields.boolean('Display Tips', help="Check out this box if you want to always display tips on each menu action"),
}
_defaults={
'view' : lambda self,cr,uid,*args: self.pool.get('res.users').browse(cr, uid, uid).view or 'simple',
'context_lang' : 'en_US',
'menu_tips' : True
}
def default_get(self, cr, uid, fields, context=None):
if context is None:
context = {}
res = super(user_preferences_config, self).default_get(cr, uid, fields, context=context)
res_default = self.pool.get('ir.values').get(cr, uid, 'default', False, ['res.users'])
for id, field, value in res_default:
res.update({field: value})
return res
def execute(self, cr, uid, ids, context=None):
user_obj = self.pool.get('res.users')
user_ids = user_obj.search(cr, uid, [], context=context)
for o in self.browse(cr, uid, ids, context=context):
user_obj.write(cr , uid, user_ids ,{'context_tz' : o.context_tz, 'context_lang' : o.context_lang, 'view' : o.view, 'menu_tips' : o.menu_tips}, context=context)
ir_values_obj = self.pool.get('ir.values')
ir_values_obj.set(cr, uid, 'default', False, 'context_tz', ['res.users'], o.context_tz)
ir_values_obj.set(cr, uid, 'default', False, 'context_lang', ['res.users'], o.context_lang)
ir_values_obj.set(cr, uid, 'default', False, 'view', ['res.users'], o.view)
ir_values_obj.set(cr, uid, 'default', False, 'menu_tips', ['res.users'], o.menu_tips)
return {}
user_preferences_config()
# Specify Your Terminology
class specify_partner_terminology(osv.osv_memory):
_name = 'specify.partner.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 ),
}
_defaults={
'partner' :'Partner',
}
def make_translations(self, cr, uid, ids, name, type, src, value, res_id=0, context=None):
trans_obj = self.pool.get('ir.translation')
user_obj = self.pool.get('res.users')
context_lang = user_obj.browse(cr, uid, uid, context=context).context_lang
existing_trans_ids = trans_obj.search(cr, uid, [('name','=',name), ('lang','=',context_lang), ('type','=',type), ('src','=',src), ('res_id','=',res_id)])
if existing_trans_ids:
trans_obj.write(cr, uid, existing_trans_ids, {'value': value}, context=context)
else:
create_id = trans_obj.create(cr, uid, {'name': name,'lang': context_lang, 'type': type, 'src': src, 'value': value , 'res_id': res_id}, context=context)
return {}
def execute(self, cr, uid, ids, context=None):
def _case_insensitive_replace(ref_string, src, value):
import re
pattern = re.compile(src, re.IGNORECASE)
return pattern.sub(_(value), _(ref_string))
trans_obj = self.pool.get('ir.translation')
fields_obj = self.pool.get('ir.model.fields')
menu_obj = self.pool.get('ir.ui.menu')
act_window_obj = self.pool.get('ir.actions.act_window')
for o in self.browse(cr, uid, ids, context=context):
#translate label of field
field_ids = fields_obj.search(cr, uid, [('field_description','ilike','Customer')])
for f_id in fields_obj.browse(cr ,uid, field_ids, context=context):
field_ref = f_id.model_id.model + ',' + f_id.name
self.make_translations(cr, uid, ids, field_ref, 'field', f_id.field_description, _case_insensitive_replace(f_id.field_description,'Customer',o.partner), context=context)
#translate help tooltip of field
for obj in self.pool.obj_pool.values():
for field_name, field_rec in obj._columns.items():
if field_rec.help.lower().count('customer'):
field_ref = obj._name + ',' + field_name
self.make_translations(cr, uid, ids, field_ref, 'help', field_rec.help, _case_insensitive_replace(field_rec.help,'Customer',o.partner), context=context)
#translate menuitems
menu_ids = menu_obj.search(cr,uid, [('name','ilike','Customer')])
for m_id in menu_obj.browse(cr, uid, menu_ids, context=context):
menu_name = m_id.name
menu_ref = 'ir.ui.menu' + ',' + 'name'
self.make_translations(cr, uid, ids, menu_ref, 'model', menu_name, _case_insensitive_replace(menu_name,'Customer',o.partner), res_id=m_id.id, context=context)
#translate act window name
act_window_ids = act_window_obj.search(cr, uid, [('name','ilike','Customer')])
for act_id in act_window_obj.browse(cr ,uid, act_window_ids, context=context):
act_ref = 'ir.actions.act_window' + ',' + 'name'
self.make_translations(cr, uid, ids, act_ref, 'model', act_id.name, _case_insensitive_replace(act_id.name,'Customer',o.partner), res_id=act_id.id, context=context)
#translate act window tooltips
act_window_ids = act_window_obj.search(cr, uid, [('help','ilike','Customer')])
for act_id in act_window_obj.browse(cr ,uid, act_window_ids, context=context):
act_ref = 'ir.actions.act_window' + ',' + 'help'
self.make_translations(cr, uid, ids, act_ref, 'model', act_id.help, _case_insensitive_replace(act_id.help,'Customer',o.partner), res_id=act_id.id, context=context)
return {}
specify_partner_terminology()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,178 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from operator import itemgetter
from osv import osv, fields
import netsvc
import tools
class base_setup_company(osv.osv_memory):
"""
"""
_name = 'base.setup.company'
_inherit = 'res.config'
logger = netsvc.Logger()
def _get_all(self, cr, uid, model, context=None):
models = self.pool.get(model)
all_model_ids = models.search(cr, uid, [])
output = [(False, '')]
output.extend(
sorted([(o.id, o.name)
for o in models.browse(cr, uid, all_model_ids,
context=context)],
key=itemgetter(1)))
return output
def _get_all_states(self, cr, uid, context=None):
return self._get_all(
cr, uid, 'res.country.state', context=context)
def _get_all_countries(self, cr, uid, context=None):
return self._get_all(cr, uid, 'res.country', context=context)
def _show_company_data(self, cr, uid, context=None):
# We only want to show the default company data in demo mode, otherwise users tend to forget
# to fill in the real company data in their production databases
return self.pool.get('ir.model.data').get_object(cr, uid, 'base', 'module_meta_information').demo
def default_get(self, cr, uid, fields_list=None, context=None):
""" get default company if any, and the various other fields
from the company's fields
"""
defaults = super(base_setup_company, self)\
.default_get(cr, uid, fields_list=fields_list, context=context)
companies = self.pool.get('res.company')
company_id = companies.search(cr, uid, [], limit=1, order="id")
if not company_id or 'company_id' not in fields_list:
return defaults
company = companies.browse(cr, uid, company_id[0], context=context)
defaults['company_id'] = company.id
if not self._show_company_data(cr, uid, context=context):
return defaults
defaults['currency'] = company.currency_id.id
for field in ['name','logo','rml_header1','rml_footer1','rml_footer2']:
defaults[field] = company[field]
if company.partner_id.address:
address = company.partner_id.address[0]
for field in ['street','street2','zip','city','email','phone']:
defaults[field] = address[field]
for field in ['country_id','state_id']:
if address[field]:
defaults[field] = address[field].id
return defaults
_columns = {
'company_id':fields.many2one('res.company', 'Company'),
'name':fields.char('Company Name', size=64, required=True),
'street':fields.char('Street', size=128),
'street2':fields.char('Street 2', size=128),
'zip':fields.char('Zip Code', size=24),
'city':fields.char('City', size=128),
'state_id':fields.selection(_get_all_states, 'Fed. State'),
'country_id':fields.selection(_get_all_countries, 'Country'),
'email':fields.char('E-mail', size=64),
'phone':fields.char('Phone', size=64),
'currency':fields.many2one('res.currency', 'Currency', required=True),
'rml_header1':fields.char('Report Header', size=200,
help='''This sentence will appear at the top right corner of your reports.
We suggest you to put a slogan here:
"Open Source Business Solutions".'''),
'rml_footer1':fields.char('Report Footer 1', size=200,
help='''This sentence will appear at the bottom of your reports.
We suggest you to write legal sentences here:
Web: http://openerp.com - Fax: +32.81.73.35.01 - Fortis Bank: 126-2013269-07'''),
'rml_footer2':fields.char('Report Footer 2', size=200,
help='''This sentence will appear at the bottom of your reports.
We suggest you to put bank information here:
IBAN: BE74 1262 0121 6907 - SWIFT: CPDF BE71 - VAT: BE0477.472.701'''),
'logo':fields.binary('Logo'),
'account_no':fields.char('Bank Account No', size=64),
'website': fields.char('Company Website', size=64, help="Example: http://openerp.com"),
}
def execute(self, cr, uid, ids, context=None):
assert len(ids) == 1, "We should only get one object from the form"
payload = self.browse(cr, uid, ids[0], context=context)
if not getattr(payload, 'company_id', None):
raise ValueError('Case where no default main company is setup '
'not handled yet')
company = payload.company_id
company.write({
'name':payload.name,
'rml_header1':payload.rml_header1,
'rml_footer1':payload.rml_footer1,
'rml_footer2':payload.rml_footer2,
'logo':payload.logo,
'currency_id':payload.currency.id,
'account_no':payload.account_no,
})
company.partner_id.write({
'name':payload.name,
'website':payload.website,
})
address_data = {
'name':payload.name,
'street':payload.street,
'street2':payload.street2,
'zip':payload.zip,
'city':payload.city,
'email':payload.email,
'phone':payload.phone,
'country_id':int(payload.country_id),
'state_id':int(payload.state_id),
}
if company.partner_id.address:
company.partner_id.address[0].write(
address_data)
else:
self.pool.get('res.partner.address').create(cr, uid,
dict(address_data,
partner_id=int(company.partner_id)),
context=context)
base_setup_company()
class res_currency(osv.osv):
_inherit = 'res.currency'
def name_get(self, cr, uid, ids, context=None):
if context is None:
context = {}
# We can use the following line,if we want to restrict this name_get for company setup only
# But, its better to show currencies as name(Code).
if not len(ids):
return []
if isinstance(ids, (int, long)):
ids = [ids]
reads = self.read(cr, uid, ids, ['name','symbol'], context, load='_classic_write')
return [(x['id'], tools.ustr(x['name']) + (x['symbol'] and (' (' + tools.ustr(x['symbol']) + ')') or '')) for x in reads]
res_currency()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import res_company_logo
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,49 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import fields, osv
import os
import tools
from tools.translate import _
class res_company_logo(osv.osv_memory):
_name = 'res.company.logo'
_inherit = 'res.config'
_columns = {
'logo' : fields.binary('Logo'),
}
_defaults={
'logo':lambda self,cr,uid,c: self.pool.get('res.company').browse(cr, uid, uid,c).logo,
}
def execute(self, cr, uid, ids, context=None):
if context is None:
context = {}
user_comp = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id
get_val = self.browse(cr, uid, ids)[0]
user_comp.write({'logo': get_val.logo}, context=context)
return {'type': 'ir.actions.act_window_close'}
res_company_logo()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_res_company_logo" model="ir.ui.view">
<field name="name">res.company.logo.form</field>
<field name="model">res.company.logo</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_view_base"/>
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">Upload Your Company Logo</attribute>
</form>
<xpath expr='//separator[@string="title"]' position='attributes'>
<attribute name='string'> </attribute>
</xpath>
<xpath expr="//label[@string='description']"
position="attributes">
<attribute name="string">Upload your company logo in JPG or PNG with a format similar to 450*150 pixels </attribute>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='string'> </attribute>
<attribute name='rowspan'>12</attribute>
</xpath>
<xpath expr="//button[@string='Next']" position="replace">
<button icon="gtk-ok" string="Upload" name="execute" type="object"/>
</xpath>
<group string="res_config_contents" position="replace">
<group colspan="4">
<field colspan="4" height="150" name="logo" widget="image" nolabel="1"/>
</group>
</group>
</data>
</field>
</record>
<record id="action_res_company_logo" model="ir.actions.act_window">
<field name="name">Upload Your Company Logo</field>
<field name="res_model">res.company.logo</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_res_company_logo"/>
<field name="target">new</field>
</record>
</data>
</openerp>

View File

@ -0,0 +1,289 @@
# Vietnamese translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-07-06 04:09+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Vietnamese <vi@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-07-07 04:41+0000\n"
"X-Generator: Launchpad (build 13168)\n"
#. module: base_synchro
#: model:ir.actions.act_window,name:base_synchro.action_view_base_synchro
msgid "Base Synchronization"
msgstr ""
#. module: base_synchro
#: field:base.synchro.server,server_db:0
msgid "Server Database"
msgstr ""
#. module: base_synchro
#: view:base.synchro.server:0
#: model:ir.model,name:base_synchro.model_base_synchro_server
msgid "Synchronized server"
msgstr ""
#. module: base_synchro
#: field:base.synchro.obj.avoid,name:0
msgid "Field Name"
msgstr ""
#. module: base_synchro
#: field:base.synchro.obj,synchronize_date:0
msgid "Latest Synchronization"
msgstr ""
#. module: base_synchro
#: field:base.synchro,user_id:0
msgid "Send Result To"
msgstr ""
#. module: base_synchro
#: model:ir.model,name:base_synchro.model_base_synchro_obj_avoid
msgid "Fields to not synchronize"
msgstr ""
#. module: base_synchro
#: view:base.synchro:0
msgid "_Close"
msgstr ""
#. module: base_synchro
#: view:base.synchro:0
msgid "Transfer Data To Server"
msgstr ""
#. module: base_synchro
#: model:ir.model,name:base_synchro.model_base_synchro_obj
msgid "Register Class"
msgstr ""
#. module: base_synchro
#: view:base.synchro.obj:0
#: model:ir.actions.act_window,name:base_synchro.action_transfer_tree
#: model:ir.ui.menu,name:base_synchro.transfer_menu_id
msgid "Synchronized objects"
msgstr ""
#. module: base_synchro
#: field:base.synchro.server,obj_ids:0
msgid "Models"
msgstr ""
#. module: base_synchro
#: field:base.synchro.obj.avoid,obj_id:0
#: view:base.synchro.obj.line:0
#: field:base.synchro.obj.line,obj_id:0
msgid "Object"
msgstr ""
#. module: base_synchro
#: field:base.synchro.server,login:0
msgid "User Name"
msgstr ""
#. module: base_synchro
#: view:base.synchro.obj:0
#: view:base.synchro.obj.line:0
msgid "Group By"
msgstr ""
#. module: base_synchro
#: selection:base.synchro.obj,action:0
msgid "Upload"
msgstr ""
#. module: base_synchro
#: view:base.synchro.obj:0
msgid "Latest synchronization"
msgstr ""
#. module: base_synchro
#: model:ir.module.module,description:base_synchro.module_meta_information
msgid "Synchronization with all objects."
msgstr ""
#. module: base_synchro
#: view:base.synchro.obj.line:0
#: field:base.synchro.obj.line,name:0
msgid "Date"
msgstr ""
#. module: base_synchro
#: field:base.synchro.server,password:0
msgid "Password"
msgstr ""
#. module: base_synchro
#: field:base.synchro.obj,avoid_ids:0
msgid "Fields Not Sync."
msgstr ""
#. module: base_synchro
#: selection:base.synchro.obj,action:0
msgid "Both"
msgstr ""
#. module: base_synchro
#: field:base.synchro.obj,name:0
msgid "Name"
msgstr ""
#. module: base_synchro
#: view:base.synchro.obj:0
msgid "Fields"
msgstr ""
#. module: base_synchro
#: view:base.synchro.obj.line:0
msgid "Transfered Ids Details"
msgstr ""
#. module: base_synchro
#: field:base.synchro.obj,action:0
msgid "Synchronisation direction"
msgstr ""
#. module: base_synchro
#: field:base.synchro.obj,server_id:0
msgid "Server"
msgstr ""
#. module: base_synchro
#: model:ir.actions.act_window,name:base_synchro.action_base_synchro_obj_line_tree
#: model:ir.model,name:base_synchro.model_base_synchro_obj_line
#: model:ir.ui.menu,name:base_synchro.menu_action_base_synchro_obj_line_tree
msgid "Synchronized instances"
msgstr ""
#. module: base_synchro
#: field:base.synchro.obj,active:0
msgid "Active"
msgstr ""
#. module: base_synchro
#: view:base.synchro.obj:0
#: field:base.synchro.obj,model_id:0
msgid "Object to synchronize"
msgstr ""
#. module: base_synchro
#: model:ir.module.module,shortdesc:base_synchro.module_meta_information
msgid "Base Synchro"
msgstr ""
#. module: base_synchro
#: model:ir.actions.act_window,name:base_synchro.action_base_synchro_server_tree
#: model:ir.ui.menu,name:base_synchro.synchro_server_tree_menu_id
msgid "Servers to be synchronized"
msgstr ""
#. module: base_synchro
#: view:base.synchro.obj:0
msgid "Transfer Details"
msgstr ""
#. module: base_synchro
#: field:base.synchro.obj.line,remote_id:0
msgid "Remote Id"
msgstr ""
#. module: base_synchro
#: field:base.synchro.obj,line_id:0
msgid "Ids Affected"
msgstr ""
#. module: base_synchro
#: model:ir.ui.menu,name:base_synchro.next_id_63
msgid "History"
msgstr ""
#. module: base_synchro
#: model:ir.ui.menu,name:base_synchro.next_id_62
#: model:ir.ui.menu,name:base_synchro.synch_config
msgid "Synchronization"
msgstr ""
#. module: base_synchro
#: field:base.synchro.obj,domain:0
msgid "Domain"
msgstr ""
#. module: base_synchro
#: view:base.synchro:0
msgid "_Synchronize"
msgstr ""
#. module: base_synchro
#: view:base.synchro:0
msgid "OK"
msgstr ""
#. module: base_synchro
#: field:base.synchro.server,name:0
msgid "Server name"
msgstr ""
#. module: base_synchro
#: field:base.synchro.obj,sequence:0
msgid "Sequence"
msgstr ""
#. module: base_synchro
#: view:base.synchro:0
msgid ""
"The synchronisation has been started.You will receive a request when it's "
"done."
msgstr ""
#. module: base_synchro
#: field:base.synchro.server,server_port:0
msgid "Server Port"
msgstr ""
#. module: base_synchro
#: model:ir.ui.menu,name:base_synchro.menu_action_view_base_synchro
msgid "Synchronize objects"
msgstr ""
#. module: base_synchro
#: view:base.synchro:0
msgid "Synchronization Complited!"
msgstr ""
#. module: base_synchro
#: model:ir.model,name:base_synchro.model_base_synchro
msgid "base.synchro"
msgstr ""
#. module: base_synchro
#: field:base.synchro.obj.line,local_id:0
msgid "Local Id"
msgstr ""
#. module: base_synchro
#: model:ir.actions.act_window,name:base_synchro.actions_regclass_tree
#: model:ir.actions.act_window,name:base_synchro.actions_transfer_line_form
msgid "Filters"
msgstr ""
#. module: base_synchro
#: selection:base.synchro.obj,action:0
msgid "Download"
msgstr ""
#. module: base_synchro
#: field:base.synchro,server_url:0
#: field:base.synchro.server,server_url:0
msgid "Server URL"
msgstr ""

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2010-08-02 14:37+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2011-07-06 17:28+0000\n"
"Last-Translator: Arianit Kukaj <Unknown>\n"
"Language-Team: Albanian <sq@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-29 05:01+0000\n"
"X-Generator: Launchpad (build 12758)\n"
"X-Launchpad-Export-Date: 2011-07-07 04:41+0000\n"
"X-Generator: Launchpad (build 13168)\n"
#. module: base_vat
#: code:addons/base_vat/base_vat.py:87
@ -24,6 +24,8 @@ msgid ""
"The Vat does not seems to be correct. You should have entered something like "
"this %s"
msgstr ""
"Vat nuk duket të jetë në rregull. Ti duhet të shtypesh diçka të ngjaishme si "
"kjo %s"
#. module: base_vat
#: model:ir.module.module,description:base_vat.module_meta_information
@ -65,7 +67,7 @@ msgstr ""
#. module: base_vat
#: model:ir.model,name:base_vat.model_res_partner
msgid "Partner"
msgstr ""
msgstr "Partner"
#. module: base_vat
#: field:res.partner,vat_subjected:0

View File

@ -23,19 +23,18 @@ from lxml import etree
from osv import fields, osv
class crm_installer(osv.osv_memory):
_name = 'crm.installer'
_inherit = 'res.config.installer'
_inherit = 'base.setup.installer'
_columns = {
'name': fields.char('Name', size=64),
'crm_helpdesk': fields.boolean('Helpdesk', help="Manages a Helpdesk service."),
'crm_fundraising': fields.boolean('Fundraising', help="This may help associations in their fundraising process and tracking."),
'crm_claim': fields.boolean('Claims', help="Manages the suppliers and customers claims, including your corrective or preventive actions."),
'crm_caldav': fields.boolean('Calendar Synchronizing', help="Helps you to synchronize the meetings with other calendar clients and mobiles."),
'crm_caldav': fields.boolean('Synchronization: Calendar Synchronizing', help="Helps you to synchronize the meetings with other calendar clients and mobiles."),
'sale_crm': fields.boolean('Opportunity to Quotation', help="This module relates sale from opportunity cases in the CRM."),
'fetchmail': fields.boolean('Fetch Emails', help="Allows you to receive E-Mails from POP/IMAP server."),
'thunderbird': fields.boolean('Thunderbird', help="Allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."),
'outlook': fields.boolean('MS-Outlook', help="Allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."),
'fetchmail': fields.boolean('Synchronization: Fetch Emails', help="Allows you to receive E-Mails from POP/IMAP server."),
'thunderbird': fields.boolean('Plug-In: Thunderbird', help="Allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."),
'outlook': fields.boolean('Plug-In: MS-Outlook', help="Allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."),
'wiki_sale_faq': fields.boolean('Sale FAQ', help="Helps you manage wiki pages for Frequently Asked Questions on Sales Application."),
'import_google': fields.boolean('Google Import', help="Imports contacts and events from your google account."),
}

View File

@ -2,68 +2,63 @@
<data>
<record id="view_crm_installer" model="ir.ui.view">
<field name="name">crm.installer.view</field>
<field name="model">crm.installer</field>
<field name="model">base.setup.installer</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_installer"/>
<field name="inherit_id" ref="base_setup.view_base_setup_installer"/>
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">CRM Application Configuration</attribute>
</form>
<separator string="title" position="attributes">
<attribute name="string">Configure Your CRM Application</attribute>
</separator>
<xpath expr="//label[@string='description']"
position="attributes">
<attribute name="string">Enhance your core CRM Application with additional functionalities.</attribute>
<xpath expr="//group[@name='crm']" position="replace">
<newline/>
<separator string="Customer Relationship Management Features" colspan="4" />
<field name="crm_claim" groups="base.group_extended" />
<field name="crm_helpdesk" groups="base.group_extended" />
<field name="crm_fundraising" groups="base.group_extended" />
<field name="wiki_sale_faq" groups="base.group_extended" />
<field name="sale_crm" invisible="1" groups="base.group_extended" />
<field name="crm_caldav" />
<field name="fetchmail" />
<field name="thunderbird" />
<field name="outlook" />
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='rowspan'>8</attribute>
<attribute name='string'></attribute>
</xpath>
<xpath expr="//button[@string='Install Modules']" position="attributes">
<attribute name="string">Configure</attribute>
</xpath>
<group colspan="8">
<group colspan="4" col="4" groups="base.group_extended" name="other">
<field name="crm_claim" />
<field name="crm_helpdesk" />
<field name="crm_fundraising" />
<field name="wiki_sale_faq"/>
<field name="sale_crm" invisible="1"/>
</group>
<group colspan="2" col="2">
<separator string="Synchronization" colspan="4" />
<field name="crm_caldav" />
<field name="fetchmail" />
<field name="import_google"/>
</group>
<group colspan="2" col="2">
<separator string="Plug-In" colspan="4" />
<field name="thunderbird" />
<field name="outlook" />
</group>
</group>
</data>
</field>
</record>
<record id="action_crm_installer" model="ir.actions.act_window">
<field name="name">CRM Application Configuration</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">crm.installer</field>
<field name="view_id" ref="view_crm_installer"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<record model="ir.actions.act_window" id="crm_case_section_view_form_installer">
<field name="name">Create Sales Team</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">crm.case.section</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="crm.crm_case_section_view_tree"/>
<field name="help">Define sales teams to structure your sales organization and assign users to each team. You should also define the sales stage to each team. As an example, if you use Solutions Selling techniques to track your opportunities, you can assign the following stage to the team: Territory, Qualified, Qualified Sponsors, Proposition, Negociaton, Won/Lost.</field>
</record>
<record id="crm_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_crm_installer"/>
<field name="sequence">3</field>
<field name="restart">always</field>
<field eval="[(6,0,[ref('base.group_extended')])]" name="groups_id"/>
<record id="crm_case_section_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="crm_case_section_view_form_installer"/>
<field name="category_id" ref="base.category_sales_management_config"/>
<field name="sequence">10</field>
<field name="type">normal</field>
<field name="state">skip</field>
</record>
<record model="ir.actions.act_window" id="crm_case_stage_form_installer">
<field name="name">Review Sales Stages</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">crm.case.stage</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="crm.crm_case_stage_tree"/>
<field name="help">Stages will allow salesmen to easily track how a specific opportunity is positioned in the sales cycle. In order to efficiently manage your sales pipeline, it's important to define conditions to go to the next step. Example: to set an opportunity as 'Qualified', you must set the "Expected Revenue" and the "Expected Closing Date." You should also have a look at the tooltip of the field "Change Probability Automatically".</field>
</record>
<record id="crm_case_stage_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="crm_case_stage_form_installer"/>
<field name="category_id" ref="base.category_sales_management_config"/>
<field name="sequence">10</field>
<field name="type">normal</field>
<field name="state">skip</field>
</record>
</data>
</openerp>

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@ -40,6 +40,7 @@ class delivery_carrier(osv.osv):
currency = order.pricelist_id.currency_id.name or ''
res = [(r['id'], r['name']+' ('+(str(r['price']))+' '+currency+')') for r in self.read(cr, uid, ids, ['name', 'price'], context)]
return res
def get_price(self, cr, uid, ids, field_name, arg=None, context=None):
res={}
if context is None:
@ -58,17 +59,26 @@ class delivery_carrier(osv.osv):
price = 0.0
res[carrier.id]=price
return res
_columns = {
'name': fields.char('Carrier', size=64, required=True),
'partner_id': fields.many2one('res.partner', 'Carrier Partner', required=True),
'product_id': fields.many2one('product.product', 'Delivery Product', required=True),
'grids_id': fields.one2many('delivery.grid', 'carrier_id', 'Delivery Grids'),
'price' : fields.function(get_price,string='Price'),
'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the delivery carrier without removing it.")
'price' : fields.function(get_price, string='Price'),
'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the delivery carrier without removing it."),
'normal_price': fields.float('Normal Price'),
'free_if_more_than': fields.boolean('Free If More Than'),
'amount': fields.float('Amount'),
'use_detailed_pricelist': fields.boolean('Use Detailed Pricelist'),
'pricelist_ids': fields.one2many('delivery.grid', 'carrier_id', 'Price List'),
}
_defaults = {
'active': lambda *args:1
'active': 1,
'free_if_more_than': False,
}
def grid_get(self, cr, uid, ids, contact_id, context=None):
contact = self.pool.get('res.partner.address').browse(cr, uid, contact_id, context=context)
for carrier in self.browse(cr, uid, ids, context=context):
@ -86,6 +96,63 @@ class delivery_carrier(osv.osv):
continue
return grid.id
return False
def create_grid_lines(self, cr, uid, ids, vals, context=None):
if context == None:
context = {}
grid_line_pool = self.pool.get('delivery.grid.line')
grid_pool = self.pool.get('delivery.grid')
for record in self.browse(cr, uid, ids, context=context):
grid_id = grid_pool.search(cr, uid, [('carrier_id', '=', record.id)], context=context)
if not grid_id:
record_data = {
'name': vals.get('name', False),
'carrier_id': record.id,
'seqeunce': 10,
}
new_grid_id = grid_pool.create(cr, uid, record_data, context=context)
grid_id = [new_grid_id]
#delete all existing grid lines
grid_lines = [line.id for line in grid_pool.browse(cr, uid, grid_id[0]).line_ids if line.type == 'price']
grid_line_pool.unlink(cr, uid, grid_lines, context=context)
#create the grid lines
if record.free_if_more_than:
data = {
'grid_id': grid_id and grid_id[0],
'name': _('Free if more than %d') % record.amount,
'type': 'price',
'operator': '>=',
'max_value': record.amount,
'standard_price': 0.0,
'list_price': 0.0,
}
grid_line_pool.create(cr, uid, data, context=context)
if record.normal_price:
default_data = {
'grid_id': grid_id and grid_id[0],
'name': _('Default price'),
'type': 'price',
'operator': '>=',
'max_value': 0.0,
'standard_price': record.normal_price,
'list_price': record.normal_price,
}
grid_line_pool.create(cr, uid, default_data, context=context)
return True
def write(self, cr, uid, ids, vals, context=None):
res_id = super(delivery_carrier, self).write(cr, uid, ids, vals, context=context)
self.create_grid_lines(cr, uid, ids, vals, context=context)
return res_id
def create(self, cr, uid, vals, context=None):
res_id = super(delivery_carrier, self).create(cr, uid, vals, context=context)
self.create_grid_lines(cr, uid, [res_id], vals, context=context)
return res_id
delivery_carrier()
class delivery_grid(osv.osv):
@ -151,7 +218,9 @@ class delivery_grid_line(osv.osv):
_columns = {
'name': fields.char('Name', size=32, required=True),
'grid_id': fields.many2one('delivery.grid', 'Grid',required=True),
'type': fields.selection([('weight','Weight'),('volume','Volume'),('wv','Weight * Volume'), ('price','Price')], 'Variable', required=True),
'type': fields.selection([('weight','Weight'),('volume','Volume'),\
('wv','Weight * Volume'), ('price','Price')],\
'Variable', required=True),
'operator': fields.selection([('==','='),('<=','<='),('>=','>=')], 'Operator', required=True),
'max_value': fields.float('Maximum Value', required=True),
'price_type': fields.selection([('fixed','Fixed'),('variable','Variable')], 'Price Type', required=True),
@ -167,7 +236,6 @@ class delivery_grid_line(osv.osv):
}
_order = 'list_price'
delivery_grid_line()

View File

@ -4,9 +4,6 @@
<!-- Delivery Carriers -->
<menuitem id="menu_delivery" name="Delivery" parent="stock.menu_stock_configuration" sequence="4"/>
<record id="view_delivery_carrier_tree" model="ir.ui.view">
<field name="name">delivery.carrier.tree</field>
<field name="model">delivery.carrier</field>
@ -25,10 +22,46 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Carrier">
<field name="name" select="1"/>
<field name="active" select="1"/>
<field name="partner_id" select="1"/>
<field name="product_id" select="1"/>
<group colspan="4" col="4" name="general">
<field name="name" select="1"/>
<field name="active" select="1"/>
<field name="partner_id" select="1"/>
<field name="product_id" select="1"/>
<separator string="Pricing Information" colspan="6"/>
<group colspan="2" col="4">
<field name="normal_price" select="1" colspan="4"/>
<newline/>
<field name="free_if_more_than"/>
<field name="amount" attrs="{'invisible':[('free_if_more_than','=',False)]}"/>
</group>
<newline/>
<field name="use_detailed_pricelist" />
</group>
<field name="pricelist_ids" nolabel="1" attrs="{'invisible':[('use_detailed_pricelist','=',False)]}" mode="tree,form">
<tree string="Delivery grids">
<field name="sequence"/>
<field name="carrier_id"/>
<field name="name"/>
</tree>
<form string="Delivery grids">
<field name="name" select="1"/>
<field name="active" select="1"/>
<field name="sequence" groups="base.group_extended" select="1"/>
<notebook colspan="4">
<page string="Grid definition">
<field colspan="4" name="line_ids" nolabel="1" select="1"/>
</page>
<page string="Destination">
<separator colspan="4" string="Countries"/>
<field colspan="4" name="country_ids" nolabel="1"/>
<separator colspan="4" string="States"/>
<field colspan="4" name="state_ids" nolabel="1"/>
<field name="zip_from"/>
<field name="zip_to"/>
</page>
</notebook>
</form>
</field>
</form>
</field>
</record>
@ -38,8 +71,18 @@
<field name="res_model">delivery.carrier</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="help">Create and manage the delivery methods you need for your sales activities. Each delivery method can be assigned to a price list which computes the price of the delivery according to the products sold or delivered.</field>
<field name="help">Define the delivery methods you are using and their pricing in order to reinvoice the delivery costs when you are doing invoicing based on delivery orders</field>
</record>
<record id="action_delivery_carrier_form1" model="ir.actions.act_window">
<field name="name">Delivery Method</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">delivery.carrier</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="help">Define the delivery methods you are using and their pricing in order to reinvoice the delivery costs when you are doing invoicing based on delivery orders</field>
</record>
<menuitem action="action_delivery_carrier_form" id="menu_action_delivery_carrier_form" parent="menu_delivery" groups="base.group_extended"/>
<!-- Delivery Grids -->
@ -98,13 +141,17 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Grid Lines">
<field colspan="4" name="name" select="1"/>
<field name="type" string="Condition"/>
<field name="operator" nolabel="1"/>
<field name="max_value" nolabel="1"/>
<group colspan="5" col="5">
<field colspan="4" name="name" select="1"/>
<newline/>
<field name="type" string="Condition"/>
<field name="operator" nolabel="1" />
<field name="max_value" nolabel="1"/>
</group>
<newline/>
<field name="list_price"/>
<field name="standard_price" groups="base.group_extended"/>
<field name="price_type" />
<field name="price_type"/>
<field name="variable_factor" attrs="{'invisible':[('price_type','=','fixed')]}"/>
</form>
</field>
@ -118,7 +165,7 @@
<field name="name"/>
<field name="type"/>
<field name="operator"/>
<field name="max_value"/>
<field name="max_value" nolabel="1"/>
<field name="list_price"/>
<field name="standard_price" groups="base.group_extended"/>
</tree>
@ -286,6 +333,12 @@
</field>
</record>
<record id="delivery_method_form_view_todo" model="ir.actions.todo">
<field name="action_id" ref="action_delivery_carrier_form1"/>
<field name="sequence">10</field>
<field name="type">normal</field>
<field name="state">skip</field>
</record>
</data>
</openerp>

View File

@ -41,12 +41,18 @@
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="category_knowledge_mgmt_config" model="ir.actions.todo.category">
<field name="name">Knowledge Management</field>
<field name="sequence">5</field>
</record>
<record model="ir.actions.todo" id="config_auto_directory">
<field name="action_id" ref="action_config_auto_directory"/>
<field name="category_id" ref="category_knowledge_mgmt_config"/>
<field name="groups_id" eval="[(6,0,[ref('base.group_extended')])]"/>
<field name="state" eval="'skip'" />
<field name="restart" eval="'onskip'" />
<field name="type">special</field>
<field name="state">skip</field>
</record>
</data>
</openerp>

View File

@ -44,10 +44,12 @@
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record model="ir.actions.todo" id="config_auto_directory">
<field name="action_id" ref="action_config_auto_directory"/>
<field name="category_id" ref="document.category_knowledge_mgmt_config"/>
<field name="groups_id" eval="[(6,0,[ref('base.group_extended')])]"/>
<field name="state">skip</field>
</record>
</data>
</openerp>

View File

@ -55,7 +55,9 @@
<record id="config_wizard_step_case_section_menu" model="ir.actions.todo">
<field name="action_id" ref="action_view_document_ics_config_directories"/>
<field name="restart">always</field>
<field name="category_id" ref="document.category_knowledge_mgmt_config"/>
<field name="type">special</field>
<field name="state">skip</field>
</record>
</data>
</openerp>

View File

@ -41,6 +41,7 @@ Fetch email from POP / IMAP servers.
"fetchmail_view.xml",
"fetchmail_data.xml",
'security/ir.model.access.csv',
'fetchmail_installer_view.xml'
],
'demo_xml': [

View File

@ -59,9 +59,9 @@ class email_server(osv.osv):
'password' : fields.char('Password', size=1024, invisible=True, required=True, readonly=True, states={'draft':[('readonly', False)]}),
'note': fields.text('Description'),
'action_id':fields.many2one('ir.actions.server', 'Email Server Action', required=False, domain="[('state','=','email')]", help="An Email Server Action. It will be run whenever an e-mail is fetched from server."),
'object_id': fields.many2one('ir.model', "Model", required=True, help="OpenObject Model. Generates a record of this model.\nSelect Object with message_new attrbutes."),
'object_id': fields.many2one('ir.model', "Object To Create", required=True, help="Whenever an email arrives, it automatically creates the object of this type with all the information attached."),
'priority': fields.integer('Server Priority', readonly=True, states={'draft':[('readonly', False)]}, help="Priority between 0 to 10, select define the order of Processing"),
'user_id':fields.many2one('res.users', 'User', required=False),
'user_id':fields.many2one('res.users', 'User', required=False, help="This is the user that runs the cron"),
'message_ids': fields.one2many('mailgate.message', 'server_id', 'Messages', readonly=True),
}
_defaults = {

View File

@ -0,0 +1,21 @@
<?xml version="1.0"?>
<openerp>
<data>
<record model="ir.actions.act_window" id="view_email_server_form_installer">
<field name="name">Setup Your Mail server</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">email.server</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="fetchmail.view_email_server_form"/>
</record>
<record id="view_email_server_form_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="view_email_server_form_installer"/>
<field name="category_id" ref="base.category_sales_management_config"/>
<field name="sequence">4</field>
<field name="type">normal</field>
<field name="state">skip</field>
</record>
</data>
</openerp>

View File

@ -61,9 +61,9 @@
</notebook>
<group col="6" colspan="4">
<field name="state" select="1"/>
<button string="Confirm" type="object" name="button_confirm_login" states="draft"/>
<button string="Confirm" type="object" name="button_confirm_login" states="draft" icon="gtk-apply"/>
<button string="Fetch Emails" type="object" name="button_fetch_mail" states="done"/>
<button string="Set to Draft" type="object" name="set_draft"/>
<button string="Set to Draft" type="object" name="set_draft" icon="gtk-convert"/>
</group>
</form>
</field>

View File

@ -4,56 +4,50 @@
<record id="view_hr_installer" model="ir.ui.view">
<field name="name">hr.installer.view</field>
<field name="model">hr.installer</field>
<field name="model">base.setup.installer</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_installer"/>
<field name="inherit_id" ref="base_setup.view_base_setup_installer"/>
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">Human Resources Application Configuration</attribute>
</form>
<separator string="title" position="attributes">
<attribute name="string">Configure Your Human Resources Application</attribute>
</separator>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='string'></attribute>
</xpath>
<xpath expr="//label[@string='description']" position="attributes">
<attribute name="string">You can enhance the base HR Application by installing few HR-related functionalities.</attribute>
</xpath>
<group colspan="8">
<xpath expr="//group[@name='hr']" position="replace">
<newline/>
<separator string="Human Resources Features" colspan="4" />
<field name="hr_holidays"/>
<field name="hr_expense"/>
<field name="hr_recruitment"/>
<field name="hr_timesheet_sheet"/>
<field name="hr_contract"/>
<field name="hr_attendance"/>
<field name="hr_evaluation" groups="base.group_extended"/>
<field name="hr_payroll" groups="base.group_extended"/>
<field name="hr_payroll_account" groups="base.group_extended"/>
</group>
<xpath expr="//button[@string='Install Modules']" position="attributes">
<attribute name="string">Configure</attribute>
</xpath>
<field name="hr_expense" />
<field name="hr_recruitment" />
<field name="hr_timesheet_sheet" />
<field name="hr_contract" />
<field name="hr_attendance" />
<field name="hr_evaluation" />
<field name="hr_payroll" />
<field name="hr_payroll_account" groups="base.group_extended" />
</xpath>
</data>
</field>
</record>
<record id="action_hr_installer" model="ir.actions.act_window">
<field name="name">Human Resources Application Configuration</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">hr.installer</field>
<field name="view_id" ref="view_hr_installer"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<record id="category_hr_management_config" model="ir.actions.todo.category">
<field name="name">HR Management</field>
<field name="sequence">5</field>
</record>
<record id="hr_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_hr_installer"/>
<field name="sequence">3</field>
<field name="restart">always</field>
<!-- employee configure action -->
<record id="action_create_hr_employee_installer" model="ir.actions.act_window">
<field name="name">Create your employees</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">hr.employee</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="view_employee_form"/>
</record>
<record id="config_wizard_action_create_hr_employee_installer" model="ir.actions.todo">
<field name="action_id" ref="action_create_hr_employee_installer"/>
<field name="category_id" ref="category_hr_management_config"/>
<field name="type">normal</field>
<field name="target">current</field>
<field name="state">skip</field>
</record>
</data>
</openerp>

View File

@ -63,7 +63,7 @@
<field name="work_location"/>
</group>
<group col="2" colspan="2">
<separator string="Position" colspan="2"/>
<separator string="Job Information" colspan="2"/>
<field name="job_id" domain="[('state','!=','old')]"/>
<field name="coach_id" />
</group>

View File

@ -21,8 +21,7 @@
from osv import fields, osv
class hr_installer(osv.osv_memory):
_name = 'hr.installer'
_inherit = 'res.config.installer'
_inherit = 'base.setup.installer'
_columns = {
# Human Resources Management
'hr_holidays': fields.boolean('Holidays / Leaves Management',

View File

@ -122,6 +122,10 @@
<field name="employee_id" ref="hr.employee1"/>
</record>
<!-- FIXME! Commented out to enable installation without creating conflicts
during the first days of a month. To be properly fixed, see
launchpad bug 791087!
<record id="attendance21" model="hr.attendance">
<field eval="time.strftime('%Y-%m-%d 10:00')" name="name"/>
<field name="action">sign_in</field>
@ -133,6 +137,6 @@
<field name="action">sign_out</field>
<field name="employee_id" ref="hr.employee1"/>
</record>
-->
</data>
</openerp>

View File

@ -47,7 +47,8 @@ in the form of pdf file. Implements a dashboard for My Current Evaluations
"wizard/hr_evaluation_mail_view.xml",
"hr_evaluation_view.xml",
"report/hr_evaluation_report_view.xml",
"board_hr_evaluation_view.xml"
"board_hr_evaluation_view.xml",
'hr_evaluation_installer_view.xml'
],
"test": ["test/test_hr_evaluation.yml"],
"active": False,

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.actions.act_window" id="view_department_form_installer">
<field name="name">Define Your Department Structure</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">hr.department</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="hr.view_department_tree"/>
<field name="help">Your Company's Department Structure is used to manage all documents related to employees by departments: expenses and timesheet validation, leaves management, recruitments, etc.</field>
</record>
<record id="view_department_form_todo" model="ir.actions.todo">
<field name="action_id" ref="view_department_form_installer"/>
<field name="category_id" ref="hr.category_hr_management_config"/>
<field name="sequence">3</field>
<field name="type">normal</field>
<field name="state">skip</field>
</record>
</data>
</openerp>

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################

View File

@ -46,6 +46,7 @@ re-invoice your customer's expenses if your work by project.
'init_xml': [],
'update_xml': [
'security/ir.model.access.csv',
'hr_expense_data.xml',
'hr_expense_sequence.xml',
'hr_expense_workflow.xml',
'hr_expense_view.xml',
@ -54,7 +55,8 @@ re-invoice your customer's expenses if your work by project.
'security/ir_rule.xml',
'report/hr_expense_report_view.xml',
'board_hr_expense_view.xml',
'board_hr_expense_manager_view.xml'
'board_hr_expense_manager_view.xml',
'hr_expense_installer_view.xml',
],
'demo_xml': [
'hr_expense_demo.xml',

View File

@ -227,6 +227,16 @@ class product_product(osv.osv):
'hr_expense_ok': fields.boolean('Can Constitute an Expense', help="Determines if the product can be visible in the list of product within a selection from an HR expense sheet line."),
}
def on_change_hr_expense_ok(self, cr, uid, id, hr_expense_ok):
if not hr_expense_ok:
return {}
data_obj = self.pool.get('ir.model.data')
cat_id = data_obj._get_id(cr, uid, 'hr_expense', 'cat_expense')
categ_id = data_obj.browse(cr, uid, cat_id).res_id
res = {'value' : {'type':'service','procure_method':'make_to_stock','supply_method':'buy','purchase_ok':True,'sale_ok' :False,'categ_id':categ_id }}
return res
product_product()
class hr_expense_line(osv.osv):

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<!--
Resource: product.uom.categ
-->
<record id="cat_expense" model="product.category">
<field name="parent_id" ref="product.cat0"/>
<field name="name">Expenses</field>
</record>
</data>
</openerp>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.actions.act_window" id="product_normal_form_view_installer">
<field name="name">Review Your Expenses Products</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.product</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="context" eval="'{\'default_type\':\'service\',\'default_procure_method\':\'make_to_stock\',\'default_supply_method\':\'buy\',\'default_purchase_ok\':True, \'default_sale_ok\':False, \'default_hr_expense_ok\':True,\'default_categ_id\': ' + str(ref('cat_expense')) +'}'"/>
<field name="view_id" ref="product.product_normal_form_view"/>
</record>
<record id="product_normal_form_view_todo" model="ir.actions.todo">
<field name="action_id" ref="product_normal_form_view_installer"/>
<field name="category_id" ref="hr.category_hr_management_config"/>
<field name="sequence">3</field>
<field name="type">normal</field>
<field name="state">skip</field>
</record>
</data>
</openerp>

View File

@ -189,7 +189,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<field name="purchase_ok" position="after">
<field name="hr_expense_ok"/>
<field name="hr_expense_ok" on_change="on_change_hr_expense_ok(hr_expense_ok)"/>
</field>
</field>
</record>

View File

@ -322,3 +322,48 @@ class resource_calendar_leaves(osv.osv):
resource_calendar_leaves()
class hr_employee(osv.osv):
_inherit="hr.employee"
def _set_remaining_days(self, cr, uid, empl_id, name, value, arg, context=None):
employee = self.browse(cr, uid, empl_id, context=context)
diff = value - employee.remaining_leaves
type_obj = self.pool.get('hr.holidays.status')
holiday_obj = self.pool.get('hr.holidays')
# Find for holidays status
status_ids = type_obj.search(cr, uid, [('limit', '=', False)], context=context)
if len(status_ids) != 1 :
raise osv.except_osv(_('Warning !'),_("To use this feature, you must have only one leave type without the option 'Allow to Override Limit' set. (%s Found).") % (len(status_ids)))
status_id = status_ids and status_ids[0] or False
if not status_id:
return False
if diff > 0:
leave_id = holiday_obj.create(cr, uid, {'name': _('Allocation for %s') % employee.name, 'employee_id': employee.id, 'holiday_status_id': status_id, 'type': 'add', 'holiday_type': 'employee', 'number_of_days_temp': diff}, context=context)
elif diff < 0:
leave_id = holiday_obj.create(cr, uid, {'name': _('Leave Request for %s') % employee.name, 'employee_id': employee.id, 'holiday_status_id': status_id, 'type': 'remove', 'holiday_type': 'employee', 'number_of_days_temp': abs(diff)}, context=context)
else:
return False
holiday_obj.holidays_confirm(cr, uid, [leave_id])
holiday_obj.holidays_validate2(cr, uid, [leave_id])
return True
def _get_remaining_days(self, cr, uid, ids, name, args, context=None):
cr.execute("SELECT sum(h.number_of_days_temp) as days, h.employee_id from hr_holidays h join hr_holidays_status s on (s.id=h.holiday_status_id) where h.type='add' and h.state='validate' and s.limit=False group by h.employee_id")
res = cr.dictfetchall()
remaining = {}
for r in res:
remaining[r['employee_id']] = r['days']
for employee_id in ids:
if not remaining.get(employee_id):
remaining[employee_id] = 0.0
return remaining
_columns = {
'remaining_leaves': fields.function(_get_remaining_days, method=True, string='Remaining Legal Leaves', fnct_inv=_set_remaining_days, type="float", help='Total number of legal leaves allocated to this employee, change this value to create allocation/leave requests.', store=True),
}
hr_employee()

View File

@ -5,7 +5,6 @@
<!-- Casual leave -->
<record model="hr.holidays.status" id="holiday_status_cl">
<field name="name">Legal Leaves</field>
<field name="limit">False</field>
<field name="color_name">black</field>
</record>
@ -20,7 +19,7 @@
<!-- Compensatory Days -->
<record model="hr.holidays.status" id="holiday_status_comp">
<field name="name">Compensatory Days</field>
<field name="limit">False</field>
<field name="limit">True</field>
<field name="color_name">brown</field>
</record>

View File

@ -458,6 +458,50 @@
src_model="hr.employee"
view_id ="view_holiday"
id="act_hr_employee_holiday_request"/>
<!-- Assing leave -->
<record id="hr_holidays_leaves_assign_tree_view" model="ir.ui.view">
<field name="name">hr.employee.leave.tree</field>
<field name="model">hr.employee</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Assign Leaves" editable="top">
<field name="name" string="Employee"/>
<field name="remaining_leaves" string="Remaining Legal Leaves"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="hr_holidays_leaves_assign_legal">
<field name="name">Assign Legal Leaves to Employees</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">hr.employee</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="hr_holidays_leaves_assign_tree_view"/>
</record>
<record id="hr_holidays_leaves_assign_form_view_todo" model="ir.actions.todo">
<field name="action_id" ref="hr_holidays_leaves_assign_legal"/>
<field name="category_id" ref="hr.category_hr_management_config"/>
<field name="type">normal</field>
<field name="state">skip</field>
</record>
<!-- Hr employee inherit Legal Leaves -->
<record id="view_employee_form_leave_inherit" model="ir.ui.view">
<field name="name">hr.employee.leave.form.inherit</field>
<field name="model">hr.employee</field>
<field name="type">form</field>
<field name="inherit_id" ref="hr.view_employee_form"/>
<field name="arch" type="xml">
<field name="coach_id" position="after">
<field name="remaining_leaves" string="Remaining Legal Leaves"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@ -47,6 +47,7 @@ system to store and search in your CV base.
'security/ir.model.access.csv',
'report/hr_recruitment_report_view.xml',
'board_hr_recruitment_statistical_view.xml',
'hr_recruitment_installer_view.xml'
],
'init_xml': [
'hr_recruitment_data.xml'

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.actions.act_window" id="hr_recruitment_stage_form_installer">
<field name="name">Review Recruitment Stages</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">hr.recruitment.stage</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="help">Check if the following stages are matching your recruitment process. Don't forget to specify the department if your recruitment process is different according to the job position.</field>
<field name="view_id" ref="hr_recruitment.hr_recruitment_stage_tree"/>
</record>
<record id="hr_recruitment_stage_form_todo" model="ir.actions.todo">
<field name="action_id" ref="hr_recruitment_stage_form_installer"/>
<field name="category_id" ref="hr.category_hr_management_config"/>
<field name="sequence">3</field>
<field name="type">normal</field>
<field name="state">skip</field>
</record>
</data>
</openerp>

View File

@ -346,6 +346,7 @@
<field name="res_model">hr.recruitment.stage</field>
<field name="view_type">form</field>
<field name="view_id" ref="hr_recruitment_stage_tree"/>
<field name="help"> Check if the following stages are matching your recruitment process. Don't forget to specify the department if your recruitment process is different according to the job position.</field>
</record>
<menuitem

View File

@ -7,7 +7,7 @@
<field name="standard_price">30.0</field>
<field name="uom_id" ref="product.uom_hour"/>
<field name="uom_po_id" ref="product.uom_hour"/>
<field name="name">Service on Timesheet</field>
<field name="name">Consultant</field>
<field name="categ_id" ref="product.cat0"/>
<field name="type">service</field>
<field eval="False" name="purchase_ok"/>

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
@ -15,12 +15,11 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import hr_timesheet_invoice
import wizard
import report
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -47,6 +47,7 @@ reports, etc.""",
'wizard/hr_timesheet_invoice_create_view.xml',
'wizard/hr_timesheet_invoice_create_final_view.xml',
'board_hr_timesheet_invoice.xml',
'hr_timesheet_invoice_installer_view.xml'
],
'demo': [
'hr_timesheet_invoice_demo.xml',

View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Configure Your Services Config Wiz -->
<record id="product_timesheet_invoice_tree_view" model="ir.ui.view">
<field name="name">product.product.tree</field>
<field name="model">product.product</field>
<field name="type">tree</field>
<field eval="7" name="priority"/>
<field name="arch" type="xml">
<tree colors="red:virtual_available&lt;0;blue:virtual_available&gt;=0 and state in ('draft', 'end', 'obsolete');black:virtual_available&gt;=0 and state not in ('draft', 'end', 'obsolete')" string="Products">
<field name="name"/>
<field name="standard_price"/>
<field name="lst_price"/>
<field name="uom_id" string="UoM"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="product_services_form_view_installer">
<field name="name">Configure Your Services</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.product</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('type','=','service')]</field>
<field name="context" eval="'{\'default_type\':\'service\', \'default_sale_ok\':True, \'default_hr_expense_ok\':False,}'"/>
<field name="view_id" ref="product_timesheet_invoice_tree_view"/>
</record>
<record id="product_services_form_view_todo" model="ir.actions.todo">
<field name="action_id" ref="product_services_form_view_installer"/>
<field name="category_id" ref="hr.category_hr_management_config"/>
<field name="sequence">3</field>
<field name="type">normal</field>
<field name="state">skip</field>
</record>
</data>
</openerp>

View File

@ -21,8 +21,7 @@
from osv import fields, osv
class knowledge_installer(osv.osv_memory):
_name = 'knowledge.installer'
_inherit = 'res.config.installer'
_inherit = 'base.setup.installer'
_columns = {
# Knowledge Management
@ -39,11 +38,11 @@ class knowledge_installer(osv.osv_memory):
"to keep track of business knowledge and share it with "
"and between your employees."),
# Content templates
'wiki_faq':fields.boolean('Internal FAQ',
'wiki_faq':fields.boolean('Template: Internal FAQ',
help="Creates a skeleton internal FAQ pre-filled with "
"documentation about OpenERP's Document Management "
"System."),
'wiki_quality_manual':fields.boolean('Quality Manual',
'wiki_quality_manual':fields.boolean('Template: Quality Manual',
help="Creates an example skeleton for a standard quality manual."),
}
_defaults = {

View File

@ -2,59 +2,22 @@
<data>
<record id="view_knowledge_installer" model="ir.ui.view">
<field name="name">knowledge.installer.view</field>
<field name="model">knowledge.installer</field>
<field name="model">base.setup.installer</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_installer"/>
<field name="inherit_id" ref="base_setup.view_base_setup_installer"/>
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">Knowledge Application Configuration</attribute>
</form>
<separator string="title" position="attributes">
<attribute name="string"
>Configure Your Knowledge Application</attribute>
</separator>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='string'></attribute>
</xpath>
<xpath expr="//label[@string='description']"
position="attributes">
<attribute name="string">Share information within the company with these specific Addons.</attribute>
<xpath expr="//group[@name='knowledge']" position="replace">
<newline/>
<separator string="Knowledge Management Features" colspan="4" />
<field name="document_ftp" />
<field name="document_webdav" />
<field name="wiki" />
<field name="wiki_faq" />
<field name="wiki_quality_manual" />
</xpath>
<group colspan="8" position="replace">
<group colspan="4">
<field name="document_ftp"/>
<field name="document_webdav"/>
<field name="wiki"/>
<separator string="Content templates" colspan="4"/>
<field name="wiki_faq"/>
<field name="wiki_quality_manual"/>
</group>
</group>
<xpath expr="//button[@string='Install Modules']" position="attributes">
<attribute name="string">Configure</attribute>
</xpath>
</data>
</field>
</record>
<record id="action_knowledge_installer" model="ir.actions.act_window">
<field name="name">Knowledge Application Configuration</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">knowledge.installer</field>
<field name="view_id" ref="view_knowledge_installer"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="knowledge_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_knowledge_installer"/>
<field name="sequence">3</field>
<field name="groups_id" eval="[(6,0,[ref('base.group_extended')])]"/>
<field name="restart">always</field>
</record>
</data>
</openerp>

View File

@ -4,7 +4,8 @@
<record id="config_call_account_template" model="ir.actions.todo">
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="restart">onskip</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
<field name="type">special</field>
</record>
</data>

View File

@ -19,7 +19,8 @@
This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="state">open</field>
<field name="restart">onskip</field>
<field name="type">special</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -8,6 +8,7 @@
This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="state">open</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -7,6 +7,7 @@
Accounts/Generate Chart of Accounts from a Chart Template.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="sequence">4</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>
</openerp>

View File

@ -8,6 +8,7 @@
This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="state">open</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -4,7 +4,8 @@
<record id="config_call_account_template" model="ir.actions.todo">
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="restart">onskip</field>
<field name="type">special</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -7,6 +7,7 @@
<field name="note">Der Assistent generiert einen Kontenplan auf Basis eines Templates (Vorlage). Sie werden aufgefordert den Namen der Firma einzugeben, sowie die entsprechende Kontenvorlage zu wählen. Ausserdem können Sie für die Initialisierung der Journale die gewünschte Stellenanzahl der Konten, sowie die Hauptwährung Ihres Betriebes auswählen. Dieser Assistent ist identisch mit dem Open ERP Menü Finanzen/Konfiguration/Finanzkonten/Erzeuge Konten aus Vorlage.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="state">open</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -8,6 +8,7 @@
This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="state">open</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -4,7 +4,8 @@
<record id="config_call_account_template" model="ir.actions.todo">
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="restart">onskip</field>
<field name="type">special</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -4,7 +4,8 @@
<record id="config_call_account_template_fr" model="ir.actions.todo">
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="restart">onskip</field>
<field name="type">special</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -8,6 +8,7 @@
This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="state">open</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -9,6 +9,7 @@
<field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus, the pure copy of chart Template is generated.
This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>-->
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="category_id" ref="account.category_accounting_configuration"/>
<field name="state">open</field>
</record>

View File

@ -8,6 +8,7 @@
This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="state">open</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -7,6 +7,7 @@
<field name="note">Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="category_id" ref="account.category_accounting_configuration"/>
<field name="state">open</field>
</record>
</data>

View File

@ -4,7 +4,8 @@
<record id="config_call_account_template_lu" model="ir.actions.todo">
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="restart">onskip</field>
<field name="type">special</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -4,7 +4,8 @@
<record id="config_call_account_template_ma" model="ir.actions.todo">
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="restart">onskip</field>
<field name="type">special</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -8,6 +8,7 @@
This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="state">open</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -13,6 +13,7 @@ Let op!! -> De template van het Nederlandse rekeningschema is opgebouwd uit 4 ci
* Dit is dezelfe configuratie wizard welke aangeroepen kan worden via Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -8,6 +8,7 @@
This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="state">open</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -8,6 +8,7 @@
This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="state">open</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -652,6 +652,7 @@
This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="state">open</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -8,7 +8,8 @@
This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="state">open</field>
<field name="restart">onskip</field>
<field name="type">special</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -11,6 +11,7 @@ Esto es el mismo wizard que corre de la Financial Management/Configuration/Finan
</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
<field name="state">open</field>
<field name="category_id" ref="account.category_accounting_configuration"/>
</record>
</data>

View File

@ -49,6 +49,7 @@
'lunch_view.xml',
'lunch_report.xml',
'report/report_lunch_order_view.xml',
'lunch_installer_view.xml'
],
"demo_xml": ['lunch_demo.xml'],
"test": ['test/test_lunch.yml', 'test/lunch_report.yml'],

View File

@ -45,7 +45,7 @@ class lunch_product(osv.osv):
_columns = {
'name': fields.char('Name', size=50, required=True),
'category_id': fields.many2one('lunch.category', 'Category'),
'description': fields.char('Description', size=128, required=False),
'description': fields.text('Description', size=128, required=False),
'price': fields.float('Price', digits=(16,2)),
'active': fields.boolean('Active'),
}

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.actions.act_window" id="view_lunch_product_form_installer">
<field name="name">Define Your Lunch Products</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">lunch.product</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="lunch.view_lunch_product_form"/>
</record>
<record id="view_lunch_product_form_todo" model="ir.actions.todo">
<field name="action_id" ref="view_lunch_product_form_installer"/>
<field name="category_id" ref="base.category_tools_customization_config"/>
<field name="sequence">50</field>
<field name="type">normal</field>
<field name="state">skip</field>
</record>
</data>
</openerp>

View File

@ -24,15 +24,19 @@
<field name="model">lunch.order</field>
<field name="arch" type="xml">
<form string="Order">
<group colspan="2" col="4">
<field name="user_id" select="1"/>
<field name="date" select="1"/>
<field name="product" select="1" on_change="onchange_product(product)"/>
<field name="category"/>
<field name="descript"/>
<field name="price"/>
<field name="cashmove"/>
<field name="user_id" select="1"/>
<field name="date" select="1"/>
<field name="product" select="1" on_change="onchange_product(product)"/>
<field name="category"/>
<field name="descript"/>
<field name="price"/>
<field name="cashmove"/>
<newline/>
<separator string="" colspan="4"/>
<group colspan="4" col="4">
<field name="state"/>
<button name="%(action_lunch_order_confirm)d" string="Confirm Order" type="action" icon="gtk-ok" attrs="{'invisible':[('state','=','confirmed')]}"/>
<button name="%(action_lunch_order_cancel)d" string="Cancel Order" type="action" icon="gtk-cancel"/>
</group>
</form>
</field>
@ -187,7 +191,6 @@
<search string="Search CashMove">
<filter icon="terp-go-today" name="Today" string="Today" domain="[('create_date','&lt;=',time.strftime('%%Y-%%m-%%d 23:59:59'))]"/>
<separator orientation="vertical"/>
<field name="name"/>
<field name="user_cashmove"/>
<field name="create_date"/>
<newline/>
@ -257,11 +260,18 @@
<field name="model">lunch.product</field>
<field name="arch" type="xml">
<form string="Products">
<field name="name" select="1"/>
<field name="category_id" widget="selection"/>
<field name="description" />
<field name="price" />
<field name="active"/>
<group col="6">
<field name="name" select="1"/>
<field name="category_id" widget="selection"/>
<field name="price" />
</group>
<notebook colspan="4">
<page string="General Information">
<field name="active"/>
<separator string="Description" colspan="4" />
<field name="description" nolabel="1" colspan="4" />
</page>
</notebook>
</form>
</field>
</record>
@ -276,7 +286,6 @@
<tree string="Products">
<field name="name"/>
<field name="category_id"/>
<field name="description"/>
<field name="price"/>
</tree>
</field>
@ -292,7 +301,6 @@
<search string="Products">
<field name="name" />
<field name="category_id" widget="selection"/>
<field name="description" />
<field name="price"/>
</search>
</field>

View File

@ -30,11 +30,11 @@
<field name="view_id" ref="view_lunch_order_cancel"/>
<field name="target">new</field>
</record>
<act_window id="action_lunch_order_cancel_values"
key2="client_action_multi" name="Cancel Order"
res_model="lunch.order.cancel" src_model="lunch.order"
view_mode="form" target="new" view_type="form"/>
view_mode="form" target="new" view_type="form"/>
</data>
</openerp>

View File

@ -14,52 +14,20 @@
<record id="view_marketing_installer" model="ir.ui.view">
<field name="name">marketing.installer.view</field>
<field name="model">marketing.installer</field>
<field name="model">base.setup.installer</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_installer"/>
<field name="inherit_id" ref="base_setup.view_base_setup_installer"/>
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">Marketing Application Configuration</attribute>
</form>
<separator string="title" position="attributes">
<attribute name="string">Configure Your Marketing Application</attribute>
</separator>
<xpath expr="//label[@string='description']"
position="attributes">
<attribute name="string">OpenERP provides Addons to better manage your sales and marketing processes. Select the ones you would be interested in.</attribute>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='rowspan'>13</attribute>
<attribute name='string'></attribute>
</xpath>
<xpath expr="//button[@string='Install Modules']" position="attributes">
<attribute name="string">Configure</attribute>
</xpath>
<group colspan="8">
<xpath expr="//group[@name='marketing']" position="replace">
<newline/>
<separator string="Marketing Features" colspan="4" />
<field name="marketing_campaign" />
<field name="email_template" />
<field name="crm_profiling" />
</group>
</xpath>
</data>
</field>
</record>
<record id="action_marketing_installer" model="ir.actions.act_window">
<field name="name">Marketing Applications Configuration</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">marketing.installer</field>
<field name="view_id" ref="view_marketing_installer"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="marketing_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_marketing_installer"/>
<field name="sequence">3</field>
<field name="restart">always</field>
</record>
</data>
</openerp>

View File

@ -22,8 +22,7 @@
from osv import fields, osv
class marketing_installer(osv.osv_memory):
_name = 'marketing.installer'
_inherit = 'res.config.installer'
_inherit = 'base.setup.installer'
_columns = {
'email_template':fields.boolean('Automated E-Mails',
help="Helps you to design templates of emails and integrate them in your different processes."),

View File

@ -21,8 +21,7 @@
from osv import fields, osv
class mrp_installer(osv.osv_memory):
_name = 'mrp.installer'
_inherit = 'res.config.installer'
_inherit = 'base.setup.installer'
_columns = {
# Manufacturing Resource Planning

View File

@ -2,55 +2,22 @@
<data>
<record id="view_mrp_installer" model="ir.ui.view">
<field name="name">mrp.installer.view</field>
<field name="model">mrp.installer</field>
<field name="model">base.setup.installer</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_installer"/>
<field name="inherit_id" ref="base_setup.view_base_setup_installer"/>
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">MRP Application Configuration</attribute>
</form>
<separator string="title" position="attributes">
<attribute name="string">Configure Your Manufacturing Resource Planning Application</attribute>
</separator>
<xpath expr="//label[@string='description']"
position="attributes">
<attribute name="string">Add more functionalities to the core Manufacturing Application with the following addons.</attribute>
<xpath expr="//group[@name='mrp']" position="replace">
<newline/>
<separator string="Manufacturing Features" colspan="4" />
<field name="stock_location" />
<field name="mrp_jit" />
<field name="mrp_operations" />
<field name="mrp_subproduct" />
<field name="mrp_repair" />
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='string'></attribute>
</xpath>
<xpath expr="//button[@string='Install Modules']" position="attributes">
<attribute name="string">Configure</attribute>
</xpath>
<group colspan="8">
<field name="stock_location"/>
<field name="mrp_jit"/>
<field name="mrp_operations"/>
<field name="mrp_subproduct"/>
<field name="mrp_repair"/>
</group>
</data>
</field>
</record>
<record id="action_mrp_installer" model="ir.actions.act_window">
<field name="name">MRP Applications Configuration</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.installer</field>
<field name="view_id" ref="view_mrp_installer"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="mrp_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_mrp_installer"/>
<field name="sequence">3</field>
<field name="restart">always</field>
<field name="groups_id" eval="[(6,0,[ref('base.group_extended')])]"/>
</record>
</data>
</openerp>

View File

@ -9,10 +9,10 @@
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">Outlook Plug-In Configuration</attribute>
<attribute name="string">Load Outlook Plug-In</attribute>
</form>
<separator string="title" position="attributes">
<attribute name="string">Outlook Plug-In</attribute>
<attribute name="string">Load Outlook Plug-In</attribute>
</separator>
<xpath expr="//label[@string='description']" position="attributes">
<attribute name="string">This plug-in allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one.</attribute>
@ -49,7 +49,7 @@
</record>
<record id="action_outlook_installer" model="ir.actions.act_window">
<field name="name">Outlook Plug-In Configuration</field>
<field name="name">Load Outlook Plug-In</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">outlook.installer</field>
<field name="view_id" ref="view_outlook_installer"/>
@ -57,14 +57,17 @@
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="outlook_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_outlook_installer"/>
<field name="category_id" ref="base.category_sales_management_config"/>
<field name="type">normal</field>
<field name="state">skip</field>
<field name="sequence">4</field>
</record>
<record id="action_outlook_wizard" model="ir.actions.act_window">
<field name="name">Outlook Plug-In Configuration</field>
<field name="name">Load Outlook Plug-In</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">outlook.installer</field>
<field name="view_id" ref="view_outlook_installer"/>
@ -81,7 +84,7 @@
<menuitem id="menu_base_config_plugins_outlook"
action="action_outlook_wizard"
name="Outlook Plug-In"
name="Load Outlook Plug-In"
parent="base.menu_base_config_plugins"
sequence="10" />
</data>

80
addons/pad/i18n/zh_CN.po Normal file
View File

@ -0,0 +1,80 @@
# Chinese (Simplified) translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
"PO-Revision-Date: 2011-07-07 16:37+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-07-08 04:43+0000\n"
"X-Generator: Launchpad (build 13168)\n"
#. module: pad
#: code:addons/pad/web/editors.py:32
#, python-format
msgid "Ok"
msgstr "确定"
#. module: pad
#: code:addons/pad/web/editors.py:29
#, python-format
msgid "Name"
msgstr "名称"
#. module: pad
#: help:res.company,pad_index:0
msgid "The root URL of the company's pad instance"
msgstr "公司PAD实例的根网址"
#. module: pad
#: model:ir.model,name:pad.model_res_company
msgid "Companies"
msgstr "公司"
#. module: pad
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
msgstr "错误!您不能创建递归公司."
#. module: pad
#: code:addons/pad/web/editors.py:17
#, python-format
msgid "Write"
msgstr "写"
#. module: pad
#: model:ir.module.module,description:pad.module_meta_information
msgid ""
"\n"
"Adds enhanced support for (Ether)Pad attachments in the web client, lets "
"the\n"
"company customize which Pad installation should be used to link to new pads\n"
"(by default, pad.openerp.com)\n"
" "
msgstr ""
"\n"
"在Web客户端加入增强的PAD附件支持让公司自定义PAD的安装可以链接到新的PAD\n"
" "
#. module: pad
#: field:res.company,pad_index:0
msgid "Pad root URL"
msgstr "PAD根网址"
#. module: pad
#: view:res.company:0
msgid "Pad"
msgstr ""
#. module: pad
#: model:ir.module.module,shortdesc:pad.module_meta_information
msgid "Enhanced support for (Ether)Pad attachments"
msgstr "增强支持PAD附件"

View File

@ -639,12 +639,11 @@
<field name="type">form</field>
<field name="inherit_id" ref="base.view_company_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Other">
<field name="company_discount" colspan="4"/>
<field name="max_diff" colspan="4"/>
</page>
</notebook>
<field name="currency_id" position="after">
<separator string="Point of Sale" colspan="4"/>
<field name="company_discount" />
<field name="max_diff" />
</field>
</field>
</record>
@ -654,7 +653,8 @@
<field name="type">form</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<field name="active" position="after">
<field name="company_id" position="after">
<separator string="Point of Sale" colspan="2"/>
<field name="income_pdt"/>
<field name="expense_pdt"/>
<field name="am_out"/>

View File

@ -55,6 +55,7 @@ Print product labels with barcode.
'product_data.xml',
'product_report.xml',
'product_view.xml',
'wizard/product_installer.xml',
'product_shortcut_data.xml',
'pricelist_view.xml',
'partner_view.xml',

Some files were not shown because too many files have changed in this diff Show More