merge trunk

bzr revid: nicolas.vanhoren@openerp.com-20120921133748-7rfw8h8x38z2wjdp
This commit is contained in:
niv-openerp 2012-09-21 15:37:48 +02:00
commit 68499fbb8b
228 changed files with 143733 additions and 3952 deletions

View File

@ -836,6 +836,8 @@ class account_journal(osv.osv):
@return: Returns a list of tupples containing id, name
"""
if not ids:
return []
if isinstance(ids, (int, long)):
ids = [ids]
result = self.browse(cr, user, ids, context=context)

View File

@ -1103,10 +1103,10 @@ class account_invoice(osv.osv):
if not ids:
return []
types = {
'out_invoice': 'CI: ',
'in_invoice': 'SI: ',
'out_refund': 'OR: ',
'in_refund': 'SR: ',
'out_invoice': 'Invoice ',
'in_invoice': 'Sup. Invoice ',
'out_refund': 'Refund ',
'in_refund': 'Supplier Refund ',
}
return [(r['id'], (r['number']) or types[r['type']] + (r['name'] or '')) for r in self.read(cr, uid, ids, ['type', 'number', 'name'], context, load='_classic_write')]

View File

@ -30,7 +30,7 @@
<menuitem id="menu_analytic" parent="menu_analytic_accounting" name="Accounts" groups="analytic.group_analytic_accounting"/>
<menuitem id="menu_journals" sequence="15" name="Journals" parent="menu_finance_configuration" groups="group_account_manager"/>
<menuitem id="menu_configuration_misc" name="Miscellaneous" parent="menu_finance_configuration" sequence="55"/>
<menuitem id="base.menu_action_currency_form" parent="menu_configuration_misc" sequence="20" groups="base.group_no_one"/>
<menuitem id="base.menu_action_currency_form" name="Currencies" parent="menu_configuration_misc" sequence="20" groups="base.group_no_one"/>
<menuitem id="menu_finance_generic_reporting" name="Generic Reporting" parent="menu_finance_reports" sequence="100"/>
<menuitem id="menu_finance_entries" name="Journal Entries" parent="menu_finance" sequence="5" groups="group_account_user,group_account_manager"/>
<menuitem id="menu_account_reports" name="Financial Reports" parent="menu_finance_configuration" sequence="30" />

View File

@ -215,8 +215,10 @@ class account_move_line(osv.osv):
def _default_get(self, cr, uid, fields, context=None):
if context is None:
context = {}
if not context.get('journal_id', False) and context.get('search_default_journal_id', False):
if not context.get('journal_id', False):
context['journal_id'] = context.get('search_default_journal_id')
if not context.get('period_id', False):
context['period_id'] = context.get('search_default_period_id')
account_obj = self.pool.get('account.account')
period_obj = self.pool.get('account.period')
journal_obj = self.pool.get('account.journal')
@ -226,6 +228,9 @@ class account_move_line(osv.osv):
partner_obj = self.pool.get('res.partner')
currency_obj = self.pool.get('res.currency')
context = self.convert_to_period(cr, uid, context)
#pass the right context when search_defaul_journal_id
if context.get('search_default_journal_id',False):
context['journal_id'] = context.get('search_default_journal_id')
# Compute simple values
data = super(account_move_line, self).default_get(cr, uid, fields, context=context)
# Starts: Manual entry from account.move form
@ -480,7 +485,7 @@ class account_move_line(osv.osv):
'debit': fields.float('Debit', digits_compute=dp.get_precision('Account')),
'credit': fields.float('Credit', digits_compute=dp.get_precision('Account')),
'account_id': fields.many2one('account.account', 'Account', required=True, ondelete="cascade", domain=[('type','<>','view'), ('type', '<>', 'closed')], select=2),
'move_id': fields.many2one('account.move', 'Move', ondelete="cascade", help="The move of this entry line.", select=2, required=True),
'move_id': fields.many2one('account.move', 'Journal Entry', ondelete="cascade", help="The move of this entry line.", select=2, required=True),
'narration': fields.related('move_id','narration', type='text', relation='account.move', string='Internal Note'),
'ref': fields.related('move_id', 'ref', string='Reference', type='char', size=64, store=True),
'statement_id': fields.many2one('account.bank.statement', 'Statement', help="The bank statement used for bank reconciliation", select=1),
@ -928,6 +933,8 @@ class account_move_line(osv.osv):
return res
if (not context.get('journal_id', False)) or (not context.get('period_id', False)):
return False
if context.get('search_default_journal_id', False):
context['journal_id'] = context.get('search_default_journal_id')
cr.execute('SELECT code FROM account_journal WHERE id = %s', (context['journal_id'], ))
j = cr.fetchone()[0] or ''
cr.execute('SELECT code FROM account_period WHERE id = %s', (context['period_id'], ))

View File

@ -101,28 +101,29 @@
<field name="model">account.period</field>
<field name="arch" type="xml">
<form string="Account Period" version="7.0">
<header>
<button name="action_draft" states="done" string="Set to Draft" type="object" groups="account.group_account_manager"/>
<field name="state" widget="statusbar" nolabel="1"/>
</header>
<sheet>
<group>
<group>
<field name="name"/>
<field name="fiscalyear_id" widget="selection"/>
<label for="date_start" string="Duration"/>
<div>
<field name="date_start" class="oe_inline" nolabel="1"/> -
<field name="date_stop" nolabel="1" class="oe_inline"/>
</div>
</group>
<group>
<field name="code"/>
<field name="special"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group>
</group>
</sheet>
<header>
<button string="Close Period" name="%(account.action_account_period_close)d" type="action" class="oe_highlight" states="draft"/>
<button name="action_draft" states="done" string="Set to Draft" type="object" groups="account.group_account_manager"/>
<field name="state" widget="statusbar" nolabel="1"/>
</header>
<sheet>
<group>
<group>
<field name="name"/>
<field name="fiscalyear_id" widget="selection"/>
<label for="date_start" string="Duration"/>
<div>
<field name="date_start" class="oe_inline" nolabel="1"/> -
<field name="date_stop" nolabel="1" class="oe_inline"/>
</div>
</group>
<group>
<field name="code"/>
<field name="special"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
@ -1038,7 +1039,26 @@
Entries lines
-->
<record id="view_move_line_tree" model="ir.ui.view">
<record id="view_move_line_tree_reconcile" model="ir.ui.view">
<field name="name">account.move.line.reconcile.tree</field>
<field name="model">account.move.line</field>
<field eval="24" name="priority"/>
<field name="arch" type="xml">
<tree colors="red:state == 'draft';black:state == 'valid'" string="Journal Items to Reconcile" create="false">
<field name="date"/>
<field name="move_id"/>
<field name="ref"/>
<field name="name"/>
<field name="partner_id"/>
<field name="account_id"/>
<field name="reconcile_partial_id"/>
<field name="debit" sum="Total debit"/>
<field name="credit" sum="Total credit"/>
</tree>
</field>
</record>
<record id="view_move_line_tree" model="ir.ui.view">
<field name="name">account.move.line.tree</field>
<field name="model">account.move.line</field>
<field eval="4" name="priority"/>
@ -1073,64 +1093,64 @@
<field name="arch" type="xml">
<form string="Journal Item" version="7.0">
<sheet>
<group>
<group>
<field name="name"/>
<field name="ref"/>
<field name="partner_id" on_change="onchange_partner_id(False,partner_id,account_id,debit,credit,date)"/>
</group>
<group>
<field name="journal_id"/>
<field name="period_id"/>
<field name="company_id" required="1" groups="base.group_multi_company"/>
</group>
</group>
<notebook colspan="4">
<page string="Information">
<group>
<group string="Amount">
<field name="account_id" domain="[('company_id', '=', company_id), ('type','&lt;&gt;','view'), ('type','&lt;&gt;','consolidation')]"/>
<field name="debit"/>
<field name="credit"/>
<field name="quantity"/>
</group>
<group string="Accounting Documents">
<field name="invoice" readonly="True"/>
<field name="move_id" required="False"/>
<field name="statement_id" readonly="True"/>
</group>
<group string="Dates">
<field name="date"/>
<field name="date_maturity"/>
<field name="date_created" readonly="True"/>
</group>
<group string="Taxes">
<field name="tax_code_id"/>
<field name="tax_amount"/>
<field name="account_tax_id" domain="[('parent_id','=',False)]"/>
</group>
<group attrs="{'readonly':[('state','=','valid')]}" string="Currency" groups="base.group_multi_currency">
<field name="currency_id"/>
<field name="amount_currency"/>
</group>
<group string="Reconciliation">
<field name="reconcile_id"/>
<field name="reconcile_partial_id"/>
</group>
<group string="States">
<field name="state"/>
<field name="blocked"/>
</group>
<group groups="analytic.group_analytic_accounting" string="Analytic">
<field name="analytic_account_id" domain="[('parent_id','!=',False)]"/>
</group>
</group>
<field name="narration" colspan="4" nolabel="1" placeholder="Add an internal note..."/>
</page>
<page string="Analytic Lines" groups="analytic.group_analytic_accounting">
<field name="analytic_lines" context="{'default_general_account_id':account_id, 'default_name': name, 'default_date':date, 'amount': (debit or 0.0)-(credit or 0.0)}"/>
</page>
</notebook>
<group>
<group>
<field name="name"/>
<field name="ref"/>
<field name="partner_id" on_change="onchange_partner_id(False,partner_id,account_id,debit,credit,date)"/>
</group>
<group>
<field name="journal_id"/>
<field name="period_id"/>
<field name="company_id" required="1" groups="base.group_multi_company"/>
</group>
</group>
<notebook colspan="4">
<page string="Information">
<group>
<group string="Amount">
<field name="account_id" domain="[('company_id', '=', company_id), ('type','&lt;&gt;','view'), ('type','&lt;&gt;','consolidation')]"/>
<field name="debit"/>
<field name="credit"/>
<field name="quantity"/>
</group>
<group string="Accounting Documents">
<field name="invoice" readonly="True"/>
<field name="move_id" required="False"/>
<field name="statement_id" readonly="True"/>
</group>
<group string="Dates">
<field name="date"/>
<field name="date_maturity"/>
<field name="date_created" readonly="True"/>
</group>
<group string="Taxes">
<field name="tax_code_id"/>
<field name="tax_amount"/>
<field name="account_tax_id" domain="[('parent_id','=',False)]"/>
</group>
<group attrs="{'readonly':[('state','=','valid')]}" string="Currency" groups="base.group_multi_currency">
<field name="currency_id"/>
<field name="amount_currency"/>
</group>
<group string="Reconciliation">
<field name="reconcile_id"/>
<field name="reconcile_partial_id"/>
</group>
<group string="States">
<field name="state"/>
<field name="blocked"/>
</group>
<group groups="analytic.group_analytic_accounting" string="Analytic">
<field name="analytic_account_id" domain="[('parent_id','!=',False)]"/>
</group>
</group>
<field name="narration" colspan="4" nolabel="1" placeholder="Add an internal note..."/>
</page>
<page string="Analytic Lines" groups="analytic.group_analytic_accounting">
<field name="analytic_lines" context="{'default_general_account_id':account_id, 'default_name': name, 'default_date':date, 'amount': (debit or 0.0)-(credit or 0.0)}"/>
</page>
</notebook>
</sheet>
</form>
</field>
@ -1512,7 +1532,6 @@
<record id="action_move_line_search" model="ir.actions.act_window">
<field name="name">Journal Items</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.move.line</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
@ -1531,16 +1550,31 @@
<field name="act_window_id" ref="action_move_line_search"/>
</record>
<act_window
context="{'search_default_unreconciled': 1,'view_mode':True}"
id="action_account_manual_reconcile" name="Journal Items"
res_model="account.move.line"
view_id="view_move_line_tree"
view_mode="account_reconciliation_list" />
<record id="action_account_manual_reconcile" model="ir.actions.act_window">
<field name="context">{'search_default_unreconciled': 1,'view_mode':True}</field>
<field name="name">Journal Items to Reconcile</field>
<field name="res_model">account.move.line</field>
<field name="view_id" ref="view_move_line_tree_reconcile"/>
<field name="view_type">form</field>
<field name="view_mode">account_reconciliation_list</field>
<field name="help" type="html">
<p>
Good job!
</p><p>
There is nothing to reconcile. All invoices and payments
have been reconciled, your partner balance is clean.
</p>
</field>
</record>
<menuitem
name="Journal Items to Reconcile"
action="action_account_manual_reconcile"
id="menu_manual_reconcile_bank"
sequence="20"
parent="account.menu_finance_bank_and_cash"/>
<menuitem
name="Manual Reconciliation" icon="STOCK_EXECUTE"
name="Manual Reconciliation"
action="action_account_manual_reconcile"
id="menu_manual_reconcile"
parent="account.periodical_processing_reconciliation"/>
@ -1719,8 +1753,10 @@
<field name="model">account.payment.term.line</field>
<field name="arch" type="xml">
<form string="Payment Term" version="7.0">
<field name="name"/>
<field name="sequence"/>
<group>
<field name="name"/>
<field name="sequence"/>
</group>
<group>
<group string="Amount Computation">
<field name="value"/>
@ -1768,12 +1804,11 @@
<field name="model">account.payment.term</field>
<field name="arch" type="xml">
<form string="Payment Term" version="7.0">
<group>
<group col="4">
<field name="name"/>
<field name="active"/>
</group>
<separator string="Description on Invoices"/>
<field name="note"/>
<field name="note" placeholder="Note fo the invoice..."/>
<separator string="Computation"/>
<field name="line_ids"/>
</form>

View File

@ -12,7 +12,7 @@
<field name="active"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group>
<separator string="Mapping"/>
<separator string="Taxes Mapping"/>
<field name="tax_ids" widget="one2many_list">
<tree string="Tax Mapping" editable="bottom">
<field name="tax_src_id" domain="[('parent_id','=',False)]"/>
@ -23,6 +23,7 @@
<field name="tax_dest_id" domain="[('parent_id','=',False)]"/>
</form>
</field>
<separator string="Accounts Mapping"/>
<field name="account_ids" widget="one2many_list">
<tree string="Account Mapping" editable="bottom">
<field name="account_src_id"/>
@ -93,8 +94,10 @@
</group>
<field name="bank_ids">
<form string="Bank account" version="7.0">
<field name="state"/>
<field name="acc_number"/>
<group col="4">
<field name="state"/>
<field name="acc_number"/>
</group>
<group>
<group name="owner" string="Bank Account Owner">
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>

View File

@ -92,7 +92,7 @@ class account_move_journal(osv.osv_memory):
journal = False
if journal_id:
journal = journal_pool.read(cr, uid, journal_id, ['name'], context=context).name
journal = journal_pool.read(cr, uid, journal_id, ['name'], context=context).get('name',False)
journal_string = _("Journal: %s") % tools.ustr(journal)
else:
journal_string = _("Journal: All")

View File

@ -36,6 +36,7 @@ Adds menu to show relevant information to each manager.You can also view the rep
'depends': ['hr_timesheet_invoice', 'sale'], #although sale is technically not required to install this module, all menuitems are located under 'Sales' application
'data': [
'security/ir.model.access.csv',
'security/account_analytic_analysis_security.xml',
'account_analytic_analysis_view.xml',
'account_analytic_analysis_menu.xml',
'account_analytic_analysis_cron.xml',

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="res.users" id="base.user_root">
<field eval="[(4,ref('sale.group_analytic_accounting'))]" name="groups_id"/>
</record>
</data>
</openerp>

View File

@ -129,7 +129,7 @@
</group>
</page>
<page string="Depreciation Board">
<field name="depreciation_line_ids" mode="tree,graph">
<field name="depreciation_line_ids" mode="tree">
<tree string="Depreciation Lines" colors="blue:(move_check == False);black:(move_check == True)">
<field name="depreciation_date"/>
<field name="sequence" invisible="1"/>
@ -159,11 +159,6 @@
</group>
</group>
</form>
<graph type="bar">
<field name="name"/>
<field name="amount"/>
<field name="depreciated_value"/>
</graph>
</field>
<button type="object" name="compute_depreciation_board" string="Compute" icon="terp-stock_format-scientific" colspan="2" attrs="{'invisible':[('state','=','close')]}"/>
</page>

View File

@ -62,12 +62,7 @@
<field name="account_ids"/>
</page>
<page string="Budget Lines">
<field name="crossovered_budget_line" widget="one2many_list" mode="graph,tree">
<graph type="bar" string="Lines">
<field name="analytic_account_id" groups="analytic.group_analytic_accounting"/>
<field name="planned_amount" operator="+"/>
<field group="True" name="general_budget_id"/>
</graph>
<field name="crossovered_budget_line" widget="one2many_list" mode="tree">
<tree string="Budget Lines" editable="top">
<field name="crossovered_budget_id"/>
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" domain="[('parent_id','!=',False)]"/>

View File

@ -22,6 +22,10 @@
<field eval="True" name="global"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record model="res.users" id="base.user_root">
<field eval="[(4,ref('analytic.group_analytic_accounting'))]" name="groups_id"/>
</record>
</data>
</openerp>

View File

@ -404,9 +404,9 @@
<field name="name"/>
<field name="statement_id" readonly="1"/>
<field name="ref" readonly="1"/>
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="type" on_change="onchange_type(partner_id, type)"/>
<field name="account_id" domain="[('journal_id','=',parent.journal_id)]"/>
<field name="partner_id" />
<field name="type" />
<field name="account_id" />
<field name="amount" readonly="1" sum="Total Amount"/>
<field name="globalisation_id" string="Glob. Id"/>
<field name="globalisation_amount" string="Glob. Am."/>
@ -426,9 +426,9 @@
<field name="val_date"/>
<field name="name"/>
<field name="ref" readonly="0"/>
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="type" on_change="onchange_type(partner_id, type)"/>
<field domain="[('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id"/>
<field name="partner_id"/>
<field name="type" />
<field domain="[('type', '&lt;&gt;', 'view')]" name="account_id"/>
<field name="amount"/>
<field name="globalisation_id"/>
<field name="sequence" readonly="0"/>

View File

@ -47,16 +47,18 @@
<field name="state" widget="statusbar" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</header>
<sheet string="Accounting Voucher">
<group col="6" colspan="4">
<group col="4" colspan="4">
<field name="partner_id" required="1" on_change="onchange_journal_voucher(line_ids, tax_id, amount, partner_id, journal_id, type)"/>
<field name="payment_rate_currency_id" invisible="1"/>
<field name="date" on_change="onchange_date(date, currency_id, payment_rate_currency_id, amount, company_id)"/>
<field name="journal_id" widget="selection" on_change="onchange_journal_voucher(line_ids, tax_id, amount, partner_id, journal_id, type)"/>
<field name="type" required="1"/>
<field name="name" colspan="2"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<field name="reference"/>
<field name="number"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="account_id" widget="selection" invisible="True"/>
<field name="payment_rate_currency_id" invisible="1"/>
</group>
<notebook colspan="4">
<page string="Voucher Entry">
@ -69,20 +71,16 @@
<field name="account_analytic_id" groups="analytic.group_analytic_accounting"/>
</tree>
</field>
<group col="3">
<group string="Internal Notes">
<field name="narration" colspan="2" nolabel="1"/>
</group>
<group string="Other Information">
<field name="number"/>
<field name="currency_id" groups="base.group_multi_currency"/>
</group>
<group col="4" attrs="{'invisible':[('type','in',['payment', 'receipt', False])]}">
<separator string="Total" colspan="4"/>
<field name="tax_id" on_change="onchange_price(line_ids, tax_id, partner_id)" widget="selection"/>
<group>
<field name="narration" nolabel="1" placeholder="Internal Notes"/>
<group class="oe_subtotal_footer oe_right" attrs="{'invisible':[('type','in',['payment', 'receipt', False])]}">
<field name="tax_id" on_change="onchange_price(line_ids, tax_id, partner_id)" widget="selection" nolabel="1"/>
<field name="tax_amount" nolabel="1"/>
<button type="object" icon="terp-stock_format-scientific" name="compute_tax" string="Compute Tax" attrs="{'invisible': [('state','!=','draft')]}"/>
<label colspan="1" string=""/><field name="amount" string="Total"/>
<div class="oe_subtotal_footer_separator">
<label for="amount"/>
<button type="object" icon="terp-stock_format-scientific" name="compute_tax" class="oe_link oe_edit_only" string="(Update)" attrs="{'invisible': [('state','!=','draft')]}"/>
</div>
<field name="amount" class="oe_subtotal_footer_separator" nolabel="1"/>
</group>
</group>
</page>

View File

@ -68,8 +68,10 @@ class ir_model_fields_anonymization(osv.osv):
return state
def _check_write(self, cr, uid, context=None):
# check that the field is created from the menu and not from an database update
# otherwise the database update can crash:
"""check that the field is created from the menu and not from an database update
otherwise the database update can crash:"""
if context is None:
context = {}
if context.get('manual'):
global_state = self._get_global_state(cr, uid, context=context)
@ -295,10 +297,10 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, *args, **kwargs):
state = self.pool.get('ir.model.fields.anonymization')._get_global_state(cr, uid, context=context)
if context is None:
context = {}
step = context.get('step', 'new_window')
res = super(ir_model_fields_anonymize_wizard, self).fields_view_get(cr, uid, view_id, view_type, context, *args, **kwargs)

View File

@ -132,8 +132,6 @@
<header>
<button name="%(crm.action_crm_lead2opportunity_partner)d" string="Convert to Opportunity" type="action"
states="draft,open,pending" help="Convert to Opportunity" class="oe_highlight"/>
<button name="case_escalate" string="Escalate" type="object"
states="draft,open,pending"/>
<button name="case_reset" string="Reset" type="object"
states="cancel"/>
<button name="case_cancel" string="Cancel" type="object"
@ -188,7 +186,11 @@
</group>
<group>
<field name="user_id"/>
<field name="section_id"/>
<label for="section_id"/>
<div>
<field name="section_id"/>
<button name="case_escalate" string="Escalate" type="object" states="draft,open,pending"/>
</div>
<field name="type" invisible="1"/>
</group>
<group>
@ -402,8 +404,6 @@
states="draft,open,pending" class="oe_highlight"/>
<button name="case_mark_lost" string="Mark Lost" type="object"
states="draft,open" class="oe_highlight"/>
<button name="case_escalate" string="Escalate" type="object"
states="open" />
<field name="stage_id" widget="statusbar" clickable="True"/>
</header>
<sheet>
@ -449,7 +449,11 @@
<group>
<field name="user_id"/>
<field name="section_id" colspan="1" widget="selection"/>
<label for="section_id"/>
<div>
<field name="section_id" widget="selection"/>
<button name="case_escalate" string="Escalate" type="object" states="draft,open,pending" />
</div>
</group>
<group>
<field name="categ_ids"

View File

@ -38,7 +38,7 @@ when you confirm your sale order it will automatically create a registration for
this event.
""",
'author': 'OpenERP SA',
'depends': ['event','sale','sale_crm'],
'depends': ['event', 'sale_crm'],
'data': ['event_sale_view.xml'],
'demo': ['event_demo.xml'],
'test': ['test/confirm.yml'],

