[MERGE]Latest trunk
bzr revid: dle@openerp.com-20120921073711-bwqhauxr9ii301mh
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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')]
|
||||
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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
|
||||
@@ -926,6 +931,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'], ))
|
||||
|
||||
@@ -102,6 +102,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Account Period" version="7.0">
|
||||
<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>
|
||||
@@ -1718,8 +1719,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"/>
|
||||
@@ -1767,12 +1770,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>
|
||||
|
||||
@@ -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)"/>
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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)]"/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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', '<>', 'view')]" name="account_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="type" />
|
||||
<field domain="[('type', '<>', 'view')]" name="account_id"/>
|
||||
<field name="amount"/>
|
||||
<field name="globalisation_id"/>
|
||||
<field name="sequence" readonly="0"/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -44,10 +44,6 @@ Web pages
|
||||
'auto_install': False,
|
||||
'certificate': '0086363630317',
|
||||
'images': [],
|
||||
'js': [
|
||||
'static/src/lib/wiky/wiky.js',
|
||||
'static/src/js/document_page.js'
|
||||
],
|
||||
'css' : ['static/src/css/document_page.css'],
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -23,24 +23,28 @@ Additional ressources
|
||||
<field name="name">OpenERP 6.1. Functional Demo</field>
|
||||
<field name="parent_id" ref="demo_category1"/>
|
||||
<field name="content">
|
||||
|
||||
The news is out, OpenERP's latest version 6.1. is here. It's more
|
||||
user-friendly, even more business oriented and efficient to manage your company
|
||||
|
||||
How to discover the latest version 6.1.?
|
||||
|
||||
Demo : [http://demo.openerp.com]
|
||||
Online: [http://openerp.com/online]
|
||||
Download: [http://openerp.com/downloads]
|
||||
|
||||
We have also put together a functional demo that presents 6.1. Watch this video
|
||||
to learn directly from us what OpenERP 6.1. can do for you. Share it in your
|
||||
company, with your clients and implement it now for your business.
|
||||
|
||||
==Watch on Youtube!==
|
||||
|
||||
[[Video:http://www.youtube.com/embed/7jES2jxKMso ]]
|
||||
|
||||
<![CDATA[
|
||||
<br>
|
||||
<br>
|
||||
The news is out, OpenERP's latest version 6.1. is here. It's more<br>
|
||||
user-friendly, even more business oriented and efficient to manage your company<br>
|
||||
<br>
|
||||
How to discover the latest version 6.1.?<br>
|
||||
<br>
|
||||
Demo : <a target="http://demo.openerp.com" href="http://demo.openerp.com" style="background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeF59z4EJADEIQ1F36k7u5E7ZKXeUQPACJ3wK7UNokVxVk9kHnQH7bY9hbDyDhNXgjpRLqFlo4M2GgfyJHhjq8V4agfrgPQX3JtJQGbofmCHgA/nAKks+JAjFAAAAAElFTkSuQmCC") no-repeat scroll right center transparent;padding-right: 13px;"></a><br>
|
||||
Online: <a target="http://openerp.com/online" href="http://openerp.com/online" style="background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeF59z4EJADEIQ1F36k7u5E7ZKXeUQPACJ3wK7UNokVxVk9kHnQH7bY9hbDyDhNXgjpRLqFlo4M2GgfyJHhjq8V4agfrgPQX3JtJQGbofmCHgA/nAKks+JAjFAAAAAElFTkSuQmCC") no-repeat scroll right center transparent;padding-right: 13px;"></a><br>
|
||||
Download: <a target="http://openerp.com/downloads" href="http://openerp.com/downloads" style="background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeF59z4EJADEIQ1F36k7u5E7ZKXeUQPACJ3wK7UNokVxVk9kHnQH7bY9hbDyDhNXgjpRLqFlo4M2GgfyJHhjq8V4agfrgPQX3JtJQGbofmCHgA/nAKks+JAjFAAAAAElFTkSuQmCC") no-repeat scroll right center transparent;padding-right: 13px;"></a><br>
|
||||
<br>
|
||||
We have also put together a functional demo that presents 6.1. Watch this video<br>
|
||||
to learn directly from us what OpenERP 6.1. can do for you. Share it in your<br>
|
||||
company, with your clients and implement it now for your business.<br>
|
||||
<br>
|
||||
<h3>Watch on Youtube!</h3><br>
|
||||
<br>
|
||||
<iframe width="480" height="390" src="http://www.youtube.com/embed/7jES2jxKMso " frameborder="0" allowfullscreen=""></iframe><br>
|
||||
<br>
|
||||
<br>
|
||||
]]>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -48,36 +52,40 @@ company, with your clients and implement it now for your business.
|
||||
<field name="name">Personalise Dashboards</field>
|
||||
<field name="parent_id" ref="demo_category1"/>
|
||||
<field name="content">
|
||||
You like OpenERP, but feel like you want to personalise it more? Now, OpenERP
|
||||
goes a step further and lets you customize your dashboard. Thanks to a new
|
||||
feature that allows you to customize your dashboard by adding new boards of any
|
||||
search view.
|
||||
|
||||
==How is it done?==
|
||||
|
||||
Step 1: access one search view
|
||||
|
||||
Step 2: apply the filter you want to see at each connection to the application
|
||||
(eg. on sales, manufacturing, etc)
|
||||
|
||||
Step 3: add it into the dashboard in the same space where you can save the filter
|
||||
|
||||
Step 4: choose the application you want it visible on and the name of the array
|
||||
|
||||
Look at this simple example below from Purchase, where I want to put on the
|
||||
application's dashboard "Purchases to Approve". After I access the search view
|
||||
and apply the filter for "Purchases to Approve", I can add it immediately to my
|
||||
Purchase dashboard.
|
||||
|
||||
[[File:http://www.openerp.com/sites/default/files/fileattach/dashboard2_1(1).png ]]
|
||||
|
||||
In less than a minute, the search view is visible on the dashboard
|
||||
|
||||
[[File:http://www.openerp.com/sites/default/files/fileattach/dashboard2_2.png ]]
|
||||
|
||||
Of course, you are free to delete what you don't need or like, but just in case
|
||||
you change your mind there is a reset button to return to the default view.
|
||||
|
||||
<![CDATA[
|
||||
<br>
|
||||
You like OpenERP, but feel like you want to personalise it more? Now, OpenERP<br>
|
||||
goes a step further and lets you customize your dashboard. Thanks to a new<br>
|
||||
feature that allows you to customize your dashboard by adding new boards of any<br>
|
||||
search view.<br>
|
||||
<br>
|
||||
<h3>How is it done?</h3><br>
|
||||
<br>
|
||||
Step 1: access one search view <br>
|
||||
<br>
|
||||
Step 2: apply the filter you want to see at each connection to the application<br>
|
||||
(eg. on sales, manufacturing, etc)<br>
|
||||
<br>
|
||||
Step 3: add it into the dashboard in the same space where you can save the filter<br>
|
||||
<br>
|
||||
Step 4: choose the application you want it visible on and the name of the array<br>
|
||||
<br>
|
||||
Look at this simple example below from Purchase, where I want to put on the<br>
|
||||
application's dashboard "Purchases to Approve". After I access the search view<br>
|
||||
and apply the filter for "Purchases to Approve", I can add it immediately to my<br>
|
||||
Purchase dashboard.<br>
|
||||
<br>
|
||||
<img src="http://www.openerp.com/sites/default/files/fileattach/dashboard2_1(1).png" alt=""><br>
|
||||
<br>
|
||||
In less than a minute, the search view is visible on the dashboard<br>
|
||||
<br>
|
||||
<img src="http://www.openerp.com/sites/default/files/fileattach/dashboard2_2.png" alt=""><br>
|
||||
<br>
|
||||
Of course, you are free to delete what you don't need or like, but just in case<br>
|
||||
you change your mind there is a reset button to return to the default view.<br>
|
||||
<br>
|
||||
<br>
|
||||
]]>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -85,36 +93,36 @@ you change your mind there is a reset button to return to the default view.
|
||||
<field name="name">Touchscreen Point of Sale</field>
|
||||
<field name="parent_id" ref="demo_category1"/>
|
||||
<field name="content">
|
||||
The brand new OpenERP touchscreen point of sale available with 6.1 allows you
|
||||
to manage your shop sales very easily. It's fully web based so that you don't
|
||||
have to install or deploy any software and all the sales shops can be easily
|
||||
consolidated. It works in connected and disconnected modes so that you can
|
||||
continue to sell if you lose your internet connection.
|
||||
|
||||
[[File:http://www.openerp.com/sites/default/files/fileattach/POS(2).png ]]
|
||||
|
||||
==Here's a summary of its main features and benefits:==
|
||||
|
||||
100% WEB based
|
||||
|
||||
* available for any touchscreen device (ipod, ipad, any tablet)mobile (with portable devices)
|
||||
* no installation required
|
||||
* no synchronization needed, completely integrated
|
||||
* continue working even when your connection is down if you close your browser, data won't be lost
|
||||
* fully web based with a clean interface smart interface
|
||||
|
||||
You have different options to select your products. You can do it through the
|
||||
barcode reader, just browse through the categories you have put in place (ie.
|
||||
drinks, snacks, meals, etc.), or text search in case neither of the other
|
||||
options work for you. If you need to use the POS for your restaurant, for
|
||||
example, your employees can record at the same time multiple tickets without
|
||||
having to wait to do one transaction at a time. Along, to facilitate payment,
|
||||
the application allows multiple payment methods.
|
||||
|
||||
The POS application is so simple and accessible to use that your shop or
|
||||
restaurant will never need any other tool to manage orders. Due to its smart
|
||||
and user-friendly interface you don't need any training to learn how to use it.
|
||||
Think of it as an out-of-the-box solution to boost your business' productivity.
|
||||
<![CDATA[
|
||||
<br>
|
||||
The brand new OpenERP touchscreen point of sale available with 6.1 allows you<br>
|
||||
to manage your shop sales very easily. It's fully web based so that you don't<br>
|
||||
have to install or deploy any software and all the sales shops can be easily<br>
|
||||
consolidated. It works in connected and disconnected modes so that you can<br>
|
||||
continue to sell if you lose your internet connection.<br>
|
||||
<br>
|
||||
<img src="http://www.openerp.com/sites/default/files/fileattach/POS(2).png" alt=""><br>
|
||||
<br>
|
||||
<h3>Here's a summary of its main features and benefits:</h3><br>
|
||||
<br>
|
||||
100% WEB based<br>
|
||||
<br>
|
||||
<ul><li>available for any touchscreen device (ipod, ipad, any tablet)mobile (with portable devices)</li><li>no installation required</li><li>no synchronization needed, completely integrated</li><li>continue working even when your connection is down if you close your browser, data won't be lost</li><li>fully web based with a clean interface smart interface</li></ul><br>
|
||||
<br>
|
||||
You have different options to select your products. You can do it through the<br>
|
||||
barcode reader, just browse through the categories you have put in place (ie.<br>
|
||||
drinks, snacks, meals, etc.), or text search in case neither of the other<br>
|
||||
options work for you. If you need to use the POS for your restaurant, for<br>
|
||||
example, your employees can record at the same time multiple tickets without<br>
|
||||
having to wait to do one transaction at a time. Along, to facilitate payment,<br>
|
||||
the application allows multiple payment methods.<br>
|
||||
<br>
|
||||
The POS application is so simple and accessible to use that your shop or<br>
|
||||
restaurant will never need any other tool to manage orders. Due to its smart<br>
|
||||
and user-friendly interface you don't need any training to learn how to use it.<br>
|
||||
Think of it as an out-of-the-box solution to boost your business' productivity.<br>
|
||||
<br>
|
||||
]]>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
</div>
|
||||
<field name="content" placeholder="e.g. Once upon a time..." class="oe_edit_only"/>
|
||||
<div class="oe_document_page">
|
||||
<field name="display_content" widget="text_wiki" class="oe_view_only"/>
|
||||
<field name="display_content" widget="html" class="oe_view_only" options='{"safe": true}'/>
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
openerp.document_page = function (openerp) {
|
||||
openerp.web.form.widgets.add('text_wiki', 'openerp.web.form.FieldTextWiki');
|
||||
|
||||
openerp.web.form.FieldTextWiki = openerp.web.form.FieldText.extend({
|
||||
render_value: function() {
|
||||
var show_value = openerp.web.format_value(this.get('value'), this, '');
|
||||
if (!this.get("effective_readonly")) {
|
||||
this.$textarea.val(show_value);
|
||||
if (show_value && this.view.options.resize_textareas) {
|
||||
this.do_resize(this.view.options.resize_textareas);
|
||||
}
|
||||
} else {
|
||||
var wiki_value = wiky.process(show_value || '');
|
||||
this.$el.html(wiki_value);
|
||||
}
|
||||
},
|
||||
});
|
||||
};
|
||||
@@ -1,41 +0,0 @@
|
||||
Wiky.js - a javascript library to convert Wiki Markup language to HTML.
|
||||
=======================
|
||||
|
||||
(It is buggy, please use with care)
|
||||
|
||||
Wiky.js is a javascript library that converts Wiki Markup language to HTML.
|
||||
|
||||
|
||||
How to use it
|
||||
-------------------
|
||||
Include wiki.js into your HTML file. Wiky.js has only one function, which is wiky.process(wikitext).
|
||||
|
||||
Please see index.html for an example.
|
||||
|
||||
*wiky.js does not depend on jQuery, which is included for testing purpose.
|
||||
|
||||
|
||||
|
||||
Supported Syntax
|
||||
-------------------
|
||||
* == Heading ==
|
||||
* === Subheading ===
|
||||
* [http://www.url.com Name of URLs]
|
||||
* [[File:http://www.url.com/image.png Alternative Text]]
|
||||
* -------------------- (Horizontal line)
|
||||
* : (Indentation)
|
||||
* # Ordered bullet point
|
||||
* * Unordered bullet point
|
||||
|
||||
|
||||
|
||||
License
|
||||
------------------
|
||||
Creative Commons 3.0
|
||||
|
||||
|
||||
|
||||
Contributors
|
||||
-------------------
|
||||
Tanin Na Nakorn
|
||||
Tanun Niyomjit (Designer)
|
||||
@@ -1,56 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
|
||||
<script type="text/javascript" src="wiky.js"></script>
|
||||
<title>Untitled Document</title>
|
||||
<link href="wiky.css" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<textarea id="textarea" onchange="$('#preview').html(wiky.process($(this).val()));" cols="60" rows="20">=== Heading ===
|
||||
Some content
|
||||
I would like to add another line
|
||||
|
||||
== Subheading ==
|
||||
Some more content
|
||||
Some more lines1
|
||||
:A line with indent
|
||||
:: A 2-indented line
|
||||
:: more
|
||||
:back to 1-indented line
|
||||
|
||||
This is Taeyeon.
|
||||
[[File:http://www.oknation.net/blog/home/blog_data/12/2012/images/ty4.jpg Taeyeon]]
|
||||
Taeyeon is so cute.
|
||||
|
||||
This is a link:[http://www.google.com Google].
|
||||
This is a bold link:'''[http://www.google.com Google]'''.
|
||||
This is a bold-italic link:'''''[http://www.google.com Google]'''''.
|
||||
This is '''bold''', '''''bold-italic''''', and ''italic''
|
||||
|
||||
[[Video:http://www.youtube.com/embed/ovVfLancwys]]
|
||||
# First
|
||||
# secon
|
||||
## Second-First
|
||||
*** First Point
|
||||
*** Second Point
|
||||
#### z
|
||||
#### y
|
||||
#### x
|
||||
*** Third Point
|
||||
## Second-Second [ftp://www.facebook.com FacebookFTP]
|
||||
## Second-Third [http://www.google.com Google Here]
|
||||
# third
|
||||
|
||||
</textarea>
|
||||
<br/>
|
||||
<span style="display:block;width:600px;border:1px solid #999999;">
|
||||
<span style="display:block;margin:10px 10px 10px 10px;" class="wiky_preview_area" id="preview">
|
||||
</span>
|
||||
</span>
|
||||
</body>
|
||||
</html>
|
||||
<script language="javascript">
|
||||
$('#preview').html(wiky.process($('#textarea').val()));
|
||||
</script>
|
||||
@@ -1,35 +0,0 @@
|
||||
=== Heading ===
|
||||
Some content
|
||||
I would like to add another line
|
||||
|
||||
== Subheading ==
|
||||
Some more content
|
||||
Some more lines1
|
||||
:A line with indent
|
||||
:: A 2-indented line
|
||||
:: more
|
||||
:back to 1-indented line
|
||||
|
||||
This is Taeyeon.
|
||||
[[File:http://www.oknation.net/blog/home/blog_data/12/2012/images/ty4.jpg Taeyeon]]
|
||||
Taeyeon is so cute.
|
||||
|
||||
This is a link:[http://www.google.com Google].
|
||||
This is a bold link:'''[http://www.google.com Google]'''.
|
||||
This is a bold-italic link:'''''[http://www.google.com Google]'''''.
|
||||
This is '''bold''', '''''bold-italic''''', and ''italic''
|
||||
|
||||
|
||||
# First
|
||||
# second
|
||||
## Second-First
|
||||
*** First Point
|
||||
*** Second Point
|
||||
#### z
|
||||
#### y
|
||||
#### x
|
||||
*** Third Point
|
||||
## Second-Second [ftp://www.facebook.com FacebookFTP]
|
||||
## Second-Third [http://www.google.com Google Here]
|
||||
# third
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
.wiky_preview_area {
|
||||
font-family: "Helvetica Neue", Arial, Helvetica, 'Liberation Sans', FreeSans, sans-serif;
|
||||
font-size: 13px;
|
||||
line-height: 1.5em;
|
||||
color: #666;
|
||||
font-weight:350;
|
||||
width:600px;
|
||||
display:block;
|
||||
}
|
||||
.wiky_preview_area h2{
|
||||
font-size:24px;
|
||||
color:#333;
|
||||
font-weight:400;
|
||||
|
||||
text-shadow:0 1px 0 rgba(000, 000, 000, .4);
|
||||
}
|
||||
.wiky_preview_area h3{
|
||||
font-size:18px;
|
||||
color:#555;
|
||||
font-weight:400;
|
||||
|
||||
text-shadow:0 1px 0 rgba(000, 000, 000, .4);
|
||||
}
|
||||
.wiky_preview_area img{
|
||||
background-repeat: repeat;
|
||||
width: 400px;
|
||||
-webkit-border-radius: 10px;
|
||||
-moz-border-radius: 10px;
|
||||
border-radius: 10px;
|
||||
-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, .8);
|
||||
-moz-box-shadow:0 1px 3px rgba(0, 0, 0, .8);
|
||||
box-shadow:0 1px 3px rgba(0, 0, 0, .8);
|
||||
}
|
||||
.wiky_preview_area a{
|
||||
padding:5px;
|
||||
font-weight:400;
|
||||
|
||||
background: #999; /* for non-css3 browsers */
|
||||
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#cccccc', endColorstr='#000000'); /* for IE */
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#ccc), to(#000)); /* for webkit browsers */
|
||||
background: -moz-linear-gradient(top, #ccc, #000); /* for firefox 3.6+ */
|
||||
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
|
||||
-webkit-box-shadow:none;
|
||||
-moz-box-shadow:none;
|
||||
box-shadow:none;
|
||||
|
||||
text-shadow:0 1px 0 rgba(255, 255, 255, 1);
|
||||
}
|
||||
|
||||
.wiky_preview_area a:hover{
|
||||
color:#333;
|
||||
padding:5px;
|
||||
font-weight:400;
|
||||
text-decoration:none;
|
||||
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
|
||||
-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, .3);
|
||||
-moz-box-shadow:0 1px 3px rgba(0, 0, 0, .3);
|
||||
box-shadow:0 1px 3px rgba(0, 0, 0, .3);
|
||||
|
||||
text-shadow:0 1px 0 rgba(255, 255, 255, 1);
|
||||
}
|
||||
|
||||
|
||||
.wiky_preview_area > ol,
|
||||
.wiky_preview_area > ul,
|
||||
.wiky_preview_area > ul > li,
|
||||
.wiky_preview_area > ol > li {
|
||||
list-style: disc inside none;
|
||||
}
|
||||
@@ -1,303 +0,0 @@
|
||||
/**
|
||||
* Wiky.js - Javascript library to converts Wiki MarkUp language to HTML.
|
||||
* You can do whatever with it. Please give me some credits (Apache License)
|
||||
* - Tanin Na Nakorn
|
||||
*/
|
||||
|
||||
var wiky = {};
|
||||
|
||||
|
||||
wiky.process = function(wikitext) {
|
||||
var lines = wikitext.split(/\r?\n/);
|
||||
var start;
|
||||
var html = "";
|
||||
|
||||
for (var i=0;i<lines.length;i++)
|
||||
{
|
||||
var line = lines[i];
|
||||
if (line.match(/^===/)!=null && line.match(/===$/)!=null)
|
||||
{
|
||||
html += "<h2>"+line.substring(3,line.length-3)+"</h2>";
|
||||
}
|
||||
else if (line.match(/^==/)!=null && line.match(/==$/)!=null)
|
||||
{
|
||||
html += "<h3>"+line.substring(2,line.length-2)+"</h3>";
|
||||
}
|
||||
else if (line.match(/^:+/)!=null)
|
||||
{
|
||||
// find start line and ending line
|
||||
start = i;
|
||||
while (i < lines.length && lines[i].match(/^:+/)!=null) i++;
|
||||
i--;
|
||||
|
||||
html += wiky.process_indent(lines,start,i);
|
||||
}
|
||||
else if (line.match(/^----+(\s*)$/)!=null)
|
||||
{
|
||||
html += "<hr/>";
|
||||
}
|
||||
else if (line.match(/^(\*+) /)!=null)
|
||||
{
|
||||
// find start line and ending line
|
||||
start = i;
|
||||
while (i < lines.length && lines[i].match(/^(\*+|##+):? /)!=null) i++;
|
||||
i--;
|
||||
|
||||
html += wiky.process_bullet_point(lines,start,i);
|
||||
}
|
||||
else if (line.match(/^(#+) /)!=null)
|
||||
{
|
||||
// find start line and ending line
|
||||
start = i;
|
||||
while (i < lines.length && lines[i].match(/^(#+|\*\*+):? /)!=null) i++;
|
||||
i--;
|
||||
|
||||
html += wiky.process_bullet_point(lines,start,i);
|
||||
}
|
||||
else
|
||||
{
|
||||
html += wiky.process_normal(line);
|
||||
}
|
||||
|
||||
html += "<br/>\n";
|
||||
}
|
||||
|
||||
return html;
|
||||
};
|
||||
|
||||
wiky.process_indent = function(lines,start,end) {
|
||||
var html = "<dl>";
|
||||
|
||||
for(var i=start;i<=end;i++) {
|
||||
|
||||
html += "<dd>";
|
||||
|
||||
var this_count = lines[i].match(/^(:+)/)[1].length;
|
||||
|
||||
html += wiky.process_normal(lines[i].substring(this_count));
|
||||
|
||||
var nested_end = i;
|
||||
for (var j=i+1;j<=end;j++) {
|
||||
var nested_count = lines[j].match(/^(:+)/)[1].length;
|
||||
if (nested_count <= this_count) break;
|
||||
else nested_end = j;
|
||||
}
|
||||
|
||||
if (nested_end > i) {
|
||||
html += wiky.process_indent(lines,i+1,nested_end);
|
||||
i = nested_end;
|
||||
}
|
||||
|
||||
html += "</dd>";
|
||||
}
|
||||
|
||||
html += "</dl>";
|
||||
return html;
|
||||
};
|
||||
|
||||
wiky.process_bullet_point = function(lines,start,end) {
|
||||
var html = (lines[start].charAt(0)=='*')?"<ul>":"<ol>";
|
||||
|
||||
for(var i=start;i<=end;i++) {
|
||||
|
||||
html += "<li>";
|
||||
|
||||
var this_count = lines[i].match(/^(\*+|#+) /)[1].length;
|
||||
|
||||
html += wiky.process_normal(lines[i].substring(this_count+1));
|
||||
|
||||
// continue previous with #:
|
||||
{
|
||||
var nested_end = i;
|
||||
for (var j = i + 1; j <= end; j++) {
|
||||
var nested_count = lines[j].match(/^(\*+|#+):? /)[1].length;
|
||||
|
||||
if (nested_count < this_count)
|
||||
break;
|
||||
else {
|
||||
if (lines[j].charAt(nested_count) == ':') {
|
||||
html += "<br/>" + wiky.process_normal(lines[j].substring(nested_count + 2));
|
||||
nested_end = j;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
i = nested_end;
|
||||
}
|
||||
|
||||
// nested bullet point
|
||||
{
|
||||
var nested_end = i;
|
||||
for (var j = i + 1; j <= end; j++) {
|
||||
var nested_count = lines[j].match(/^(\*+|#+):? /)[1].length;
|
||||
if (nested_count <= this_count)
|
||||
break;
|
||||
else
|
||||
nested_end = j;
|
||||
}
|
||||
|
||||
if (nested_end > i) {
|
||||
html += wiky.process_bullet_point(lines, i + 1, nested_end);
|
||||
i = nested_end;
|
||||
}
|
||||
}
|
||||
|
||||
// continue previous with #:
|
||||
{
|
||||
var nested_end = i;
|
||||
for (var j = i + 1; j <= end; j++) {
|
||||
var nested_count = lines[j].match(/^(\*+|#+):? /)[1].length;
|
||||
|
||||
if (nested_count < this_count)
|
||||
break;
|
||||
else {
|
||||
if (lines[j].charAt(nested_count) == ':') {
|
||||
html += wiky.process_normal(lines[j].substring(nested_count + 2));
|
||||
nested_end = j;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
i = nested_end;
|
||||
}
|
||||
|
||||
html += "</li>";
|
||||
}
|
||||
|
||||
html += (lines[start].charAt(0)=='*')?"</ul>":"</ol>";
|
||||
return html;
|
||||
};
|
||||
|
||||
wiky.process_url = function(txt) {
|
||||
|
||||
var index = txt.indexOf(" ");
|
||||
|
||||
if (index == -1)
|
||||
{
|
||||
return "<a target='"+txt+"' href='"+txt+"' style='background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeF59z4EJADEIQ1F36k7u5E7ZKXeUQPACJ3wK7UNokVxVk9kHnQH7bY9hbDyDhNXgjpRLqFlo4M2GgfyJHhjq8V4agfrgPQX3JtJQGbofmCHgA/nAKks+JAjFAAAAAElFTkSuQmCC\") no-repeat scroll right center transparent;padding-right: 13px;'></a>";
|
||||
}
|
||||
else
|
||||
{
|
||||
var url = txt.substring(0,index);
|
||||
var label = txt.substring(index+1);
|
||||
return "<a target='"+url+"' href='"+url+"' style='background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeF59z4EJADEIQ1F36k7u5E7ZKXeUQPACJ3wK7UNokVxVk9kHnQH7bY9hbDyDhNXgjpRLqFlo4M2GgfyJHhjq8V4agfrgPQX3JtJQGbofmCHgA/nAKks+JAjFAAAAAElFTkSuQmCC\") no-repeat scroll right center transparent;padding-right: 13px;'>"+label+"</a>";
|
||||
}
|
||||
};
|
||||
|
||||
wiky.process_image = function(txt) {
|
||||
var index = txt.indexOf(" ");
|
||||
var url = txt;
|
||||
var label = "";
|
||||
|
||||
if (index > -1)
|
||||
{
|
||||
url = txt.substring(0,index);
|
||||
label = txt.substring(index+1);
|
||||
}
|
||||
|
||||
|
||||
return "<img src='"+url+"' alt=\""+label+"\" />";
|
||||
};
|
||||
|
||||
wiky.process_video = function(url) {
|
||||
|
||||
if (url.match(/^(https?:\/\/)?(www.)?youtube.com\//) == null)
|
||||
{
|
||||
return "<b>"+url+" is an invalid YouTube URL</b>";
|
||||
}
|
||||
var result;
|
||||
if ((result = url.match(/^(https?:\/\/)?(www.)?youtube.com\/watch\?(.*)v=([^&]+)/)) != null)
|
||||
{
|
||||
url = "http://www.youtube.com/embed/"+result[4];
|
||||
}
|
||||
|
||||
|
||||
return '<iframe width="480" height="390" src="'+url+'" frameborder="0" allowfullscreen></iframe>';
|
||||
};
|
||||
|
||||
wiky.process_normal = function(wikitext) {
|
||||
|
||||
// Image
|
||||
{
|
||||
var index = wikitext.indexOf("[[File:");
|
||||
var end_index = wikitext.indexOf("]]", index + 7);
|
||||
while (index > -1 && end_index > -1) {
|
||||
|
||||
wikitext = wikitext.substring(0,index)
|
||||
+ wiky.process_image(wikitext.substring(index+7,end_index))
|
||||
+ wikitext.substring(end_index+2);
|
||||
|
||||
index = wikitext.indexOf("[[File:");
|
||||
end_index = wikitext.indexOf("]]", index + 7);
|
||||
}
|
||||
}
|
||||
|
||||
// Video
|
||||
{
|
||||
var index = wikitext.indexOf("[[Video:");
|
||||
var end_index = wikitext.indexOf("]]", index + 8);
|
||||
while (index > -1 && end_index > -1) {
|
||||
|
||||
wikitext = wikitext.substring(0,index)
|
||||
+ wiky.process_video(wikitext.substring(index+8,end_index))
|
||||
+ wikitext.substring(end_index+2);
|
||||
|
||||
index = wikitext.indexOf("[[Video:");
|
||||
end_index = wikitext.indexOf("]]", index + 8);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// URL
|
||||
var protocols = ["http","ftp","news"];
|
||||
|
||||
for (var i=0;i<protocols.length;i++)
|
||||
{
|
||||
var index = wikitext.indexOf("["+protocols[i]+"://");
|
||||
var end_index = wikitext.indexOf("]", index + 1);
|
||||
while (index > -1 && end_index > -1) {
|
||||
|
||||
wikitext = wikitext.substring(0,index)
|
||||
+ wiky.process_url(wikitext.substring(index+1,end_index))
|
||||
+ wikitext.substring(end_index+1);
|
||||
|
||||
index = wikitext.indexOf("["+protocols[i]+"://",end_index+1);
|
||||
end_index = wikitext.indexOf("]", index + 1);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
var count_b = 0;
|
||||
var index = wikitext.indexOf("'''");
|
||||
while(index > -1) {
|
||||
|
||||
if ((count_b%2)==0) wikitext = wikitext.replace(/'''/,"<b>");
|
||||
else wikitext = wikitext.replace(/'''/,"</b>");
|
||||
|
||||
count_b++;
|
||||
|
||||
index = wikitext.indexOf("'''",index);
|
||||
}
|
||||
|
||||
var count_i = 0;
|
||||
var index = wikitext.indexOf("''");
|
||||
while(index > -1) {
|
||||
|
||||
if ((count_i%2)==0) wikitext = wikitext.replace(/''/,"<i>");
|
||||
else wikitext = wikitext.replace(/''/,"</i>");
|
||||
|
||||
count_i++;
|
||||
|
||||
index = wikitext.indexOf("''",index);
|
||||
}
|
||||
|
||||
wikitext = wikitext.replace(/<\/b><\/i>/g,"</i></b>");
|
||||
|
||||
return wikitext;
|
||||
};
|
||||
@@ -261,7 +261,6 @@ class hr_employee(osv.osv):
|
||||
_defaults = {
|
||||
'active': 1,
|
||||
'image': _get_default_image,
|
||||
'marital': 'single',
|
||||
'color': 0,
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
.oe_employee_vignette {
|
||||
padding: 8px 0;
|
||||
padding: 8px 8px;
|
||||
min-height: 100px;
|
||||
}
|
||||
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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
|
||||
|
||||
|
@@ -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.
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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','<>',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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import company
|
||||
import wizard
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -1,45 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
from osv import osv
|
||||
|
||||
class res_company(osv.osv):
|
||||
_inherit = "res.company"
|
||||
_description = 'Company'
|
||||
|
||||
def _get_default_ad(self, addresses):
|
||||
name = email = phone = city = post_code = address = country_code = ""
|
||||
for ads in addresses:
|
||||
if ads.type == 'default':
|
||||
city = ads.city or ""
|
||||
post_code = ads.zip or ""
|
||||
if ads.street:
|
||||
address = ads.street or ""
|
||||
if ads.street2:
|
||||
address += " " + ads.street2
|
||||
if ads.country_id:
|
||||
country_code = ads.country_id and ads.country_id.code or ""
|
||||
name = ads.name or ""
|
||||
email = ads.email or ""
|
||||
phone = ads.phone or ""
|
||||
return name, email, phone, city, post_code, address, country_code
|
||||
res_company()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -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,
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
|
||||
@@ -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'),
|
||||
}
|
||||
|
||||
+14
-36
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
id,name,implied_ids/id
|
||||
group_note_tags,Memo / Display tags,
|
||||
group_note_fancy,Memo / Fancy mode,
|
||||
|
||||
|
@@ -1,3 +0,0 @@
|
||||
memo.css: memo.sass
|
||||
sass -t expanded memo.sass memo.css
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
+41
-8
@@ -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:
|
||||
|
||||
@@ -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
|
||||
})
|
||||
@@ -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 {
|
||||
|
||||
@@ -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');
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 !
|
||||
|
||||
+44
-31
@@ -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 "الجداول الزمنية"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
+13
-10
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 "委任の履歴"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 "Ацагласан Түүх"
|
||||
|
||||
+77
-62
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -1293,7 +1293,7 @@ msgstr ""
|
||||
|
||||
#. module: project
|
||||
#: view:project.task:0
|
||||
msgid "Delegations History"
|
||||
msgid "Delegation"
|
||||
msgstr ""
|
||||
|
||||
#. module: project
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 "Мастер создания электронной почты"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user