[MERGE]:trunk-mail-cleaning-fp
bzr revid: apa@tinyerp.com-20120904104409-w9zl98qjpem10pan
This commit is contained in:
@@ -186,19 +186,23 @@
|
||||
<search string="Search Analytic Lines">
|
||||
<field name="name" string="Analytic Line"/>
|
||||
<field name="date"/>
|
||||
<filter name="sales" string="Sales" domain="[('journal_id.type','=','sale')]" icon="terp-camera_test" help="Analytic Journal Items related to a sale journal."/>
|
||||
<filter name="purchases" string="Purchases" domain="[('journal_id.type','=','purchase')]" icon="terp-purchase" help="Analytic Journal Items related to a purchase journal."/>
|
||||
<filter name="others" string="Others" domain="[('journal_id.type','in',('cash','general','situation'))]" icon="terp-folder-orange"/>
|
||||
<filter name="sales" string="Sales" domain="[('journal_id.type','=','sale')]" help="Analytic Journal Items related to a sale journal."/>
|
||||
<filter name="purchases" string="Purchases" domain="[('journal_id.type','=','purchase')]" help="Analytic Journal Items related to a purchase journal."/>
|
||||
<filter name="others" string="Others" domain="[('journal_id.type','in',('cash','general','situation'))]"/>
|
||||
<separator/>
|
||||
<filter string="My Entries" domain="[('user_id','=',uid)]" icon="terp-personal"/>
|
||||
<filter string="My Entries" domain="[('user_id','=',uid)]"/>
|
||||
<field name="account_id"/>
|
||||
<field name="user_id"/>
|
||||
<group string="Group By..." expand="0">
|
||||
<filter string="Account" context="{'group_by':'account_id'}" icon="terp-folder-green"/>
|
||||
<filter string="Journal" context="{'group_by':'journal_id'}" icon="terp-folder-orange"/>
|
||||
<filter string="User" context="{'group_by':'user_id'}" icon="terp-personal"/>
|
||||
<filter string="Fin.Account" context="{'group_by':'general_account_id'}" icon="terp-folder-green"/>
|
||||
<filter string="Product" context="{'group_by':'product_id'}" icon="terp-accessories-archiver"/>
|
||||
<filter string="Analytic Account" context="{'group_by':'account_id'}"/>
|
||||
<filter string="Fin. Account" context="{'group_by':'general_account_id'}"/>
|
||||
<filter string="Journal" context="{'group_by':'journal_id'}" name="group_journal"/>
|
||||
<separator/>
|
||||
<filter string="Product" context="{'group_by':'product_id'}"/>
|
||||
<filter string="User" context="{'group_by':'user_id'}"/>
|
||||
<separator/>
|
||||
<filter string="Date" context="{'group_by':'date'}" name="group_date"/>
|
||||
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -357,16 +361,6 @@
|
||||
action="action_account_analytic_journal_tree"
|
||||
id="account_analytic_journal_print" parent="account.next_id_40"/>
|
||||
|
||||
|
||||
<act_window
|
||||
context="{'search_default_account_id': [active_id], 'search_default_user_id': False, 'default_account_id': active_id}"
|
||||
id="act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal"
|
||||
name="All Analytic Entries"
|
||||
res_model="account.analytic.line"
|
||||
src_model="account.analytic.account"
|
||||
view_mode="tree,form"
|
||||
view_type="form"/>
|
||||
|
||||
<record id="view_account_journal_1" model="ir.ui.view">
|
||||
<field name="name">account.journal.form.1</field>
|
||||
<field name="model">account.journal</field>
|
||||
|
||||
@@ -6,12 +6,11 @@
|
||||
Analytic Account form
|
||||
-->
|
||||
|
||||
<act_window
|
||||
id="action_sales_order"
|
||||
name="Sales Orders"
|
||||
res_model="sale.order"
|
||||
src_model="account.analytic.account"
|
||||
/>
|
||||
<record model="ir.actions.act_window" id="action_sales_order">
|
||||
<field name="name">Sales Orders</field>
|
||||
<field name="res_model">sale.order</field>
|
||||
<field name="src_model">account.analytic.account</field>
|
||||
</record>
|
||||
|
||||
<record id="account_analytic_account_form_form" model="ir.ui.view">
|
||||
<field name="name">account.analytic.account.invoice.form.inherit</field>
|
||||
|
||||
@@ -8,12 +8,18 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Analytic Account" version="7.0">
|
||||
<sheet string="Analytic Account">
|
||||
<div class="oe_right oe_button_box" name="buttons">
|
||||
</div>
|
||||
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only"/>
|
||||
<h1>
|
||||
<field name="name" class="oe_inline"/>
|
||||
</h1>
|
||||
<div name="project"/>
|
||||
<group>
|
||||
<h1>
|
||||
<field name="name" class="oe_inline"/>
|
||||
</h1>
|
||||
<div name="project"/>
|
||||
</div>
|
||||
|
||||
<group name="main">
|
||||
<group>
|
||||
<field name="partner_id" on_change="on_change_partner_id(partner_id, name)" attrs="{'required':[('type','=','contract')]}"/>
|
||||
<field name="manager_id"/>
|
||||
|
||||
@@ -0,0 +1,536 @@
|
||||
# Norwegian Bokmal translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-09-03 16:43+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-04 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 15890)\n"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_mail_to_user:0
|
||||
msgid ""
|
||||
"Check this if you want the rule to send an email to the responsible person."
|
||||
msgstr ""
|
||||
"Sjekk dette hvis du vil at regelen skal sende en e-post til ansvarlig person."
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_remind_partner:0
|
||||
msgid "Remind Partner"
|
||||
msgstr "Påminn partner"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,trg_partner_categ_id:0
|
||||
msgid "Partner Category"
|
||||
msgstr "Partner Kategori"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_mail_to_watchers:0
|
||||
msgid "Mail to Watchers (CC)"
|
||||
msgstr "Post til overvåkere (CC)"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,trg_state_to:0
|
||||
msgid "Button Pressed"
|
||||
msgstr "Knapp trykket"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,model_id:0
|
||||
msgid "Object"
|
||||
msgstr "Objekt"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_mail_to_email:0
|
||||
msgid "Mail to these Emails"
|
||||
msgstr "Send mail til disse e-postene"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_state:0
|
||||
msgid "Set State to"
|
||||
msgstr "Still stat til"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_email_from:0
|
||||
msgid "Email From"
|
||||
msgstr "E-post fra"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Email Body"
|
||||
msgstr "E-post kropp"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_range_type:0
|
||||
msgid "Days"
|
||||
msgstr "Dager"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,last_run:0
|
||||
msgid "Last Run"
|
||||
msgstr "Siste kjøring"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: code:addons/base_action_rule/base_action_rule.py:328
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr "Feil!"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_reply_to:0
|
||||
msgid "Reply-To"
|
||||
msgstr "Svar til"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_email_cc:0
|
||||
msgid ""
|
||||
"These people will receive a copy of the future communication between partner "
|
||||
"and users by email"
|
||||
msgstr ""
|
||||
"Disse menneskene vil motta en kopi av den fremtidige kommunikasjon mellom "
|
||||
"partner og brukere av e-post"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_range_type:0
|
||||
msgid "Minutes"
|
||||
msgstr "Minutter"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,name:0
|
||||
msgid "Rule Name"
|
||||
msgstr "Regelnavn"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_remind_partner:0
|
||||
msgid ""
|
||||
"Check this if you want the rule to send a reminder by email to the partner."
|
||||
msgstr ""
|
||||
"Sjekk dette hvis du vil at regelen skal sende en påminnelse via e-post til "
|
||||
"partneren."
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Conditions on Model Partner"
|
||||
msgstr "Forholdene på Modell Partner"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_type:0
|
||||
msgid "Deadline"
|
||||
msgstr "Frist"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,trg_partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr "Partner"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(object_subject)s = Object subject"
|
||||
msgstr "%(object_subject)s = Object subject"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Email Reminders"
|
||||
msgstr "E-post påminnelser"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Special Keywords to be Used in the Body"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,trg_state_from:0
|
||||
msgid "State"
|
||||
msgstr "Stat"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: model:ir.actions.act_window,help:base_action_rule.base_action_rule_act
|
||||
msgid ""
|
||||
"Use automated actions to automatically trigger actions for various screens. "
|
||||
"Example: a lead created by a specific user may be automatically set to a "
|
||||
"specific sales team, or an opportunity which still has status pending after "
|
||||
"14 days might trigger an automatic reminder email."
|
||||
msgstr ""
|
||||
"Bruke automatiserte tiltak for å automatisk utløse tiltak for ulike "
|
||||
"skjermer. Eksempel: en leder er opprettet av en bestemt bruker kan bli satt "
|
||||
"automatisk til en bestemt salgsteam, eller en mulighet som fortsatt har "
|
||||
"status påvente etter 14 dager kan utløse en automatisk påminnelse e-post."
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_mail_to_email:0
|
||||
msgid "Email-id of the persons whom mail is to be sent"
|
||||
msgstr "E-post ID av personer som post skal sendes"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Action Rule"
|
||||
msgstr "Handling regel"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Fields to Change"
|
||||
msgstr "Felter å endre"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_type:0
|
||||
msgid "Creation Date"
|
||||
msgstr "Opprettelsesdato"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_type:0
|
||||
msgid "Last Action Date"
|
||||
msgstr "Siste handlingsdato"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_range_type:0
|
||||
msgid "Hours"
|
||||
msgstr "Timer"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(object_id)s = Object ID"
|
||||
msgstr "%(object_ID)s = Object ID"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Delay After Trigger Date"
|
||||
msgstr "Forsinkelse Etter utløser Dato"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_remind_attach:0
|
||||
msgid "Remind with Attachment"
|
||||
msgstr "Minn med vedlegg"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: constraint:ir.cron:0
|
||||
msgid "Invalid arguments"
|
||||
msgstr "Ugyldige argumenter"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_user_id:0
|
||||
msgid "Set Responsible to"
|
||||
msgstr "Satt Ansvarlig for å"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_type:0
|
||||
msgid "None"
|
||||
msgstr "Ingen"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_email_to:0
|
||||
msgid ""
|
||||
"Use a python expression to specify the right field on which one than we will "
|
||||
"use for the 'To' field of the header"
|
||||
msgstr ""
|
||||
"Bruk en python uttrykk for å angi høyre feltet på hvilken enn vi vil bruke "
|
||||
"for Til-feltet på header."
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(object_user_phone)s = Responsible phone"
|
||||
msgstr "% (object_bruker_telefonen) s = Ansvarlig telefon"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid ""
|
||||
"The rule uses the AND operator. The model must match all non-empty fields so "
|
||||
"that the rule executes the action described in the 'Actions' tab."
|
||||
msgstr ""
|
||||
"Regelen bruker AND-operatoren. Modellen må matche alle-ikke tomme felt, slik "
|
||||
"at regelen utfører handlingen som er beskrevet i \"Handlinger\"-fanen."
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,trg_date_range_type:0
|
||||
msgid "Delay type"
|
||||
msgstr "forsinkelse typen"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,regex_name:0
|
||||
msgid ""
|
||||
"Regular expression for matching name of the resource\n"
|
||||
"e.g.: 'urgent.*' will search for records having name starting with the "
|
||||
"string 'urgent'\n"
|
||||
"Note: This is case sensitive search."
|
||||
msgstr ""
|
||||
"Regulært uttrykk for matchende navnet på ressursen\n"
|
||||
"f.eks: \". haster * 'vil søke etter poster som har navn som starter med "
|
||||
"strengen\" haster \"\n"
|
||||
"Merk: Dette er små bokstaver søk."
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_method:0
|
||||
msgid "Call Object Method"
|
||||
msgstr "Kall objektmetode"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_email_to:0
|
||||
msgid "Email To"
|
||||
msgstr "E-post til."
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_mail_to_watchers:0
|
||||
msgid ""
|
||||
"Check this if you want the rule to mark CC(mail to any other person defined "
|
||||
"in actions)."
|
||||
msgstr ""
|
||||
"Sjekk dette hvis du vil at regelen skal merkes CC (mail til en annen person "
|
||||
"som er definert i handlinger)."
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(partner)s = Partner name"
|
||||
msgstr "%(partner)s = Navn på partner"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Note"
|
||||
msgstr "Notat"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_email_from:0
|
||||
msgid ""
|
||||
"Use a python expression to specify the right field on which one than we will "
|
||||
"use for the 'From' field of the header"
|
||||
msgstr ""
|
||||
"Bruk en python uttrykk for å angi høyre feltet på hvilken enn vi vil bruke "
|
||||
"for Fra-feltet på overskriften"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,trg_date_range:0
|
||||
msgid "Delay after trigger date"
|
||||
msgstr "Forsinkelse etter triggerdato"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Conditions"
|
||||
msgstr "Betingelser"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,trg_date_range:0
|
||||
msgid ""
|
||||
"Delay After Trigger Date,specifies you can put a negative number. If you "
|
||||
"need a delay before the trigger date, like sending a reminder 15 minutes "
|
||||
"before a meeting."
|
||||
msgstr ""
|
||||
"Forsinkelse Etter utløser Dato, spesifiserer du kan sette et negativt tall. "
|
||||
"Hvis du trenger en forsinkelse før avtrekkeren dato, som å sende en "
|
||||
"påminnelse 15 minutter før et møte."
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,active:0
|
||||
msgid "Active"
|
||||
msgstr "Aktiv"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: code:addons/base_action_rule/base_action_rule.py:329
|
||||
#, python-format
|
||||
msgid "No Email ID Found for your Company address!"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_remind_user:0
|
||||
msgid "Remind Responsible"
|
||||
msgstr "Minn Ansvarlig"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,sequence:0
|
||||
msgid "Gives the sequence order when displaying a list of rules."
|
||||
msgstr "Gir sekvens ordre når du viser en liste over regler."
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_range_type:0
|
||||
msgid "Months"
|
||||
msgstr "Måneder"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,filter_id:0
|
||||
msgid "Filter"
|
||||
msgstr "Filtrer"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_type:0
|
||||
msgid "Date"
|
||||
msgstr "Dato"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,server_action_id:0
|
||||
msgid ""
|
||||
"Describes the action name.\n"
|
||||
"eg:on which object which action to be taken on basis of which condition"
|
||||
msgstr ""
|
||||
"Beskriver handlingens navn.\n"
|
||||
"f.eks: på hvilket objekt som tiltak som skal iverksettes på grunnlag av "
|
||||
"hvilken tilstand"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: model:ir.model,name:base_action_rule.model_ir_cron
|
||||
msgid "ir.cron"
|
||||
msgstr "ir.actions.actions"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(object_description)s = Object description"
|
||||
msgstr "% (object_beskrivelse) s = Object beskrivelse"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: constraint:base.action.rule:0
|
||||
msgid "Error: The mail is not well formated"
|
||||
msgstr "Feil: E-posten er ikke godt nok formatert"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Email Actions"
|
||||
msgstr "E-post handlinger"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Email Information"
|
||||
msgstr "E-post Informasjon"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: model:ir.model,name:base_action_rule.model_base_action_rule
|
||||
msgid "Action Rules"
|
||||
msgstr "Handlingsregler"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_mail_body:0
|
||||
msgid "Content of mail"
|
||||
msgstr "Innholdet av post"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,trg_user_id:0
|
||||
msgid "Responsible"
|
||||
msgstr "Ansvarlig"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(partner_email)s = Partner Email"
|
||||
msgstr "% (partner_e-post) s = Partner E-post"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(object_date)s = Creation date"
|
||||
msgstr "%(object_dato)s = opprettelsesdato"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(object_user_email)s = Responsible Email"
|
||||
msgstr "% (object_brukerens_e-post) s = Ansvarlig e-post"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_mail_body:0
|
||||
msgid "Mail body"
|
||||
msgstr "Mail kropp"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_remind_user:0
|
||||
msgid ""
|
||||
"Check this if you want the rule to send a reminder by email to the user."
|
||||
msgstr ""
|
||||
"Kryss av her hvis du vil at regelen skal sende en påminnelse til brukeren "
|
||||
"via e-post."
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Server Action to be Triggered"
|
||||
msgstr "Server Tiltak som skal Utløses"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_mail_to_user:0
|
||||
msgid "Mail to Responsible"
|
||||
msgstr "send mail til ansvarlig"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_email_cc:0
|
||||
msgid "Add Watchers (Cc)"
|
||||
msgstr "Legg til overvåkere (Cc)"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Conditions on Model Fields"
|
||||
msgstr "Forholdene på Modell Felter"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: model:ir.actions.act_window,name:base_action_rule.base_action_rule_act
|
||||
#: model:ir.ui.menu,name:base_action_rule.menu_base_action_rule_form
|
||||
msgid "Automated Actions"
|
||||
msgstr "Automatiserte handinger"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,server_action_id:0
|
||||
msgid "Server Action"
|
||||
msgstr "Tjenerhandling"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,regex_name:0
|
||||
msgid "Regex on Resource Name"
|
||||
msgstr "Regex på Ressursnavn"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_remind_attach:0
|
||||
msgid ""
|
||||
"Check this if you want that all documents attached to the object be attached "
|
||||
"to the reminder email sent."
|
||||
msgstr ""
|
||||
"Kryss av her om du vil at alle dokumenter knyttet til objektet festes til "
|
||||
"påminnelse e-post sendt."
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Conditions on Timing"
|
||||
msgstr "Vilkår for timing"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr "Sekvens"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Actions"
|
||||
msgstr "Handlinger"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,active:0
|
||||
msgid ""
|
||||
"If the active field is set to False, it will allow you to hide the rule "
|
||||
"without removing it."
|
||||
msgstr ""
|
||||
"Hvis det aktive feltet er satt til False, vil det tillate deg å skjule "
|
||||
"regelen uten å fjerne den."
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(object_user)s = Responsible name"
|
||||
msgstr "% (object_bruker) s = Ansvarlig navn"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,create_date:0
|
||||
msgid "Create Date"
|
||||
msgstr "Opprettet dato"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Conditions on States"
|
||||
msgstr "Vilkår for tilstander"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,trg_date_type:0
|
||||
msgid "Trigger Date"
|
||||
msgstr "Uttløser dato"
|
||||
|
||||
#~ msgid "Special Keywords to Be Used in The Body"
|
||||
#~ msgstr "Spesielle nøkkelord for bruk i meldingsinnhold"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "No E-Mail ID Found for your Company address!"
|
||||
#~ msgstr "Ingen E-post ID funnet for din firmaadresse!"
|
||||
@@ -38,7 +38,7 @@ class crm_configuration(osv.osv_memory):
|
||||
'module_import_google': fields.boolean("Google (Contacts and Calendar)",
|
||||
help="""Import google contact in partner address and add google calendar events details in Meeting.
|
||||
This installs the module import_google."""),
|
||||
'module_google_map': fields.boolean("add google maps on customer",
|
||||
'module_google_map': fields.boolean("add google maps on customers",
|
||||
help="""Locate customers on Google Map.
|
||||
This installs the module google_map."""),
|
||||
'group_fund_raising': fields.boolean("Manage Fund Raising",
|
||||
|
||||
@@ -23,23 +23,5 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- partner To Opportunity Action -->
|
||||
|
||||
<record model="ir.actions.act_window" id="action_view_crm_partner2opportunity">
|
||||
<field name="name">Create Opportunity</field>
|
||||
<field name="res_model">crm.partner2opportunity</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form,tree,kanban,calendar</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<!-- partner To Opportunity wizard -->
|
||||
|
||||
<act_window id="crm_partner2opportunity"
|
||||
key2="client_action_multi" name="Create Opportunity"
|
||||
res_model="crm.partner2opportunity" src_model="res.partner"
|
||||
view_id="view_crm_partner2opportunity"
|
||||
view_mode="form" target="new" view_type="form"
|
||||
groups="base.group_sale_salesman"/>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -12,4 +12,3 @@
|
||||
self.message_update(cr, uid,[ref('crm_claim_4')], {'subject': 'Claim Update record','body': 'first training session completed',})
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
attrs="{'invisible':[('partner_assigned_id','=',False)]}"
|
||||
name="%(crm_lead_forward_to_partner_act)d"
|
||||
icon="terp-mail-forward" type="action"
|
||||
context="{'mail.compose.message.mode': 'forward', 'default_partner_ids': [partner_assigned_id]}"/>
|
||||
context="{'default_composition_mode': 'forward', 'default_partner_ids': [partner_assigned_id]}"/>
|
||||
</div>
|
||||
</group>
|
||||
<group string="Geo Assignation">
|
||||
|
||||
@@ -36,12 +36,12 @@ class crm_lead_forward_to_partner(osv.osv_memory):
|
||||
if context is None:
|
||||
context = {}
|
||||
# set as comment, perform overrided document-like action that calls get_record_data
|
||||
old_mode = context.get('mail.compose.message.mode', 'forward')
|
||||
context['mail.compose.message.mode'] = 'comment'
|
||||
old_mode = context.get('default_composition_mode', 'forward')
|
||||
context['default_composition_mode'] = 'comment'
|
||||
res = super(crm_lead_forward_to_partner, self).default_get(cr, uid, fields, context=context)
|
||||
# back to forward mode
|
||||
context['mail.compose.message.mode'] = old_mode
|
||||
res['composition_mode'] = context['mail.compose.message.mode']
|
||||
context['default_composition_mode'] = old_mode
|
||||
res['composition_mode'] = context['default_composition_mode']
|
||||
return res
|
||||
|
||||
def _get_composition_mode_selection(self, cr, uid, context=None):
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
key2="client_action_multi" name="Mass forward to partner"
|
||||
res_model="crm.lead.forward.to.partner" src_model="crm.lead"
|
||||
view_mode="form" target="new" view_type="form"
|
||||
context="{'mail.compose.message.mode' : 'mass_mail'}"
|
||||
context="{'default_composition_mode' : 'mass_mail'}"
|
||||
view_id="crm_lead_forward_to_partner_form"
|
||||
/>
|
||||
|
||||
|
||||
@@ -171,7 +171,7 @@ class email_template(osv.osv):
|
||||
'res_model': 'mail.compose.message',
|
||||
'src_model': src_obj,
|
||||
'view_type': 'form',
|
||||
'context': "{'mail.compose.message.mode':'mass_mail', 'mail.compose.template_id' : %d}" % (template.id),
|
||||
'context': "{'default_composition_mode': 'mass_mail', 'default_template_id' : %d}" % (template.id),
|
||||
'view_mode':'form,tree',
|
||||
'view_id': res_id,
|
||||
'target': 'new',
|
||||
|
||||
@@ -71,23 +71,50 @@ class test_message_compose(common.TransactionCase):
|
||||
_subject1 = 'Pigs'
|
||||
_subject2 = 'Bird'
|
||||
_body_text1 = 'Pigs rules'
|
||||
_body_text_html1 = 'Pigs rules<pre>Admin</pre>'
|
||||
_body_text_html1 = 'Fans of Pigs, unite !\n<pre>Admin</pre>\n'
|
||||
_body_text2 = 'I am angry !'
|
||||
_body_text_html2 = 'I am angry !<pre>Admin</pre>'
|
||||
|
||||
# CASE1: create in mass_mail composition mode that should work with email_template installed
|
||||
# CASE1: create in comment
|
||||
compose_id = mail_compose.create(cr, uid,
|
||||
{'subject': 'Forget me subject', 'body': 'Dummy body'},
|
||||
{'default_composition_mode': 'comment', 'default_model': 'mail.group',
|
||||
'default_res_id': self.group_pigs_id, 'default_use_template': True,
|
||||
'active_ids': [self.group_pigs_id, group_bird_id] })
|
||||
compose = mail_compose.browse(cr, uid, compose_id)
|
||||
|
||||
# Perform 'onchange_template_id' with 'use_template' set
|
||||
values = mail_compose.onchange_template_id(cr, uid, [], compose.use_template, email_template_id, compose.composition_mode, compose.model, compose.res_id)
|
||||
compose.write(values.get('value', {}), {'default_composition_mode': 'comment', 'default_model': 'mail.group'})
|
||||
compose.refresh()
|
||||
message_pids = [partner.id for partner in compose.partner_ids]
|
||||
partner_ids = self.res_partner.search(cr, uid, [('email', 'in', ['b@b.b', 'c@c.c', 'd@d.d'])])
|
||||
partners = self.res_partner.browse(cr, uid, partner_ids)
|
||||
# Test: subject, body, partner_ids
|
||||
self.assertEqual(compose.subject, _subject1, 'mail.compose.message subject incorrect')
|
||||
self.assertEqual(compose.body, _body_text_html1, 'mail.compose.message body incorrect')
|
||||
self.assertEqual(set(message_pids), set(partner_ids), 'mail.compose.message partner_ids incorrect')
|
||||
|
||||
# Perform 'onchange_use_template': use_template is not set anymore
|
||||
values = mail_compose.onchange_use_template(cr, uid, [], not compose.use_template, compose.template_id, compose.composition_mode, compose.model, compose.res_id)
|
||||
compose.write(values.get('value', {}), {'default_composition_mode': 'comment', 'default_model': 'mail.group'})
|
||||
compose.refresh()
|
||||
# Test: subject, body, partner_ids
|
||||
self.assertEqual(compose.subject, False, 'mail.compose.message subject incorrect')
|
||||
self.assertEqual(compose.body, '', 'mail.compose.message body incorrect')
|
||||
|
||||
# CASE12 create in mass_mail composition
|
||||
compose_id = mail_compose.create(cr, uid,
|
||||
{'subject': 'Forget me subject', 'body': 'Dummy body'},
|
||||
{'default_composition_mode': 'mass_mail', 'default_model': 'mail.group',
|
||||
'default_res_id': -1, 'default_use_template': True,
|
||||
'active_ids': [self.group_pigs_id, group_bird_id], 'default_template_id': email_template_id})
|
||||
'active_ids': [self.group_pigs_id, group_bird_id] })
|
||||
compose = mail_compose.browse(cr, uid, compose_id)
|
||||
# print compose.subject
|
||||
|
||||
|
||||
# Try the 'onchange_template_id'
|
||||
values = mail_compose.onchange_template_id(cr, uid, [], compose.use_template, compose.template_id, compose.composition_mode, compose.model, compose.res_id)
|
||||
# Test 'onchange_template_id' with 'use_template' set
|
||||
values = mail_compose.onchange_template_id(cr, uid, [], compose.use_template, email_template_id, compose.composition_mode, compose.model, compose.res_id)
|
||||
print values
|
||||
# self.assertEqual()
|
||||
# compose.write(values['value'])
|
||||
values = mail_compose.onchange_use_template(cr, uid, [], not compose.use_template, compose.template_id, compose.composition_mode, compose.model, compose.res_id)
|
||||
print values
|
||||
|
||||
@@ -28,15 +28,17 @@ from tools.translate import _
|
||||
|
||||
class mail_compose_message(osv.osv_memory):
|
||||
_inherit = 'mail.compose.message'
|
||||
_compose_fields = ['body', 'body_html', 'subject', 'partner_ids', 'attachment_ids']
|
||||
|
||||
def _get_templates(self, cr, uid, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
model = False
|
||||
email_template_obj= self.pool.get('email.template')
|
||||
message_id = context.get('default_parent_id', context.get('message_id', context.get('active_id')))
|
||||
|
||||
if context.get('default_composition_mode') == 'reply' and context.get('active_id'):
|
||||
message_data = self.pool.get('mail.message').browse(cr, uid, int(context.get('active_id')), context)
|
||||
if context.get('default_composition_mode') == 'reply' and message_id:
|
||||
message_data = self.pool.get('mail.message').browse(cr, uid, message_id, context=context)
|
||||
if message_data:
|
||||
model = message_data.model
|
||||
else:
|
||||
@@ -62,32 +64,17 @@ class mail_compose_message(osv.osv_memory):
|
||||
|
||||
def onchange_template_id(self, cr, uid, ids, use_template, template_id, composition_mode, model, res_id, context=None):
|
||||
""" - use_template not set: return default_get
|
||||
- use_template set:
|
||||
- mass_mailing: we cannot render, so return the template values
|
||||
- else: return rendered values """
|
||||
fields = ['body', 'body_html', 'subject', 'partner_ids', 'email_to', 'email_cc']
|
||||
- use_template set in mass_mailing: we cannot render, so return the template values
|
||||
- use_template set: return rendered values """
|
||||
if use_template and template_id and composition_mode == 'mass_mail':
|
||||
values = self.pool.get('email.template').read(cr, uid, template_id, fields, context)
|
||||
values = self.pool.get('email.template').read(cr, uid, template_id, self._compose_fields, context)
|
||||
elif use_template and template_id:
|
||||
values = self.pool.get('email.template').generate_email(cr, uid, template_id, res_id, context=context)
|
||||
|
||||
values['attachment_ids'] = []
|
||||
attachment_obj = self.pool.get('ir.attachment')
|
||||
for attach_fname, attach_datas in values.get('attachments', []):
|
||||
data_attach = {
|
||||
'name': attach_fname,
|
||||
'datas': attach_datas,
|
||||
'datas_fname': attach_fname,
|
||||
'description': fname,
|
||||
'res_model': model,
|
||||
'res_id': res_id,
|
||||
}
|
||||
values['attachment_ids'].append(attachment_obj.create(cr, uid, data_attach), context=context)
|
||||
values = self.generate_email_for_composer(cr, uid, template_id, res_id, context=context)
|
||||
else:
|
||||
values = self.default_get(cr, uid, fields, context=context)
|
||||
values = self.default_get(cr, uid, self._compose_fields, context=context)
|
||||
|
||||
if values.get('body_html') and not values.get('body'):
|
||||
values['body'] = values.get('body_html')
|
||||
if values.get('body_html'):
|
||||
values['body'] = values.pop('body_html')
|
||||
values.update(use_template=use_template, template_id=template_id)
|
||||
|
||||
return {'value': values}
|
||||
@@ -98,14 +85,17 @@ class mail_compose_message(osv.osv_memory):
|
||||
for record in self.browse(cr, uid, ids, context=context):
|
||||
onchange_res = self.onchange_use_template(cr, uid, ids, not record.use_template,
|
||||
record.template_id, record.composition_mode, record.model, record.res_id, context=context)['value']
|
||||
record.write(onchange_res)
|
||||
record.write(onchange_res.get('value', {}))
|
||||
return True
|
||||
|
||||
def onchange_use_template(self, cr, uid, ids, use_template, template_id, composition_mode, model, res_id, context=None):
|
||||
""" onchange_use_template (values: True or False). If use_template is
|
||||
False, we do like an onchange with template_id False for values """
|
||||
return self.onchange_template_id(cr, uid, ids, use_template,
|
||||
values = self.onchange_template_id(cr, uid, ids, use_template,
|
||||
template_id, composition_mode, model, res_id, context=context)
|
||||
if use_template:
|
||||
values['content_subtype'] = 'html'
|
||||
return values
|
||||
|
||||
def save_as_template(self, cr, uid, ids, context=None):
|
||||
""" hit save as template button: current form value will be a new
|
||||
@@ -113,8 +103,7 @@ class mail_compose_message(osv.osv_memory):
|
||||
email_template = self.pool.get('email.template')
|
||||
ir_model_pool = self.pool.get('ir.model')
|
||||
for record in self.browse(cr, uid, ids, context=context):
|
||||
model = record.model
|
||||
model_ids = ir_model_pool.search(cr, uid, [('model', '=', model)])
|
||||
model_ids = ir_model_pool.search(cr, uid, [('model', '=', record.model)], context=context)
|
||||
model_id = model_ids and model_ids[0] or False
|
||||
model_name = ''
|
||||
if model_id:
|
||||
@@ -135,14 +124,49 @@ class mail_compose_message(osv.osv_memory):
|
||||
# Wizard validation and send
|
||||
#------------------------------------------------------
|
||||
|
||||
def generate_email_for_composer(self, cr, uid, template_id, res_id, context=None):
|
||||
""" Call email_template.generate_email(), get fields relevant for
|
||||
mail.compose.message, transform email_cc and email_to into partner_ids """
|
||||
fields = ['body', 'body_html', 'subject', 'email_to', 'email_cc', 'attachment_ids']
|
||||
template_values = self.pool.get('email.template').generate_email(cr, uid, template_id, res_id, context=context)
|
||||
values = {field: template_values[field] for field in fields if template_values.get(field)}
|
||||
|
||||
# transform email_to, email_cc into partner_ids
|
||||
values['partner_ids'] = []
|
||||
mails = tools.email_split(values.pop('email_to', '') + ' ' + values.pop('email_cc', ''))
|
||||
for mail in mails:
|
||||
partner_search_ids = self.pool.get('res.partner').search(cr, uid, [('email', 'ilike', mail)], context=context)
|
||||
if partner_search_ids:
|
||||
values['partner_ids'].append((4, partner_search_ids[0]))
|
||||
else:
|
||||
partner_id = self.pool.get('res.partner').name_create(cr, uid, mail, context=context)[0]
|
||||
partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context)
|
||||
values['partner_ids'].append((4, partner_id))
|
||||
|
||||
# transform attachments into attachment_ids
|
||||
values['attachment_ids'] = []
|
||||
for attach_fname, attach_datas in template_values.get('attachments', []):
|
||||
data_attach = {
|
||||
'name': attach_fname,
|
||||
'datas': attach_datas,
|
||||
'datas_fname': attach_fname,
|
||||
'res_model': model,
|
||||
'res_id': res_id,
|
||||
}
|
||||
values['attachment_ids'].append((0, 0, data_attach))
|
||||
|
||||
return values
|
||||
|
||||
def render_message(self, cr, uid, wizard, model, res_id, context=None):
|
||||
""" Generate an email from the template for given (model, res_id) pair.
|
||||
This method is meant to be inherited by email_template that will
|
||||
produce a more complete dictionary, with email_to, ...
|
||||
"""
|
||||
# render the template to get the email
|
||||
fields = ['body', 'body_html', 'subject', 'email_to', 'email_cc', 'partner_ids', 'attachment_ids']
|
||||
template_values = self.pool.get('email.template').generate_email(cr, uid, wizard.template_id, res_id, context=context)
|
||||
# TDE TODO: handle fields to update / not to update (mail_server_id, auto_delete, ...)
|
||||
template_values = {field: template_values[field] for field in fields if template_values.get(field)}
|
||||
|
||||
# transform email_to, email_cc into partner_ids
|
||||
partner_ids = []
|
||||
mails = tools.email_split(template_values.pop('email_to', '') + ' ' + template_values.pop('email_cc', ''))
|
||||
@@ -154,10 +178,10 @@ class mail_compose_message(osv.osv_memory):
|
||||
partner_id = self.pool.get('res.partner').name_create(cr, uid, mail, context=context)[0]
|
||||
partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context)
|
||||
partner_ids.append((4, partner_id))
|
||||
|
||||
# get values to return
|
||||
email_dict = super(mail_compose_message, self).render_message(cr, uid, wizard, model, res_id, context)
|
||||
email_dict.update(template_values)
|
||||
email_dict.update(partner_ids=partner_ids, attachments=template_values.get('attachments'))
|
||||
email_dict.update(template_values, partner_ids=partner_ids)
|
||||
return email_dict
|
||||
|
||||
def render_template(self, cr, uid, template, model, res_id, context=None):
|
||||
|
||||
@@ -8,8 +8,9 @@
|
||||
<field name="arch" type="xml">
|
||||
<field name="purchase_ok" position="after">
|
||||
<field name="event_ok" on_change="onchange_event_ok(event_ok, context)"/>
|
||||
<label for="event_ok"/>
|
||||
</field>
|
||||
<field name='procure_method' position='before'>
|
||||
<field name='default_code' position='before'>
|
||||
<field name="event_type_id" attrs="{'readonly': [('event_ok', '=', False)]}"/>
|
||||
</field>
|
||||
</field>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Employee" version="7.0">
|
||||
<sheet>
|
||||
<field name="image_small" widget='image' class="oe_right oe_image_small"/>
|
||||
<field name="image_medium" widget='image' class="oe_right oe_avatar"/>
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only"/>
|
||||
<h1>
|
||||
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||
"PO-Revision-Date: 2012-08-26 14:02+0000\n"
|
||||
"PO-Revision-Date: 2012-09-03 17:10+0000\n"
|
||||
"Last-Translator: Erwin <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:24+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-04 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 15890)\n"
|
||||
|
||||
#. module: hr
|
||||
#: model:process.node,name:hr.process_node_openerpuser0
|
||||
@@ -195,7 +195,7 @@ msgstr "Vrouw"
|
||||
#: help:hr.job,expected_employees:0
|
||||
msgid ""
|
||||
"Expected number of employees for this job position after new recruitment."
|
||||
msgstr ""
|
||||
msgstr "Verwachte aantal werknemers voor deze functie na de nieuwe werving."
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_new_config
|
||||
@@ -710,12 +710,12 @@ msgstr "Ondergeschikten"
|
||||
#. module: hr
|
||||
#: field:hr.job,no_of_employee:0
|
||||
msgid "Number of employees currently occupying this job position."
|
||||
msgstr ""
|
||||
msgstr "Huidige aantal werknemers welke deze functie bekleden ."
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.job,no_of_recruitment:0
|
||||
msgid "Number of new employees you expect to recruit."
|
||||
msgstr ""
|
||||
msgstr "Verwachte aantal te werven nieuwe werknemers."
|
||||
|
||||
#~ msgid "Sunday"
|
||||
#~ msgstr "Zondag"
|
||||
|
||||
@@ -32,15 +32,15 @@ class hr_config_settings(osv.osv_memory):
|
||||
help ="""This installs the module hr_attendance."""),
|
||||
'module_hr_timesheet': fields.boolean('manage timesheets',
|
||||
help ="""This installs the module hr_timesheet."""),
|
||||
'module_hr_holidays': fields.boolean('manage leaves and allocation requests',
|
||||
'module_hr_holidays': fields.boolean('manage holidays, leaves and allocation requests',
|
||||
help ="""This installs the module hr_holidays."""),
|
||||
'module_hr_expense': fields.boolean('manage employees expenses',
|
||||
help ="""This installs the module hr_expense."""),
|
||||
'module_hr_recruitment': fields.boolean('manage the recruitment pipe',
|
||||
'module_hr_recruitment': fields.boolean('manage the recruitment process',
|
||||
help ="""This installs the module hr_recruitment."""),
|
||||
'module_hr_contract': fields.boolean('manage contract per employee',
|
||||
'module_hr_contract': fields.boolean('record contracts per employee',
|
||||
help ="""This installs the module hr_contract."""),
|
||||
'module_hr_evaluation': fields.boolean('manage employees periodic evaluation',
|
||||
'module_hr_evaluation': fields.boolean('organize employees periodic evaluation',
|
||||
help ="""This installs the module hr_evaluation."""),
|
||||
'module_hr_payroll': fields.boolean('manage payroll',
|
||||
help ="""This installs the module hr_payroll."""),
|
||||
|
||||
@@ -33,6 +33,19 @@
|
||||
<button string="Cancel" type="object" name="cancel" class="oe_link"/>
|
||||
</header>
|
||||
<separator string="Human Resources Management"/>
|
||||
<group name="recruitment_grp">
|
||||
<label for="id" string="Talent Management"/>
|
||||
<div name="recruitment">
|
||||
<div>
|
||||
<field name="module_hr_recruitment" class="oe_inline"/>
|
||||
<label for="module_hr_recruitment"/>
|
||||
</div>
|
||||
<div>
|
||||
<field name="module_hr_evaluation" class="oe_inline"/>
|
||||
<label for="module_hr_evaluation"/>
|
||||
</div>
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<label for="id" string="Additional Features"/>
|
||||
<div>
|
||||
@@ -44,21 +57,6 @@
|
||||
<field name="module_hr_expense" class="oe_inline"/>
|
||||
<label for="module_hr_expense"/>
|
||||
</div>
|
||||
<div>
|
||||
<field name="module_hr_evaluation" class="oe_inline"/>
|
||||
<label for="module_hr_evaluation"/>
|
||||
</div>
|
||||
<div>
|
||||
<field name="module_hr_contract" class="oe_inline"/>
|
||||
<label for="module_hr_contract"/>
|
||||
</div>
|
||||
<div name="hr_payroll">
|
||||
<field name="module_hr_payroll" class="oe_inline"/>
|
||||
<label for="module_hr_payroll"/>
|
||||
<button name="%(open_payroll_modules)d" type="action"
|
||||
string="Install your country's payroll" icon="gtk-go-forward"
|
||||
attrs="{'invisible': [('module_hr_payroll','=',False)]}" class="oe_link"/>
|
||||
</div>
|
||||
</div>
|
||||
</group>
|
||||
<group name="timesheet_grp">
|
||||
@@ -78,12 +76,19 @@
|
||||
</div>
|
||||
</div>
|
||||
</group>
|
||||
<group name="recruitment_grp">
|
||||
<label for="id" string="Recruitment"/>
|
||||
<div name="recruitment">
|
||||
<group name="contract_grp">
|
||||
<label for="id" string="Contracts"/>
|
||||
<div>
|
||||
<div>
|
||||
<field name="module_hr_recruitment" class="oe_inline"/>
|
||||
<label for="module_hr_recruitment"/>
|
||||
<field name="module_hr_contract" class="oe_inline"/>
|
||||
<label for="module_hr_contract"/>
|
||||
</div>
|
||||
<div name="hr_payroll">
|
||||
<field name="module_hr_payroll" class="oe_inline"/>
|
||||
<label for="module_hr_payroll"/>
|
||||
<button name="%(open_payroll_modules)d" type="action"
|
||||
string="Install your country's payroll" icon="gtk-go-forward"
|
||||
attrs="{'invisible': [('module_hr_payroll','=',False)]}" class="oe_link"/>
|
||||
</div>
|
||||
</div>
|
||||
</group>
|
||||
|
||||
@@ -126,9 +126,9 @@
|
||||
<field name="active" position="before">
|
||||
<label for="state"/>
|
||||
<div>
|
||||
<field name="state" class="oe_inline"/>
|
||||
<button class="oe_inline oe_right" name="attendance_action_change" states="present" string="Sign Out" type="object" icon="gtk-go-forward" context="{'type':'sign_out'}" groups="base.group_hr_user"/>
|
||||
<button class="oe_inline oe_right" name="attendance_action_change" states="absent" string="Sign In" type="object" icon="gtk-go-back" context="{'type':'sign_in'}" groups="base.group_hr_user"/>
|
||||
<field name="state" class="oe_inline"/> -
|
||||
<button class="oe_link" name="attendance_action_change" states="present" string="Sign Out" type="object" context="{'type':'sign_out'}" groups="base.group_hr_user"/>
|
||||
<button class="oe_link" name="attendance_action_change" states="absent" string="Sign In" type="object" context="{'type':'sign_in'}" groups="base.group_hr_user"/>
|
||||
</div>
|
||||
</field>
|
||||
</field>
|
||||
|
||||
@@ -388,22 +388,23 @@
|
||||
action="action_hr_evaluation_interview_tree"/>
|
||||
|
||||
<!-- Email Compose message Action-->
|
||||
<!-- TDE TODO: add context values -->
|
||||
<act_window
|
||||
id="evaluation_reminders" name="Appraisal Reminders"
|
||||
res_model="mail.compose.message"
|
||||
src_model="hr.evaluation.interview"
|
||||
view_type="form" view_mode="form"
|
||||
target="new" multi="True"
|
||||
key2="client_action_multi"
|
||||
context="{'mail.compose.message.mode':'mass_mail'}"/>
|
||||
id="evaluation_reminders" name="Appraisal Reminders"
|
||||
res_model="mail.compose.message"
|
||||
src_model="hr.evaluation.interview"
|
||||
view_type="form" view_mode="form"
|
||||
target="new" multi="True"
|
||||
key2="client_action_multi"
|
||||
context="{'default_composition_mode': 'mass_mail'}"/>
|
||||
|
||||
<!-- Appraisal Interviews Button on Employee Form -->
|
||||
<act_window
|
||||
context="{'search_default_user_to_review_id': [active_id], 'default_user_to_review_id': active_id}"
|
||||
id="act_hr_employee_2_hr__evaluation_interview"
|
||||
name="Appraisal Interviews"
|
||||
res_model="hr.evaluation.interview"
|
||||
src_model="hr.employee"/>
|
||||
context="{'search_default_user_to_review_id': [active_id], 'default_user_to_review_id': active_id}"
|
||||
id="act_hr_employee_2_hr__evaluation_interview"
|
||||
name="Appraisal Interviews"
|
||||
res_model="hr.evaluation.interview"
|
||||
src_model="hr.employee"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||
"PO-Revision-Date: 2012-02-19 13:05+0000\n"
|
||||
"PO-Revision-Date: 2012-09-03 17:12+0000\n"
|
||||
"Last-Translator: Erwin <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:23+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-04 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 15890)\n"
|
||||
|
||||
#. module: hr_holidays
|
||||
#: selection:hr.holidays.status,color_name:0
|
||||
@@ -416,6 +416,8 @@ msgid ""
|
||||
"When selected, the Allocation/Leave Requests for this type require a second "
|
||||
"validation to be approved."
|
||||
msgstr ""
|
||||
"Wanneer aangevinkt heeft deze toewijzing of aanvraag een tweede controle "
|
||||
"nodig om te worden goedgekeurd."
|
||||
|
||||
#. module: hr_holidays
|
||||
#: selection:hr.employee,current_leave_state:0 selection:hr.holidays,state:0
|
||||
@@ -787,6 +789,8 @@ msgid ""
|
||||
"If you select this checkbox, the system allows the employees to take more "
|
||||
"leaves than the available ones for this type."
|
||||
msgstr ""
|
||||
"Indien u deze optie aanvinkt, dan staat u toe dat werknemers meer verlof "
|
||||
"aanvragen dan dat ze nog beschikbaar hebben."
|
||||
|
||||
#. module: hr_holidays
|
||||
#: help:hr.holidays.status,leaves_taken:0
|
||||
|
||||
@@ -10,10 +10,6 @@
|
||||
date_to: !eval time.strftime('%Y-%m-11 19:00:00')
|
||||
employee_id: hr.employee_fp
|
||||
type: remove
|
||||
-
|
||||
I confirmed the holiday request by clicking on "Confirm" button.
|
||||
-
|
||||
!workflow {model: hr.holidays, action: confirm, ref: hr_holidays_employee1_cl}
|
||||
-
|
||||
I find a small mistake on my leave request to I click on "Refuse" button to correct a mistake.
|
||||
-
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||
"PO-Revision-Date: 2012-01-22 19:09+0000\n"
|
||||
"PO-Revision-Date: 2012-09-03 17:17+0000\n"
|
||||
"Last-Translator: Erwin <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:33+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-04 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 15890)\n"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: field:hr.payslip.line,condition_select:0
|
||||
@@ -357,7 +357,7 @@ msgstr "Half-jaarlijks"
|
||||
#. module: hr_payroll
|
||||
#: view:hr.salary.rule:0
|
||||
msgid "Children Definition"
|
||||
msgstr ""
|
||||
msgstr "Definitie onderliggende"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: report:paylip.details:0 report:payslip:0
|
||||
@@ -465,7 +465,7 @@ msgstr ""
|
||||
#. module: hr_payroll
|
||||
#: view:hr.payslip:0
|
||||
msgid "Worked Days & Inputs"
|
||||
msgstr ""
|
||||
msgstr "Gewerkte dagen & ingaves"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: field:hr.payslip,details_by_salary_rule_category:0
|
||||
@@ -522,7 +522,7 @@ msgstr "Bereik"
|
||||
#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payroll_structure_tree
|
||||
#: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_structure_tree
|
||||
msgid "Salary Structures Hierarchy"
|
||||
msgstr ""
|
||||
msgstr "Salaris structuur hiërarchie"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: view:hr.payslip:0
|
||||
@@ -769,7 +769,7 @@ msgstr "Contributie"
|
||||
#: code:addons/hr_payroll/hr_payroll.py:347
|
||||
#, python-format
|
||||
msgid "Refund Payslip"
|
||||
msgstr ""
|
||||
msgstr "Credit salarisstrook"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: field:hr.rule.input,input_id:0
|
||||
@@ -852,7 +852,7 @@ msgstr "Salaris Structuur"
|
||||
#. module: hr_payroll
|
||||
#: field:hr.contribution.register,register_line_ids:0
|
||||
msgid "Register Line"
|
||||
msgstr ""
|
||||
msgstr "Register regel"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: view:hr.payslip:0 view:hr.payslip.employees:0
|
||||
@@ -1083,7 +1083,7 @@ msgstr "Totaal"
|
||||
#: help:hr.payslip.line,appears_on_payslip:0
|
||||
#: help:hr.salary.rule,appears_on_payslip:0
|
||||
msgid "Used for the display of rule on payslip"
|
||||
msgstr ""
|
||||
msgstr "Wordt gebruikt om de regel van de salaristrook weer te geven"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: view:hr.payslip.line:0
|
||||
@@ -1093,7 +1093,7 @@ msgstr "Zoek loonafschrift regels"
|
||||
#. module: hr_payroll
|
||||
#: view:hr.payslip:0
|
||||
msgid "Details By Salary Rule Category"
|
||||
msgstr ""
|
||||
msgstr "details per salarisregel categorie"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: help:hr.payslip.input,code:0 help:hr.payslip.worked_days,code:0
|
||||
|
||||
@@ -77,7 +77,17 @@
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.actions.act_window" id="act_analytic_cost_revenue">
|
||||
<field name="context">{'search_default_account_id': [active_id], 'default_account_id': active_id, 'search_default_group_date': 1, 'search_default_group_journal': 1}</field>
|
||||
<field name="name">Costs & Revenues</field>
|
||||
<field name="res_model">account.analytic.line</field>
|
||||
<field name="src_model">account.analytic.account</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_type">form</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="account_analytic_account_timesheet_form" model="ir.ui.view">
|
||||
<field name="name">account.analytic.account.invoice.form</field>
|
||||
<field name="model">account.analytic.account</field>
|
||||
@@ -87,6 +97,12 @@
|
||||
<field name="use_timesheets"/>
|
||||
<label for="use_timesheets"/>
|
||||
</xpath>
|
||||
<xpath expr='//div[@name="buttons"]' position='inside'>
|
||||
<button string="Costs and Revenues"
|
||||
name="%(act_analytic_cost_revenue)d"
|
||||
type="action"/>
|
||||
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -122,13 +122,13 @@
|
||||
<field name="search_view_id" ref="account_analytic_line_to_invoice_view_filter"/>
|
||||
</record>
|
||||
|
||||
<act_window
|
||||
domain="[('invoice_id','=',False),('to_invoice','<>',False), ('journal_id.type', '=', 'general')]"
|
||||
context="{'search_default_account_id': [active_id], 'default_account_id': active_id,'search_default_to_invoice': 1}"
|
||||
id="act_acc_analytic_acc_2_report_acc_analytic_line_to_invoice"
|
||||
name="Timesheet Lines to Invoice"
|
||||
res_model="account.analytic.line"
|
||||
src_model="account.analytic.account"/>
|
||||
<record id="act_acc_analytic_acc_2_report_acc_analytic_line_to_invoice" model="ir.actions.act_window">
|
||||
<field name="domain">[]</field>
|
||||
<field name="context">{'search_default_account_id': [active_id], 'default_account_id': active_id,'search_default_to_invoice': 1}</field>
|
||||
<field name="name">To Invoice</field>
|
||||
<field name="res_model">account.analytic.line</field>
|
||||
<field name="src_model">account.analytic.account</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-05-24 17:37+0000\n"
|
||||
"Last-Translator: Numérigraphe <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-09-03 22:20+0000\n"
|
||||
"Last-Translator: Nicolas JEUDY <njeudy@simplee.fr>\n"
|
||||
"Language-Team: French <fr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-04 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 15890)\n"
|
||||
|
||||
#. module: import_sugarcrm
|
||||
#: code:addons/import_sugarcrm/import_sugarcrm.py:1105
|
||||
@@ -38,7 +38,7 @@ msgstr "(Prochainement)"
|
||||
#. module: import_sugarcrm
|
||||
#: field:import.sugarcrm,document:0
|
||||
msgid "Documents"
|
||||
msgstr ""
|
||||
msgstr "Documents"
|
||||
|
||||
#. module: import_sugarcrm
|
||||
#: view:import.sugarcrm:0
|
||||
@@ -58,7 +58,7 @@ msgstr ""
|
||||
#. module: import_sugarcrm
|
||||
#: field:import.sugarcrm,contact:0
|
||||
msgid "Contacts"
|
||||
msgstr ""
|
||||
msgstr "Contacts"
|
||||
|
||||
#. module: import_sugarcrm
|
||||
#: view:import.sugarcrm:0
|
||||
@@ -79,7 +79,7 @@ msgstr "Nom de l'instance"
|
||||
#. module: import_sugarcrm
|
||||
#: field:import.sugarcrm,project_task:0
|
||||
msgid "Project Tasks"
|
||||
msgstr ""
|
||||
msgstr "Tâches du projet"
|
||||
|
||||
#. module: import_sugarcrm
|
||||
#: field:import.sugarcrm,email_from:0
|
||||
@@ -134,27 +134,27 @@ msgstr ""
|
||||
#. module: import_sugarcrm
|
||||
#: field:import.sugarcrm,employee:0
|
||||
msgid "Employee"
|
||||
msgstr ""
|
||||
msgstr "Employé"
|
||||
|
||||
#. module: import_sugarcrm
|
||||
#: view:import.sugarcrm:0
|
||||
msgid "Document"
|
||||
msgstr ""
|
||||
msgstr "Document"
|
||||
|
||||
#. module: import_sugarcrm
|
||||
#: help:import.sugarcrm,document:0
|
||||
msgid "Check this box to import sugarCRM Documents into OpenERP documents"
|
||||
msgstr ""
|
||||
msgstr "Cochez cette case pour importer les documents SugarCRM dans OpenERP"
|
||||
|
||||
#. module: import_sugarcrm
|
||||
#: view:import.sugarcrm:0
|
||||
msgid "Import Data From SugarCRM"
|
||||
msgstr ""
|
||||
msgstr "Importee les données de SugarCRM"
|
||||
|
||||
#. module: import_sugarcrm
|
||||
#: view:import.sugarcrm:0
|
||||
msgid "CRM"
|
||||
msgstr ""
|
||||
msgstr "CRM"
|
||||
|
||||
#. module: import_sugarcrm
|
||||
#: view:import.message:0
|
||||
@@ -166,7 +166,7 @@ msgstr ""
|
||||
#. module: import_sugarcrm
|
||||
#: field:import.sugarcrm,call:0
|
||||
msgid "Calls"
|
||||
msgstr ""
|
||||
msgstr "Appels"
|
||||
|
||||
#. module: import_sugarcrm
|
||||
#: view:import.sugarcrm:0
|
||||
@@ -176,7 +176,7 @@ msgstr ""
|
||||
#. module: import_sugarcrm
|
||||
#: view:import.message:0
|
||||
msgid "_Ok"
|
||||
msgstr ""
|
||||
msgstr "_Valider"
|
||||
|
||||
#. module: import_sugarcrm
|
||||
#: help:import.sugarcrm,opportunity:0
|
||||
@@ -184,11 +184,13 @@ msgid ""
|
||||
"Check this box to import sugarCRM Leads and Opportunities into OpenERP Leads "
|
||||
"and Opportunities"
|
||||
msgstr ""
|
||||
"Cochez cette case pour importer les Pistes et les Opportunités SugarCRM dans "
|
||||
"OpenERP."
|
||||
|
||||
#. module: import_sugarcrm
|
||||
#: field:import.sugarcrm,email_history:0
|
||||
msgid "Email and Note"
|
||||
msgstr ""
|
||||
msgstr "Email et note"
|
||||
|
||||
#. module: import_sugarcrm
|
||||
#: help:import.sugarcrm,url:0
|
||||
@@ -208,12 +210,12 @@ msgstr ""
|
||||
#. module: import_sugarcrm
|
||||
#: view:import.sugarcrm:0
|
||||
msgid "_Import"
|
||||
msgstr ""
|
||||
msgstr "_Importer"
|
||||
|
||||
#. module: import_sugarcrm
|
||||
#: field:import.sugarcrm,user:0
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
msgstr "Utilisateur"
|
||||
|
||||
#. module: import_sugarcrm
|
||||
#: code:addons/import_sugarcrm/import_sugarcrm.py:1105
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-09 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-05-10 17:39+0000\n"
|
||||
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-09-03 17:14+0000\n"
|
||||
"Last-Translator: Erwin <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-04 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 15890)\n"
|
||||
|
||||
#. module: mail
|
||||
#: field:mail.compose.message,subtype:0 field:mail.message,subtype:0
|
||||
@@ -196,7 +196,7 @@ msgstr "Ontvangers"
|
||||
#. module: mail
|
||||
#: model:ir.model,name:mail.model_mail_compose_message
|
||||
msgid "Email composition wizard"
|
||||
msgstr ""
|
||||
msgstr "E-mail samenstellen wizard"
|
||||
|
||||
#. module: mail
|
||||
#: field:mail.compose.message,res_id:0 field:mail.message,res_id:0
|
||||
|
||||
@@ -28,12 +28,8 @@ from osv import fields
|
||||
from tools.translate import _
|
||||
|
||||
class mail_group(osv.Model):
|
||||
"""
|
||||
A mail_group is a collection of users sharing messages in a discussion
|
||||
group. Group users are users that follow the mail group, using the
|
||||
subscription/follow mechanism of OpenSocial. A mail group has nothing
|
||||
in common with res.users.group.
|
||||
"""
|
||||
""" A mail_group is a collection of users sharing messages in a discussion
|
||||
group. The group mechanics are based on the followers. """
|
||||
_description = 'Discussion group'
|
||||
_name = 'mail.group'
|
||||
_inherit = ['mail.thread']
|
||||
@@ -131,9 +127,10 @@ class mail_group(osv.Model):
|
||||
search_ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'mail', 'view_message_search')
|
||||
params = {
|
||||
'search_view_id': search_ref and search_ref[1] or False,
|
||||
'domain': [('model','=','mail.group'),('res_id','=',mail_group_id)],
|
||||
'domain': [('model','=','mail.group'), ('res_id','=',mail_group_id)],
|
||||
'context': {'default_model': 'mail.group', 'default_res_id': mail_group_id},
|
||||
'res_model': 'mail.message',
|
||||
'thread_level': 2
|
||||
'thread_level': 1,
|
||||
}
|
||||
cobj = self.pool.get('ir.actions.client')
|
||||
newref = cobj.copy(cr, uid, ref[1], default={'params': str(params), 'name': vals['name']}, context=context)
|
||||
|
||||
@@ -56,11 +56,11 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Group Form" version="7.0">
|
||||
<sheet class="openerp_mail_group_sheet">
|
||||
<field name="image_small" widget='image' class="oe_avatar oe_left"/>
|
||||
<field name="image" widget='image' class="oe_avatar oe_left" options='{"preview_image": "image_medium"}'/>
|
||||
<div class="oe_title">
|
||||
<div class="oe_edit_only">
|
||||
<label for="name" string="Group Name"/>
|
||||
</div>
|
||||
<label for="name" string="Group Name"/>
|
||||
</div>
|
||||
<h1><field name="name"/></h1>
|
||||
<div name="alias_box" colspan="4" attrs="{'invisible': [('alias_domain', '=', False)]}">
|
||||
<field name="alias_id" invisible="1" required="0"/>
|
||||
@@ -116,7 +116,7 @@
|
||||
|
||||
<!-- group record !-->
|
||||
<record id="action_view_groups" model="ir.actions.act_window">
|
||||
<field name="name">Groups</field>
|
||||
<field name="name">Join a group</field>
|
||||
<field name="res_model">mail.group</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
@@ -125,6 +125,6 @@
|
||||
|
||||
<!-- left-side menu: Groups !-->
|
||||
<menuitem id="mail_group_root" parent="mail_feeds_main" sequence="12" name="My Groups"/>
|
||||
<menuitem id="mail_allgroups" parent="mail_feeds" sequence="12" action="action_view_groups"/>
|
||||
<menuitem id="mail_allgroups" parent="mail_group_root" sequence="100" action="action_view_groups"/>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<div>
|
||||
by <field name="author_id" class="oe_inline" string="User"/> on <field name="date" class="oe_inline"/>
|
||||
<button name="%(action_email_compose_message_wizard)d" string="Reply" type="action" icon="terp-mail-replied"
|
||||
context="{'mail.compose.message.mode':'reply', 'message_id':active_id}" states='received,sent,exception,cancel'/>
|
||||
context="{'default_composition_mode':'reply', 'default_parent_id': active_id}" states='received,sent,exception,cancel'/>
|
||||
</div>
|
||||
<notebook colspan="4">
|
||||
<page string="Message Details">
|
||||
|
||||
@@ -90,13 +90,15 @@
|
||||
<record id="action_mail_all_feeds" model="ir.actions.client">
|
||||
<field name="name">News Feed</field>
|
||||
<field name="tag">mail.wall</field>
|
||||
<field name="params" eval=""{'domain': [('notification_ids.partner_id.user_ids', 'in', [uid])] }""/>
|
||||
<field name="params" eval=""{'domain': [('notification_ids.partner_id.user_ids', 'in', [uid])],
|
||||
'context': {'default_model': 'res.users', 'default_res_id': uid} }""/>
|
||||
</record>
|
||||
|
||||
<record id="action_mail_my_feeds" model="ir.actions.client">
|
||||
<field name="name">My Feeds</field>
|
||||
<field name="tag">mail.wall</field>
|
||||
<field name="params" eval=""{'domain': [('author_id.user_ids', 'in', [uid])]}""/>
|
||||
<field name="params" eval=""{'domain': [('author_id.user_ids', 'in', [uid])],
|
||||
'context': {'default_model': 'res.users', 'default_res_id': uid} }""/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<data>
|
||||
|
||||
<!-- Top menu item -->
|
||||
<menuitem name="Feeds"
|
||||
<menuitem name="Home"
|
||||
id="mail_feeds_main"
|
||||
groups="base.group_user"
|
||||
sequence="10"/>
|
||||
@@ -11,8 +11,18 @@
|
||||
<!-- Left-side menu: Feeds -->
|
||||
<menuitem id="mail_feeds" name="Feeds" parent="mail_feeds_main" groups="base.group_user" sequence="10"/>
|
||||
|
||||
<menuitem id="mail_wallfeeds" name="News Feed" parent="mail_feeds" action="action_mail_all_feeds" sequence="10"/>
|
||||
<menuitem id="mail_myfeeds" name="My Feeds" parent="mail_feeds" action="action_mail_my_feeds" sequence="11"/>
|
||||
<record id="mail_wallfeeds" model="ir.ui.menu">
|
||||
<field name="name">My Feeds</field>
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="action" ref="action_mail_all_feeds"/>
|
||||
<field name="parent_id" ref="mail_feeds"/>
|
||||
</record>
|
||||
<record id="mail_myfeeds" model="ir.ui.menu">
|
||||
<field name="name">My Posts</field>
|
||||
<field name="sequence" eval="11"/>
|
||||
<field name="action" ref="action_mail_my_feeds"/>
|
||||
<field name="parent_id" ref="mail_feeds"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -96,6 +96,10 @@ class res_users(osv.Model):
|
||||
alias_pool.unlink(cr, uid, alias_ids, context=context)
|
||||
return res
|
||||
|
||||
def message_post(self, cr, uid, thread_id, **kwargs):
|
||||
partner_id = self.pool.get('res.users').browse(cr, uid, thread_id)[0].partner_id.id
|
||||
return self.pool.get('res.partner').message_post(cr, uid, partner_id, **kwargs)
|
||||
|
||||
class res_users_mail_group(osv.Model):
|
||||
""" Update of res.users class
|
||||
- if adding groups to an user, check mail.groups linked to this user
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.openerp .oe_mail_recthread ul, .openerp .oe_mail_recthread li {
|
||||
.openerp .oe_chatter ul, .openerp .oe_chatter li {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
@@ -78,10 +78,6 @@
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.openerp div.oe_mail_recthread {
|
||||
/*overflow: auto;*/
|
||||
}
|
||||
|
||||
.openerp div.oe_mail_recthread_main {
|
||||
float: left;
|
||||
width: 560px;
|
||||
|
||||
+121
-169
@@ -17,9 +17,15 @@ openerp.mail = function(session) {
|
||||
*/
|
||||
|
||||
session.web.FormView = session.web.FormView.extend({
|
||||
// #FIXME TODO: CHECK WITH NEW BRANCH
|
||||
// TDE FIXME TODO: CHECK WITH NEW BRANCH
|
||||
do_action: function(action, on_close) {
|
||||
if (action.res_model == 'mail.compose.message' && this.fields && this.fields.message_ids && this.fields.message_ids.view.get("actual_mode") != 'create') {
|
||||
if (action.res_model == 'mail.compose.message' &&
|
||||
this.fields && this.fields.message_ids &&
|
||||
this.fields.message_ids.view.get("actual_mode") != 'create') {
|
||||
// debug
|
||||
console.groupCollapsed('FormView do_action on mail.compose.message');
|
||||
console.log('message_ids field:', this.fields.message_ids);
|
||||
console.groupEnd();
|
||||
var record_thread = this.fields.message_ids;
|
||||
var thread = record_thread.thread;
|
||||
thread.instantiate_composition_form('comment', true, false, 0, action.context);
|
||||
@@ -40,14 +46,11 @@ openerp.mail = function(session) {
|
||||
* the various Chatter widgets.
|
||||
*
|
||||
* Some regular expressions not used anymore, kept because I want to
|
||||
* - (^|\s)@((\w|@|\.)*): @login@log.log, supports inner '@' for
|
||||
* logins that are emails
|
||||
* - (^|\s)@((\w|@|\.)*): @login@log.log
|
||||
* 1. '(void)'
|
||||
* 2. login@log.log
|
||||
* - (^|\s)\[(\w+).(\w+),(\d)\|*((\w|[@ .,])*)\]: [ir.attachment,3|My Label],
|
||||
* for internal links to model ir.attachment, id=3, and with
|
||||
* optional label 'My Label'. Note that having a '|Label' is not
|
||||
* mandatory, because the regex should still be correct.
|
||||
* for internal links
|
||||
* 1. '(void)'
|
||||
* 2. 'ir'
|
||||
* 3. 'attachment'
|
||||
@@ -62,7 +65,7 @@ openerp.mail = function(session) {
|
||||
return session_prefix + '/web/binary/image?session_id=' + session_id + '&model=' + model + '&field=' + field + '&id=' + (id || '');
|
||||
},
|
||||
|
||||
/** checks if tue current user is the message author */
|
||||
/** check if the current user is the message author */
|
||||
is_author: function (widget, message_user_id) {
|
||||
return (widget.session && widget.session.uid != 0 && widget.session.uid == message_user_id);
|
||||
},
|
||||
@@ -71,7 +74,6 @@ openerp.mail = function(session) {
|
||||
* - :name - shortcut to an image
|
||||
*/
|
||||
do_replace_expressions: function (string) {
|
||||
var self = this;
|
||||
var icon_list = ['al', 'pinky']
|
||||
/* special shortcut: :name, try to find an icon if in list */
|
||||
var regex_login = new RegExp(/(^|\s):((\w)*)/g);
|
||||
@@ -93,8 +95,7 @@ openerp.mail = function(session) {
|
||||
* ------------------------------------------------------------
|
||||
*
|
||||
* This widget handles the display of a form to compose a new message.
|
||||
* This form is an OpenERP form_view, build on a mail.compose.message
|
||||
* wizard.
|
||||
* This form is a mail.compose.message form_view.
|
||||
*/
|
||||
|
||||
mail.ComposeMessage = session.web.Widget.extend({
|
||||
@@ -102,14 +103,10 @@ openerp.mail = function(session) {
|
||||
|
||||
/**
|
||||
* @param {Object} parent parent
|
||||
* @param {Object} [options]
|
||||
* @param {Object} [options.context] context
|
||||
* @param {String} [context.res_model] res_model of document [REQUIRED]
|
||||
* @param {Number} [context.res_id] res_id of record [REQUIRED]
|
||||
* @param {String} [context.composition_mode] mail.compose.message.mode
|
||||
* (see composition wizard)
|
||||
* @param {Number} [context.msg_id] id of a message in case we are in
|
||||
* reply mode
|
||||
* @param {Object} [options]
|
||||
* @param {Object} [options.context] context passed to the
|
||||
* mail.compose.message DataSetSearch. Please refer to this model
|
||||
* for more details about fields and default values.
|
||||
*/
|
||||
init: function (parent, options) {
|
||||
var self = this;
|
||||
@@ -120,9 +117,9 @@ openerp.mail = function(session) {
|
||||
this.options.form_xml_id = options.form_xml_id || 'email_compose_message_wizard_form_chatter';
|
||||
this.options.form_view_id = options.form_view_id || false;
|
||||
// debug
|
||||
console.groupCollapsed('New ComposeMessage: model', this.options.context.default_res_model, ', id', this.options.context.default_res_id);
|
||||
console.log('context:', this.options.context);
|
||||
console.groupEnd();
|
||||
// console.groupCollapsed('New ComposeMessage: model', this.options.context.default_res_model, ', id', this.options.context.default_res_id);
|
||||
// console.log('context:', this.options.context);
|
||||
// console.groupEnd();
|
||||
},
|
||||
|
||||
start: function () {
|
||||
@@ -132,33 +129,22 @@ openerp.mail = function(session) {
|
||||
this.$el.find('img.oe_mail_icon').attr('src', user_avatar);
|
||||
this.$el.find('div.oe_mail_msg_content').empty();
|
||||
// create a context for the dataset and default_get of the wizard
|
||||
var context = this._update_context({});
|
||||
console.log(context);
|
||||
var context = _.extend({}, this.options.context);
|
||||
this.ds_compose = new session.web.DataSetSearch(this, 'mail.compose.message', context);
|
||||
// find the id of the view to display in the chatter form
|
||||
var data_ds = new session.web.DataSetSearch(this, 'ir.model.data');
|
||||
return data_ds.call('get_object_reference', ['mail', this.options.form_xml_id]).pipe(this.proxy('create_form_view'));
|
||||
},
|
||||
|
||||
/** Update the context of the compose wizard */
|
||||
_update_context: function (dest_context) {
|
||||
// TDE TOCHECK: after posting, back to reply mode !
|
||||
_.extend(dest_context, this.options.context, {
|
||||
'mail.compose.message.mode': this.options.context.composition_mode,
|
||||
});
|
||||
if (this.options.context.composition_mode == 'comment') {
|
||||
// _.extend(dest_context, {'default_res_id': this.options.res_id});
|
||||
if (this.options.form_view_id) {
|
||||
return this.create_form_view();
|
||||
}
|
||||
else if (this.options.context.composition_mode == 'reply') {
|
||||
_.extend(dest_context, {'active_id': this.options.context.msg_id});
|
||||
else {
|
||||
var data_ds = new session.web.DataSetSearch(this, 'ir.model.data');
|
||||
return data_ds.call('get_object_reference', ['mail', this.options.form_xml_id]).pipe(this.proxy('create_form_view'));
|
||||
}
|
||||
return dest_context
|
||||
},
|
||||
|
||||
/** Create a FormView, then append it to the to widget DOM. */
|
||||
create_form_view: function (form_view_id) {
|
||||
this.options.form_view_id = form_view_id[1] || false;
|
||||
create_form_view: function (new_form_view_id) {
|
||||
var self = this;
|
||||
this.options.form_view_id = (new_form_view_id && new_form_view_id[1]) || this.options.form_view_id;
|
||||
// destroy previous form_view if any
|
||||
if (this.form_view) { this.form_view.destroy(); }
|
||||
// create the FormView
|
||||
@@ -177,14 +163,15 @@ openerp.mail = function(session) {
|
||||
},
|
||||
|
||||
/**
|
||||
* Reinitialize the widget field values to the default values. The
|
||||
* purpose is to avoid to destroy and re-build a form view. Default
|
||||
* values are therefore given as for an on_change. */
|
||||
refresh: function (options_update_values) {
|
||||
var self = this;
|
||||
this.options.context = _.extend(this.options.context, options_update_values || {});
|
||||
* Reinitialize the widget field values to the default values obtained
|
||||
* using default_get on mail.compose.message. This allows to reinitialize
|
||||
* the widget without having to rebuild a complete form view.
|
||||
* @param {Object} new_context: context of the refresh */
|
||||
refresh: function (new_context) {
|
||||
if (! this.form_view) return;
|
||||
this.ds_compose.context = this._update_context(this.ds_compose.context);
|
||||
var self = this;
|
||||
this.options.context = _.extend(this.options.context, new_context || {});
|
||||
this.ds_compose.context = _.extend(this.ds_compose.context, this.options.context);
|
||||
return this.ds_compose.call('default_get', [
|
||||
['subject', 'body_text', 'body', 'attachment_ids', 'partner_ids', 'composition_mode',
|
||||
'model', 'res_id', 'parent_id', 'content_subtype'],
|
||||
@@ -192,13 +179,6 @@ openerp.mail = function(session) {
|
||||
]).then( function (result) { self.form_view.on_processed_onchange({'value': result}, []); });
|
||||
},
|
||||
|
||||
/**
|
||||
* Override-hack of do_action: clean the form */
|
||||
do_action: function(action, on_close) {
|
||||
console.log('compose_message do_action', action, on_close);
|
||||
return this._super(action, on_close);
|
||||
},
|
||||
|
||||
/**
|
||||
* Bind events in the widget. Each event is slightly described
|
||||
* in the function. */
|
||||
@@ -223,9 +203,6 @@ openerp.mail = function(session) {
|
||||
* - - sub message (parent_id = root message)
|
||||
* - - - sub sub message (parent id = sub message)
|
||||
* - - sub message (parent_id = root message)
|
||||
* This widget has 2 ways of initialization, either you give records
|
||||
* to be rendered, either it will fetch [limit] messages related to
|
||||
* [res_model]:[res_id].
|
||||
*/
|
||||
|
||||
mail.Thread = session.web.Widget.extend({
|
||||
@@ -234,71 +211,54 @@ openerp.mail = function(session) {
|
||||
/**
|
||||
* @param {Object} parent parent
|
||||
* @param {Object} [options]
|
||||
* @param {String} [options.res_model] res_model of document [REQUIRED]
|
||||
* @param {Number} [options.res_id] res_id of record [REQUIRED]
|
||||
* @param {Number} [options.uid] user id [REQUIRED]
|
||||
* @param {Bool} [options.parent_id=false] parent_id of message
|
||||
* @param {Number} [options.thread_level=0] number of levels in the thread
|
||||
* (only 0 or 1 currently)
|
||||
* @param {Bool} [options.is_wall=false] thread is displayed in the wall
|
||||
* @param {Number} [options.msg_more_limit=150] number of character to
|
||||
* @param {Object} [options.context] context of the thread. It should
|
||||
contain at least default_model, default_res_id. Please refer to
|
||||
the ComposeMessage widget for more information about it.
|
||||
* @param {Number} [options.thread_level=0] number of thread levels
|
||||
* @param {Number} [options.message_ids=null] ids for message_fetch
|
||||
* @param {Number} [options.message_data=null] already formatted message
|
||||
data, for subthreads getting data from their parent
|
||||
* @param {Boolean} [options.composer] use the advanced composer, or
|
||||
the default basic textarea if not set
|
||||
* @param {Number} [options.truncate_limit=250] number of character to
|
||||
* display before having a "show more" link; note that the text
|
||||
* will not be truncated if it does not have 110% of the parameter
|
||||
* (ex: 110 characters needed to be truncated and be displayed as
|
||||
* a 100-characters message)
|
||||
* @param {Number} [options.limit=100] maximum number of messages to fetch
|
||||
* @param {Number} [options.offset=0] offset for fetching messages
|
||||
* @param {Number} [options.records=null] records to show instead of fetching messages
|
||||
*/
|
||||
init: function(parent, options) {
|
||||
console.log(parent);
|
||||
this._super(parent);
|
||||
// options
|
||||
this.options = options || {};
|
||||
this.options.domain = options.domain || [];
|
||||
this.options.context = options.context || {};
|
||||
// check in parents, should not define multiple times
|
||||
this.options.context.res_model = options.context.res_model || 'mail.thread';
|
||||
this.options.context.res_id = options.context.res_id || false;
|
||||
this.options.context.parent_id = options.context.parent_id || false;
|
||||
this.options.context = _.extend({
|
||||
default_model: 'mail.thread',
|
||||
default_res_id: 0,
|
||||
default_parent_id: false }, options.context || {});
|
||||
this.options.thread_level = options.thread_level || 0;
|
||||
this.options.composer = options.composer || false;
|
||||
// TDE: not sure, here for testing / compatibility
|
||||
this.options.records = options.records || null;
|
||||
this.options.ids = options.ids || null;
|
||||
this.options.message_ids = options.message_ids || null;
|
||||
this.options.message_data = options.message_data || null;
|
||||
// datasets and internal vars
|
||||
this.ds_post = new session.web.DataSetSearch(this, this.options.context.res_model);
|
||||
this.ds_notif = new session.web.DataSetSearch(this, 'mail.notification');
|
||||
this.ds_msg = new session.web.DataSetSearch(this, 'mail.message');
|
||||
this.ds_thread = new session.web.DataSetSearch(this, this.options.context.default_model);
|
||||
this.ds_notification = new session.web.DataSetSearch(this, 'mail.notification');
|
||||
this.ds_message = new session.web.DataSetSearch(this, 'mail.message');
|
||||
// display customization vars
|
||||
this.display = {};
|
||||
this.display.truncate_limit = options.truncate_limit || 250;
|
||||
this.display.show_header_compose = options.show_header_compose || false;
|
||||
this.display.show_reply = options.show_reply || false;
|
||||
this.display.show_delete = options.show_delete || false;
|
||||
this.display.show_hide = options.show_hide || false;
|
||||
this.display.show_reply_by_email = options.show_reply_by_email || false;
|
||||
this.display.show_more = options.show_more || false;
|
||||
// for search view
|
||||
this.search = {'domain': [], 'context': {}, 'groupby': {}}
|
||||
this.search_results = {'domain': [], 'context': {}, 'groupby': {}}
|
||||
// debug
|
||||
console.groupCollapsed('New Thread: model', this.options.context.res_model, 'id', this.options.context.res_id, 'parent_id', this.options.context.parent_id, 'thread level', this.options.thread_level);
|
||||
console.log('records:', this.options.records, 'ids:', this.options.ids);
|
||||
console.log('options:', this.options);
|
||||
console.log('display:', this.display);
|
||||
console.groupEnd();
|
||||
this.display = {
|
||||
truncate_limit: options.truncate_limit || 250,
|
||||
show_header_compose: options.show_header_compose || false,
|
||||
show_reply: options.show_reply || false,
|
||||
show_delete: options.show_delete || false,
|
||||
show_hide: options.show_hide || false,
|
||||
show_reply_by_email: options.show_reply_by_email || false,
|
||||
show_more: options.show_more || false,
|
||||
}
|
||||
},
|
||||
|
||||
start: function() {
|
||||
// TDE TODO: check for deferred, not sure it is correct
|
||||
this._super.apply(this, arguments);
|
||||
this.bind_events();
|
||||
// display messages: either given by parent, either fetch new ones
|
||||
if (this.options.records) var display_done = this.message_display(this.options.records);
|
||||
else var display_done = this.message_fetch();
|
||||
// customize display
|
||||
this.display_user_avatar();
|
||||
$.when(display_done).then(this.proxy('do_customize_display'));
|
||||
// fetch and display message, using message_ids if set
|
||||
var display_done = $.when(this.message_fetch(true, [], {})).then(this.proxy('do_customize_display'));
|
||||
// add message composition form view
|
||||
if (this.display.show_header_compose && this.options.composer) {
|
||||
var compose_done = this.instantiate_composition_form();
|
||||
@@ -309,6 +269,7 @@ openerp.mail = function(session) {
|
||||
/** Customize the display
|
||||
* - show_header_compose: show the composition form in the header */
|
||||
do_customize_display: function() {
|
||||
this.display_user_avatar();
|
||||
if (this.display.show_header_compose) { this.$el.find('div.oe_mail_thread_action').eq(0).show(); }
|
||||
},
|
||||
|
||||
@@ -366,7 +327,10 @@ openerp.mail = function(session) {
|
||||
event.stopPropagation();
|
||||
var msg_id = event.srcElement.dataset.msg_id;
|
||||
if (! msg_id) return false;
|
||||
self.compose_message_widget.refresh({'composition_mode': 'reply', 'msg_id': parseInt(msg_id)});
|
||||
self.compose_message_widget.refresh({
|
||||
'default_composition_mode': 'reply',
|
||||
'default_parent_id': parseInt(msg_id),
|
||||
'default_content_subtype': 'html'} );
|
||||
});
|
||||
},
|
||||
|
||||
@@ -375,24 +339,26 @@ openerp.mail = function(session) {
|
||||
* Normally it should be called only when clicking on 'Post/Send'
|
||||
* in the composition form. */
|
||||
do_action: function(action, on_close) {
|
||||
console.log('thread do_action', action, on_close, this);
|
||||
this.message_clean();
|
||||
this.message_fetch();
|
||||
if (this.compose_message_widget) {
|
||||
this.compose_message_widget.refresh(); }
|
||||
this.compose_message_widget.refresh({
|
||||
'default_composition_mode': 'comment',
|
||||
'default_parent_id': this.options.default_parent_id,
|
||||
'default_content_subtype': 'plain'} );
|
||||
}
|
||||
return this._super(action, on_close);
|
||||
},
|
||||
|
||||
/** Instantiate the composition form, with parameters coming from thread parameters */
|
||||
instantiate_composition_form: function(mode, formatting, msg_id, context) {
|
||||
/** Instantiate the composition form, with every parameters in context
|
||||
or in the widget context. */
|
||||
instantiate_composition_form: function(context) {
|
||||
if (this.compose_message_widget) {
|
||||
this.compose_message_widget.destroy();
|
||||
}
|
||||
this.compose_message_widget = new mail.ComposeMessage(this, {
|
||||
'context': {
|
||||
'default_model': this.options.context.res_model, 'default_res_id': this.options.context.res_id,
|
||||
'composition_mode': mode || 'comment', 'msg_id': msg_id }
|
||||
});
|
||||
'context': _.extend(context || {}, this.options.context),
|
||||
});
|
||||
var composition_node = this.$el.find('div.oe_mail_thread_action');
|
||||
composition_node.empty();
|
||||
var compose_done = this.compose_message_widget.appendTo(composition_node);
|
||||
@@ -405,35 +371,33 @@ openerp.mail = function(session) {
|
||||
},
|
||||
|
||||
/** Fetch messages
|
||||
* @param {Array} additional_domain
|
||||
* @param {Object} additional_context
|
||||
* @param {Bool} initial_mode: initial mode: try to use message_data or
|
||||
* message_ids, if nothing available perform a message_read; otherwise
|
||||
* directly perform a message_read
|
||||
* @param {Array} additional_domain: added to options.domain
|
||||
* @param {Object} additional_context: added to options.context
|
||||
*/
|
||||
message_fetch: function (additional_domain, additional_context) {
|
||||
message_fetch: function (initial_mode, additional_domain, additional_context) {
|
||||
var self = this;
|
||||
// Update the domain and context
|
||||
this.search['domain'] = _.union(this.options.domain, this.search_results.domain);
|
||||
this.search['context'] = _.extend(this.options.context, this.search_results.context);
|
||||
if (additional_domain) var fetch_domain = this.search['domain'].concat(additional_domain);
|
||||
else var fetch_domain = this.search['domain'];
|
||||
if (additional_context) var fetch_context = _.extend(this.search['context'], additional_context);
|
||||
else var fetch_context = this.search['context'];
|
||||
|
||||
// TODO first use: use IDS, otherwise set false
|
||||
|
||||
var read_defer = this.ds_msg.call('message_read',
|
||||
[false, fetch_domain, this.options.thread_level, undefined, fetch_context]
|
||||
// domain and context: options + additional
|
||||
fetch_domain = _.flatten([this.options.domain, additional_domain || []], true)
|
||||
fetch_context = _.extend(this.options.context, additional_context || {})
|
||||
// if message_ids is set: try to use it
|
||||
if (initial_mode && this.options.message_data) {
|
||||
return this.message_display(this.options.message_data);
|
||||
}
|
||||
return this.ds_message.call('message_read',
|
||||
[(initial_mode && this.options.message_ids) || false, fetch_domain, this.options.thread_level, undefined, fetch_context]
|
||||
).then(this.proxy('message_display'));
|
||||
return read_defer;
|
||||
},
|
||||
|
||||
/* Display a list of records
|
||||
* - */
|
||||
* A specific case is done for 'expandable' messages that are messages
|
||||
displayed under a 'show more' button form
|
||||
*/
|
||||
message_display: function (records) {
|
||||
var self = this;
|
||||
var _expendable = false;
|
||||
console.groupCollapsed('message_display');
|
||||
console.log('records', records)
|
||||
console.groupEnd();
|
||||
_(records).each(function (record) {
|
||||
if (record.type == 'expandable') {
|
||||
_expendable = true;
|
||||
@@ -443,14 +407,19 @@ openerp.mail = function(session) {
|
||||
}
|
||||
else {
|
||||
self.display_record(record);
|
||||
// if (self.options.thread_level >= 0) {
|
||||
self.thread = new mail.Thread(self, {
|
||||
'context': { 'res_model': record.model, 'res_id': record.res_id, 'parent_id': record.id},
|
||||
'context': {
|
||||
'default_model': record.model,
|
||||
'default_id': record.res_id,
|
||||
'default_parent_id': record.id },
|
||||
'message_data': record.child_ids, 'thread_level': self.options.thread_level-1,
|
||||
'show_header_compose': false, 'show_reply': self.options.thread_level > 1,
|
||||
'show_hide': self.display.show_hide, 'show_delete': self.display.show_delete,
|
||||
'uid': self.options.uid, 'records': record.child_ids, 'thread_level': (self.options.thread_level-1),
|
||||
});
|
||||
self.$el.find('li.oe_mail_thread_msg:last').append('<div class="oe_mail_thread_subthread"/>');
|
||||
self.thread.appendTo(self.$el.find('div.oe_mail_thread_subthread:last'));
|
||||
// }
|
||||
}
|
||||
});
|
||||
if (! _expendable) {
|
||||
@@ -522,7 +491,7 @@ openerp.mail = function(session) {
|
||||
|
||||
/** Action: 'shows more' to fetch new messages */
|
||||
do_message_fetch: function () {
|
||||
return this.message_fetch(this.fetch_more_domain, this.fetch_more_context);
|
||||
return this.message_fetch(false, this.fetch_more_domain, this.fetch_more_context);
|
||||
},
|
||||
|
||||
// TDE: keep currently because need something similar
|
||||
@@ -572,19 +541,18 @@ openerp.mail = function(session) {
|
||||
|
||||
/** mail_thread widget: thread of comments */
|
||||
mail.RecordThread = session.web.form.AbstractField.extend({
|
||||
// QWeb template to use when rendering the object
|
||||
template: 'mail.record_thread',
|
||||
|
||||
init: function() {
|
||||
this._super.apply(this, arguments);
|
||||
this.options.domain = this.options.domain || [];
|
||||
this.options.context = {'res_model': 'mail.thread', 'res_id': false, 'parent_id': false};
|
||||
this.options.context = {'default_model': 'mail.thread', 'default_res_id': false};
|
||||
this.options.thread_level = this.options.thread_level || 0;
|
||||
this.thread_list = [];
|
||||
},
|
||||
|
||||
start: function() {
|
||||
// this._super.apply(this, arguments);
|
||||
this._super.apply(this, arguments);
|
||||
// NB: all the widget should be modified to check the actual_mode property on view, not use
|
||||
// any other method to know if the view is in create mode anymore
|
||||
this.view.on("change:actual_mode", this, this._check_visibility);
|
||||
@@ -608,14 +576,14 @@ openerp.mail = function(session) {
|
||||
return;
|
||||
}
|
||||
// update context
|
||||
this.options.context['res_id'] = this.view.datarecord.id;
|
||||
this.options.context['res_model'] = this.view.model;
|
||||
_.extend(this.options.context, {
|
||||
default_res_id: this.view.datarecord.id,
|
||||
default_model: this.view.model });
|
||||
// create and render Thread widget
|
||||
this.$el.find('div.oe_mail_recthread_main').empty();
|
||||
for (var i in this.thread_list) { this.thread_list[i].destroy(); }
|
||||
console.log(this);
|
||||
var thread = new mail.Thread(self, {
|
||||
'context': this.options.context, 'uid': this.session.uid,
|
||||
'context': this.options.context,
|
||||
'thread_level': this.options.thread_level, 'show_header_compose': true,
|
||||
'show_delete': true, 'composer': true });
|
||||
this.thread_list.push(thread);
|
||||
@@ -644,7 +612,7 @@ openerp.mail = function(session) {
|
||||
* @param {Object} [options]
|
||||
* @param {Number} [options.domain] domain on the Wall, is an array.
|
||||
* @param {Number} [options.domain] context, is an object. It should
|
||||
* contain res_model, res_id, parent_id, to give it to the threads.
|
||||
* contain default_model, default_res_id, to give it to the threads.
|
||||
*/
|
||||
init: function (parent, options) {
|
||||
this._super(parent);
|
||||
@@ -653,7 +621,7 @@ openerp.mail = function(session) {
|
||||
this.options.context = options.context || {};
|
||||
this.options.thread_level = options.thread_level || 1;
|
||||
this.thread_list = [];
|
||||
this.ds_msg = new session.web.DataSet(this, 'mail.message');
|
||||
this.ds_msg = new session.web.DataSetSearch(this, 'mail.message');
|
||||
// for search view
|
||||
this.search = {'domain': [], 'context': {}, 'groupby': {}}
|
||||
this.search_results = {'domain': [], 'context': {}, 'groupby': {}}
|
||||
@@ -662,29 +630,15 @@ openerp.mail = function(session) {
|
||||
start: function () {
|
||||
this._super.apply(this, arguments);
|
||||
var search_view_ready = this.load_search_view({}, false);
|
||||
var thread_displayed = this.display_thread();
|
||||
var thread_displayed = this.message_display();
|
||||
return (search_view_ready && thread_displayed);
|
||||
},
|
||||
|
||||
destroy: function () {
|
||||
for (var i in this.thrad_list) { this.thread_list[i].destroy(); }
|
||||
for (var i in this.thread_list) { this.thread_list[i].destroy(); }
|
||||
this._super.apply(this, arguments);
|
||||
},
|
||||
|
||||
/**
|
||||
* Override-hack of do_action: automatically reload the chatter.
|
||||
* Normally it should be called only when clicking on 'Post/Send'
|
||||
* in the composition form. */
|
||||
//TDE: still useful ? TO CHECK
|
||||
do_action: function(action, on_close) {
|
||||
console.log('wall do_action');
|
||||
if (this.compose_message_widget) {
|
||||
this.compose_message_widget.refresh(); }
|
||||
this.message_clean();
|
||||
this.display_thread();
|
||||
return this._super(action, on_close);
|
||||
},
|
||||
|
||||
/**
|
||||
* Load the mail.message search view
|
||||
* @param {Object} defaults ??
|
||||
@@ -717,7 +671,7 @@ openerp.mail = function(session) {
|
||||
self.search_results['domain'] = results.domain;
|
||||
self.search_results['groupby'] = results.group_by;
|
||||
self.message_clean();
|
||||
return self.display_thread();
|
||||
return self.message_display();
|
||||
});
|
||||
},
|
||||
|
||||
@@ -726,14 +680,12 @@ openerp.mail = function(session) {
|
||||
this.$el.find('ul.oe_mail_wall_threads').empty();
|
||||
},
|
||||
|
||||
/** Display comments
|
||||
* @param {Array} records tree structure of records
|
||||
*/
|
||||
display_thread: function () {
|
||||
/** Display the Wall threads */
|
||||
message_display: function () {
|
||||
var render_res = session.web.qweb.render('mail.wall_thread_container', {});
|
||||
$('<li class="oe_mail_wall_thread">').html(render_res).appendTo(this.$el.find('ul.oe_mail_wall_threads'));
|
||||
var thread = new mail.Thread(this, {
|
||||
'domain': this.options.domain, 'context': this.options.context, 'uid': this.session.uid,
|
||||
'domain': this.options.domain, 'context': this.options.context,
|
||||
'thread_level': this.options.thread_level, 'composer': true,
|
||||
// display options
|
||||
'show_header_compose': true, 'show_reply': this.options.thread_level > 0,
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
Template used to display the communication history in documents
|
||||
form view.
|
||||
-->
|
||||
<div t-name="mail.record_thread" class="oe_mail_recthread">
|
||||
<div t-name="mail.record_thread">
|
||||
<!-- <h4>History and Comments</h4> -->
|
||||
<div class="oe_mail_recthread_main">
|
||||
<!-- contains the document thread -->
|
||||
|
||||
@@ -354,7 +354,7 @@ class test_mail(common.TransactionCase):
|
||||
# CASE1: comment group_pigs with body_text and subject
|
||||
compose_id = mail_compose.create(cr, uid,
|
||||
{'subject': _subject, 'body_text': _body_text, 'partner_ids': [(4, p_c_id), (4, p_d_id)]},
|
||||
{'mail.compose.message.mode': 'comment', 'default_model': 'mail.group', 'default_res_id': self.group_pigs_id})
|
||||
{'default_composition_mode': 'comment', 'default_model': 'mail.group', 'default_res_id': self.group_pigs_id})
|
||||
compose = mail_compose.browse(cr, uid, compose_id)
|
||||
# Test: mail.compose.message: model, res_id
|
||||
self.assertEqual(compose.model, 'mail.group', 'mail.compose.message incorrect model')
|
||||
@@ -379,7 +379,7 @@ class test_mail(common.TransactionCase):
|
||||
message.write({'subject': _subject})
|
||||
compose_id = mail_compose.create(cr, uid,
|
||||
{'attachment_ids': [(0, 0, _attachments[0]), (0, 0, _attachments[1])]},
|
||||
{'mail.compose.message.mode': 'reply', 'default_model': 'mail.thread', 'default_res_id': self.group_pigs_id, 'active_id': message.id})
|
||||
{'default_composition_mode': 'reply', 'default_model': 'mail.thread', 'default_res_id': self.group_pigs_id, 'default_parent_id': message.id})
|
||||
compose = mail_compose.browse(cr, uid, compose_id)
|
||||
|
||||
# Test: form view methods
|
||||
|
||||
@@ -35,8 +35,7 @@ class mail_compose_message(osv.TransientModel):
|
||||
""" Generic message composition wizard. You may inherit from this wizard
|
||||
at model and view levels to provide specific features.
|
||||
|
||||
The behavior of the wizard can be modified through the context key
|
||||
mail.compose.message.mode:
|
||||
The behavior of the wizard depends on the composition_mode field:
|
||||
- 'reply': reply to a previous message. The wizard is pre-populated
|
||||
via ``get_message_data``.
|
||||
- 'comment': new post on a record. The wizard is pre-populated via
|
||||
@@ -56,10 +55,11 @@ class mail_compose_message(osv.TransientModel):
|
||||
- default_model or active_model
|
||||
- default_res_id or active_id
|
||||
- reply: active_id of a message the user replies to
|
||||
- active_id: ID of a mail.message to which we are replying
|
||||
- default_parent_id or message_id or active_id: ID of the
|
||||
mail.message we reply to
|
||||
- message.res_model or default_model
|
||||
- message.res_id or default_res_id
|
||||
- mass_mailing mode: model and IDs of records the user mass-mails
|
||||
- mass_mail: model and IDs of records the user mass-mails
|
||||
- active_ids: record IDs
|
||||
- default_model or active_model
|
||||
"""
|
||||
@@ -118,7 +118,6 @@ class mail_compose_message(osv.TransientModel):
|
||||
'body_text': lambda self,cr, uid, context={}: False,
|
||||
'body': lambda self,cr, uid, context={}: '',
|
||||
'subject': lambda self,cr, uid, context={}: False,
|
||||
'partner_ids': [],
|
||||
}
|
||||
|
||||
def notify(self, cr, uid, newid, context=None):
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Tranisition -->
|
||||
<!-- Transition -->
|
||||
<record id="marketing_campaign_transition_0" model="marketing.campaign.transition">
|
||||
<field model="marketing.campaign.activity" name="activity_from_id" ref = "marketing_campaign_activity_0"/>
|
||||
<field model="marketing.campaign.activity" name="activity_to_id" ref = "marketing_campaign_activity_1"/>
|
||||
|
||||
@@ -46,7 +46,6 @@ invoice and send propositions for membership renewal.
|
||||
'membership_view.xml',
|
||||
'report/report_membership_view.xml',
|
||||
'process/membership_process.xml',
|
||||
'membership_data.xml'
|
||||
],
|
||||
'demo': ['membership_demo.xml'],
|
||||
'test': ['test/test_membership.yml'],
|
||||
|
||||
@@ -146,7 +146,7 @@ class membership_line(osv.osv):
|
||||
'date_to': fields.date('To', readonly=True),
|
||||
'date_cancel': fields.date('Cancel date'),
|
||||
'date': fields.date('Join Date', help="Date on which member has joined the membership"),
|
||||
'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Product Price'), required=True, help='Amount for the membership'),
|
||||
'member_price': fields.float('Membership Fee', digits_compute= dp.get_precision('Product Price'), required=True, help='Amount for the membership'),
|
||||
'account_invoice_line': fields.many2one('account.invoice.line', 'Account Invoice line', readonly=True),
|
||||
'account_invoice_id': fields.related('account_invoice_line', 'invoice_id', type='many2one', relation='account.invoice', string='Invoice', readonly=True),
|
||||
'state': fields.function(_state,
|
||||
@@ -444,14 +444,6 @@ class Partner(osv.osv):
|
||||
|
||||
Partner()
|
||||
|
||||
class product_template(osv.osv):
|
||||
_inherit = 'product.template'
|
||||
_columns = {
|
||||
'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Product Price')),
|
||||
}
|
||||
|
||||
product_template()
|
||||
|
||||
class Product(osv.osv):
|
||||
|
||||
def fields_view_get(self, cr, user, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<!--
|
||||
Price type
|
||||
-->
|
||||
<record model="product.price.type" id="product_price_type_memberprice" >
|
||||
<field name="name">Member Price</field>
|
||||
<field name="field">member_price</field>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Price list
|
||||
-->
|
||||
<record model="product.pricelist" id="list1m">
|
||||
<field name="name">Member Sale Pricelist</field>
|
||||
<field name="type">sale</field>
|
||||
</record>
|
||||
<record model="product.pricelist.version" id="ver1m">
|
||||
<field name="pricelist_id" ref="list1m"/>
|
||||
<field name="name">Member Sale Pricelist Version</field>
|
||||
</record>
|
||||
<record model="product.pricelist.item" id="item1m">
|
||||
<field name="price_version_id" ref="ver1m"/>
|
||||
<field name="base" ref="product_price_type_memberprice" />
|
||||
<field name="name">Member Sale Pricelist Line</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -88,11 +88,11 @@
|
||||
<field name="arch" type="xml">
|
||||
<page string="Information" position="after">
|
||||
<page string="Membership">
|
||||
<group>
|
||||
<group col="1">
|
||||
<group>
|
||||
<field name="membership" readonly="0"/>
|
||||
</group>
|
||||
<group>
|
||||
<group attrs="{'invisible':[('membership','=',False)]}">
|
||||
<field name="membership_date_from" readonly="0" attrs="{'required':[('membership','=',True)]}"/>
|
||||
<field name="membership_date_to" readonly="0" attrs="{'required':[('membership','=',True)]}"/>
|
||||
</group>
|
||||
@@ -270,17 +270,5 @@
|
||||
<!-- MEMBERSHIP/REPORTING -->
|
||||
<menuitem name="Reporting" id="base.menu_report_association" parent="base.menu_association" sequence="20"/>
|
||||
|
||||
<!-- View for product.product object inherited from product module -->
|
||||
<record model="ir.ui.view" id="view_product_form_inherit1">
|
||||
<field name="name">product.normal.form</field>
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="list_price" position="after">
|
||||
<field name="member_price" groups="base.group_user"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
+25
-32
@@ -501,7 +501,7 @@
|
||||
<field name="res_model">mrp.bom</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="mrp_bom_component_tree_view"/>
|
||||
<field name="domain">[('bom_id','!=',False)]</field>
|
||||
<field name="domain">[]</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to add a component to a bill of material.
|
||||
@@ -524,6 +524,7 @@
|
||||
action="mrp_bom_form_action2"
|
||||
id="menu_mrp_bom_form_action2"
|
||||
parent="menu_mrp_configuration"
|
||||
groups="base.group_no_one"
|
||||
sequence="20"/>
|
||||
|
||||
<record id="action2" model="ir.actions.act_window">
|
||||
@@ -647,50 +648,42 @@
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,ready,in_production,done" statusbar_colors='{"picking_except":"red","confirmed":"blue"}'/>
|
||||
</header>
|
||||
<sheet>
|
||||
<label for="product_id" class="oe_edit_only"/>
|
||||
<h1>
|
||||
<field name="product_id" on_change="product_id_change(product_id)" domain="[('bom_ids','<>',False),('bom_ids.bom_id','=',False)]" class="oe_inline"/>
|
||||
</h1>
|
||||
<label for="product_qty" class="oe_edit_only"/>
|
||||
<h2>
|
||||
<field name="product_qty" class="oe_inline"/>
|
||||
<field name="product_uom" groups="product.group_uom" class="oe_inline"/>
|
||||
<button type="action"
|
||||
icon="terp-accessories-archiver+"
|
||||
name="%(mrp.action_change_production_qty)d"
|
||||
string="Change Qty" states="ready,confirmed" class="oe_inline"/>
|
||||
</h2>
|
||||
<div groups="mrp.group_mrp_routings">
|
||||
<label for="routing_id" class="oe_edit_only"/>
|
||||
<h2><field name="routing_id" class="oe_inline"/></h2>
|
||||
<div class="oe_title">
|
||||
<h1>Manufacturing Order <field name="name" class="oe_inline"/></h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="origin"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="user_id"/>
|
||||
<field name="product_id" on_change="product_id_change(product_id)" domain="[('bom_ids','<>',False),('bom_ids.bom_id','=',False)]" class="oe_inline"/>
|
||||
<label for="product_qty"/>
|
||||
<div>
|
||||
<field name="product_qty" class="oe_inline"/>
|
||||
<field name="product_uom" groups="product.group_uom" class="oe_inline"/>
|
||||
<button type="action"
|
||||
icon="terp-accessories-archiver+"
|
||||
name="%(mrp.action_change_production_qty)d"
|
||||
string="(Update)" states="ready,confirmed" class="oe_edit_only oe_link"/>
|
||||
</div>
|
||||
<label for="product_uos_qty" groups="product.group_uos"/>
|
||||
<div groups="product.group_uos">
|
||||
<field name="product_uos_qty" class="oe_inline"/>
|
||||
<label string="-" attrs="{'invisible':[('product_uos','=',False)]}" class="oe_inline"/>
|
||||
<field name="product_uos" class="oe_inline"/>
|
||||
</div>
|
||||
<field name="date_planned"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="bom_id" domain="[('product_id','=',product_id)]" context="{'default_product_id': product_id}" on_change="bom_id_change(bom_id)"/>
|
||||
<field name="routing_id" class="oe_inline" groups="mrp.group_mrp_routings"/>
|
||||
<field name="user_id"/>
|
||||
<field name="origin"/>
|
||||
</group>
|
||||
<group groups="stock.group_locations">
|
||||
<field name="location_src_id" domain="[('usage','=','internal')]" on_change="location_id_change(location_src_id,location_dest_id)"/>
|
||||
<field name="location_dest_id" domain="[('usage','=','internal')]"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Consumed Products">
|
||||
<group>
|
||||
<group>
|
||||
<field name="bom_id" domain="[('product_id','=',product_id)]" context="{'default_product_id': product_id}" on_change="bom_id_change(bom_id)"/>
|
||||
</group>
|
||||
<group groups="stock.group_locations">
|
||||
<field name="location_src_id" domain="[('usage','=','internal')]" on_change="location_id_change(location_src_id,location_dest_id)"/>
|
||||
<field name="location_dest_id" domain="[('usage','=','internal')]"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<group string="Products to Consume">
|
||||
<field name="move_lines" domain="[('state','<>', ('done', 'cancel'))]" nolabel="1">
|
||||
|
||||
@@ -19,6 +19,5 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import project_mailgate
|
||||
import note
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -19,34 +19,45 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
|
||||
{
|
||||
'name': 'Tasks-Mail Integration',
|
||||
'version': '1.1',
|
||||
'author': 'OpenERP SA',
|
||||
'website': 'http://www.openerp.com',
|
||||
'category': 'Project Management',
|
||||
'images': ['images/project_mailgate_task.jpeg'],
|
||||
'depends': ['project', 'mail'],
|
||||
'name': 'Notes',
|
||||
'version': '0.1',
|
||||
'category': 'Tools',
|
||||
'description': """
|
||||
This module can automatically create Project Tasks based on incoming emails.
|
||||
============================================================================
|
||||
This module allows users to create their own notes inside OpenERP
|
||||
=================================================================
|
||||
|
||||
Allows creating tasks based on new emails arriving at a given mailbox,
|
||||
similarly to what the CRM application has for Leads/Opportunities.
|
||||
Use notes to write meeting minutes, organize ideas, organize personnal todo
|
||||
lists, etc. Each user manages his own personnal notes. Notes are available to
|
||||
their authors only, but they can share notes to others users so that several
|
||||
people can work on the same note in real time. It's very efficient to share
|
||||
meeting minutes.
|
||||
|
||||
There are two common alternatives to configure the mailbox integration:
|
||||
-----------------------------------------------------------------------
|
||||
* Install the ``fetchmail`` module and configure a new mailbox, then select
|
||||
``Project Tasks`` as the target for incoming emails.
|
||||
* Set it up manually on your mail server based on the 'mail gateway' script
|
||||
provided in the ``mail`` module - and connect it to the `project.task` model.
|
||||
""",
|
||||
'data': [],
|
||||
'demo': [],
|
||||
Notes can be found in the 'Home' menu.
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'website': 'http://openerp.com',
|
||||
'summary': 'Sticky Notes, Collaborative',
|
||||
'depends': [
|
||||
'base_tools',
|
||||
'mail',
|
||||
'pad',
|
||||
],
|
||||
'data': [
|
||||
'security/note_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'note_data.xml',
|
||||
'note_view.xml',
|
||||
],
|
||||
'demo': [
|
||||
'note_demo.xml',
|
||||
],
|
||||
'css': [
|
||||
'static/src/css/note.css',
|
||||
],
|
||||
'installable': True,
|
||||
'application': True,
|
||||
'auto_install': False,
|
||||
'certificate': '001075048780413258261',
|
||||
}
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -0,0 +1,90 @@
|
||||
# -*- 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 openerp.osv import osv, fields
|
||||
from tools.translate import _
|
||||
|
||||
class note_stage(osv.osv):
|
||||
""" Category of Note """
|
||||
_name = "note.stage"
|
||||
_description = "Note Stage"
|
||||
_columns = {
|
||||
'name': fields.char('Category Name', size=64, required=True),
|
||||
'sequence': fields.integer('Sequence', help="Used to order the note stages"),
|
||||
'user_id': fields.many2one('res.users', 'Owner', help="Owner of the note stage.", required=True, readonly=True),
|
||||
'fold': fields.boolean('Folded'),
|
||||
}
|
||||
_order = 'sequence asc'
|
||||
_defaults = {
|
||||
'fold': 0,
|
||||
'user_id': lambda self, cr, uid, ctx: uid,
|
||||
'sequence' : 1,
|
||||
}
|
||||
|
||||
class note_note(osv.osv):
|
||||
""" Note """
|
||||
_name = 'note.note'
|
||||
_inherit = ['mail.thread','pad.common']
|
||||
_pad_fields = ['note_pad']
|
||||
_description = "Note"
|
||||
|
||||
def _get_note_first_line(self, cr, uid, ids, name, args, context=None):
|
||||
res = {}
|
||||
for note in self.browse(cr, uid, ids, context=context):
|
||||
res[note.id] = (note.note or '').strip().split('\n')[0]
|
||||
return res
|
||||
|
||||
def _get_default_stage_id(self,cr,uid,context=None):
|
||||
ids = self.pool.get('note.stage').search(cr,uid,[('user_id','=',uid)])
|
||||
return ids and ids[0] or False
|
||||
|
||||
def _read_group_stage_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None):
|
||||
access_rights_uid = access_rights_uid or uid
|
||||
stage_obj = self.pool.get('note.stage')
|
||||
|
||||
# only show stage groups not folded and owned by user
|
||||
search_domain = [('fold', '=', False),('user_id', '=', uid)]
|
||||
|
||||
stage_ids = stage_obj._search(cr, uid, search_domain, order=self._order, access_rights_uid=access_rights_uid, context=context)
|
||||
result = stage_obj.name_get(cr, access_rights_uid, stage_ids, context=context)
|
||||
return result
|
||||
|
||||
_columns = {
|
||||
'name': fields.function(_get_note_first_line, string='Note Summary', type="text", store=True),
|
||||
'note': fields.text('Pad Content'),
|
||||
'note_pad_url': fields.char('Pad Url', size=250),
|
||||
'sequence': fields.integer('Sequence'),
|
||||
'stage_id': fields.many2one('note.stage', 'Stage'),
|
||||
'active': fields.boolean('Active'),
|
||||
'color': fields.integer('Color Index'),
|
||||
# to be replaced by message_follower_ids
|
||||
'follower_ids': fields.many2many('res.users', 'mail_subscription', 'res_id', 'user_id', 'Followers')
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'active' : 1,
|
||||
'stage_id' : _get_default_stage_id,
|
||||
'note_pad_url': lambda self, cr, uid, context: self.pad_generate_url(cr, uid, context),
|
||||
}
|
||||
_order = 'sequence asc'
|
||||
_group_by_full = {
|
||||
'stage_id' : _read_group_stage_ids,
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record model="note.stage" id="note_stage_01">
|
||||
<field name="name">Todo today</field>
|
||||
<field name="sequence">1</field>
|
||||
<field name="user_id" eval="ref('base.user_root')"/>
|
||||
</record>
|
||||
|
||||
<record model="note.stage" id="note_stage_02">
|
||||
<field name="name">Todo later</field>
|
||||
<field name="sequence">2</field>
|
||||
<field name="user_id" eval="ref('base.user_root')"/>
|
||||
</record>
|
||||
|
||||
<record model="note.stage" id="note_stage_03">
|
||||
<field name="name">For Info</field>
|
||||
<field name="sequence">3</field>
|
||||
<field name="user_id" eval="ref('base.user_root')"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,152 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="note_1" model="note.note">
|
||||
<field name="note"><![CDATA[Buying list
|
||||
* coffee
|
||||
* fruits
|
||||
* ice cream
|
||||
* towels
|
||||
]]>
|
||||
</field>
|
||||
<field name="note_pad"></field>
|
||||
<field name="stage_id" ref="note_stage_01"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="color">2</field>
|
||||
</record>
|
||||
<record id="note_2" model="note.note">
|
||||
<field name="note"><![CDATA[Buying list
|
||||
* more coffee
|
||||
* tee
|
||||
* sugar
|
||||
* towels
|
||||
]]>
|
||||
</field>
|
||||
<field name="note_pad"></field>
|
||||
<field name="stage_id" ref="note_stage_01"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
</record>
|
||||
|
||||
<record id="note_3" model="note.note">
|
||||
<field name="note"><![CDATA[Idea to develop
|
||||
* Phasellus vel eros lorem, vel tristique risus.
|
||||
* Cras elementum risus ut massa bibendum ac sollicitudin quam feugiat.
|
||||
* Phasellus ullamcorper mauris quis lectus volutpat non dignissim elit lacinia.
|
||||
|
||||
Nulla vitae metus risus, nec placerat diam.
|
||||
Proin quis nunc sodales dolor tempus eleifend.
|
||||
Praesent iaculis libero ut orci egestas a dapibus libero ornare.
|
||||
|
||||
* Proin at nisl sit amet ante feugiat euismod nec at orci.
|
||||
* Nam aliquam massa id neque tincidunt eu pellentesque neque euismod.
|
||||
* Proin eget mi sit amet erat tempus pellentesque.
|
||||
|
||||
* Phasellus congue est lectus, vitae semper arcu.
|
||||
* Suspendisse sodales tortor ut odio volutpat fringilla.
|
||||
* Vestibulum mattis est quis risus dignissim sit amet faucibus nisl mattis.
|
||||
* Pellentesque ullamcorper neque neque, vitae rhoncus massa.
|
||||
|
||||
Ut id magna massa, quis scelerisque sapien.
|
||||
|
||||
]]>
|
||||
</field>
|
||||
<field name="note_pad"></field>
|
||||
<field name="stage_id" ref="note_stage_01"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
</record>
|
||||
|
||||
<record id="note_4" model="note.note">
|
||||
<field name="note"><![CDATA[Read some documentation about OpenERP before diving into the code
|
||||
* Open ERP Version 6: a modern approach to integrated business management
|
||||
* Open ERP for Retail and Industrial Management
|
||||
]]>
|
||||
</field>
|
||||
<field name="note_pad"></field>
|
||||
<field name="stage_id" ref="note_stage_02"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
</record>
|
||||
|
||||
<record id="note_5" model="note.note">
|
||||
<field name="note"><![CDATA[New computer specs
|
||||
* Motherboard
|
||||
according to processor
|
||||
* Processor
|
||||
need to decide
|
||||
* Graphic card
|
||||
with great performance for games !
|
||||
* Hard drive
|
||||
big, for lot of internet backups
|
||||
* Tower
|
||||
silent, better when watching films
|
||||
* Blueray drive ?
|
||||
is it interesting yet ?
|
||||
* Screen
|
||||
a big one, full of pixels, of course !
|
||||
]]>
|
||||
</field>
|
||||
<field name="note_pad"></field>
|
||||
<field name="stage_id" ref="note_stage_02"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="color">3</field>
|
||||
</record>
|
||||
|
||||
<record id="note_6" model="note.note">
|
||||
<field name="note"><![CDATA[Read those books
|
||||
* Open ERP Version 6: a modern approach to integrated business management
|
||||
* Open ERP for Retail and Industrial Management
|
||||
]]>
|
||||
</field>
|
||||
<field name="note_pad"></field>
|
||||
<field name="stage_id" ref="note_stage_02"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
</record>
|
||||
|
||||
<record id="note_7" model="note.note">
|
||||
<field name="note"><![CDATA[Read some documentation about OpenERP before diving into the code
|
||||
* Open ERP Version 6: a modern approach to integrated business management
|
||||
* Open ERP for Retail and Industrial Management
|
||||
]]>
|
||||
</field>
|
||||
<field name="note_pad"></field>
|
||||
<field name="stage_id" ref="note_stage_03"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
</record>
|
||||
|
||||
<record id="note_8" model="note.note">
|
||||
<field name="note"><![CDATA[Read those books
|
||||
* Open ERP Version 6: a modern approach to integrated business management
|
||||
* Open ERP for Retail and Industrial Management
|
||||
]]>
|
||||
</field>
|
||||
<field name="note_pad"></field>
|
||||
<field name="stage_id" ref="note_stage_03"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="color">5</field>
|
||||
</record>
|
||||
|
||||
<record id="note_9" model="note.note">
|
||||
<field name="note"><![CDATA[Read some documentation about OpenERP before diving into the code
|
||||
* Open ERP Version 6: a modern approach to integrated business management
|
||||
* Open ERP for Retail and Industrial Management
|
||||
]]>
|
||||
</field>
|
||||
<field name="note_pad"></field>
|
||||
<field name="stage_id" ref="note_stage_03"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="color">7</field>
|
||||
</record>
|
||||
|
||||
<record id="note_10" model="note.note">
|
||||
<field name="note"><![CDATA[Read those books
|
||||
* Open ERP Version 6: a modern approach to integrated business management
|
||||
* Open ERP for Retail and Industrial Management
|
||||
]]>
|
||||
</field>
|
||||
<field name="note_pad"></field>
|
||||
<field name="stage_id" ref="note_stage_03"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,136 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<menuitem name="Organizer" id="note_my_stuff" parent="mail.mail_feeds_main"/>
|
||||
|
||||
<!-- Note Stage Form View -->
|
||||
<record model="ir.ui.view" id="view_note_stage_form">
|
||||
<field name="name">note.stage.form</field>
|
||||
<field name="model">note.stage</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Stage of Notes" version="7.0">
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Note Stage Tree View -->
|
||||
<record model="ir.ui.view" id="view_note_stage_tree">
|
||||
<field name="name">note.stage.tree</field>
|
||||
<field name="model">note.stage</field>
|
||||
<field name="field_parent"></field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Stages of notes" editable="bottom">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
<field name="fold"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Note Stage Action -->
|
||||
<record model="ir.actions.act_window" id="action_note_stage">
|
||||
<field name="name">Stages</field>
|
||||
<field name="res_model">note.stage</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('user_id','=',uid)]</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Categories"
|
||||
id="menu_notes_stage" parent="note_my_stuff" action="action_note_stage" sequence="40" groups="base.group_no_one"/>
|
||||
|
||||
<!-- New Note Kanban View -->
|
||||
<record model="ir.ui.view" id="view_note_note_kanban">
|
||||
<field name="name">note.note.kanban</field>
|
||||
<field name="model">note.note</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban default_group_by="stage_id">
|
||||
<field name="color"/>
|
||||
<field name="sequence"/>
|
||||
<field name="name"/>
|
||||
<field name="stage_id"/>
|
||||
<field name="active"/>
|
||||
<field name="note"/>
|
||||
<field name="follower_ids"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click">
|
||||
<!-- dropdown menu -->
|
||||
<div class="oe_dropdown_toggle oe_dropdown_kanban">
|
||||
<span class="oe_e">í</span>
|
||||
<ul class="oe_dropdown_menu">
|
||||
<li><a type="edit">Edit...</a></li>
|
||||
<li><a type="delete">Delete</a></li>
|
||||
<li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- kanban note -->
|
||||
<div class="oe_kanban_content">
|
||||
<!-- title -->
|
||||
<field name="name"/>
|
||||
</div>
|
||||
|
||||
<div class="oe_kanban_project_avatars">
|
||||
<t t-foreach="record.follower_ids.raw_value" t-as="follower">
|
||||
<img t-att-src="kanban_image('res.users', 'image_small', follower)" t-att-data-member_id="follower"/>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
<div class="oe_clear"></div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- New Note Form View -->
|
||||
<record model="ir.ui.view" id="view_note_note_form">
|
||||
<field name="name">note.note.form</field>
|
||||
<field name="model">note.note</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Note" version="7.0">
|
||||
<header>
|
||||
<field name="stage_id" domain="[('user_id','=',uid)]" widget="statusbar" clickable="1"/>
|
||||
</header>
|
||||
<field name="note"/>
|
||||
<field name="note_pad_url" invisible="1"/>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_ids" widget="mail_thread"/>
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Search Note -->
|
||||
<record model="ir.ui.view" id="view_note_note_filter">
|
||||
<field name="name">note.note.search</field>
|
||||
<field name="model">note.note</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Notes">
|
||||
<field name="note" string="Note"/>
|
||||
<field name="stage_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter icon="terp-personal" string="Creator" help="By Creators" context="{'group_by':'create_uid'}"/>
|
||||
<filter icon="terp-stock_symbol-selection" string="Stage" help="By Note Category" context="{'group_by':'stage_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Note Action -->
|
||||
<record model="ir.actions.act_window" id="action_note_note">
|
||||
<field name="name">Notes</field>
|
||||
<field name="res_model">note.note</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
<field name="search_view_id" ref="view_note_note_filter"/>
|
||||
</record>
|
||||
|
||||
<menuitem name="Notes" id="note_notes" parent="note_my_stuff" sequence="20" action="action_note_note"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,3 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_note_stage_user,note.stage user,model_note_stage,base.group_user,1,1,1,1
|
||||
access_note_note_user,note.note user,model_note_note,base.group_user,1,1,1,1
|
||||
|
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="note_note_global" model="ir.rule">
|
||||
<field name="name">My notes</field>
|
||||
<field ref="model_note_note" name="model_id"/>
|
||||
<field eval="1" name="global"/>
|
||||
<field name="domain_force">[('follower_ids','=',user.id)]</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
note.css: note.sass
|
||||
sass -t expanded note.sass note.css
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
|
||||
|
||||
.openerp .oe_fold_column .oe_kanban_card {
|
||||
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);
|
||||
}
|
||||
|
||||
.oe_kanban_record .oe_kanban_card {
|
||||
-webkit-transform: rotate(-2deg);
|
||||
-o-transform: rotate(-2deg);
|
||||
-moz-transform:rotate(-2deg);
|
||||
}
|
||||
|
||||
.oe_kanban_record:nth-of-type(even) .oe_kanban_card {
|
||||
-webkit-transform: rotate(1deg);
|
||||
-o-transform: rotate(1deg);
|
||||
-moz-transform:rotate(1deg);
|
||||
}
|
||||
|
||||
.oe_kanban_record:nth-of-type(3n) .oe_kanban_card {
|
||||
-webkit-transform: rotate(4deg);
|
||||
-o-transform: rotate(4deg);
|
||||
-moz-transform:rotate(4deg);
|
||||
}
|
||||
|
||||
.oe_kanban_column:nth-of-type(even) .oe_kanban_record .oe_kanban_card {
|
||||
-webkit-transform: rotate(2deg);
|
||||
-o-transform: rotate(2deg);
|
||||
-moz-transform:rotate(2deg);
|
||||
}
|
||||
|
||||
.oe_kanban_column:nth-of-type(even) .oe_kanban_record:nth-of-type(even) .oe_kanban_card {
|
||||
-webkit-transform: rotate(-3deg);
|
||||
-o-transform: rotate(-3deg);
|
||||
-moz-transform:rotate(-3deg);
|
||||
}
|
||||
|
||||
.oe_kanban_column:nth-of-type(even) .oe_kanban_record:nth-of-type(3n) .oe_kanban_card {
|
||||
-webkit-transform: rotate(1deg);
|
||||
-o-transform: rotate(1deg);
|
||||
-moz-transform:rotate(1deg);
|
||||
}
|
||||
|
||||
.oe_kanban_column:nth-of-type(3n) .oe_kanban_record .oe_kanban_card {
|
||||
-webkit-transform: rotate(-2deg);
|
||||
-o-transform: rotate(-2deg);
|
||||
-moz-transform:rotate(-2deg);
|
||||
}
|
||||
|
||||
.oe_kanban_column:nth-of-type(3n) .oe_kanban_record:nth-of-type(even) .oe_kanban_card {
|
||||
-webkit-transform: rotate(1deg);
|
||||
-o-transform: rotate(1deg);
|
||||
-moz-transform:rotate(1deg);
|
||||
}
|
||||
|
||||
.oe_kanban_column:nth-of-type(3n) .oe_kanban_record:nth-of-type(3n) .oe_kanban_card {
|
||||
-webkit-transform: rotate(-1deg);
|
||||
-o-transform: rotate(-1deg);
|
||||
-moz-transform:rotate(-1deg);
|
||||
}
|
||||
|
||||
.openerp .oe_kanban_column .oe_fold_column .oe_kanban_card:hover,
|
||||
.openerp .oe_kanban_column .oe_fold_column .oe_kanban_card:focus
|
||||
{
|
||||
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);
|
||||
-webkit-transform: rotate(0);
|
||||
-moz-transform: rotate(0);
|
||||
-o-transform: rotate(0);
|
||||
position:relative;
|
||||
z-index:5;
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
@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"
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
@@ -8,31 +8,32 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-06-22 08:03+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2012-09-03 22:22+0000\n"
|
||||
"Last-Translator: Nicolas JEUDY <njeudy@simplee.fr>\n"
|
||||
"Language-Team: French <fr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:43+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-04 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 15890)\n"
|
||||
|
||||
#. module: pad_project
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
"Erreur ! la date de fin de la tâche doit être supérieure a celle de début"
|
||||
|
||||
#. module: pad_project
|
||||
#: model:ir.model,name:pad_project.model_project_task
|
||||
msgid "Task"
|
||||
msgstr ""
|
||||
msgstr "Tâche"
|
||||
|
||||
#. module: pad_project
|
||||
#: view:project.task:0
|
||||
msgid "Pad"
|
||||
msgstr ""
|
||||
msgstr "Pad"
|
||||
|
||||
#. module: pad_project
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr ""
|
||||
msgstr "Erreur ! Vous ne pouvez pas créer de tâches récursives."
|
||||
|
||||
@@ -92,7 +92,8 @@ Main features:
|
||||
'static/src/js/main.js',
|
||||
],
|
||||
'css': [
|
||||
'static/src/css/pos.css',
|
||||
'static/src/css/pos.css', # this is the default css with hover effects
|
||||
#'static/src/css/pos_nohover.css', # this css has no hover effects (for resistive touchscreens)
|
||||
'static/src/css/keyboard.css'
|
||||
],
|
||||
'qweb': ['static/src/xml/pos.xml'],
|
||||
|
||||
@@ -1242,7 +1242,7 @@ import io, StringIO
|
||||
class ean_wizard(osv.osv_memory):
|
||||
_name = 'pos.ean_wizard'
|
||||
_columns = {
|
||||
'ean13_pattern': fields.char('Ean13 Pattern', size=32, required=True, translate=True),
|
||||
'ean13_pattern': fields.char('Reference', size=32, required=True, translate=True),
|
||||
}
|
||||
def sanitize_ean13(self, cr, uid, ids, context):
|
||||
for r in self.browse(cr,uid,ids):
|
||||
@@ -1306,7 +1306,7 @@ class product_product(osv.osv):
|
||||
|
||||
def edit_ean(self, cr, uid, ids, context):
|
||||
return {
|
||||
'name': "Edit Ean",
|
||||
'name': _("Assign a Custom EAN"),
|
||||
'type': 'ir.actions.act_window',
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form',
|
||||
|
||||
@@ -608,35 +608,21 @@
|
||||
<field name="domain">[('date_order','like',time.strftime('%Y-%m'))]</field>
|
||||
</record>
|
||||
|
||||
<record id="product_normal_form_pos_view" model="ir.ui.view">
|
||||
<field name="name">product.normal.pos.form.inherit</field>
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<group name="status" position="after">
|
||||
<group name="pos" string="Point of Sale">
|
||||
<field name="pos_categ_id"/>
|
||||
<field name="to_weight" />
|
||||
</group>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="product_normal_form_view" model="ir.ui.view">
|
||||
<field name="name">product.normal.form.inherit</field>
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit_id" ref="stock.view_normal_procurement_locations_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<group name="misc" position="after">
|
||||
<group name="pos" colspan="2" col="2">
|
||||
<separator string="Point of Sale" colspan="2"/>
|
||||
<group name="sale" position="inside">
|
||||
<group name="pos" string="Point of Sale">
|
||||
<field name="pos_categ_id"/>
|
||||
<field name="to_weight" />
|
||||
<field name="income_pdt"/>
|
||||
<field name="expense_pdt"/>
|
||||
</group>
|
||||
</group>
|
||||
<field name="ean13" position="after">
|
||||
<button name="edit_ean" type="object" string="Edit" />
|
||||
<button name="edit_ean" type="object" string="Set a Custom EAN" class="oe_link oe_edit_only"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
@@ -1070,9 +1056,17 @@
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Ean13 Generator" version="7.0">
|
||||
<field name="ean13_pattern"/>
|
||||
<p class="oe_grey">
|
||||
Enter a reference for this product, it will be converted
|
||||
automatically to a valid EAN number.
|
||||
</p>
|
||||
<group>
|
||||
<field name="ean13_pattern" class="oe_inline"/>
|
||||
</group>
|
||||
<footer>
|
||||
<button name="sanitize_ean13" type="object" string="Apply"/>
|
||||
<button name="sanitize_ean13" type="object" string="Apply" class="oe_highlight"/> or
|
||||
<button icon="gtk-stop" special="cancel"
|
||||
string="Cancel" class="oe_link"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
|
||||
@@ -1072,12 +1072,14 @@
|
||||
-webkit-transition-timing-function: ease-out;
|
||||
}
|
||||
|
||||
.point-of-sale .pos-actionbar .button.disabled{
|
||||
color:#AAA;
|
||||
.point-of-sale .pos-actionbar .button.disabled *{
|
||||
opacity: 0.5;
|
||||
}
|
||||
.point-of-sale .pos-actionbar .button.disabled:hover{
|
||||
border: 1px solid #cacaca;
|
||||
border-radius: 4px;
|
||||
color: #555;
|
||||
cursor: default;
|
||||
|
||||
background: #e2e2e2;
|
||||
background: -webkit-linear-gradient(#f0f0f0, #e2e2e2);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -47,11 +47,12 @@ TODO AUG 20
|
||||
v supprimer l'écran
|
||||
v bloquer sur l'impression
|
||||
v L'impression est foireuse
|
||||
- description_sales
|
||||
|
||||
* CLIENT
|
||||
- create a new branch
|
||||
v create a new branch
|
||||
- Self-checkout welcome screen
|
||||
- removal of products for the root category
|
||||
~ removal of products for the root category
|
||||
- Terminal de payement
|
||||
- Code à barres
|
||||
- Vidanges
|
||||
|
||||
@@ -184,6 +184,8 @@ function openerp_pos_devices(instance,module){ //module is instance.point_of_sal
|
||||
* price_with_tax: (number) the price paid for this orderline, tax included
|
||||
* price_without_tax: (number) the price paid for this orderline, without taxes
|
||||
* tax: (number) the price paid in taxes on this orderline
|
||||
* product_description: (string) generic description of the product
|
||||
* product_description_sale: (string) sales related information of the product
|
||||
* }
|
||||
* - paymentlines : list of paymentlines :
|
||||
* {
|
||||
|
||||
@@ -58,6 +58,21 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
|
||||
// We fetch the backend data on the server asynchronously. this is done only when the pos user interface is launched,
|
||||
// Any change on this data made on the server is thus not reflected on the point of sale until it is relaunched.
|
||||
// when all the data has loaded, we compute some stuff, and declare the Pos ready to be used.
|
||||
$.when(this.load_server_data())
|
||||
.then(function(){
|
||||
//self.log_loaded_data(); //Uncomment if you want to log the data to the console for easier debugging
|
||||
self.ready.resolve();
|
||||
},function(){
|
||||
//we failed to load some backend data, or the backend was badly configured.
|
||||
//the error messages will be displayed in PosWidget
|
||||
self.ready.reject();
|
||||
});
|
||||
},
|
||||
|
||||
// loads all the needed data on the sever. returns a deferred indicating when all the data has loaded.
|
||||
load_server_data: function(){
|
||||
var self = this;
|
||||
|
||||
var loaded = fetch('res.users',['name','company_id'],[['id','=',this.session.uid]])
|
||||
.pipe(function(users){
|
||||
@@ -142,8 +157,9 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
|
||||
return fetch(
|
||||
'product.product',
|
||||
['name', 'list_price','price','pos_categ_id', 'taxes_id', 'ean13', 'to_weight', 'uom_id', 'uos_id', 'uos_coeff', 'mes_type'],
|
||||
[['pos_categ_id','!=', false]],
|
||||
['name', 'list_price','price','pos_categ_id', 'taxes_id', 'ean13',
|
||||
'to_weight', 'uom_id', 'uos_id', 'uos_coeff', 'mes_type', 'description_sale', 'description'],
|
||||
[['pos_categ_id','!=', false],['sale_ok','=',true]],
|
||||
{pricelist: self.get('shop').pricelist_id[0]} // context for price
|
||||
);
|
||||
}).pipe(function(products){
|
||||
@@ -173,17 +189,8 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
}
|
||||
self.set({'cashRegisters' : new module.CashRegisterCollection(self.get('bank_statements'))});
|
||||
});
|
||||
|
||||
// when all the data has loaded, we compute some stuff, and declare the Pos ready to be used.
|
||||
$.when(loaded)
|
||||
.then(function(){
|
||||
//self.log_loaded_data(); //Uncomment if you want to log the data to the console for easier debugging
|
||||
self.ready.resolve();
|
||||
},function(){
|
||||
//we failed to load some backend data, or the backend was badly configured.
|
||||
//the error messages will be displayed in PosWidget
|
||||
self.ready.reject();
|
||||
});
|
||||
|
||||
return loaded;
|
||||
},
|
||||
|
||||
// logs the usefull posmodel data to the console for debug purposes
|
||||
@@ -417,6 +424,8 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
price_with_tax : this.get_price_with_tax(),
|
||||
price_without_tax: this.get_price_without_tax(),
|
||||
tax: this.get_tax(),
|
||||
product_description: this.get_product().get('description'),
|
||||
product_description_sale: this.get_product().get('description_sale'),
|
||||
};
|
||||
},
|
||||
get_price_without_tax: function(){
|
||||
|
||||
@@ -735,11 +735,14 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
|
||||
|
||||
this.validate_button = this.add_action_button({
|
||||
label: 'Validate',
|
||||
name: 'validation',
|
||||
icon: '/point_of_sale/static/src/img/icons/png48/validate.png',
|
||||
click: function(){
|
||||
self.validateCurrentOrder();
|
||||
},
|
||||
});
|
||||
|
||||
this.updatePaymentSummary();
|
||||
},
|
||||
close: function(){
|
||||
this._super();
|
||||
@@ -806,6 +809,9 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
|
||||
this.$('#payment-paid-total').html(paidTotal.toFixed(2));
|
||||
this.$('#payment-remaining').html(remaining.toFixed(2));
|
||||
this.$('#payment-change').html(change.toFixed(2));
|
||||
if(this.pos_widget.action_bar){
|
||||
this.pos_widget.action_bar.set_button_disabled('validation', remaining > 0);
|
||||
}
|
||||
},
|
||||
set_numpad_state: function(numpadState) {
|
||||
if (this.numpadState) {
|
||||
|
||||
@@ -370,14 +370,21 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
|
||||
this.label = options.label || 'button';
|
||||
this.rightalign = options.rightalign || false;
|
||||
this.click_action = options.click;
|
||||
this.disabled = options.disabled || false;
|
||||
if(options.icon){
|
||||
this.icon = options.icon;
|
||||
this.template = this.icon_template;
|
||||
}
|
||||
},
|
||||
set_disabled: function(disabled){
|
||||
if(this.disabled != disabled){
|
||||
this.disabled = !!disabled;
|
||||
this.renderElement();
|
||||
}
|
||||
},
|
||||
renderElement: function(){
|
||||
this._super();
|
||||
if(this.click_action){
|
||||
if(this.click_action && !this.disabled){
|
||||
this.$el.click(_.bind(this.click_action, this));
|
||||
}
|
||||
},
|
||||
@@ -388,12 +395,12 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
|
||||
init: function(parent, options){
|
||||
this._super(parent,options);
|
||||
this.button_list = [];
|
||||
this.fake_buttons = {};
|
||||
this.buttons = {};
|
||||
this.visibility = {};
|
||||
},
|
||||
set_element_visible: function(element, visible, action){
|
||||
if(visible != this.visibility[element]){
|
||||
this.visibility[element] = visible;
|
||||
this.visibility[element] = !!visible;
|
||||
if(visible){
|
||||
this.$('.'+element).show();
|
||||
}else{
|
||||
@@ -401,14 +408,22 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
|
||||
}
|
||||
}
|
||||
if(visible && action){
|
||||
this.action[element] = action;
|
||||
this.$('.'+element).off('click').click(action);
|
||||
}
|
||||
},
|
||||
set_button_disabled: function(name, disabled){
|
||||
var b = this.buttons[name];
|
||||
if(b){
|
||||
b.set_disabled(disabled);
|
||||
}
|
||||
},
|
||||
destroy_buttons:function(){
|
||||
for(var i = 0; i < this.button_list.length; i++){
|
||||
this.button_list[i].destroy();
|
||||
}
|
||||
this.button_list = [];
|
||||
this.buttons = {};
|
||||
return this;
|
||||
},
|
||||
get_button_count: function(){
|
||||
@@ -417,6 +432,9 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
|
||||
add_new_button: function(button_options){
|
||||
var button = new module.ActionButtonWidget(this,button_options);
|
||||
this.button_list.push(button);
|
||||
if(button_options.name){
|
||||
this.buttons[button_options.name] = button;
|
||||
}
|
||||
button.appendTo(this.$('.pos-actionbar-button-list'));
|
||||
return button;
|
||||
},
|
||||
|
||||
@@ -540,7 +540,7 @@
|
||||
</t>
|
||||
|
||||
<t t-name="ActionButtonWidget">
|
||||
<li t-att-class=" 'button '+ (widget.rightalign ? 'rightalign ' : '')">
|
||||
<li t-att-class=" 'button '+ (widget.rightalign ? 'rightalign ' : '') + (widget.disabled ? 'disabled ' : '')">
|
||||
<div class='label'>
|
||||
<t t-esc="widget.label" />
|
||||
</div>
|
||||
@@ -548,7 +548,7 @@
|
||||
</t>
|
||||
|
||||
<t t-name="ActionButtonWidgetWithIcon">
|
||||
<li t-att-class=" 'button '+ (widget.rightalign ? 'rightalign ' : '')">
|
||||
<li t-att-class=" 'button '+ (widget.rightalign ? 'rightalign ' : '') + (widget.disabled ? 'disabled ' : '')">
|
||||
<div class='icon'>
|
||||
<img t-att-src="widget.icon" />
|
||||
<div class='iconlabel'><t t-esc="widget.label" /></div>
|
||||
|
||||
@@ -9,13 +9,21 @@
|
||||
<field name="model">make.procurement</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Procurement Request" version="7.0">
|
||||
<group col="4" string="This wizard will plan the procurement for this product. This procurement may generate task, production orders or purchase orders."/>
|
||||
<group>
|
||||
<field name="product_id" on_change="onchange_product_id(product_id)"/>
|
||||
<field name="qty"/>
|
||||
<field name="uom_id" groups="product.group_uom"/>
|
||||
<field name="date_planned"/>
|
||||
<p class="oe_gray">
|
||||
Fill is this for to launch a procurement request for this
|
||||
product. According to the product configuration, this may
|
||||
trigger a draft purchase order, a manufacturing order or
|
||||
a new task.
|
||||
</p>
|
||||
<group>
|
||||
<field name="warehouse_id" groups="stock.group_locations"/>
|
||||
<field name="product_id" on_change="onchange_product_id(product_id)"/>
|
||||
<label for="qty"/>
|
||||
<div>
|
||||
<field name="qty" class="oe_inline"/>
|
||||
<field name="uom_id" groups="product.group_uom"/>
|
||||
</div>
|
||||
<field name="date_planned"/>
|
||||
</group>
|
||||
<footer>
|
||||
<button name="make_procurement" string="Ask New Products" type="object" class="oe_highlight" />
|
||||
@@ -26,13 +34,13 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<act_window name="Procurement Request"
|
||||
res_model="make.procurement"
|
||||
src_model="product.product"
|
||||
view_mode="form"
|
||||
target="new"
|
||||
key2="client_action_multi"
|
||||
id="act_make_procurement"/>
|
||||
<record model="ir.actions.act_window" id="act_make_procurement">
|
||||
<field name="name">Procurement Request</field>
|
||||
<field name="res_model">make.procurement</field>
|
||||
<field name="src_model">product.product</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -288,13 +288,13 @@ class product_template(osv.osv):
|
||||
'rental': fields.boolean('Can be Rent'),
|
||||
'categ_id': fields.many2one('product.category','Category', required=True, change_default=True, domain="[('type','=','normal')]" ,help="Select category for the current product"),
|
||||
'list_price': fields.float('Sale Price', digits_compute=dp.get_precision('Product Price'), help="Base price for computing the customer price. Sometimes called the catalog price."),
|
||||
'standard_price': fields.float('Cost Price', required=True, digits_compute=dp.get_precision('Product Price'), help="Product's cost for accounting stock valuation. It is the base price for the supplier price.", groups="base.group_user"),
|
||||
'standard_price': fields.float('Cost', digits_compute=dp.get_precision('Product Price'), help="Product's cost for accounting stock valuation. It is the base price for the supplier price.", groups="base.group_user"),
|
||||
'volume': fields.float('Volume', help="The volume in m3."),
|
||||
'weight': fields.float('Gross Weight', digits_compute=dp.get_precision('Stock Weight'), help="The gross weight in Kg."),
|
||||
'weight_net': fields.float('Net Weight', digits_compute=dp.get_precision('Stock Weight'), help="The net weight in Kg."),
|
||||
'cost_method': fields.selection([('standard','Standard Price'), ('average','Average Price')], 'Costing Method', required=True,
|
||||
help="Standard Price: the cost price is fixed and recomputed periodically (usually at the end of the year), Average Price: the cost price is recomputed at each reception of products."),
|
||||
'warranty': fields.float('Warranty (months)'),
|
||||
'warranty': fields.float('Warranty'),
|
||||
'sale_ok': fields.boolean('Can be Sold', help="Determines if the product can be visible in the list of product within a selection from a sale order line."),
|
||||
'purchase_ok': fields.boolean('Can be Purchased', help="Determine if the product is visible in the list of products within a selection from a purchase order line."),
|
||||
'state': fields.selection([('',''),
|
||||
@@ -302,7 +302,7 @@ class product_template(osv.osv):
|
||||
('sellable','Normal'),
|
||||
('end','End of Lifecycle'),
|
||||
('obsolete','Obsolete')], 'Status', help="Tells the user if he can use the product or not."),
|
||||
'uom_id': fields.many2one('product.uom', 'Default Unit of Measure', required=True, help="Default Unit of Measure used for all stock operation."),
|
||||
'uom_id': fields.many2one('product.uom', 'Unit of Measure', required=True, help="Default Unit of Measure used for all stock operation."),
|
||||
'uom_po_id': fields.many2one('product.uom', 'Purchase Unit of Measure', required=True, help="Default Unit of Measure used for purchase orders. It must be in the same category than the default unit of measure."),
|
||||
'uos_id' : fields.many2one('product.uom', 'Unit of Sale',
|
||||
help='Used by companies that manage two units of measure: invoicing and inventory management. For example, in food industries, you will manage a stock of ham but invoice in Kg. Keep empty to use the default Unit of Measure.'),
|
||||
@@ -354,7 +354,7 @@ class product_template(osv.osv):
|
||||
'list_price': lambda *a: 1,
|
||||
'cost_method': lambda *a: 'standard',
|
||||
'supply_method': lambda *a: 'buy',
|
||||
'standard_price': lambda *a: 1,
|
||||
'standard_price': lambda *a: 0.0,
|
||||
'sale_ok': lambda *a: 1,
|
||||
'sale_delay': lambda *a: 7,
|
||||
'produce_delay': lambda *a: 1,
|
||||
@@ -535,9 +535,9 @@ class product_product(osv.osv):
|
||||
'outgoing_qty': fields.function(_product_outgoing_qty, type='float', string='Outgoing'),
|
||||
'price': fields.function(_product_price, type='float', string='Pricelist', digits_compute=dp.get_precision('Product Price')),
|
||||
'lst_price' : fields.function(_product_lst_price, type='float', string='Public Price', digits_compute=dp.get_precision('Product Price')),
|
||||
'code': fields.function(_product_code, type='char', string='Reference'),
|
||||
'code': fields.function(_product_code, type='char', string='Internal Reference'),
|
||||
'partner_ref' : fields.function(_product_partner_ref, type='char', string='Customer ref'),
|
||||
'default_code' : fields.char('Reference', size=64, select=True),
|
||||
'default_code' : fields.char('Internal Reference', size=64, select=True),
|
||||
'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the product without removing it."),
|
||||
'variants': fields.char('Variants', size=64),
|
||||
'product_tmpl_id': fields.many2one('product.template', 'Product Template', required=True, ondelete="cascade"),
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
<filter string="Services" icon="terp-accessories-archiver" domain="[('type','=','service')]"/>
|
||||
<filter string="Products" icon="terp-accessories-archiver" domain="['|',('type','=','product'),('type','=','consu')]" help="Both stockable and consumable products"/>
|
||||
<separator/>
|
||||
<filter string="To Sell" name="filter_to_sell" icon="terp-accessories-archiver-minus" domain="[('sale_ok','=',1)]"/>
|
||||
<separator/>
|
||||
<filter name="filter_to_purchase" string="To Purchase" icon="terp-accessories-archiver+" domain="[('purchase_ok', '=', 1)]"/>
|
||||
<filter string="Can be Sold" name="filter_to_sell" icon="terp-accessories-archiver-minus" domain="[('sale_ok','=',1)]"/>
|
||||
<filter name="filter_to_purchase" string="Can be Purchased" icon="terp-accessories-archiver+" domain="[('purchase_ok', '=', 1)]"/>
|
||||
@@ -71,6 +69,12 @@
|
||||
</h1>
|
||||
<label for="categ_id" class="oe_edit_only"/>
|
||||
<h2><field name="categ_id"/></h2>
|
||||
<div name="options" groups="base.group_user">
|
||||
<field name="sale_ok"/>
|
||||
<label for="sale_ok"/>
|
||||
<field name="purchase_ok"/>
|
||||
<label for="purchase_ok"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="oe_right oe_button_box" name="buttons">
|
||||
</div>
|
||||
@@ -78,57 +82,77 @@
|
||||
<page string="Information">
|
||||
<group>
|
||||
<group>
|
||||
<field name="default_code"/>
|
||||
<field name="ean13" placeholder="e.g. 5901234123457"/>
|
||||
<field groups="product.group_product_variant" name="variants"/>
|
||||
</group>
|
||||
<group groups="base.group_user">
|
||||
<field name="sale_ok"/>
|
||||
<field name="purchase_ok"/>
|
||||
</group>
|
||||
<group string="Procurement">
|
||||
<field name="type"/>
|
||||
<field name="procure_method" groups="base.group_user" attrs="{'invisible':[('type','=', 'service')]}"/>
|
||||
</group>
|
||||
<group string="Prices">
|
||||
<field name="uom_id" on_change="onchange_uom(uom_id,uom_po_id)" groups="product.group_uom"/>
|
||||
<field name="list_price"/>
|
||||
<field name="cost_method" groups="product.group_costing_method"/>
|
||||
<field name="standard_price" attrs="{'readonly':[('cost_method','=','average')]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="default_code"/>
|
||||
<label for="ean13"/>
|
||||
<div name="ean">
|
||||
<field name="ean13" placeholder="e.g. 5901234123457"/>
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<field groups="product.group_product_variant" name="variants"/>
|
||||
<field name="price_margin" groups="product.group_product_variant"/>
|
||||
<field name="price_extra" groups="product.group_product_variant"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
<field name="description" placeholder="describe the product's characteristics for internal use..."/>
|
||||
</page>
|
||||
<page string="Procurements" groups="base.group_user">
|
||||
<group name="procurement">
|
||||
<group>
|
||||
<field name="procure_method" groups="base.group_user" attrs="{'invisible':[('type','=', 'service')]}"/>
|
||||
<field name="cost_method" groups="product.group_costing_method"/>
|
||||
<field name="standard_price" attrs="{'readonly':[('cost_method','=','average')]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="uom_po_id" groups="product.group_uom"/>
|
||||
</group>
|
||||
</group>
|
||||
<separator string="Notes for Suppliers"/>
|
||||
<field name="description_purchase" placeholder="This note will be displayed on requests for quotation..."/>
|
||||
</page>
|
||||
<page string="Inventory" groups="base.group_user">
|
||||
<group name="inventory">
|
||||
<group name="status" string="Status">
|
||||
<field name="state"/>
|
||||
<field name="product_manager"/>
|
||||
</group>
|
||||
<group name="store" string="Storage Localisation">
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
<field name="loc_rack" attrs="{'invisible':[('type','=','service')]}"/>
|
||||
<field name="loc_row" attrs="{'invisible':[('type','=','service')]}"/>
|
||||
<field name="loc_case" attrs="{'invisible':[('type','=','service')]}"/>
|
||||
</group>
|
||||
<group groups="product.group_stock_packaging" string="Weights">
|
||||
<field digits="(14, 3)" name="volume" attrs="{'readonly':[('type','=','service')]}"/>
|
||||
<field name="weight" attrs="{'readonly':[('type','=','service')]}"/>
|
||||
<field name="weight_net" attrs="{'readonly':[('type','=','service')]}"/>
|
||||
</group>
|
||||
|
||||
<group name="uom" groups="product.group_uom" string="Unit of Measure">
|
||||
<field name="uom_id" on_change="onchange_uom(uom_id,uom_po_id)"/>
|
||||
<field name="uom_po_id"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Sales" attrs="{'readonly':[('sale_ok','=',0)]}">
|
||||
<group name="sale">
|
||||
<group string="Sale Conditions">
|
||||
<label for="sale_delay"/>
|
||||
<div>
|
||||
<field name="sale_delay" class="oe_inline"/> days
|
||||
</div>
|
||||
<label for="warranty"/>
|
||||
<div>
|
||||
<field name="warranty" class="oe_inline"/> months
|
||||
</div>
|
||||
</group>
|
||||
<group groups="product.group_uos" string="Unit of Measure">
|
||||
<field name="uos_id"/>
|
||||
<field name="uos_coeff"/>
|
||||
<field name="mes_type"/>
|
||||
</group>
|
||||
|
||||
<group name="status" string="Status">
|
||||
<field name="state"/>
|
||||
<field name="product_manager"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
</page>
|
||||
<page string="Descriptions" groups="base.group_user">
|
||||
<separator string="Description"/>
|
||||
<field name="description"/>
|
||||
<separator string="Sale Description"/>
|
||||
<field name="description_sale" placeholder="This note will be displayed on quotations..."/>
|
||||
<separator string="Purchase Description"/>
|
||||
<field name="description_purchase" placeholder="This note will be displayed on requests for quotation..."/>
|
||||
</page>
|
||||
<page groups="product.group_stock_packaging" string="Packaging">
|
||||
<field name="packaging">
|
||||
<field name="packaging" groups="product.group_stock_packaging">
|
||||
<form string="Packaging" version="7.0">
|
||||
<group col="4">
|
||||
<field name="ean"/>
|
||||
@@ -150,6 +174,8 @@
|
||||
<field name="name"/>
|
||||
</form>
|
||||
</field>
|
||||
<separator string="Notes on Quotations"/>
|
||||
<field name="description_sale" placeholder="note to be displayed on quotations..."/>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
@@ -162,42 +188,30 @@
|
||||
</record>
|
||||
|
||||
<!-- Product Kanban View -->
|
||||
<record model="ir.ui.view" id="product_kanban_view">
|
||||
|
||||
<record model="ir.ui.view" id="product.product_kanban_view">
|
||||
<field name="name">Product Kanban</field>
|
||||
<field name="model">product.product</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban>
|
||||
<field name="color"/>
|
||||
<field name="type"/>
|
||||
<field name="image_medium"/>
|
||||
<field name="image_small"/>
|
||||
<field name="list_price"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<t t-if="record.type.raw_value!='service' and record.qty_available.raw_value lte 0" t-set="border">oe_kanban_color_red</t>
|
||||
<div t-attf-class="#{kanban_color(record.color.raw_value)} #{border || ''}">
|
||||
<div class="oe_kanban_box oe_kanban_color_border">
|
||||
<div class="oe_kanban_box_header oe_kanban_color_bgdark oe_kanban_color_border oe_kanban_draghandle oe_kanban_title">
|
||||
<field name="name"/>
|
||||
</div>
|
||||
<div class="oe_kanban_box_content oe_kanban_color_bglight oe_kanban_box_show_onclick_trigger">
|
||||
<img t-att-src="kanban_image('product.product', 'image_medium', record.id.value)" width="48" style="float: left; padding: 0 4px 4px 0"/>
|
||||
Code: <field name="code"/>
|
||||
<div t-if="record.type.raw_value == 'service'">No Stock</div>
|
||||
<t t-if="record.type.raw_value != 'service'">
|
||||
<div>Stock: <field name="qty_available"/> on hand, <field name="virtual_available"/> available</div>
|
||||
<div t-if="record.list_price.raw_value != 0">Public Price: <field name="lst_price"/></div>
|
||||
<!-- TODO would deserve to be hidden at the field level -->
|
||||
<div groups="base.group_user">Cost : <field name="standard_price"/></div>
|
||||
</t>
|
||||
<div class="oe_kanban_clear"/>
|
||||
</div>
|
||||
<div class="oe_kanban_buttons_set oe_kanban_color_border oe_kanban_color_bglight oe_kanban_box_show_onclick">
|
||||
<div class="oe_kanban_left">
|
||||
<a string="Edit" icon="gtk-edit" type="edit"/>
|
||||
<a string="Change Color" icon="color-picker" type="color" name="color"/>
|
||||
</div>
|
||||
<div class="oe_kanban_clear"/>
|
||||
</div>
|
||||
<div class="oe_kanban_vignette">
|
||||
<a type="open"><img t-att-src="kanban_image('product.product', 'image_small', record.id.value)" class="oe_kanban_image"/></a>
|
||||
<div class="oe_kanban_details">
|
||||
<h4>
|
||||
<a type="open">
|
||||
<t t-if="record.code.raw_value">[<field name="code"/>]</t> <field name="name"/>
|
||||
</a>
|
||||
</h4>
|
||||
<div name="tags"/>
|
||||
<ul>
|
||||
<li>Price: <field name="lst_price"></field></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
@@ -227,7 +241,7 @@
|
||||
<field name="name">Products</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">product.product</field>
|
||||
<field name="view_mode">tree,form,kanban</field>
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="context">{"search_default_filter_to_sell":1}</field>
|
||||
<field name="view_id" ref="product_product_tree_view"/>
|
||||
@@ -250,7 +264,7 @@
|
||||
<record id="open_view_product_tree1" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="2"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="product_product_tree_view"/>
|
||||
<field name="view_id" ref="product_product_tree_view"/>
|
||||
<field name="act_window_id" ref="product_normal_action_sell"/>
|
||||
</record>
|
||||
|
||||
@@ -264,8 +278,8 @@
|
||||
<record id="open_view_product_kanban1" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">kanban</field>
|
||||
<field name="view_id" ref="product_kanban_view"/>
|
||||
<field name="act_window_id" ref="product_normal_action"/>
|
||||
<field name="view_id" ref="product_kanban_view"/>
|
||||
<field name="act_window_id" ref="product_normal_action_sell"/>
|
||||
</record>
|
||||
|
||||
<menuitem id="base.menu_product" name="Products" parent="base.menu_base_partner" sequence="9"/>
|
||||
@@ -534,7 +548,7 @@
|
||||
<field name="model">product.packaging</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Packaging">
|
||||
<field name="sequence" invisible="1"/>
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="ean"/>
|
||||
<field name="qty"/>
|
||||
<field name="ul"/>
|
||||
@@ -606,7 +620,7 @@
|
||||
<field name="model">product.supplierinfo</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Supplier Information">
|
||||
<field name="sequence" string="Seq"/>
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
<field name="delay"/>
|
||||
<field name="min_qty"/>
|
||||
@@ -716,7 +730,10 @@
|
||||
<group>
|
||||
<group name="delay" string="Delays">
|
||||
<field name="sale_delay" attrs="{'readonly':[('sale_ok','=',0)]}"/>
|
||||
<field name="produce_delay"/>
|
||||
<label for="produce_delay"/>
|
||||
<div>
|
||||
<field name="produce_delay" class="oe_inline"/> days
|
||||
</div>
|
||||
<field name="warranty"/>
|
||||
</group>
|
||||
<group name="store" string="Storage Localisation">
|
||||
|
||||
@@ -21,14 +21,14 @@
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit_id" ref="product.product_normal_form_view" />
|
||||
<field name="arch" type="xml">
|
||||
<notebook position="inside">
|
||||
<page string="Dates">
|
||||
<group name="inventory">
|
||||
<group string="Dates">
|
||||
<field name="life_time" />
|
||||
<field name="use_time" />
|
||||
<field name="removal_time" />
|
||||
<field name="alert_time" />
|
||||
</page>
|
||||
</notebook>
|
||||
</group>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
@@ -7,23 +7,21 @@
|
||||
<field name="model">product.product</field>
|
||||
<field name="inherit_id" ref="product.product_normal_form_view" />
|
||||
<field name="arch" type="xml">
|
||||
<notebook position="inside">
|
||||
<page string="Manufacturer">
|
||||
<group string="Manufacturer">
|
||||
<field name="manufacturer" />
|
||||
<field name="manufacturer_pname"/>
|
||||
<field name="manufacturer_pref"/>
|
||||
</group>
|
||||
<group string="Attributes">
|
||||
<field name="attribute_ids" colspan="4" nolabel="1">
|
||||
<tree string="Product Attributes" editable="bottom">
|
||||
<field name="name"/>
|
||||
<field name="value"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
<group name="procurement" position="inside">
|
||||
<group string="Manufacturer">
|
||||
<field name="manufacturer" />
|
||||
<field name="manufacturer_pname"/>
|
||||
<field name="manufacturer_pref"/>
|
||||
</group>
|
||||
<group string="Attributes">
|
||||
<field name="attribute_ids" colspan="4" nolabel="1">
|
||||
<tree string="Product Attributes" editable="bottom">
|
||||
<field name="name"/>
|
||||
<field name="value"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -1159,6 +1159,45 @@ class task(base_stage, osv.osv):
|
||||
result += "\n"
|
||||
return result
|
||||
|
||||
# ---------------------------------------------------
|
||||
# mail gateway
|
||||
# ---------------------------------------------------
|
||||
|
||||
def message_new(self, cr, uid, msg, custom_values=None, context=None):
|
||||
""" Override to updates the document according to the email. """
|
||||
if custom_values is None: custom_values = {}
|
||||
custom_values.update({
|
||||
'name': subject,
|
||||
'planned_hours': 0.0,
|
||||
'subject': msg.get('subject'),
|
||||
})
|
||||
return super(project_tasks,self).message_new(cr, uid, msg, custom_values=custom_values, context=context)
|
||||
|
||||
def message_update(self, cr, uid, ids, msg, update_vals=None, context=None):
|
||||
""" Override to update the task according to the email. """
|
||||
if update_vals is None: update_vals = {}
|
||||
act = False
|
||||
maps = {
|
||||
'cost':'planned_hours',
|
||||
}
|
||||
for line in msg['body'].split('\n'):
|
||||
line = line.strip()
|
||||
res = tools.misc.command_re.match(line)
|
||||
if res:
|
||||
match = res.group(1).lower()
|
||||
field = maps.get(match)
|
||||
if field:
|
||||
try:
|
||||
update_vals[field] = float(res.group(2).lower())
|
||||
except (ValueError, TypeError):
|
||||
pass
|
||||
elif match.lower() == 'state' \
|
||||
and res.group(2).lower() in ['cancel','close','draft','open','pending']:
|
||||
act = 'do_%s' % res.group(2).lower()
|
||||
if act:
|
||||
getattr(self,act)(cr, uid, ids, context=context)
|
||||
return super(project_tasks,self).message_update(cr, uid, msg, update_vals=update_vals, context=context)
|
||||
|
||||
# ---------------------------------------------------
|
||||
# OpenChatter methods and notifications
|
||||
# ---------------------------------------------------
|
||||
|
||||
@@ -218,7 +218,7 @@
|
||||
<field name="name">project.project.kanban</field>
|
||||
<field name="model">project.project</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban>
|
||||
<kanban version="7.0" class="oe_background_grey">
|
||||
<field name="effective_hours"/>
|
||||
<field name="planned_hours"/>
|
||||
<field name="name"/>
|
||||
|
||||
@@ -1,102 +0,0 @@
|
||||
# Arabic translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2012-01-12 21:12+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Arabic <ar@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "معلومات المحفوظات"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "مهمة"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "خطأ ! لا يمكنك انشاء مهام رجعية."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "الرسائل"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "مسودة"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr "خطأ! يجب ان يكون تاريخ انتهاء المهمة اكبر من تاريخ البداية"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "إلغاء"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "تم"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "فتح"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "معلّق"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "محفوظات"
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "مرفقات"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "تفاصيل"
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "مدخل بريد المشروع"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This module is an interface that synchronises mails with OpenERP Project "
|
||||
#~ "Task.\n"
|
||||
#~ "\n"
|
||||
#~ "It allows creating tasks as soon as a new mail arrives in our configured "
|
||||
#~ "mail server.\n"
|
||||
#~ "Moreover, it keeps track of all further communications and task states.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "هذه الوحدة هي تفاعل التي تتزامن البريد مع مهام مشروع OpenERP .\n"
|
||||
#~ "وهي تسمح بإنشاء المهام في اقرب وقت كما يصل البريد الجديد في خادم البريد الذي "
|
||||
#~ "تم ضبطه.\n"
|
||||
#~ "علاوة على ذلك, تستمر في تعقب المزيد من كل الاتصالات وحالات المهمة.\n"
|
||||
#~ " "
|
||||
@@ -1,106 +0,0 @@
|
||||
# Catalan translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2011-02-06 21:57+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Catalan <ca@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Informació històrica"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Tasca"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "Error! No podeu crear tasques recursives."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Missatges"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Esborrany"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
"Error ! La data final de la tasca ha de ser major que la data d'inici"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Canceŀla"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Realitzat"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Obre"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Pendent"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Històric"
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "Ruta d'enllaç del projecte"
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "Adjunts"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Detalls"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This module is an interface that synchronises mails with OpenERP Project "
|
||||
#~ "Task.\n"
|
||||
#~ "\n"
|
||||
#~ "It allows creating tasks as soon as a new mail arrives in our configured "
|
||||
#~ "mail server.\n"
|
||||
#~ "Moreover, it keeps track of all further communications and task states.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "Aquest mòdul proporciona una interfície per sincronitzar correus amb les "
|
||||
#~ "tasques de projectes d'OpenERP.\n"
|
||||
#~ "\n"
|
||||
#~ "Permet crear tasques tan aviat com arriba un nou correu en el nostre "
|
||||
#~ "servidor de correu prèviament configurat.\n"
|
||||
#~ "A més realitza un seguiment de totes les comunicacions addicionals i estats "
|
||||
#~ "de la tasca.\n"
|
||||
#~ " "
|
||||
@@ -1,78 +0,0 @@
|
||||
# Czech translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 06:41+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"Language-Team: Czech <cs@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Informace historie"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Úkol"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "Chyba ! Nemůžete vytvořit rekurzivní úkoly."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Zprávy"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Koncept"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr "Chyba ! Datum ukončení úkolu musí být větší než počáteční datum"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Zrušit"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Dokončené"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Otevřené"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Čekající"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Historie"
|
||||
@@ -1,78 +0,0 @@
|
||||
# Danish translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2012-01-27 06:33+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Danish <da@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr ""
|
||||
@@ -1,106 +0,0 @@
|
||||
# German translation for openobject-addons
|
||||
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2010-12-31 10:37+0000\n"
|
||||
"Last-Translator: Thorsten Vocks (OpenBig.org) <thorsten.vocks@big-"
|
||||
"consulting.net>\n"
|
||||
"Language-Team: German <de@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Information Historie"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Aufgabe"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "Fehler ! Sie können keine rekursiven Aufgaben definieren."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Nachrichten"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Entwurf"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr "Fehler! Aufgaben End-Datum muss größer als Aufgaben-Beginn sein"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Erledigt"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Offen"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Im Wartezustand"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Historie"
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "Projekte Mailgateway"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This module is an interface that synchronises mails with OpenERP Project "
|
||||
#~ "Task.\n"
|
||||
#~ "\n"
|
||||
#~ "It allows creating tasks as soon as a new mail arrives in our configured "
|
||||
#~ "mail server.\n"
|
||||
#~ "Moreover, it keeps track of all further communications and task states.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "Dieses Modul ermöglicht die Synchronisation von Email mit openERP "
|
||||
#~ "Projektaufgaben.\n"
|
||||
#~ "\n"
|
||||
#~ "Es ermöglicht die Erstellung einer neuen Aufgabe sobald eine neue EMail von "
|
||||
#~ "Ihrem Mailserver empfangen wird.\n"
|
||||
#~ "Ausserdem können Sie dann alle weitere Korrespondenz und Kommunikation "
|
||||
#~ "rückverfolgen sowie den Status der Aufgabe überwachen.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Details"
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "Anhänge"
|
||||
@@ -1,106 +0,0 @@
|
||||
# Spanish translation for openobject-addons
|
||||
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2010-12-28 08:35+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Información histórica"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Tarea"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "¡Error! No puede crear tareas recursivas."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Mensajes"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Borrador"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
"¡ Error ! La fecha final de la tarea debe ser mayor que la fecha de inicio"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Realizado"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Pendiente"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Historial"
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "Ruta de enlace del proyecto"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Detalles"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This module is an interface that synchronises mails with OpenERP Project "
|
||||
#~ "Task.\n"
|
||||
#~ "\n"
|
||||
#~ "It allows creating tasks as soon as a new mail arrives in our configured "
|
||||
#~ "mail server.\n"
|
||||
#~ "Moreover, it keeps track of all further communications and task states.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "Este módulo proporciona una interfaz para sincronizar correos con las tareas "
|
||||
#~ "de proyectos de OpenERP.\n"
|
||||
#~ "Permite crear tareas tan pronto como llega un nuevo correo en nuestro "
|
||||
#~ "servidor de correo previamente configurado.\n"
|
||||
#~ "Además realiza un seguimiento de todas las comunicaciones adicionales y "
|
||||
#~ "estados de la tarea.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "Adjuntos"
|
||||
@@ -1,107 +0,0 @@
|
||||
# Spanish translation for openobject-addons
|
||||
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2012-02-17 00:30+0000\n"
|
||||
"Last-Translator: Carlos Vásquez (CLEARCORP) "
|
||||
"<carlos.vasquez@clearcorp.co.cr>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
"Language: es\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Información histórica"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Tarea"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "¡Error! No puede crear tareas recursivas."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Mensajes"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Borrador"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
"¡ Error ! La fecha final de la tarea debe ser mayor que la fecha de inicio"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Realizado"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Pendiente"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Historial"
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "Ruta de enlace del proyecto"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Detalles"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This module is an interface that synchronises mails with OpenERP Project "
|
||||
#~ "Task.\n"
|
||||
#~ "\n"
|
||||
#~ "It allows creating tasks as soon as a new mail arrives in our configured "
|
||||
#~ "mail server.\n"
|
||||
#~ "Moreover, it keeps track of all further communications and task states.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "Este módulo proporciona una interfaz para sincronizar correos con las tareas "
|
||||
#~ "de proyectos de OpenERP.\n"
|
||||
#~ "Permite crear tareas tan pronto como llega un nuevo correo en nuestro "
|
||||
#~ "servidor de correo previamente configurado.\n"
|
||||
#~ "Además realiza un seguimiento de todas las comunicaciones adicionales y "
|
||||
#~ "estados de la tarea.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "Adjuntos"
|
||||
@@ -1,108 +0,0 @@
|
||||
# Spanish translation for openobject-addons
|
||||
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2010-12-28 08:35+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 05:56+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Información histórica"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Tarea"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.module.module,description:project_mailgate.module_meta_information
|
||||
msgid ""
|
||||
"This module is an interface that synchronises mails with OpenERP Project "
|
||||
"Task.\n"
|
||||
"\n"
|
||||
"It allows creating tasks as soon as a new mail arrives in our configured "
|
||||
"mail server.\n"
|
||||
"Moreover, it keeps track of all further communications and task states.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"Este módulo proporciona una interfaz para sincronizar correos con las tareas "
|
||||
"de proyectos de OpenERP.\n"
|
||||
"Permite crear tareas tan pronto como llega un nuevo correo en nuestro "
|
||||
"servidor de correo previamente configurado.\n"
|
||||
"Además realiza un seguimiento de todas las comunicaciones adicionales y "
|
||||
"estados de la tarea.\n"
|
||||
" "
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "Attachments"
|
||||
msgstr "Adjuntos"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.module.module,shortdesc:project_mailgate.module_meta_information
|
||||
msgid "Project MailGateWay"
|
||||
msgstr "Ruta de enlace del proyecto"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "¡Error! No puede crear tareas recursivas."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Mensajes"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:123
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Borrador"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "Details"
|
||||
msgstr "Detalles"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:149
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:143
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Realizado"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:129
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:135
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Pendiente"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Historial"
|
||||
@@ -1,108 +0,0 @@
|
||||
# Spanish translation for openobject-addons
|
||||
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2010-12-28 08:35+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 05:56+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Información histórica"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Tarea"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.module.module,description:project_mailgate.module_meta_information
|
||||
msgid ""
|
||||
"This module is an interface that synchronises mails with OpenERP Project "
|
||||
"Task.\n"
|
||||
"\n"
|
||||
"It allows creating tasks as soon as a new mail arrives in our configured "
|
||||
"mail server.\n"
|
||||
"Moreover, it keeps track of all further communications and task states.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"Este módulo proporciona una interfaz para sincronizar correos con las tareas "
|
||||
"de proyectos de OpenERP.\n"
|
||||
"Permite crear tareas tan pronto como llega un nuevo correo en nuestro "
|
||||
"servidor de correo previamente configurado.\n"
|
||||
"Además realiza un seguimiento de todas las comunicaciones adicionales y "
|
||||
"estados de la tarea.\n"
|
||||
" "
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "Attachments"
|
||||
msgstr "Adjuntos"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.module.module,shortdesc:project_mailgate.module_meta_information
|
||||
msgid "Project MailGateWay"
|
||||
msgstr "Ruta de enlace del proyecto"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "¡Error! No puede crear tareas recursivas."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Mensajes"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:123
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Borrador"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "Details"
|
||||
msgstr "Detalles"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:149
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:143
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Realizado"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:129
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:135
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Pendiente"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Historial"
|
||||
@@ -1,88 +0,0 @@
|
||||
# Finnish translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2011-06-22 10:01+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Finnish <fi@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Historiatiedot"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Tehtävä"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "Virhe ! Et voi luoda rekursiivisiä tehtäviä."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Viestit"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Luonnos"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
"Virhe! Tehtävän lopetuspäivän tulee olla myöhäisempi kuin aloituspäivä"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Peruuta"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Valmis"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Auki"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Odottava"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Historia"
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "Projektin sähköpostivälittäjä"
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "Liitteet"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Yksityiskohdat"
|
||||
@@ -1,106 +0,0 @@
|
||||
# French translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2011-01-13 23:14+0000\n"
|
||||
"Last-Translator: lholivier <olivier.lenoir@free.fr>\n"
|
||||
"Language-Team: French <fr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Historique"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Tâche"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "Erreur ! Vous ne pouvez pas créer de tâches récursives."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Messages"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Brouillon"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
"Erreur ! La date de fin de la tâche doit être postérieure à la date de "
|
||||
"démarrage"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Terminé"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Ouvert"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "En attente"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Historique"
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "Pièces jointes"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Détails"
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "Messagerie de Projet"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This module is an interface that synchronises mails with OpenERP Project "
|
||||
#~ "Task.\n"
|
||||
#~ "\n"
|
||||
#~ "It allows creating tasks as soon as a new mail arrives in our configured "
|
||||
#~ "mail server.\n"
|
||||
#~ "Moreover, it keeps track of all further communications and task states.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "Ce module est un interface de synchronisation des emails avec la gestion de "
|
||||
#~ "projet d'OpenERP.\n"
|
||||
#~ "\n"
|
||||
#~ "Il permet la création de tâches sur l'arrivée de nouveaux emails dans le "
|
||||
#~ "serveur de messagerie configuré.\n"
|
||||
#~ "De plus, il conserve les échanges ultérieurs et l'état des tâches.\n"
|
||||
#~ " "
|
||||
@@ -1,105 +0,0 @@
|
||||
# Galician translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2011-05-10 08:39+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Galician <gl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Información histórica"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Tarefa"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "Erro! Non pode crear tarefas recorrentes."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Mensaxes"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Borrador"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
"Erro! A data de remate da tarefa debe ser posterior á data de inicio da "
|
||||
"tarefa"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Anular"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Feito"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Pendente"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Historial"
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "Ruta de enlace do proxecto"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This module is an interface that synchronises mails with OpenERP Project "
|
||||
#~ "Task.\n"
|
||||
#~ "\n"
|
||||
#~ "It allows creating tasks as soon as a new mail arrives in our configured "
|
||||
#~ "mail server.\n"
|
||||
#~ "Moreover, it keeps track of all further communications and task states.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "Este módulo proporciona unha interface para sincronizar correos coas tarefas "
|
||||
#~ "de proxectos de OpenERP. Permite crear tarefas tan pronto como chegue un "
|
||||
#~ "novo correo no noso servidor de correo previamente configurado. Ademais "
|
||||
#~ "realiza un seguimento de tódalas comunicacións adicionais e dos estados da "
|
||||
#~ "tarefa.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "Anexos"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Detalles"
|
||||
@@ -1,104 +0,0 @@
|
||||
# Croatian translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2011-12-12 08:56+0000\n"
|
||||
"Last-Translator: Tomislav Bosnjakovic <Unknown>\n"
|
||||
"Language-Team: Croatian <hr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Informacije o povjesti"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Zadatak"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "Greška! Ne možete kreirati rekurzivne zadatke."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Poruke"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Nacrt"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Odustani"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Izvršeno"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Otvoreno"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Na čekanju"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Povijest"
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "MailGateWay projekta"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This module is an interface that synchronises mails with OpenERP Project "
|
||||
#~ "Task.\n"
|
||||
#~ "\n"
|
||||
#~ "It allows creating tasks as soon as a new mail arrives in our configured "
|
||||
#~ "mail server.\n"
|
||||
#~ "Moreover, it keeps track of all further communications and task states.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "Ovaj modul je sučelje za sinhronizaciju poruka sa OpenERP projektnim "
|
||||
#~ "zadacima.\n"
|
||||
#~ "\n"
|
||||
#~ "Omogućava kreiranje zadataka čim stigne novi e-mail na naš konfigurirani "
|
||||
#~ "mail poslužitelj.\n"
|
||||
#~ "Štoviše, čuva zapise o svim kasnijim komunikacijama i statusima zadataka.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "Privici"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Pojedinosti"
|
||||
@@ -1,84 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * project_mailgate
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2011-01-25 13:21+0000\n"
|
||||
"Last-Translator: NOVOTRADE RENDSZERHÁZ ( novotrade.hu ) "
|
||||
"<openerp@novotrade.hu>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Előzmény"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Feladat"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "Hiba! Nem hozhat létre rekurzív feladatokat."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Üzenetek"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Tervezet"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Mégsem"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Kész"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Nyitott"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Függőben lévő"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Előzmény"
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "Mellékletek"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Részletek"
|
||||
@@ -1,106 +0,0 @@
|
||||
# Italian translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2011-04-22 09:54+0000\n"
|
||||
"Last-Translator: simone.sandri <lexluxsox@hotmail.it>\n"
|
||||
"Language-Team: Italian <it@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Storico informazioni"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Attività"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "Errore ! Non è possibile creare attività ricorsive."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Messaggi"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Bozza"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
"Errore ! La data finale della mansione deve essere più vecchia di quella "
|
||||
"iniziale"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Annulla"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Completato"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Apri"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "In sospeso"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Storico"
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "Allegati"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Dettagli"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This module is an interface that synchronises mails with OpenERP Project "
|
||||
#~ "Task.\n"
|
||||
#~ "\n"
|
||||
#~ "It allows creating tasks as soon as a new mail arrives in our configured "
|
||||
#~ "mail server.\n"
|
||||
#~ "Moreover, it keeps track of all further communications and task states.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "Questo modulo è una infertaccia che sincronizza mail con le attività di "
|
||||
#~ "progetto di OpenERP.\n"
|
||||
#~ "\n"
|
||||
#~ "Esso permette di creare attività non appena una nuova mail arriva nel mail "
|
||||
#~ "server configurato.\n"
|
||||
#~ "Inoltre, tiene traccia di tutte le comunicazioni e lo stato delle attività.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "Ingresso Mail di Progetto"
|
||||
@@ -1,78 +0,0 @@
|
||||
# Japanese translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2012-06-10 03:13+0000\n"
|
||||
"Last-Translator: Akira Hiyama <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "履歴情報"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "タスク"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "エラー。再帰的なタスクを作成することはできません。"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "メッセージ"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "ドラフト"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr "エラー。タスクの終了日は開始日以降の日付に設定しなければなりません。"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "キャンセル"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "完了"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "開く"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "保留中"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "履歴"
|
||||
@@ -1,87 +0,0 @@
|
||||
# Latvian translation for openobject-addons
|
||||
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2010-12-31 10:38+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: Latvian <lv@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Vēstures informācija"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Uzdevums"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "Kļūda! Nedrīkst veidot rekursīvus uzdevumus."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Ziņojumi"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Melnraksts"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Atcelt"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Pabeigts"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Atvērt"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Neizlemts"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Vēsture"
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "Projekta MailGateWay"
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "Piesaistnes"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Sīkāka informācija"
|
||||
@@ -1,85 +0,0 @@
|
||||
# Mongolian translation for openobject-addons
|
||||
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2010-12-21 13:53+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: Mongolian <mn@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Түүх"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Ажил"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "Алдаа ! Та рекурсив цэс үүсгэж болохгүй!"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Мессежүүд"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Ноорог"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
"Алдаа ! Даалгаврын дуусах хугацаа нь эхлэх хугацаанаасаа хойно байх ёстой"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Болих"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Хийсэн"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Нээх"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Хүлээгдэж буй"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Түүх"
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "MailGateWay Төсөл"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Нарийвчлал"
|
||||
@@ -1,104 +0,0 @@
|
||||
# Dutch translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2011-01-18 20:55+0000\n"
|
||||
"Last-Translator: Douwe Wullink (Dypalio) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Historie informatie"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Taak"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "Fout! U kunt geen recursieve taken aanmaken."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Berichten"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Concept"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr "Fout! Einddatum taak moet groter zijn dat begindatum taak"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleren"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Gereed"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Open"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Wachtend"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Geschiedenis"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This module is an interface that synchronises mails with OpenERP Project "
|
||||
#~ "Task.\n"
|
||||
#~ "\n"
|
||||
#~ "It allows creating tasks as soon as a new mail arrives in our configured "
|
||||
#~ "mail server.\n"
|
||||
#~ "Moreover, it keeps track of all further communications and task states.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "Deze module is een interface dat mail synchroniseert met OpenERP Project "
|
||||
#~ "taak.\n"
|
||||
#~ "\n"
|
||||
#~ "Het maakt nieuwe taken aan zodra mail binnenkomt op de ingestelde "
|
||||
#~ "mailserver.\n"
|
||||
#~ "Daarbij houdt het alle verdere communicaties en taak statussen bij.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "Bijlagen"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Details"
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "Project MailGateWay"
|
||||
@@ -1,105 +0,0 @@
|
||||
# Dutch (Belgium) translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2012-03-01 15:19+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Dutch (Belgium) <nl_BE@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Historiekinformatie"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Taak"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "U kunt niet dezelfde taken maken."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Berichten"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Voorlopig"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
"Let op: de einddatum van de taak moet na de begindatum van de taak liggen"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleren"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Gereed"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Open"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Wachtend"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Historiek"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This module is an interface that synchronises mails with OpenERP Project "
|
||||
#~ "Task.\n"
|
||||
#~ "\n"
|
||||
#~ "It allows creating tasks as soon as a new mail arrives in our configured "
|
||||
#~ "mail server.\n"
|
||||
#~ "Moreover, it keeps track of all further communications and task states.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "Deze module is een interface waarmee mails met OpenERP-projecttaken worden "
|
||||
#~ "gesynchroniseerd.\n"
|
||||
#~ "\n"
|
||||
#~ "Hiermee worden taken gemaakt zodra een nieuwe mail binnenkomt via de "
|
||||
#~ "ingestelde mailserver.\n"
|
||||
#~ "Bovendien worden alle communicatie en taakstatussen bijgehouden.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "Bijlagen"
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "Projectmailgateway"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Details"
|
||||
@@ -1,102 +0,0 @@
|
||||
# Polish translation for openobject-addons
|
||||
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2010-11-28 12:29+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: Polish <pl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Informacja o historii"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Zadanie"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Wiadomosći"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Projekt"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Anuluj"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Wykonano"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Otwórz"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Oczekujące"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Historia"
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "MailGateWay dla projektu"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This module is an interface that synchronises mails with OpenERP Project "
|
||||
#~ "Task.\n"
|
||||
#~ "\n"
|
||||
#~ "It allows creating tasks as soon as a new mail arrives in our configured "
|
||||
#~ "mail server.\n"
|
||||
#~ "Moreover, it keeps track of all further communications and task states.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "Ten moduł jest interfejsem do synchronizacji poczty z zadaniami w projektach "
|
||||
#~ "OpenERP.\n"
|
||||
#~ "\n"
|
||||
#~ "Pozwala tworzyć projekty po otrzymaniu wiadomości przez odpowiednio "
|
||||
#~ "skonfigurowany\n"
|
||||
#~ "server pocztowy. Co więcej, utrzymuje on w jednym miejscu dalszą komunikację "
|
||||
#~ "i stany zadań.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Szczegóły"
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * project_mailgate
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.1rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2012-02-08 00:37+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr ""
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr ""
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
# Portuguese translation for openobject-addons
|
||||
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2010-12-12 10:12+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: Portuguese <pt@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Informação do Histórico"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Tarefa"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "Erro ! Não se pode criar tarefas recursivas"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Mensagens"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Rascunho"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr "Erro !Data final da tarefa dever ser posterior à data inicial"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Concluído"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Pendente"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Histórico"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Detalhes"
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "Anexos"
|
||||
@@ -1,105 +0,0 @@
|
||||
# Brazilian Portuguese translation for openobject-addons
|
||||
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2011-01-17 11:53+0000\n"
|
||||
"Last-Translator: Emerson <Unknown>\n"
|
||||
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Informação Histórica"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Tarefa"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "Erro! Você não pode criar tarefas recursivas."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Mensagens"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Provisório"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr "Erro ! A data final deve ser maior do que a data inicial"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Concluído"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Abrir"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Pendente"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Histórico"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Detalhes"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This module is an interface that synchronises mails with OpenERP Project "
|
||||
#~ "Task.\n"
|
||||
#~ "\n"
|
||||
#~ "It allows creating tasks as soon as a new mail arrives in our configured "
|
||||
#~ "mail server.\n"
|
||||
#~ "Moreover, it keeps track of all further communications and task states.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "Este módulo é uma interface que sincroniza emails com as Tarefas de Projetos "
|
||||
#~ "OpenERP.\n"
|
||||
#~ "\n"
|
||||
#~ "Permite a criação de tarefas tão logo um novo email chegue no nosso servidor "
|
||||
#~ "de email configurado.\n"
|
||||
#~ "Além disso, mantém o controle de todas as demais comunicações e estados das "
|
||||
#~ "tarefas.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "Projeto Gateway de Email"
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "Anexos"
|
||||
@@ -1,107 +0,0 @@
|
||||
# Romanian translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2012-01-13 11:48+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Romanian <ro@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-08-28 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15864)\n"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History Information"
|
||||
msgstr "Istoric Informatii"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: model:ir.model,name:project_mailgate.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Sarcina"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "Eroare ! Nu puteti crea sarcini recursive."
|
||||
|
||||
#. module: project_mailgate
|
||||
#: field:project.task,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Mesaje"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:90
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Ciorna"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr ""
|
||||
"Eroare ! Data de sfarsit a sarcinii trebuie sa fie mai mare decat data de "
|
||||
"inceput"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:116
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Anulati"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:110
|
||||
#, python-format
|
||||
msgid "Done"
|
||||
msgstr "Efectuat"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:96
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Deschideti"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: code:addons/project_mailgate/project_mailgate.py:102
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "In asteptare"
|
||||
|
||||
#. module: project_mailgate
|
||||
#: view:project.task:0
|
||||
msgid "History"
|
||||
msgstr "Istoric"
|
||||
|
||||
#~ msgid "Project MailGateWay"
|
||||
#~ msgstr "MailGAteWay Proiect"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This module is an interface that synchronises mails with OpenERP Project "
|
||||
#~ "Task.\n"
|
||||
#~ "\n"
|
||||
#~ "It allows creating tasks as soon as a new mail arrives in our configured "
|
||||
#~ "mail server.\n"
|
||||
#~ "Moreover, it keeps track of all further communications and task states.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "Acest modul este o interfată care sincronizează email-urile cu Activitatea "
|
||||
#~ "de Proiect OpenERP.\n"
|
||||
#~ "\n"
|
||||
#~ "Permite crearea de sarcini de indată ce un nou email soseste in serverul de "
|
||||
#~ "mail configurat.\n"
|
||||
#~ "In plus, tine evidenta tuturor comunicatiilor viitoare si a stărilor "
|
||||
#~ "activitătilor.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid "Attachments"
|
||||
#~ msgstr "Atașamente"
|
||||
|
||||
#~ msgid "Details"
|
||||
#~ msgstr "Detalii"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user