View File

@ -261,7 +261,6 @@ class hr_employee(osv.osv):
_defaults = {
'active': 1,
'image': _get_default_image,
'marital': 'single',
'color': 0,
}

View File

@ -180,7 +180,7 @@
<field name="name">Employees</field>
<field name="res_model">hr.employee</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_mode">form,tree</field>
<field name="view_id" eval="False"/>
<field name="search_view_id" ref="view_employee_filter"/>
</record>

View File

@ -17,7 +17,7 @@
<field name="name">Payroll</field>
<field name="res_model">ir.module.module</field>
<field name="view_mode">kanban,tree,form</field>
<field name="context" eval="{'search_default_category_id': ref('base.module_category_localization'), 'search_default_name': 'payroll'}"/>
<field name="context" eval="{'search_default_category_id': ref('base.module_category_localization')}"/>
<field name="search_view_id" ref="base.view_module_filter"/>
</record>

View File

@ -1,5 +1,5 @@
.oe_employee_vignette {
padding: 8px 0;
padding: 8px 8px;
min-height: 100px;
}

View File

@ -21,7 +21,7 @@
<field name="arch" type="xml">
<data>
<xpath expr="//div[@name='button_box']" position="inside">
<button name="%(act_hr_employee_2_hr_contract)d" string="Contracts" type="action"/>
<button name="%(act_hr_employee_2_hr_contract)d" string="Contracts" type="action" groups="base.group_hr_manager"/>
</xpath>
<xpath expr="//field[@name='coach_id']" position="after">
<field name="manager"/>

View File

@ -392,12 +392,6 @@ Once the form had been filled, the employee send it to his supervisor.
<field name="type">char</field>
<field eval="5" name="sequence"/>
</record>
<record id="survey_answer_98" model="survey.answer">
<field name="answer">Title</field>
<field name="question_id" ref="survey_question_2"/>
<field name="type">char</field>
<field eval="6" name="sequence"/>
</record>
<record id="survey_question_column_heading_4" model="survey.question.column.heading">
<field name="in_visible_rating_weight">1</field>
<field name="in_visible_menu_choice">1</field>

View File

@ -239,7 +239,7 @@
<field name="name">Appraisal</field>
<field name="res_model">hr_evaluation.evaluation</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,graph</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="hr_evaluation.evaluation_search"/>
<field name="context">{"search_default_next_month":1}</field>
<field name="help" type="html">

View File

@ -39,4 +39,4 @@ access_survey_response_hr_employee,survey.response.employee,survey.model_survey_
access_survey_question_column_heading_hr_employee,survey.question.column.heading.employee,survey.model_survey_question_column_heading,base.group_user,1,0,0,0
access_survey_response_line_hr_employee,survey.response.line.employee,survey.model_survey_response_line,base.group_user,1,1,1,0
access_survey_response_answer_hr_employee,survey.response.answer.hr.employee,survey.model_survey_response_answer,base.group_user,1,1,1,0
access_survey_tbl_column_heading_hr_employee,survey.tbl.column.heading,survey.model_survey_tbl_column_heading,base.group_user,1,1,1,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
39 access_survey_question_column_heading_hr_employee survey.question.column.heading.employee survey.model_survey_question_column_heading base.group_user 1 0 0 0
40 access_survey_response_line_hr_employee survey.response.line.employee survey.model_survey_response_line base.group_user 1 1 1 0
41 access_survey_response_answer_hr_employee survey.response.answer.hr.employee survey.model_survey_response_answer base.group_user 1 1 1 0
42 access_survey_tbl_column_heading_hr_employee survey.tbl.column.heading survey.model_survey_tbl_column_heading base.group_user 1 1 1 0

View File

@ -54,7 +54,6 @@
str(ref("survey_question_2")) +"_" +str(ref("survey_answer_20")) + "_multi" :'3',
str(ref("survey_question_2")) +"_" +str(ref("survey_answer_25")) + "_multi" :'2011-12-02 16:42:00',
str(ref("survey_question_2")) +"_" +str(ref("survey_answer_43")) + "_multi" :'HR',
str(ref("survey_question_2")) +"_" +str(ref("survey_answer_98")) + "_multi" :'tpa review'
}, context = ctx)
-
I close this Evaluation survey by giving answer of questions.

View File

@ -130,7 +130,7 @@
</page>
<page string="Other Info">
<group>
<group string="Accounting Data">
<group string="Accounting Data" groups="account.group_account_user">
<field name="journal_id" widget="selection" domain="[('type', '=', 'purchase')]"/>
<field name="voucher_id" context="{'form_view_ref': 'account_voucher.view_purchase_receipt_form'}"/>
</group>

View File

@ -92,7 +92,7 @@
<header>
<button string="Approve" name="validate" states="confirm" type="workflow" groups="base.group_hr_user" class="oe_highlight"/>
<button string="Validate" name="second_validate" states="validate1" type="workflow" groups="base.group_hr_user" class="oe_highlight"/>
<button string="Refuse" name="refuse" states="confirm,validate1,validate" type="workflow" groups="base.group_hr_user" class="oe_highlight"/>
<button string="Refuse" name="refuse" states="confirm,validate1,validate" type="workflow" groups="base.group_hr_user"/>
<button string="Reset to New" name="set_to_draft" states="refuse" type="object" groups="base.group_hr_user" />
<field name="state" widget="statusbar" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/>
</header>
@ -137,7 +137,7 @@
<header>
<button string="Approve" name="validate" states="confirm" type="workflow" groups="base.group_hr_user" class="oe_highlight"/>
<button string="Validate" name="second_validate" states="validate1" type="workflow" groups="base.group_hr_user" class="oe_highlight"/>
<button string="Refuse" name="refuse" states="confirm,validate,validate1" type="workflow" groups="base.group_hr_user" class="oe_highlight"/>
<button string="Refuse" name="refuse" states="confirm,validate,validate1" type="workflow" groups="base.group_hr_user"/>
<button string="Reset to New" name="set_to_draft" states="cancel,refuse" type="object" groups="base.group_hr_user" />
<field name="state" widget="statusbar" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/>
</header>
@ -483,6 +483,7 @@
<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="priority" eval="20"/>
<field name="arch" type="xml">
<tree string="Assign Leaves" editable="bottom">
<field name="name" string="Employee"/>
@ -522,7 +523,7 @@
</group>
</xpath>
<xpath expr="//div[@name='button_box']" position="inside">
<button name="%(act_hr_employee_holiday_request)d" string="Leaves" type="action"/>
<button name="%(act_hr_employee_holiday_request)d" string="Leaves" type="action" groups="base.group_hr_user"/>
</xpath>
</field>
</record>

View File

@ -669,26 +669,26 @@ class hr_payslip(osv.osv):
if not context.get('contract', False):
#fill with the first contract of the employee
contract_ids = self.get_contract(cr, uid, employee_id, date_from, date_to, context=context)
res['value'].update({
'struct_id': contract_ids and contract_obj.read(cr, uid, contract_ids[0], ['struct_id'], context=context)['struct_id'][0] or False,
'contract_id': contract_ids and contract_ids[0] or False,
})
else:
if contract_id:
#set the list of contract for which the input have to be filled
contract_ids = [contract_id]
#fill the structure with the one on the selected contract
contract_record = contract_obj.browse(cr, uid, contract_id, context=context)
res['value'].update({
'struct_id': contract_record.struct_id.id,
'contract_id': contract_id
})
else:
#if we don't give the contract, then the input to fill should be for all current contracts of the employee
contract_ids = self.get_contract(cr, uid, employee_id, date_from, date_to, context=context)
if not contract_ids:
return res
if not contract_ids:
return res
contract_record = contract_obj.browse(cr, uid, contract_ids[0], context=context)
res['value'].update({
'contract_id': contract_record and contract_record.id or False
})
struct_record = contract_record and contract_record.struct_id or False
if not struct_record:
return res
res['value'].update({
'struct_id': struct_record.id,
})
#computation of the salary input
worked_days_line_ids = self.get_worked_day_lines(cr, uid, contract_ids, date_from, date_to, context=context)
input_line_ids = self.get_inputs(cr, uid, contract_ids, date_from, date_to, context=context)

View File

@ -234,7 +234,7 @@
</h2>
</div>
<group col="4">
<field name="contract_id" domain="[('employee_id','=',employee_id)]" on_change="onchange_contract_id(date_from, date_to, employee_id, contract_id)"/>
<field name="contract_id" domain="[('employee_id','=',employee_id)]" on_change="onchange_contract_id(date_from, date_to, employee_id, contract_id)" context="{'default_employee_id': employee_id}"/>
<field name="number"/>
<field name="struct_id" attrs="{'required':[('contract_id','&lt;&gt;',False)]}"/>
<field name="name"/>
@ -369,7 +369,7 @@
<field name="view_id" ref="view_hr_payslip_tree"/>
<field name="search_view_id" ref="view_hr_payslip_filter"/>
</record>
<menuitem action="action_view_hr_payslip_form" id="menu_department_tree" parent="menu_hr_root_payroll"/>
<menuitem action="action_view_hr_payslip_form" id="menu_department_tree" parent="menu_hr_root_payroll" groups="base.group_hr_user"/>
<act_window name="Payslips"
context="{'search_default_employee_id': [active_id], 'default_employee_id': active_id}"
res_model="hr.payslip"
@ -386,7 +386,7 @@
<field name="arch" type="xml">
<data>
<xpath expr="//div[@name='button_box']" position="inside">
<button name="%(act_hr_employee_payslip_list)d" string="Payslips" type="action"/>
<button name="%(act_hr_employee_payslip_list)d" string="Payslips" type="action" groups="base.group_hr_user"/>
</xpath>
</data>
</field>

View File

@ -187,7 +187,7 @@
</record>
<menuitem action="act_hr_timesheet_sheet_form" id="menu_act_hr_timesheet_sheet_form" parent="hr_attendance.menu_hr_time_tracking"
sequence="2" groups="base.group_hr_user,base.group_hr_manager"/>
sequence="2" groups="base.group_hr_user"/>
<!--
Company inheritancy
@ -350,7 +350,7 @@
<field name="inherit_id" ref="hr_timesheet.hr_timesheet_employee_extd_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='button_box']" position="inside">
<button name="%(act_hr_employee_2_hr_timesheet)d" string="Timesheets" type="action"/>
<button name="%(act_hr_employee_2_hr_timesheet)d" string="Timesheets" type="action" groups="base.group_hr_manager"/>
</xpath>
</field>
</record>

View File

@ -19,7 +19,6 @@
#
##############################################################################
import company
import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -45,8 +45,8 @@ class l10n_be_vat_declaration(osv.osv_memory):
'tax_code_id': fields.many2one('account.tax.code', 'Tax Code', domain=[('parent_id', '=', False)], required=True),
'msg': fields.text('File created', size=64, readonly=True),
'file_save': fields.binary('Save File'),
'ask_restitution': fields.boolean('Ask Restitution',help='It indicates whether a restitution is to made or not?'),
'ask_payment': fields.boolean('Ask Payment',help='It indicates whether a payment is to made or not?'),
'ask_restitution': fields.boolean('Ask Restitution',help='It indicates whether a restitution is to make or not?'),
'ask_payment': fields.boolean('Ask Payment',help='It indicates whether a payment is to make or not?'),
'client_nihil': fields.boolean('Last Declaration, no clients in client listing', help='Tick this case only if it concerns only the last statement on the civil or cessation of activity: ' \
'no clients to be included in the client listing.'),
'comments': fields.text('Comments'),
@ -70,6 +70,7 @@ class l10n_be_vat_declaration(osv.osv_memory):
obj_tax_code = self.pool.get('account.tax.code')
obj_acc_period = self.pool.get('account.period')
obj_user = self.pool.get('res.users')
obj_partner = self.pool.get('res.partner')
mod_obj = self.pool.get('ir.model.data')
if context is None:
@ -83,7 +84,7 @@ class l10n_be_vat_declaration(osv.osv_memory):
obj_company = obj_user.browse(cr, uid, uid, context=context).company_id
vat_no = obj_company.partner_id.vat
if not vat_no:
raise osv.except_osv(_('Insufficient Data!'), _('No VAT Number Associated with Main Company.'))
raise osv.except_osv(_('insufficient data!'), _('No VAT number associated with your company.'))
vat_no = vat_no.replace(' ','').upper()
vat = vat_no[2:]
@ -93,8 +94,9 @@ class l10n_be_vat_declaration(osv.osv_memory):
ctx['period_id'] = data['period_id'][0]
tax_info = obj_tax_code.read(cr, uid, tax_code_ids, ['code','sum_period'], context=ctx)
name = email = phone = address = post_code = city = country_code = ''
name, email, phone, city, post_code, address, country_code = self.pool.get('res.company')._get_default_ad(obj_company.partner_id)
default_address = obj_partner.address_get(cr, uid, [obj_company.partner_id.id])
default_address_id = default_address.get("default", obj_company.partner_id.id)
address_id= obj_partner.browse(cr, uid, default_address_id, context)
account_period = obj_acc_period.browse(cr, uid, data['period_id'][0], context=context)
issued_by = vat_no[:2]
@ -106,21 +108,21 @@ class l10n_be_vat_declaration(osv.osv_memory):
ending_month = account_period.date_stop[5:7]
quarter = str(((int(starting_month) - 1) / 3) + 1)
if not email:
if not address_id.email:
raise osv.except_osv(_('Insufficient Data!'),_('No email address associated with the company.'))
if not phone:
if not address_id.phone:
raise osv.except_osv(_('Insufficient Data!'),_('No phone associated with the company.'))
file_data = {
'issued_by': issued_by,
'vat_no': vat_no,
'only_vat': vat_no[2:],
'cmpny_name': obj_company.name,
'address': address,
'post_code': post_code,
'city': city,
'country_code': country_code,
'email': email,
'phone': phone.replace('.','').replace('/','').replace('(','').replace(')','').replace(' ',''),
'address': "%s %s"%(address_id.street or "",address_id.street2 or ""),
'post_code': address_id.zip or "",
'city': address_id.city or "",
'country_code': address_id.country_id and address_id.country_id.code or "",
'email': address_id.email or "",
'phone': address_id.phone.replace('.','').replace('/','').replace('(','').replace(')','').replace(' ',''),
'send_ref': send_ref,
'quarter': quarter,
'month': starting_month,

View File

@ -61,7 +61,7 @@ class partner_vat(osv.osv_memory):
company_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id
period_ids = obj_period.search(cr, uid, [('date_start' ,'>=', date_start), ('date_stop','<=',date_stop), ('company_id','=',company_id)])
if not period_ids:
raise osv.except_osv(_('Insufficient Data!'), _('No data for the selected year.'))
raise osv.except_osv(_('insufficient data!'), _('No data for the selected year.'))
partners = []
partner_ids = obj_partner.search(cr, uid, [('vat_subjected', '!=', False), ('vat','ilike','BE%')], context=context)
@ -87,6 +87,9 @@ class partner_vat(osv.osv_memory):
if record['turnover'] >= data['limit_amount']:
id_client = obj_vat_lclient.create(cr, uid, record, context=context)
partners.append(id_client)
if not partners:
raise osv.except_osv(_('insufficient data!'), _('No data found for the selected year.'))
context.update({'partner_ids': partners, 'year': data['year'], 'limit_amount': data['limit_amount']})
model_data_ids = obj_model_data.search(cr, uid, [('model','=','ir.ui.view'), ('name','=','view_vat_listing')])
resource_id = obj_model_data.read(cr, uid, model_data_ids, fields=['res_id'])[0]['res_id']
@ -190,7 +193,7 @@ class partner_vat_list(osv.osv_memory):
phone = ads.phone.replace(' ','') or ''
email = ads.email or ''
name = ads.name or ''
city = obj_partner.get_city(cr, uid, ads.id)
city = ads.city or ''
zip = obj_partner.browse(cr, uid, ads.id, context=context).zip or ''
if not city:
city = ''

View File

@ -6,18 +6,18 @@
<field name="model">partner.vat</field>
<field name="arch" type="xml">
<form string="Partner VAT Listing" version="7.0">
<header>
<p class="oe_grey">
This wizard will create an XML file for VAT details and total invoiced amounts per partner.
</p>
<group>
<field name="year"/>
<field name="limit_amount"/>
</group>
<footer>
<button name="get_partner" string="View Customers" type="object" class="oe_highlight" />
or
<button string="Cancel" class="oe_link" special="cancel" />
</header>
<group>
<label string="This wizard will create an XML file for VAT details and total invoiced amounts per partner." colspan="4"/>
</group>
<newline/>
<field name="year"/>
<newline/>
<field name="limit_amount"/>
</footer>
</form>
</field>
</record>

View File

@ -108,7 +108,7 @@ class partner_vat_intra(osv.osv_memory):
# Get Company vat
company_vat = data_company.partner_id.vat
if not company_vat:
raise osv.except_osv(_('Insufficient Data!'),_('No VAT number associated with the company.'))
raise osv.except_osv(_('insufficient data!'),_('No VAT number associated with your company.'))
company_vat = company_vat.replace(' ','').upper()
issued_by = company_vat[:2]

View File

@ -8,7 +8,7 @@
<field name="inherit_id" ref="account.view_partner_property_form" />
<field name="arch" type="xml">
<data>
<xpath expr="//field[@name='bank_ids']/form/field[@name='acc_number']" position="before">
<xpath expr="//field[@name='bank_ids']//field[@name='acc_number']" position="before">
<newline />
<field name="bank_code" />
<field name="office" />

View File

@ -73,7 +73,7 @@ class res_users(osv.Model):
def create(self, cr, uid, data, context=None):
# create default alias same as the login
if not data.get('login', False):
raise osv.except_osv(_('Invalid Action!'), _('You may not create a user.'))
raise osv.except_osv(_('Invalid Action!'), _('You may not create a user. To create new users, you should use the "Settings > Users" menu.'))
mail_alias = self.pool.get('mail.alias')
alias_id = mail_alias.create_unique_alias(cr, uid, {'alias_name': data['login']}, model_name=self._name, context=context)

View File

@ -132,8 +132,6 @@
display: none;
white-space: normal;
padding: 8px;
background: #eee;
border-top: 1px solid #ccc;
}
.openerp div.oe_mail_thread_action:after {
@ -201,7 +199,7 @@
.openerp .oe_mail_msg_email {
padding: 8px;
background: white;
border-top: 1px solid #ccc;
border-top: 1px solid #ebebeb;
}
.openerp div.oe_mail_thread_subthread .oe_mail_msg_comment {

View File

@ -34,7 +34,7 @@ This module is the base module for other multi-company modules.
'website': 'http://www.openerp.com/',
'depends': [
'base',
'sale',
'sale_stock',
'project',
],
'data': ['res_company_view.xml'],

View File

@ -181,7 +181,7 @@
</record>
<record id="sale.sale_order_5" model="sale.order">
<field name="company_id" ref="res_company_oerp_in"/>
<field name="company_id" ref="base.main_company"/>
</record>

View File

@ -185,5 +185,4 @@ class note_base_config_settings(osv.osv_memory):
_columns = {
'module_note_pad': fields.boolean('Use collaborative pads (etherpad)'),
'group_note_fancy': fields.boolean('Use fancy layouts for notes', implied_group='note.group_note_fancy'),
'group_note_tags': fields.boolean('Allow setting tags on notes', implied_group='note.group_note_tags'),
}

View File

@ -4,28 +4,27 @@
<record model="note.stage" id="demo_note_stage_01">
<field name="name">Today</field>
<field name="sequence">1</field>
<field name="user_id" eval="ref('base.user_demo')"/>
<field name="user_id" ref="base.user_demo"/>
</record>
<record model="note.stage" id="demo_note_stage_02">
<field name="name">Tomorrow</field>
<field name="sequence">2</field>
<field name="user_id" eval="ref('base.user_demo')"/>
<field name="user_id" ref="base.user_demo"/>
</record>
<record model="note.stage" id="demo_note_stage_03">
<field name="name">Later</field>
<field name="sequence">3</field>
<field name="user_id" eval="ref('base.user_demo')"/>
<field name="user_id" ref="base.user_demo"/>
</record>
<record model="note.stage" id="demo_note_stage_04">
<field name="name">Notes</field>
<field name="name">Morning</field>
<field name="sequence">4</field>
<field name="user_id" eval="ref('base.user_demo')"/>
<field name="user_id" ref="base.user_root"/>
</record>
<record id="note_1" model="note.note">
<field name="name">Customer report #349872</field>
<field name="memo"><![CDATA[<b>Customer report #349872</b>
@ -35,8 +34,9 @@
<br/>* We should use the term Calendar, not Meeting.
]]>
</field>
<field name="stage_id" ref="note_stage_01"/>
<field name="stage_id" ref="demo_note_stage_01"/>
<field name="color">2</field>
<field name="message_follower_ids" eval="[(4, ref('base.group_user'))]"/>
</record>
<record id="note_2" model="note.note">
@ -44,14 +44,7 @@
<br/><br/>* Followed by the telephone conversation and mail about D.544.3
]]>
</field>
<field name="stage_id" ref="note_stage_01"/>
</record>
<record id="note_3" model="note.note">
<field name="memo"><![CDATA[<b>Call Marc</b>
<br/><br/>]]>
</field>
<field name="stage_id" ref="note_stage_01"/>
<field name="stage_id" ref="demo_note_stage_01"/>
</record>
<record id="note_4" model="note.note">
@ -67,7 +60,8 @@
<br/>* wine
]]>
</field>
<field name="stage_id" ref="note_stage_02"/>
<field name="stage_id" ref="demo_note_stage_02"/>
<field name="message_follower_ids" eval="[(4, ref('base.group_user'))]"/>
</record>
<record id="note_6" model="note.note">
@ -79,15 +73,6 @@
<field name="stage_id" ref="note_stage_02"/>
</record>
<record id="note_7" model="note.note">
<field name="memo"><![CDATA[<b>Read some documentation about OpenERP before diving into the code</b>
<br/><br/>* Open ERP: a modern approach to integrated business management
<br/>* Open ERP for Retail and Industrial Management
]]>
</field>
<field name="stage_id" ref="note_stage_03"/>
</record>
<record id="note_8" model="note.note">
<field name="memo"><![CDATA[<b>New computer specs</b>
<br/><br/>* Motherboard
@ -108,6 +93,7 @@
</field>
<field name="stage_id" ref="note_stage_03"/>
<field name="color">3</field>
<field name="message_follower_ids" eval="[(4, ref('base.group_user'))]"/>
</record>
<record id="note_9" model="note.note">
@ -116,16 +102,7 @@
<br/>* Open ERP for Retail and Industrial Management
]]>
</field>
<field name="stage_id" ref="note_stage_02"/>
</record>
<record id="note_10" model="note.note">
<field name="memo"><![CDATA[<b>Read some documentation about OpenERP before diving into the code</b>
<br/><br/>* Open ERP: a modern approach to integrated business management
<br/>* Open ERP for Retail and Industrial Management
]]>
</field>
<field name="stage_id" ref="note_stage_03"/>
<field name="stage_id" ref="demo_note_stage_02"/>
</record>
<record id="note_12" model="note.note">
@ -134,8 +111,9 @@
<br/>* Open ERP for Retail and Industrial Management
]]>
</field>
<field name="stage_id" ref="note_stage_03"/>
<field name="message_follower_ids" eval="[(4, ref('base.group_user'))]"/>
<field name="color">7</field>
<field name="stage_ids" eval="['note_stage_03','demo_note_stage_04']"/>
</record>
</data>

View File

@ -61,7 +61,7 @@
<div class="oe_dropdown_kanban">
<span>
<a name="onclick_note_is_done" type="object" t-if="record.open.raw_value" class="oe_e">W</a>
<a name="onclick_note_not_done" type="object" t-if="!record.open.raw_value" class="oe_e">è</a>
<a name="onclick_note_not_done" type="object" t-if="!record.open.raw_value" class="oe_e">W</a>
</span>
<!-- dropdown menu -->
@ -101,7 +101,7 @@
<field name="name"/>
<field name="open"/>
<field name="stage_id"/>
<field name="tag_ids" widget="many2many_tags" groups="note.group_note_tags"/>
<field name="tag_ids" widget="many2many_tags"/>
</tree>
</field>
</record>
@ -130,7 +130,7 @@
<field name="arch" type="xml">
<search string="Notes">
<field name="memo" string="Note"/>
<field name="tag_ids" groups="note.group_note_tags"/>
<field name="tag_ids"/>
<filter name="open_true" string="Active" domain="['|',('open', '=', True),('date_done','=',time.strftime('%%Y-%%m-%%d'))]"/>
<filter name="open_false" string="Archive" domain="[('open', '=', False)]"/>
<group expand="0" string="Group By...">
@ -159,10 +159,6 @@
<field name="group_note_fancy" class="oe_inline"/>
<label for="group_note_fancy"/>
</div>
<div>
<field name="group_note_tags" class="oe_inline"/>
<label for="group_note_tags"/>
</div>
</div>
</group>
</xpath>

View File

@ -1,3 +1,2 @@
id,name,implied_ids/id
group_note_tags,Memo / Display tags,
group_note_fancy,Memo / Fancy mode,

1 id name implied_ids/id
group_note_tags Memo / Display tags
2 group_note_fancy Memo / Fancy mode

View File

@ -1,3 +0,0 @@
memo.css: memo.sass
sass -t expanded memo.sass memo.css

View File

@ -1,93 +1,53 @@
@charset "utf-8";
@font-face {
font-family: "mnmliconsRegular";
src: url("/web/static/src/font/mnmliconsv21-webfont.eot") format("eot");
src: url("/web/static/src/font/mnmliconsv21-webfont.woff") format("woff");
src: url("/web/static/src/font/mnmliconsv21-webfont.ttf") format("truetype");
src: url("/web/static/src/font/mnmliconsv21-webfont.svg") format("svg") active;
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: "EntypoRegular";
src: url("/web/static/src/font/entypo-webfont.eot") format("eot");
src: url("/web/static/src/font/entypo-webfont.eot?#iefix") format("embedded-opentype");
src: url("/web/static/src/font/entypo-webfont.woff") format("woff");
src: url("/web/static/src/font/entypo-webfont.ttf") format("truetype");
src: url("/web/static/src/font/entypo-webfont.svg") format("svg") active;
font-weight: normal;
font-style: normal;
}
@-moz-keyframes bounce {
0% {
-moz-transform: scale(0);
opacity: 0;
}
50% {
-moz-transform: scale(1.3);
opacity: 0.4;
}
75% {
-moz-transform: scale(0.9);
opacity: 0.7;
}
100% {
-moz-transform: scale(1);
opacity: 1;
}
}
@-webkit-keyframes bounce {
0% {
-webkit-transform: scale(0);
opacity: 0;
}
50% {
-webkit-transform: scale(1.3);
opacity: 0.4;
}
75% {
-webkit-transform: scale(0.9);
opacity: 0.7;
}
100% {
-webkit-transform: scale(1);
opacity: 1;
}
}
.oe_kanban_color_2 {
background-color: red;
}
.oe_kanban_column .note_text_line_through {
text-decoration: line-through;
}
.openerp .oe_fold_column .oe_kanban_card_fancy {
text-decoration: none;
color: black;
display: block;
padding: 1em;
margin-right: 1em;
margin-bottom: 1em;
-moz-box-shadow: 5px 5px 7px #212121;
-webkit-box-shadow: 5px 5px 7px rgba(33, 33, 33, 0.7);
box-shadow: 5px 5px 7px rgba(33, 33, 33, 0.7);
.openerp .oe_kanban_view.oe_notes .oe_kanban_card_fancy.oe_kanban_color_0 {
box-shadow: 0px 4px 9px rgba(48, 48, 48, 0.15);
}
.openerp .oe_kanban_view.oe_notes .oe_kanban_card_fancy.oe_kanban_color_1 {
box-shadow: 0px 4px 9px rgba(0, 0, 0, 0.15);
}
.openerp .oe_kanban_view.oe_notes .oe_kanban_card_fancy.oe_kanban_color_2 {
box-shadow: 0px 4px 9px rgba(48, 0, 0, 0.15);
}
.openerp .oe_kanban_view.oe_notes .oe_kanban_card_fancy.oe_kanban_color_3 {
box-shadow: 0px 4px 9px rgba(97, 93, 0, 0.16);
}
.openerp .oe_kanban_view.oe_notes .oe_kanban_card_fancy.oe_kanban_color_4 {
box-shadow: 0px 4px 9px rgba(77, 128, 0, 0.17);
}
.openerp .oe_kanban_view.oe_notes .oe_kanban_card_fancy.oe_kanban_color_5 {
box-shadow: 0px 4px 9px rgba(0, 88, 11, 0.15);
}
.openerp .oe_kanban_view.oe_notes .oe_kanban_card_fancy.oe_kanban_color_6 {
box-shadow: 0px 4px 9px rgba(0, 80, 95, 0.15);
}
.openerp .oe_kanban_view.oe_notes .oe_kanban_card_fancy.oe_kanban_color_7 {
box-shadow: 0px 4px 9px rgba(3, 13, 133, 0.18);
}
.openerp .oe_kanban_view.oe_notes .oe_kanban_card_fancy.oe_kanban_color_8 {
box-shadow: 0px 4px 9px rgba(56, 0, 128, 0.15);
}
.openerp .oe_kanban_view.oe_notes .oe_kanban_card_fancy.oe_kanban_color_9 {
box-shadow: 0px 4px 9px rgba(102, 0, 116, 0.15);
}
.openerp .oe_kanban_record .oe_kanban_card_fancy {
text-shadow: none;
border-radius: 2px;
padding: 12px;
margin-left: 3px;
margin-right: 3px;
padding-bottom: 16px;
margin-bottom: 16px;
-webkit-transform: rotate(-2deg);
-o-transform: rotate(-2deg);
-moz-transform: rotate(-2deg);
-webkit-transition: all 300ms cubic-bezier(0.5, 0, 0.5, 1);
-moz-transition: all 300ms cubic-bezier(0.5, 0, 0.5, 1);
-ms-transition: all 300ms cubic-bezier(0.5, 0, 0.5, 1);
transition: all 300ms cubic-bezier(0.5, 0, 0.5, 1);
}
.openerp .oe_kanban_record:nth-of-type(even) .oe_kanban_card_fancy {
-webkit-transform: rotate(1deg);
@ -132,12 +92,14 @@
.openerp .oe_kanban_column .oe_fold_column .oe_kanban_card_fancy:hover,
.openerp .oe_kanban_column .oe_fold_column .oe_kanban_card_fancy:focus {
box-shadow: 10px 10px 7px rgba(0, 0, 0, 0.7);
-moz-box-shadow: 10px 10px 7px rgba(0, 0, 0, 0.7);
-webkit-box-shadow: 10px 10px 7px rgba(0, 0, 0, 0.7);
position: relative;
z-index: 5;
-webkit-transform: rotate(0);
-o-transform: rotate(0);
-moz-transform: rotate(0);
border-color: rgba(0, 0, 0, 0.4);
-webkit-transition: all 150ms cubic-bezier(0.5, 0, 0.5, 1);
-moz-transition: all 150ms cubic-bezier(0.5, 0, 0.5, 1);
-ms-transition: all 150ms cubic-bezier(0.5, 0, 0.5, 1);
transition: all 150ms cubic-bezier(0.5, 0, 0.5, 1);
-webkit-transform: rotate(0) !important;
-o-transform: rotate(0) !important;
-moz-transform: rotate(0) !important;
}

View File

@ -1,168 +1,54 @@
@charset "utf-8"
// Variables {{{
$section-title-color: #8786b7
$tag-bg-light: #f0f0fa
$tag-bg-dark: #8786b7
$tag-border: #afafb6
$tag-border-selected: #a6a6fe
$hover-background: #f0f0fa
$link-color: #8a89ba
$sheet-max-width: 860px
// }}}
// Mixins {{{
@font-face
font-family: 'mnmliconsRegular'
src: url('/web/static/src/font/mnmliconsv21-webfont.eot') format('eot')
src: url('/web/static/src/font/mnmliconsv21-webfont.woff') format('woff')
src: url('/web/static/src/font/mnmliconsv21-webfont.ttf') format('truetype')
src: url('/web/static/src/font/mnmliconsv21-webfont.svg') format('svg') active
font-weight: normal
font-style: normal
@font-face
font-family: 'EntypoRegular'
src: url('/web/static/src/font/entypo-webfont.eot') format('eot')
src: url('/web/static/src/font/entypo-webfont.eot?#iefix') format('embedded-opentype')
src: url('/web/static/src/font/entypo-webfont.woff') format('woff')
src: url('/web/static/src/font/entypo-webfont.ttf') format('truetype')
src: url('/web/static/src/font/entypo-webfont.svg') format('svg') active
font-weight: normal
font-style: normal
@mixin reset()
border: none
padding: 0
margin: 0
background: none
@include radius(none)
@include box-shadow(none)
@mixin vertical-gradient($startColor: #555, $endColor: #333)
background-color: $startColor
background-image: -webkit-gradient(linear, left top, left bottom, from($startColor), to($endColor)) /* Saf4+, Chrome */
background-image: -webkit-linear-gradient(top, $startColor, $endColor) /* Chrome 10+, Saf5.1+, iOS 5+ */
background-image: -moz-linear-gradient(top, $startColor, $endColor) /* FF3.6 */
background-image: -ms-linear-gradient(top, $startColor, $endColor) /* IE10 */
background-image: -o-linear-gradient(top, $startColor, $endColor) /* Opera 11.10+ */
background-image: linear-gradient(to bottom, $startColor, $endColor)
@mixin radial-gradient($gradient)
background-position: center center
background-image: -webkit-radial-gradient(circle, $gradient)
background-image: -moz-radial-gradient($gradient)
background-image: -ms-radial-gradient($gradient)
background-image: radial-gradient($gradient)
@mixin radius($radius: 5px)
-moz-border-radius: $radius
-webkit-border-radius: $radius
border-radius: $radius
@mixin box-shadow($bsval: 0px 1px 4px #777)
-moz-box-shadow: $bsval
-webkit-box-shadow: $bsval
box-shadow: $bsval
@mixin transition($transval: (border linear 0.2s, box-shadow linear 0.2s))
-webkit-transition: $transval
-moz-transition: $transval
-ms-transition: $transval
-o-transition: $transval
transition: $transval
@mixin opacity($opacity: .5)
filter: alpha(opacity=$opacity * 100)
opacity: $opacity
@mixin background-clip($clip: padding-box)
-webkit-background-clip: $clip
-moz-background-clip: $clip
background-clip: $clip
@mixin box-sizing($type: content)
// type = border || content || padding
-webkit-box-sizing: #{$type}-box
-moz-box-sizing: #{$type}-box
-ms-box-sizing: #{$type}-box
box-sizing: #{$type}-box
// Transforms the (readable) text of an inline element into an mmlicons icon,
// allows for actual readable text in-code (and in readers?) with iconic looks
@mixin text-to-icon($icon-name, $color: #404040)
font-size: 1px
letter-spacing: -1px
color: transparent
&: before
font: 21px "mnmliconsRegular"
content: $icon-name
color: $color
// }}}
// CSS animation bounces {{{
@-moz-keyframes bounce
0%
-moz-transform: scale(0)
opacity: 0
50%
-moz-transform: scale(1.3)
opacity: 0.4
75%
-moz-transform: scale(0.9)
opacity: 0.7
100%
-moz-transform: scale(1)
opacity: 1
@-webkit-keyframes bounce
0%
-webkit-transform: scale(0)
opacity: 0
50%
-webkit-transform: scale(1.3)
opacity: 0.4
75%
-webkit-transform: scale(0.9)
opacity: 0.7
100%
-webkit-transform: scale(1)
opacity: 1
// }}}
.oe_kanban_color_2
background-color: red
// au BufWritePost,FileWritePost *.sass : !sass --style expanded --line-numbers <afile> > "%: p: r.css"
.oe_kanban_column
.note_text_line_through
text-decoration: line-through
.openerp
.oe_fold_column
.oe_kanban_card_fancy
text-decoration: none
color: #000
display: block
padding: 1em
margin-right: 1em
margin-bottom: 1em
-moz-box-shadow: 5px 5px 7px rgba(33,33,33,1)
-webkit-box-shadow: 5px 5px 7px rgba(33,33,33,.7)
box-shadow: 5px 5px 7px rgba(33,33,33,.7)
@mixin rotate($a)
-webkit-transform: rotate($a)
-o-transform: rotate($a)
-webkit-transform: rotate($a)
-o-transform: rotate($a)
-moz-transform: rotate($a)
@mixin transition($what:all,$duration:100ms)
-webkit-transition: $what $duration cubic-bezier(0.5,0,0.5,1)
-moz-transition: $what $duration cubic-bezier(0.5,0,0.5,1)
-ms-transition: $what $duration cubic-bezier(0.5,0,0.5,1)
transition: $what $duration cubic-bezier(0.5,0,0.5,1)
.openerp
.oe_kanban_view.oe_notes
.oe_kanban_card_fancy.oe_kanban_color_0
box-shadow: 0px 4px 9px rgba(48,48,48,0.15)
.oe_kanban_card_fancy.oe_kanban_color_1
box-shadow: 0px 4px 9px rgba(0,0,0,0.15)
.oe_kanban_card_fancy.oe_kanban_color_2
box-shadow: 0px 4px 9px rgba(48,0,0,0.15)
.oe_kanban_card_fancy.oe_kanban_color_3
box-shadow: 0px 4px 9px rgba(97,93,0,0.16)
.oe_kanban_card_fancy.oe_kanban_color_4
box-shadow: 0px 4px 9px rgba(77,128,0,0.17)
.oe_kanban_card_fancy.oe_kanban_color_5
box-shadow: 0px 4px 9px rgba(0,88,11,0.15)
.oe_kanban_card_fancy.oe_kanban_color_6
box-shadow: 0px 4px 9px rgba(0,80,95,0.15)
.oe_kanban_card_fancy.oe_kanban_color_7
box-shadow: 0px 4px 9px rgba(3,13,133,0.18)
.oe_kanban_card_fancy.oe_kanban_color_8
box-shadow: 0px 4px 9px rgba(56,0,128,0.15)
.oe_kanban_card_fancy.oe_kanban_color_9
box-shadow: 0px 4px 9px rgba(102,0,116,0.15)
.oe_kanban_record
.oe_kanban_card_fancy
text-shadow: none
border-radius: 2px
padding: 12px
margin-left: 3px
margin-right: 3px
padding-bottom: 16px
margin-bottom: 16px
@include rotate(-2deg)
@include transition($what:all, $duration:300ms)
.oe_kanban_record:nth-of-type(even)
.oe_kanban_card_fancy
@include rotate(1deg)
@ -193,17 +79,16 @@ $sheet-max-width: 860px
@include rotate(-1deg)
@mixin oe_kanban_card_fancy
box-shadow: 10px 10px 7px rgba(0,0,0,.7)
-moz-box-shadow: 10px 10px 7px rgba(0,0,0,.7)
-webkit-box-shadow: 10px 10px 7px rgba(0,0,0,.7)
position: relative
z-index: 5
@include rotate(0)
.openerp
.oe_kanban_column
.oe_fold_column
.oe_kanban_card_fancy:hover,
.oe_kanban_card_fancy:focus
@include oe_kanban_card_fancy
position: relative
z-index: 5
border-color: rgba(0,0,0,0.4)
@include transition($what:all, $duration:150ms)
-webkit-transform: rotate(0) !important
-o-transform: rotate(0) !important
-moz-transform: rotate(0) !important

View File

@ -5,24 +5,56 @@ import re
import string
import urllib2
from tools.translate import _
from openerp.tools.misc import html2plaintext
from py_etherpad import EtherpadLiteClient
class pad_common(osv.osv_memory):
_name = 'pad.common'
def pad_generate_url(self, cr, uid, context=None):
pad_server = self.pool.get('res.users').browse(cr, uid, uid, context).company_id.pad_server
company = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id;
pad = {
"server" : company.pad_server,
"key" : company.pad_key or "4DxmsNIbnQUVQMW9S9tx2oLOSjFdrx1l",
}
# make sure pad server in the form of http://hostname
if not pad_server:
if not pad["server"]:
return ''
if not pad_server.startswith('http'):
pad_server = 'http://' + pad_server
pad_server = pad_server.rstrip('/')
if not pad["server"].startswith('http'):
pad["server"] = 'http://' + pad["server"]
pad["server"] = pad["server"].rstrip('/')
# generate a salt
s = string.ascii_uppercase + string.digits
salt = ''.join([s[random.randint(0, len(s) - 1)] for i in range(10)])
#path
path = '%s-%s-%s' % (cr.dbname.replace('_','-'), self._name, salt)
# contruct the url
url = '%s/p/%s-%s-%s' % (pad_server, cr.dbname.replace('_','-'), self._name, salt)
return url
url = '%s/p/%s' % (pad["server"], path)
#if create with content
if "field_name" in context and "model" in context and "object_id" in context:
myPad = EtherpadLiteClient( pad["key"], pad["server"]+'/api')
myPad.createPad(path)
#get attr on the field model
model = self.pool.get(context["model"])
field = model._all_columns[context['field_name']]
real_field = field.column.pad_content_field
#get content of the real field
for record in model.browse(cr, uid, [context["object_id"]]):
if record[real_field]:
myPad.setText(path, html2plaintext(record[real_field]))
#Etherpad for html not functional
#myPad.setHTML(path, record[real_field])
return {
"server": pad["server"],
"path": path,
"url": url,
}
def pad_get_content(self, cr, uid, url, context=None):
content = ''
@ -57,7 +89,8 @@ class pad_common(osv.osv_memory):
for k,v in self._all_columns:
field = v.column
if hasattr(field,'pad_content_field'):
default[k] = self.pad_generate_url(cr, uid, context)
pad = self.pad_generate_url(cr, uid, context)
default[k] = pad['url']
return super(pad_common, self).copy(cr, uid, id, default, context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,253 @@
#!/usr/bin/env python
"""Module to talk to EtherpadLite API."""
import json
import urllib
import urllib2
class EtherpadLiteClient:
"""Client to talk to EtherpadLite API."""
API_VERSION = 1 # TODO probably 1.1 sometime soon
CODE_OK = 0
CODE_INVALID_PARAMETERS = 1
CODE_INTERNAL_ERROR = 2
CODE_INVALID_FUNCTION = 3
CODE_INVALID_API_KEY = 4
TIMEOUT = 20
apiKey = ""
baseUrl = "http://localhost:9001/api"
def __init__(self, apiKey=None, baseUrl=None):
if apiKey:
self.apiKey = apiKey
if baseUrl:
self.baseUrl = baseUrl
def call(self, function, arguments=None):
"""Create a dictionary of all parameters"""
url = '%s/%d/%s' % (self.baseUrl, self.API_VERSION, function)
params = arguments or {}
params.update({'apikey': self.apiKey})
data = urllib.urlencode(params, True)
try:
opener = urllib2.build_opener()
request = urllib2.Request(url=url, data=data)
response = opener.open(request, timeout=self.TIMEOUT)
result = response.read()
response.close()
except urllib2.HTTPError:
raise
result = json.loads(result)
if result is None:
raise ValueError("JSON response could not be decoded")
return self.handleResult(result)
def handleResult(self, result):
"""Handle API call result"""
if 'code' not in result:
raise Exception("API response has no code")
if 'message' not in result:
raise Exception("API response has no message")
if 'data' not in result:
result['data'] = None
if result['code'] == self.CODE_OK:
return result['data']
elif result['code'] == self.CODE_INVALID_PARAMETERS or result['code'] == self.CODE_INVALID_API_KEY:
raise ValueError(result['message'])
elif result['code'] == self.CODE_INTERNAL_ERROR:
raise Exception(result['message'])
elif result['code'] == self.CODE_INVALID_FUNCTION:
raise Exception(result['message'])
else:
raise Exception("An unexpected error occurred whilst handling the response")
# GROUPS
# Pads can belong to a group. There will always be public pads that do not belong to a group (or we give this group the id 0)
def createGroup(self):
"""creates a new group"""
return self.call("createGroup")
def createGroupIfNotExistsFor(self, groupMapper):
"""this functions helps you to map your application group ids to etherpad lite group ids"""
return self.call("createGroupIfNotExistsFor", {
"groupMapper": groupMapper
})
def deleteGroup(self, groupID):
"""deletes a group"""
return self.call("deleteGroup", {
"groupID": groupID
})
def listPads(self, groupID):
"""returns all pads of this group"""
return self.call("listPads", {
"groupID": groupID
})
def createGroupPad(self, groupID, padName, text=''):
"""creates a new pad in this group"""
params = {
"groupID": groupID,
"padName": padName,
}
if text:
params['text'] = text
return self.call("createGroupPad", params)
# AUTHORS
# Theses authors are bind to the attributes the users choose (color and name).
def createAuthor(self, name=''):
"""creates a new author"""
params = {}
if name:
params['name'] = name
return self.call("createAuthor", params)
def createAuthorIfNotExistsFor(self, authorMapper, name=''):
"""this functions helps you to map your application author ids to etherpad lite author ids"""
params = {
'authorMapper': authorMapper
}
if name:
params['name'] = name
return self.call("createAuthorIfNotExistsFor", params)
# SESSIONS
# Sessions can be created between a group and a author. This allows
# an author to access more than one group. The sessionID will be set as
# a cookie to the client and is valid until a certain date.
def createSession(self, groupID, authorID, validUntil):
"""creates a new session"""
return self.call("createSession", {
"groupID": groupID,
"authorID": authorID,
"validUntil": validUntil
})
def deleteSession(self, sessionID):
"""deletes a session"""
return self.call("deleteSession", {
"sessionID": sessionID
})
def getSessionInfo(self, sessionID):
"""returns informations about a session"""
return self.call("getSessionInfo", {
"sessionID": sessionID
})
def listSessionsOfGroup(self, groupID):
"""returns all sessions of a group"""
return self.call("listSessionsOfGroup", {
"groupID": groupID
})
def listSessionsOfAuthor(self, authorID):
"""returns all sessions of an author"""
return self.call("listSessionsOfAuthor", {
"authorID": authorID
})
# PAD CONTENT
# Pad content can be updated and retrieved through the API
def getText(self, padID, rev=None):
"""returns the text of a pad"""
params = {"padID": padID}
if rev is not None:
params['rev'] = rev
return self.call("getText", params)
# introduced with pull request merge
def getHtml(self, padID, rev=None):
"""returns the html of a pad"""
params = {"padID": padID}
if rev is not None:
params['rev'] = rev
return self.call("getHTML", params)
def setText(self, padID, text):
"""sets the text of a pad"""
return self.call("setText", {
"padID": padID,
"text": text
})
def setHtml(self, padID, html):
"""sets the text of a pad from html"""
return self.call("setHTML", {
"padID": padID,
"html": html
})
# PAD
# Group pads are normal pads, but with the name schema
# GROUPID$PADNAME. A security manager controls access of them and its
# forbidden for normal pads to include a in the name.
def createPad(self, padID, text=''):
"""creates a new pad"""
params = {
"padID": padID,
}
if text:
params['text'] = text
return self.call("createPad", params)
def getRevisionsCount(self, padID):
"""returns the number of revisions of this pad"""
return self.call("getRevisionsCount", {
"padID": padID
})
def deletePad(self, padID):
"""deletes a pad"""
return self.call("deletePad", {
"padID": padID
})
def getReadOnlyID(self, padID):
"""returns the read only link of a pad"""
return self.call("getReadOnlyID", {
"padID": padID
})
def setPublicStatus(self, padID, publicStatus):
"""sets a boolean for the public status of a pad"""
return self.call("setPublicStatus", {
"padID": padID,
"publicStatus": publicStatus
})
def getPublicStatus(self, padID):
"""return true of false"""
return self.call("getPublicStatus", {
"padID": padID
})
def setPassword(self, padID, password):
"""returns ok or a error message"""
return self.call("setPassword", {
"padID": padID,
"password": password
})
def isPasswordProtected(self, padID):
"""returns true or false"""
return self.call("isPasswordProtected", {
"padID": padID
})

View File

@ -1,7 +1,12 @@
.oe_pad_head {
box-sizing: border-box;
width: 100%;
display: block;
padding: 4px;
text-align: right;
}
.oe_pad_head .oe_pad_switch {
}
.oe_pad_readonly {
@ -13,14 +18,38 @@
position: fixed;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
right: 0px;
bottom: 0px;
background-color: white;
margin:0;
padding:0;
border:none;
z-index: 1000;
}
.oe_pad_content {
border: solid 1px #c4c4c4;
height: 150px;
-webkit-box-shadow: 0 5px 10px rgba(0,0,0,0.1);
-moz-box-shadow: 0 5px 10px rgba(0,0,0,0.1);
-ms-box-shadow: 0 5px 10px rgba(0,0,0,0.1);
-o-box-shadow: 0 5px 10px rgba(0,0,0,0.1);
box-shadow: 0 5px 10px rgba(0,0,0,0.1);
}
.oe_pad_content > p {
text-align: center;
opacity: 0.75;
}
.oe_pad_fullscreen .oe_pad_content {
height: 100%;
border: none;
-webkit-box-shadow: none;
-moz-box-shadow: none;
-ms-box-shadow: none;
-o-box-shadow: none;
box-shadow: none;
}
.etherpad_readonly ul, .etherpad_readonly ol {

View File

@ -16,10 +16,17 @@ instance.web.form.FieldPad = instance.web.form.AbstractField.extend({
var self = this;
var _super = self._super;
_super.apply(self,[val]);
if (val === false || val === "") {
self.field_manager.dataset.call('pad_generate_url').then(function(r) {
_super.apply(self,[r]);
self.render_value();
self.field_manager.dataset.call('pad_generate_url',{context:{
model: self.field_manager.model,
field_name: self.name,
object_id: self.field_manager.datarecord.id
}}).then(function(data) {
if(data&&data.url){
_super.apply(self,[data.url]);
self.render_value();
}
});
} else {
self.render_value();
@ -27,7 +34,6 @@ instance.web.form.FieldPad = instance.web.form.AbstractField.extend({
this._dirty_flag = true;
},
render_value: function() {
console.log("display");
var self = this;
var value = this.get('value');

View File

@ -5,12 +5,14 @@
<t t-name="FieldPad">
<div class="oe_form_field_text oe_pad">
<div class="oe_pad_head">
<span class="oe_pad_switch">Fullscreen</span>
<button class="oe_pad_switch oe_button">Fullscreen</button>
</div>
<div class="oe_pad_content"></div>
</div>
</t>
<t t-name="FieldPad.unconfigured">
<p>
You must configure the etherpad through the menu Setting > Companies > Companies, in the configuration tab of your company.<br/>
</p>
</t>
</templates>

View File

@ -49,7 +49,7 @@ Main Features
""",
'author': 'OpenERP SA',
'images': ['images/cash_registers.jpeg', 'images/pos_analysis.jpeg','images/register_analysis.jpeg','images/sale_order_pos.jpeg','images/product_pos.jpeg'],
'depends': ['sale'],
'depends': ['sale_stock'],
'data': [
'security/point_of_sale_security.xml',
'security/ir.model.access.csv',

View File

@ -19,7 +19,7 @@
<!-- Company news and comments -->
<record id="message_company_news0" model="mail.message">
<field name="subject">Our first company's blogpost !</field>
<field name="subject">Our company's first blog-post !</field>
<field name="model">mail.group</field>
<field name="res_id" ref="company_news_feed"/>
<field name="body"><![CDATA[Hello, and welcome to our company's portal !

View File

@ -30,7 +30,7 @@ This module adds sale menu and features to your portal if sale and portal are in
========================================================================================
""",
'author': 'OpenERP SA',
'depends': ['sale','portal'],
'depends': ['sale_stock','portal'],
'data': [
'security/portal_security.xml',
'portal_sale_view.xml',

View File

@ -143,7 +143,7 @@ instance.web.ViewManager.include({
var image_node = nodes.kind == "subflow" ? "node-subflow" : "node";
image_node = nodes.gray ? image_node + "-gray" : image_node;
image_node = nodes.active ? 'node-current': image_node;
var img_src = '/web_process/static/src/img/'+ image_node + '.png';
var img_src = '/process/static/src/img/'+ image_node + '.png';
var image = r['image'](img_src, nodes.x-25, nodes.y,150, 100).attr({"cursor": "default"}) .mousedown(function() { return false; });
//For Node
var process_node = r['rect'](nodes.x, nodes.y, 150, 150).attr({stroke: "none"});

View File

@ -60,7 +60,7 @@ depending on the product's configuration.
'demo': ['stock_orderpoint.xml'],
'test': ['test/procurement.yml'],
'installable': True,
'auto_install': False,
'auto_install': True,
'certificate': '00954248826881074509',
'images': ['images/compute_schedulers.jpeg','images/config_companies_sched.jpeg', 'images/minimum_stock_rules.jpeg'],
}

View File

@ -609,7 +609,7 @@ class product_product(osv.osv):
return res
_constraints = [(_check_ean_key, 'You provided an invalid "EAN13 Barcode" reference. You may use the internal reference field instead.', ['ean13'])]
_constraints = [(_check_ean_key, 'You provided an invalid "EAN13 Barcode" reference. You may use the "Internal Reference" field instead.', ['ean13'])]
def on_order(self, cr, uid, ids, orderline, quantity):
pass

View File

@ -110,23 +110,25 @@
<field name="cost_method" groups="product.group_costing_method"/>
<field name="standard_price" attrs="{'readonly':[('cost_method','=','average')]}"/>
</group>
<group name="procurement_help" class="oe_grey" col="1">
<group name="procurement_help" class="oe_grey" col="1" groups="base.group_user">
<p attrs="{'invisible': [('type','&lt;&gt;','service'),('procure_method','&lt;&gt;','make_to_stock')]}">
When you sell this service, nothing special will be trigered
to deliver the customer.
to deliver the customer, as you set the procurement method as
'Make to Stock'.
</p>
<p attrs="{'invisible': [('type','&lt;&gt;','product'),('procure_method','&lt;&gt;','make_to_stock')]}">
When you sell this product, OpenERP will <b>use the available inventory</b>
for the delivery order.
<br/>
When you sell this product, OpenERP will <b>use the available
inventory</b> for the delivery order.
<br/><br/>
If there are not enough quantities available, the delivery order
will wait for new products. You should create others rules
(orderpoints, manual purchase orders) to fulfill the inventory.
will wait for new products. To fulfill the inventory, you should
create others rules like orderpoints.
</p>
<p attrs="{'invisible': [('type','&lt;&gt;','consu'),('procure_method','&lt;&gt;','make_to_stock')]}">
When you sell this product, a delivery order will be created.
OpenERP will consider that the <b>required quantities are always
available</b> as it's a consumable (the stock on hand may become negative).
available</b> as it's a consumable (as a result of this, the quantity
on hand may become negative).
</p>
</group>
<group groups="product.group_uom">

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -108,7 +108,7 @@ msgstr "ساعات التحقق من الصلاحية"
#. module: project
#: view:project.project:0
msgid "Pending Projects"
msgstr ""
msgstr "مشاريع قيد الإنتظار"
#. module: project
#: help:project.task,remaining_hours:0
@ -563,7 +563,7 @@ msgstr "فتح المشاريع"
#: code:addons/project/project.py:358
#, python-format
msgid "You must assign members on the project '%s' !"
msgstr ""
msgstr "يجب تعيين أعضاء في المشروع '%s' !"
#. module: project
#: view:report.project.task.user:0
@ -641,7 +641,7 @@ msgstr "وسط"
#. module: project
#: view:project.task:0 view:project.task.history.cumulative:0
msgid "Pending Tasks"
msgstr ""
msgstr "مهام قيد الإنتظار"
#. module: project
#: view:project.task:0 field:project.task,remaining_hours:0
@ -682,7 +682,7 @@ msgstr "معلومات"
#. module: project
#: view:project.task:0 view:project.task.history.cumulative:0
msgid "Unassigned Tasks"
msgstr ""
msgstr "مهام غير معينة"
#. module: project
#: view:report.project.task.user:0
@ -789,6 +789,7 @@ msgid ""
"You cannot delete a project containing tasks. I suggest you to desactivate "
"it."
msgstr ""
"لا يمكنك حذف المهام المحتواة في المشروع. انا اقترح لك جعلها غير نشطة."
#. module: project
#: view:project.vs.hours:0
@ -813,7 +814,7 @@ msgstr "ساعات تأخير"
#. module: project
#: selection:project.task,priority:0
msgid "Very important"
msgstr ""
msgstr "شديد الأهمية"
#. module: project
#: model:ir.actions.act_window,name:project.action_project_task_user_tree
@ -834,6 +835,8 @@ msgid ""
"If you check this field, the project manager will receive an email each time "
"a task is completed by his team."
msgstr ""
"إذا قمت بتحديد هذا الحقل فإن مدير المشروع سوف يتلقى رسالة بريد إلكتروني في "
"كل مرة يتم الانتهاء من المهمة لفريقه."
#. module: project
#: model:ir.model,name:project.model_project_project
@ -867,7 +870,7 @@ msgstr "مراحل"
#. module: project
#: view:project.task:0
msgid "Change to Previous Stage"
msgstr ""
msgstr "التغيير للمرحلة السابقة"
#. module: project
#: model:ir.actions.todo.category,name:project.category_project_config
@ -910,7 +913,7 @@ msgstr "الرئيسي"
#. module: project
#: view:project.task:0
msgid "Mark as Blocked"
msgstr ""
msgstr "تحدد كمحظورة"
#. module: project
#: model:ir.actions.act_window,help:project.action_view_task
@ -999,7 +1002,7 @@ msgstr "الساعات المخططة"
#. module: project
#: model:ir.actions.act_window,name:project.action_review_task_stage
msgid "Review Task Stages"
msgstr ""
msgstr "استعراض مراحل المهمة"
#. module: project
#: view:project.project:0
@ -1009,7 +1012,7 @@ msgstr "الحالات: %(الحالة)"
#. module: project
#: help:project.task,sequence:0
msgid "Gives the sequence order when displaying a list of tasks."
msgstr ""
msgstr "يعطي النظام تسلسل عند عرض قائمة المهام."
#. module: project
#: view:project.project:0 view:project.task:0
@ -1021,7 +1024,7 @@ msgstr "تاريخ البدء"
#: selection:project.task.history,kanban_state:0
#: selection:project.task.history.cumulative,kanban_state:0
msgid "Ready To Pull"
msgstr ""
msgstr "على استعداد للسحب"
#. module: project
#: view:project.task:0 field:project.task,parent_ids:0
@ -1034,7 +1037,7 @@ msgstr "المهام الاساسية"
#: view:project.task.history.cumulative:0
#: selection:project.task.history.cumulative,kanban_state:0
msgid "Blocked"
msgstr ""
msgstr "محظورة"
#. module: project
#: help:project.task,progress:0
@ -1042,6 +1045,8 @@ msgid ""
"If the task has a progress of 99.99% you should close the task if it's "
"finished or reevaluate the time"
msgstr ""
"إذا كانت المهمة لديها من التقدم 99.99٪ يجب إغلاق المهمة إذا تم الإنتهاء أو "
"إعادة تقييم الوقت"
#. module: project
#: view:project.project:0
@ -1070,7 +1075,7 @@ msgstr "عمليات الفواتير"
#. module: project
#: view:project.task:0
msgid "For changing to delegate state"
msgstr ""
msgstr "لتغيير تفويض حالة"
#. module: project
#: field:project.task,priority:0 field:report.project.task.user,priority:0
@ -1097,7 +1102,7 @@ msgstr "اعادة تقييم.المهمة.المشروع"
#: code:addons/project/wizard/project_task_delegate.py:81
#, python-format
msgid "CHECK: %s"
msgstr ""
msgstr "التحقق: %s"
#. module: project
#: view:project.project:0
@ -1152,7 +1157,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Change Type"
msgstr ""
msgstr "تغير النوع"
#. module: project
#: help:project.project,members:0
@ -1198,7 +1203,7 @@ msgstr "اسم المشروع"
#: model:ir.model,name:project.model_project_task_history
#: model:ir.model,name:project.model_project_task_history_cumulative
msgid "History of Tasks"
msgstr ""
msgstr "تاريخ المهام"
#. module: project
#: help:project.task.delegate,state:0
@ -1212,7 +1217,7 @@ msgstr ""
#: code:addons/project/wizard/mail_compose_message.py:45
#, python-format
msgid "Please specify the Customer or email address of Customer."
msgstr ""
msgstr "يرجى تحديد العميل أو عنوان البريد الإلكتروني للعملاء."
#. module: project
#: selection:report.project.task.user,month:0
@ -1265,7 +1270,7 @@ msgstr "نوفمبر"
#. module: project
#: model:ir.actions.act_window,name:project.action_create_initial_projects_installer
msgid "Create your Firsts Projects"
msgstr ""
msgstr "إنشاء أوليات مشاريعك"
#. module: project
#: code:addons/project/project.py:229
@ -1276,7 +1281,7 @@ msgstr "تم غلق المشروع %s."
#. module: project
#: view:project.task.history.cumulative:0
msgid "Tasks's Cumulative Flow"
msgstr ""
msgstr "المهام والتدفق التراكمي"
#. module: project
#: view:project.task:0
@ -1291,7 +1296,7 @@ msgstr "أكتوبر"
#. module: project
#: view:project.task:0
msgid "Validate planned time and open task"
msgstr ""
msgstr "التحقق من صحة الوقت المخطط له والمهام المفتوحة"
#. module: project
#: help:project.task,delay_hours:0
@ -1299,10 +1304,12 @@ msgid ""
"Computed as difference between planned hours by the project manager and the "
"total hours of the task."
msgstr ""
"تحسب الفرق بين الساعات المخطط لها من قبل مدير المشروع والساعات الإجمالية "
"للمهمة."
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project
@ -1331,7 +1338,7 @@ msgstr "الشركات"
#. module: project
#: view:project.project:0
msgid "Projects in which I am a member."
msgstr ""
msgstr "المشاريع التي أنا عضو."
#. module: project
#: view:project.project:0
@ -1426,7 +1433,7 @@ msgstr "مرشحات مفصلة..."
#: code:addons/project/project.py:1148
#, python-format
msgid "Please delete the project linked with this account first."
msgstr ""
msgstr "رجاء قم بحذف رابط المشروع مع هذا الحساب أولاً"
#. module: project
#: field:project.task,total_hours:0 field:project.vs.hours,total_hours:0
@ -1527,7 +1534,7 @@ msgstr "قيد التقدم"
#. module: project
#: view:project.task.history.cumulative:0
msgid "Task's Analysis"
msgstr ""
msgstr "تحليل المهمة"
#. module: project
#: code:addons/project/project.py:789
@ -1536,11 +1543,13 @@ msgid ""
"Child task still open.\n"
"Please cancel or complete child task first."
msgstr ""
"المهمة الوليدة التي لا تزال مفتوحة .\n"
" يرجى إلغاء أو إكمال المهمة الوليدة أولاص."
#. module: project
#: view:project.task.type:0
msgid "Stages common to all projects"
msgstr ""
msgstr "مشاريع مشتركة بين جميع المراحل"
#. module: project
#: constraint:project.task:0
@ -1561,7 +1570,7 @@ msgstr ""
#. module: project
#: view:project.project:0
msgid "Projects in which I am a manager"
msgstr ""
msgstr "المشاريع التي أنا مديرها"
#. module: project
#: code:addons/project/project.py:959
@ -1660,6 +1669,8 @@ msgid ""
"If you check this field, this stage will be proposed by default on each new "
"project. It will not assign this stage to existing projects."
msgstr ""
"إذا قمت بتحديد هذا الحقل، سيتم اقترح هذه المرحلة بشكل افتراضي على كل مشروع "
"جديد. وسوف يتم تعيين هذه المرحلة للمشاريع القائمة."
#. module: project
#: view:board.board:0
@ -1720,7 +1731,7 @@ msgstr "مجموع الساعات الكلية لكل المهام المتعل
#. module: project
#: field:project.task.type,project_default:0
msgid "Common to All Projects"
msgstr ""
msgstr "مشاريع مشتركة بين الجميع"
#. module: project
#: model:process.transition,note:project.process_transition_opendonetask0
@ -1773,7 +1784,7 @@ msgstr "ملخص العمل"
#. module: project
#: view:project.task.history.cumulative:0
msgid "Month-2"
msgstr ""
msgstr "الشهر-2"
#. module: project
#: help:report.project.task.user,closing_days:0
@ -1821,6 +1832,8 @@ msgid ""
"The stages can be common to all project or specific to one project. Each "
"task will follow the different stages in order to be closed."
msgstr ""
"يمكن للمراحل تكون مشتركة بين جميع المشاريع أو محددة لمشروع واحد. كل مهمة سوف "
"تتبع المراحل المختلفة من أجل أن تكون مغلقة."
#. module: project
#: help:project.project,sequence:0
@ -1949,7 +1962,7 @@ msgstr "تم الغاء المهمة %s."
#. module: project
#: view:project.task:0 view:res.partner:0
msgid "For changing to open state"
msgstr ""
msgstr "للتغير إلى الحالة المفتوحة"
#. module: project
#: model:ir.model,name:project.model_res_partner view:project.project:0
@ -1983,7 +1996,7 @@ msgstr "تذييل البريد"
#. module: project
#: view:project.task:0 view:project.task.history.cumulative:0
msgid "In Progress Tasks"
msgstr ""
msgstr "مهام في قيد التقدم"
#~ msgid "Timesheets"
#~ msgstr "الجداول الزمنية"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1275,7 +1275,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1322,7 +1322,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
"X-Generator: Launchpad (build 15985)\n"
"X-Poedit-Language: Czech\n"
#. module: project
@ -1298,7 +1298,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1336,8 +1336,8 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgstr "Delegationsverlauf"
msgid "Delegation"
msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@ -2573,3 +2573,6 @@ msgstr "Aufgaben in Bearbeitung"
#~ msgid "E-mail composition wizard"
#~ msgstr "Email-Zusammensetzung Assistent"
#~ msgid "Delegations History"
#~ msgstr "Delegationsverlauf"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
"X-Poedit-SourceCharset: utf-8\n"
@ -1287,7 +1287,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1325,8 +1325,8 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgstr "Histórico de delegaciones"
msgid "Delegation"
msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@ -2568,3 +2568,6 @@ msgstr ""
#~ msgid "E-mail composition wizard"
#~ msgstr "Asistente de composición de e-mail"
#~ msgid "Delegations History"
#~ msgstr "Histórico de delegaciones"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1284,7 +1284,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:43+0000\n"
"X-Generator: Launchpad (build 15985)\n"
"Language: \n"
#. module: project
@ -1333,8 +1333,8 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgstr "Histórico de delegaciones"
msgid "Delegation"
msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@ -2582,3 +2582,6 @@ msgstr "Tarea en progreso"
#~ msgid "E-mail composition wizard"
#~ msgstr "Asistente de composición de e-mail"
#~ msgid "Delegations History"
#~ msgstr "Histórico de delegaciones"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:56+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:43+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1330,8 +1330,8 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgstr "Histórico de delegaciones"
msgid "Delegation"
msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@ -2568,3 +2568,6 @@ msgstr "Tareas en progreso"
#~ msgid "E-mail composition wizard"
#~ msgstr "Asistente de composición de e-mail"
#~ msgid "Delegations History"
#~ msgstr "Histórico de delegaciones"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:56+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:43+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1282,7 +1282,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1280,7 +1280,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1299,8 +1299,8 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgstr "Delegointien historia"
msgid "Delegation"
msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@ -2338,3 +2338,6 @@ msgstr "Meneilläänolevat tehtävät"
#~ msgid "E-mail composition wizard"
#~ msgstr "Sähköpostin luonti velho"
#~ msgid "Delegations History"
#~ msgstr "Delegointien historia"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1338,8 +1338,8 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgstr "Historique des délégations"
msgid "Delegation"
msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@ -2587,5 +2587,8 @@ msgstr "Tâches en cours"
#~ msgid "Manager Email"
#~ msgstr "Courriel du responsable"
#~ msgid "Delegations History"
#~ msgstr "Historique des délégations"
#~ msgid "E-mail composition wizard"
#~ msgstr "Assistant de composition de courriels"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
"Language: hr\n"
#. module: project
@ -1283,7 +1283,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -79,7 +79,7 @@ msgstr "Nem engedélyezett művelet!"
#: code:addons/project/wizard/project_task_delegate.py:78
#, python-format
msgid "CHECK: "
msgstr ""
msgstr "ELLENŐRIZNI: "
#. module: project
#: field:project.task,user_email:0
@ -263,7 +263,7 @@ msgstr "Nap"
#. module: project
#: model:ir.ui.menu,name:project.menu_project_config_project
msgid "Projects and Stages"
msgstr ""
msgstr "Projektek és Szakaszok"
#. module: project
#: view:project.project:0
@ -485,7 +485,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Change Color"
msgstr ""
msgstr "Szín megváltoztatása"
#. module: project
#: constraint:account.analytic.account:0
@ -920,7 +920,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Mark as Blocked"
msgstr ""
msgstr "Blokkoltnak jelölés"
#. module: project
#: model:ir.actions.act_window,help:project.action_view_task
@ -1047,7 +1047,7 @@ msgstr "Forrás feladatok"
#: view:project.task.history.cumulative:0
#: selection:project.task.history.cumulative,kanban_state:0
msgid "Blocked"
msgstr ""
msgstr "Blokkolva"
#. module: project
#: help:project.task,progress:0
@ -1110,7 +1110,7 @@ msgstr "project.task.reevaluate"
#: code:addons/project/wizard/project_task_delegate.py:81
#, python-format
msgid "CHECK: %s"
msgstr ""
msgstr "ELLENŐRIZNI: %s"
#. module: project
#: view:project.project:0
@ -1320,7 +1320,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project
@ -1558,7 +1558,7 @@ msgstr ""
#. module: project
#: view:project.task.type:0
msgid "Stages common to all projects"
msgstr ""
msgstr "Közös használatú szakaszok"
#. module: project
#: constraint:project.task:0
@ -2222,3 +2222,6 @@ msgstr ""
#~ msgid "Automatically synchronizes project tasks and crm cases."
#~ msgstr "Automatikusan összehangolja a projektfeladatokat és a crm eseteket."
#~ msgid "Delegations History"
#~ msgstr "Átruházás történet"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1275,7 +1275,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1320,7 +1320,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1294,8 +1294,8 @@ msgstr "プロジェクトマネジャによる計画時間数とタスクの合
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgstr "委任の履歴"
msgid "Delegation"
msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@ -1969,3 +1969,6 @@ msgstr "進行中タスク"
#~ msgid "E-mail composition wizard"
#~ msgstr "Eメール作成ウィザード"
#~ msgid "Delegations History"
#~ msgstr "委任の履歴"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1285,7 +1285,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1314,7 +1314,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1323,8 +1323,8 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgstr "Ацагласан Түүх"
msgid "Delegation"
msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@ -2335,3 +2335,6 @@ msgstr "Боловсруулагдаж байгаа даалгаврууд"
#~ msgid "E-mail composition wizard"
#~ msgstr "И-мэйл үүсгэх харилцах цонх"
#~ msgid "Delegations History"
#~ msgstr "Ацагласан Түүх"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -37,6 +37,7 @@ msgstr "Oppgaven '%s' er tildelt til %s."
#: constraint:res.users:0
msgid "The chosen company is not in the allowed companies for this user"
msgstr ""
"Det valgte firmaet er ikke i listen over tillatte firmaer for denne brukeren"
#. module: project
#: view:report.project.task.user:0
@ -81,7 +82,7 @@ msgstr "SJEKK: "
#. module: project
#: field:project.task,user_email:0
msgid "User Email"
msgstr ""
msgstr "E-post for bruker"
#. module: project
#: field:project.task,work_ids:0
@ -93,7 +94,7 @@ msgstr "Arbeid utført"
#: code:addons/project/project.py:1148
#, python-format
msgid "Warning !"
msgstr ""
msgstr "Advarsel !"
#. module: project
#: model:ir.model,name:project.model_project_task_delegate
@ -121,7 +122,7 @@ msgstr ""
#. module: project
#: view:project.project:0
msgid "Re-open project"
msgstr ""
msgstr "Gjenåpne prosjekt"
#. module: project
#: help:project.project,priority:0
@ -131,7 +132,7 @@ msgstr ""
#. module: project
#: constraint:project.project:0
msgid "Error! project start-date must be lower then project end-date."
msgstr ""
msgstr "Feil! Startdato for prosjekt må være tidligere enn sluttdato."
#. module: project
#: view:project.task.reevaluate:0
@ -180,7 +181,7 @@ msgstr "Mine oppgaver"
#. module: project
#: constraint:project.task:0
msgid "Error ! You cannot create recursive tasks."
msgstr ""
msgstr "Feil! Du kan ikke lage en uendelig struktur av oppgaver."
#. module: project
#: field:project.task,company_id:0 field:project.task.work,company_id:0
@ -201,7 +202,7 @@ msgstr "Din oppgavetittel"
#. module: project
#: field:project.task.type,name:0
msgid "Stage Name"
msgstr ""
msgstr "Fasenavn"
#. module: project
#: model:process.transition.action,name:project.process_transition_action_openpendingtask0
@ -211,7 +212,7 @@ msgstr ""
#. module: project
#: selection:project.task,priority:0
msgid "Important"
msgstr ""
msgstr "Viktig"
#. module: project
#: model:process.node,note:project.process_node_drafttask0
@ -221,7 +222,7 @@ msgstr "Definer krav og oppgi planlagte timer"
#. module: project
#: view:project.task:0
msgid "Change Stage"
msgstr ""
msgstr "Endre fase"
#. module: project
#: view:project.project:0
@ -258,7 +259,7 @@ msgstr "Dag"
#. module: project
#: model:ir.ui.menu,name:project.menu_project_config_project
msgid "Projects and Stages"
msgstr ""
msgstr "Prosjekter og faser"
#. module: project
#: view:project.project:0
@ -294,12 +295,12 @@ msgstr "Mine åpne oppgaver"
#, python-format
msgid ""
"Please specify the Project Manager or email address of Project Manager."
msgstr ""
msgstr "Vennligst angi prosjektleder eller e-post-adresse for prosjektleder."
#. module: project
#: view:project.task:0
msgid "For cancelling the task"
msgstr ""
msgstr "For å avbryte oppgaven"
#. module: project
#: model:ir.model,name:project.model_project_task_work
@ -361,7 +362,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Show only tasks having a deadline"
msgstr ""
msgstr "Vis kun oppgaver med deadline"
#. module: project
#: selection:project.task,state:0 selection:project.task.history,state:0
@ -374,7 +375,7 @@ msgstr "Kansellert"
#. module: project
#: field:project.task,date_end:0 field:report.project.task.user,date_end:0
msgid "Ending Date"
msgstr ""
msgstr "Sluttdato"
#. module: project
#: view:project.project:0 field:project.project,warn_header:0
@ -384,7 +385,7 @@ msgstr "E-post topptekst"
#. module: project
#: view:project.task:0
msgid "Change to Next Stage"
msgstr ""
msgstr "Endre til neste fase"
#. module: project
#: model:process.node,name:project.process_node_donetask0
@ -394,7 +395,7 @@ msgstr "Fullførte oppgaver"
#. module: project
#: field:project.task,color:0
msgid "Color Index"
msgstr ""
msgstr "Fargeindeks"
#. module: project
#: model:ir.ui.menu,name:project.menu_definitions view:res.company:0
@ -404,7 +405,7 @@ msgstr "Konfigurasjon"
#. module: project
#: view:report.project.task.user:0
msgid "Current Month"
msgstr ""
msgstr "Inneværende måned"
#. module: project
#: model:process.transition,note:project.process_transition_delegate0
@ -414,7 +415,7 @@ msgstr "Delegerer oppgaver til den andre brukeren"
#. module: project
#: view:project.project:0 view:project.task:0 view:report.project.task.user:0
msgid "Group By..."
msgstr ""
msgstr "Grupper etter ..."
#. module: project
#: field:project.task.work,user_id:0
@ -433,7 +434,7 @@ msgstr ""
#. module: project
#: model:project.task.type,name:project.project_tt_testing
msgid "Testing"
msgstr ""
msgstr "Tester"
#. module: project
#: code:addons/project/project.py:829
@ -471,17 +472,17 @@ msgstr "_Avbryt"
#. module: project
#: view:project.task.history.cumulative:0
msgid "Ready"
msgstr ""
msgstr "Klar"
#. module: project
#: view:project.task:0
msgid "Change Color"
msgstr ""
msgstr "Bytt farge"
#. module: project
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
msgstr "Feil! Du kan ikke opprette uendelig struktur med analytiske kontoer."
#. module: project
#: code:addons/project/project.py:264 code:addons/project/project.py:303
@ -492,12 +493,12 @@ msgstr " (kopi)"
#. module: project
#: view:project.task:0
msgid "New Tasks"
msgstr ""
msgstr "Ny oppgave"
#. module: project
#: view:report.project.task.user:0 field:report.project.task.user,nbr:0
msgid "# of tasks"
msgstr ""
msgstr "Antall oppgaver"
#. module: project
#: view:project.task:0
@ -517,7 +518,7 @@ msgstr ""
#. module: project
#: sql_constraint:res.users:0
msgid "You can not have two users with the same login !"
msgstr ""
msgstr "Du kan ikke ha to brukere med samme login!"
#. module: project
#: view:project.project:0
@ -537,7 +538,7 @@ msgstr "Mine prosjekter"
#. module: project
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
msgstr ""
msgstr "Feil! Dukan ikke opprette uendelig struktur av firmaer."
#. module: project
#: view:project.task:0
@ -552,23 +553,23 @@ msgstr "From draft state, it will come into the open state."
#. module: project
#: view:report.project.task.user:0 field:report.project.task.user,no_of_days:0
msgid "# of Days"
msgstr ""
msgstr "Antall dager"
#. module: project
#: view:project.project:0
msgid "Open Projects"
msgstr ""
msgstr "Åpne prosjekter"
#. module: project
#: code:addons/project/project.py:358
#, python-format
msgid "You must assign members on the project '%s' !"
msgstr ""
msgstr "Du må tilordne deltakere til prosjekt '%s'!"
#. module: project
#: view:report.project.task.user:0
msgid "In progress tasks"
msgstr ""
msgstr "Oppgaver i arbeid"
#. module: project
#: help:project.project,progress_rate:0
@ -592,7 +593,7 @@ msgstr "Prosjektoppgave"
#: selection:project.task.history.cumulative,state:0
#: view:report.project.task.user:0
msgid "New"
msgstr ""
msgstr "Ny"
#. module: project
#: help:project.task,total_hours:0
@ -625,7 +626,7 @@ msgstr ""
#: code:addons/project/project.py:597
#, python-format
msgid "%s (copy)"
msgstr ""
msgstr "%s (kopi)"
#. module: project
#: view:report.project.task.user:0
@ -641,7 +642,7 @@ msgstr "Medium"
#. module: project
#: view:project.task:0 view:project.task.history.cumulative:0
msgid "Pending Tasks"
msgstr ""
msgstr "Ventende oppgaver"
#. module: project
#: view:project.task:0 field:project.task,remaining_hours:0
@ -659,13 +660,13 @@ msgstr ""
#. module: project
#: view:report.project.task.user:0
msgid "Creation Date"
msgstr ""
msgstr "Opprettelsesdato"
#. module: project
#: view:project.task:0 field:project.task.history,remaining_hours:0
#: field:project.task.history.cumulative,remaining_hours:0
msgid "Remaining Time"
msgstr ""
msgstr "Gjenstående tid"
#. module: project
#: field:project.project,planned_hours:0
@ -755,7 +756,7 @@ msgstr "Prosjekter"
#: field:project.task.history.cumulative,type_id:0
#: view:report.project.task.user:0 field:report.project.task.user,type_id:0
msgid "Stage"
msgstr ""
msgstr "Fase"
#. module: project
#: model:ir.actions.act_window,help:project.open_task_type_form
@ -769,7 +770,7 @@ msgstr ""
#: code:addons/project/project.py:903
#, python-format
msgid "The task '%s' is opened."
msgstr ""
msgstr "Oppgaven '%s' er åpnet."
#. module: project
#: view:project.task:0
@ -788,6 +789,8 @@ msgid ""
"You cannot delete a project containing tasks. I suggest you to desactivate "
"it."
msgstr ""
"Du kan ikke slette et prosjekt som har oppgaver. Prosjektet kan evt. "
"deaktiveres."
#. module: project
#: view:project.vs.hours:0
@ -812,7 +815,7 @@ msgstr "Timer forsinket"
#. module: project
#: selection:project.task,priority:0
msgid "Very important"
msgstr ""
msgstr "Veldig viktig"
#. module: project
#: model:ir.actions.act_window,name:project.action_project_task_user_tree
@ -833,6 +836,8 @@ msgid ""
"If you check this field, the project manager will receive an email each time "
"a task is completed by his team."
msgstr ""
"Ved avkryssing vil prosjektleder motta en e-post hver gang en oppgave blir "
"fullført av hans team."
#. module: project
#: model:ir.model,name:project.model_project_project
@ -861,12 +866,12 @@ msgstr ""
#: model:ir.actions.act_window,name:project.open_task_type_form
#: model:ir.ui.menu,name:project.menu_task_types_view
msgid "Stages"
msgstr ""
msgstr "Faser"
#. module: project
#: view:project.task:0
msgid "Change to Previous Stage"
msgstr ""
msgstr "Endre til foregående fase"
#. module: project
#: model:ir.actions.todo.category,name:project.category_project_config
@ -882,7 +887,7 @@ msgstr "Prosjekt time enhet"
#. module: project
#: view:report.project.task.user:0
msgid "In progress"
msgstr ""
msgstr "I arbeid"
#. module: project
#: model:ir.actions.act_window,name:project.action_project_task_delegate
@ -909,7 +914,7 @@ msgstr "Overordnet"
#. module: project
#: view:project.task:0
msgid "Mark as Blocked"
msgstr ""
msgstr "Marker som blokkert"
#. module: project
#: model:ir.actions.act_window,help:project.action_view_task
@ -952,7 +957,7 @@ msgstr ""
#. module: project
#: view:project.task.reevaluate:0
msgid "Reevaluate Task"
msgstr ""
msgstr "Evaluer oppgave på nytt"
#. module: project
#: view:project.task.history.cumulative:0 view:report.project.task.user:0
@ -969,12 +974,12 @@ msgstr "Prosjektoppgaver"
#: model:ir.model,name:project.model_project_task_type
#: view:project.task.type:0
msgid "Task Stage"
msgstr ""
msgstr "Oppgavefase"
#. module: project
#: model:project.task.type,name:project.project_tt_specification
msgid "Design"
msgstr ""
msgstr "Utforming"
#. module: project
#: field:project.task,planned_hours:0
@ -987,7 +992,7 @@ msgstr "Planlagte timer"
#. module: project
#: model:ir.actions.act_window,name:project.action_review_task_stage
msgid "Review Task Stages"
msgstr ""
msgstr "Gjennomgå oppgavefaser"
#. module: project
#: view:project.project:0
@ -997,7 +1002,7 @@ msgstr ""
#. module: project
#: help:project.task,sequence:0
msgid "Gives the sequence order when displaying a list of tasks."
msgstr ""
msgstr "Gir sorteringsrekkefølge ved listing av oppgaver"
#. module: project
#: view:project.project:0 view:project.task:0
@ -1022,7 +1027,7 @@ msgstr "Overordnede oppgaver"
#: view:project.task.history.cumulative:0
#: selection:project.task.history.cumulative,kanban_state:0
msgid "Blocked"
msgstr ""
msgstr "Blokkert"
#. module: project
#: help:project.task,progress:0
@ -1034,7 +1039,7 @@ msgstr ""
#. module: project
#: view:project.project:0
msgid "Contact Address"
msgstr ""
msgstr "Kontaktadresse"
#. module: project
#: help:project.task,kanban_state:0
@ -1137,7 +1142,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Change Type"
msgstr ""
msgstr "Endre type"
#. module: project
#: help:project.project,members:0
@ -1145,6 +1150,8 @@ msgid ""
"Project's members are users who can have an access to the tasks related to "
"this project."
msgstr ""
"Prosjektdeltakere er brukere som har tilgang til oppgavene som hører til "
"prosjektet."
#. module: project
#: view:project.project:0 field:project.task,manager_id:0
@ -1154,12 +1161,12 @@ msgstr "Prosjektleder"
#. module: project
#: view:project.task:0 view:res.partner:0
msgid "For changing to done state"
msgstr ""
msgstr "For å bytte til ferdig tilstand"
#. module: project
#: model:ir.model,name:project.model_report_project_task_user
msgid "Tasks by user and project"
msgstr ""
msgstr "Oppgaver pr. bruker og prosjekt"
#. module: project
#: selection:report.project.task.user,month:0
@ -1171,7 +1178,7 @@ msgstr "August"
#: selection:project.task.history,kanban_state:0
#: selection:project.task.history.cumulative,kanban_state:0
msgid "Normal"
msgstr ""
msgstr "Normal"
#. module: project
#: view:project.project:0 field:project.project,complete_name:0
@ -1182,7 +1189,7 @@ msgstr "Prosjektnavn"
#: model:ir.model,name:project.model_project_task_history
#: model:ir.model,name:project.model_project_task_history_cumulative
msgid "History of Tasks"
msgstr ""
msgstr "Oppgavehistorikk"
#. module: project
#: help:project.task.delegate,state:0
@ -1211,7 +1218,7 @@ msgstr "Totaltid"
#: view:report.project.task.user:0
#: field:report.project.task.user,closing_days:0
msgid "Days to Close"
msgstr ""
msgstr "Dager til lukking"
#. module: project
#: model:ir.actions.act_window,name:project.open_board_project
@ -1227,7 +1234,7 @@ msgstr ""
#. module: project
#: model:res.groups,name:project.group_project_user
msgid "User"
msgstr ""
msgstr "Bruker"
#. module: project
#: field:project.project,active:0
@ -1238,7 +1245,7 @@ msgstr "Aktiv"
#: view:report.project.task.user:0
#: field:report.project.task.user,opening_days:0
msgid "Days to Open"
msgstr ""
msgstr "Dager til åpning"
#. module: project
#: selection:report.project.task.user,month:0
@ -1254,7 +1261,7 @@ msgstr ""
#: code:addons/project/project.py:229
#, python-format
msgid "The project '%s' has been closed."
msgstr ""
msgstr "Prosjektet '%s' er lukket."
#. module: project
#: view:project.task.history.cumulative:0
@ -1287,7 +1294,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project
@ -1301,6 +1308,8 @@ msgid ""
"If the active field is set to False, it will allow you to hide the project "
"without removing it."
msgstr ""
"Ved å fjerne avkryssing for Aktiv vil prosjektet skjules uten å måtte "
"slettes."
#. module: project
#: view:project.task:0
@ -1326,7 +1335,7 @@ msgstr "Søk i prosjekt"
#: code:addons/project/project.py:251
#, python-format
msgid "The project '%s' has been opened."
msgstr ""
msgstr "Prosjektet '%s' er åpnet."
#. module: project
#: field:project.task.history,date:0
@ -1401,7 +1410,7 @@ msgstr ""
#. module: project
#: view:report.project.task.user:0
msgid "Extended Filters..."
msgstr ""
msgstr "Utvidede filtre ..."
#. module: project
#: code:addons/project/project.py:1148
@ -2191,3 +2200,9 @@ msgstr ""
#~ msgid "Running projects"
#~ msgstr "Løpende prosjekter"
#~ msgid "Delegations History"
#~ msgstr "Delegeringshistorikk"
#~ msgid "E-mail composition wizard"
#~ msgstr "Veiviser for opprettelse av e-post"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -920,7 +920,7 @@ msgstr "Bovenliggend"
#. module: project
#: view:project.task:0
msgid "Mark as Blocked"
msgstr "Maarkeer als geblokkeerd"
msgstr "Markeer als geblokkeerd"
#. module: project
#: model:ir.actions.act_window,help:project.action_view_task
@ -1325,8 +1325,8 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgstr "Deligatiehistorie"
msgid "Delegation"
msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@ -2566,3 +2566,6 @@ msgstr "Lopende taken"
#~ msgid "E-mail composition wizard"
#~ msgstr "E-mail opmaak wizard"
#~ msgid "Delegations History"
#~ msgstr "Deligatiehistorie"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1317,7 +1317,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1322,8 +1322,8 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgstr "Historia przydziałów"
msgid "Delegation"
msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@ -2529,3 +2529,6 @@ msgstr "Zadania w toku"
#~ msgid "E-mail composition wizard"
#~ msgstr "Kreator tworzenia wiadomości"
#~ msgid "Delegations History"
#~ msgstr "Historia przydziałów"

View File

@ -1293,7 +1293,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1328,8 +1328,8 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgstr "Histórico das delegações"
msgid "Delegation"
msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@ -2561,5 +2561,8 @@ msgstr "Tarefas em progresso"
#~ msgid "Automatically synchronizes project tasks and crm cases."
#~ msgstr "Sincroniza automaticamente as tarefas do projecto e os casos de crm."
#~ msgid "Delegations History"
#~ msgstr "Histórico das delegações"
#~ msgid "E-mail composition wizard"
#~ msgstr "Assistente de composição de email"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1331,8 +1331,8 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgstr "Histórico de Delegações"
msgid "Delegation"
msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@ -2559,3 +2559,6 @@ msgstr "Tarefas em Progresso"
#~ msgid "E-mail composition wizard"
#~ msgstr "Assistente de composição de E-mail."
#~ msgid "Delegations History"
#~ msgstr "Histórico de Delegações"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1338,8 +1338,8 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgstr "Istoric Delegatii"
msgid "Delegation"
msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@ -2286,3 +2286,6 @@ msgstr "Sarcini in desfasurare"
#~ msgid "E-mail composition wizard"
#~ msgstr "Asistent compunere e-mail"
#~ msgid "Delegations History"
#~ msgstr "Istoric Delegatii"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-15 04:55+0000\n"
"X-Generator: Launchpad (build 15944)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1330,8 +1330,8 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgstr "История Делегирования"
msgid "Delegation"
msgstr ""
#. module: project
#: model:ir.model,name:project.model_res_users
@ -2387,5 +2387,8 @@ msgstr "Задания в работе"
#~ msgid "project.installer"
#~ msgstr "project.installer"
#~ msgid "Delegations History"
#~ msgstr "История Делегирования"
#~ msgid "E-mail composition wizard"
#~ msgstr "Мастер создания электронной почты"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1275,7 +1275,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:55+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: project
#: view:report.project.task.user:0
@ -1276,7 +1276,7 @@ msgstr ""
#. module: project
#: view:project.task:0
msgid "Delegations History"
msgid "Delegation"
msgstr ""
#. module: project

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