[MERGE]: Merge with lp:~openerp-dev/openobject-addons/trunk-dev-addons2

bzr revid: rpa@tinyerp.com-20100517053521-1cl5ryikxq0g5d5e
This commit is contained in:
rpa (Open ERP) 2010-05-17 11:05:21 +05:30
commit 67b85ade2d
100 changed files with 9728 additions and 1506 deletions

View File

@ -160,5 +160,17 @@ class timesheet_invoice(osv.osv):
)""")
timesheet_invoice()
class res_partner(osv.osv):
""" Inherits partner and adds contract information in the partner form """
_inherit = 'res.partner'
_columns = {
'contract_ids': fields.one2many('account.analytic.account', \
'partner_id', 'Contracts'),
}
res_partner()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -478,6 +478,23 @@
<act_window domain="[('journal_id','=',active_id),('state','!=','draft'),('reconciled','=',False)]" id="act_account_journal_2_account_invoice_opened" name="Unpaid invoices" res_model="account.invoice" src_model="account.journal"/>
<act_window domain="[('account_analytic_id', '=', active_id)]" id="act_account_analytic_account_2_account_invoice_line" name="Invoice lines" res_model="account.invoice.line" src_model="account.analytic.account"/>
<!-- Partners inherited form -->
<record id="view_invoice_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.invoice.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Account Info">
<field name="invoice_ids" colspan="4" nolabel="1" context="{'group_by':'product_id'}"/>
</page>
</notebook>
</field>
</record>
</data>
</openerp>

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-04-17 18:26+0000\n"
"PO-Revision-Date: 2010-05-15 09:04+0000\n"
"Last-Translator: Boris <boris.t.ivanov@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-21 04:05+0000\n"
"X-Launchpad-Export-Date: 2010-05-17 05:01+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -1690,7 +1690,7 @@ msgstr "Разходи & приходи"
#. module: account
#: constraint:account.account:0
msgid "Error ! You can not create recursive accounts."
msgstr ""
msgstr "Грешка! Не могат да бъдат създавани рекурсивни сметки."
#. module: account
#: rml:account.tax.code.entries:0
@ -2150,7 +2150,8 @@ msgid "Analytic Entry"
msgstr "Аналитичен запис"
#. module: account
#: view:res.company:0 field:res.company,overdue_msg:0
#: view:res.company:0
#: field:res.company,overdue_msg:0
msgid "Overdue Payments Message"
msgstr ""

5924
addons/account/i18n/eu.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 14:46+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-05-14 17:04+0000\n"
"Last-Translator: Borja López Soilán (Pexego) <borjals@pexego.es>\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: 2010-04-17 04:06+0000\n"
"X-Launchpad-Export-Date: 2010-05-15 04:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -25,7 +25,7 @@ msgstr "Nome interno"
#. module: account
#: view:account.tax.code:0
msgid "Account Tax Code"
msgstr ""
msgstr "Código impuesto contable"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree9
@ -56,7 +56,7 @@ msgstr ""
#. module: account
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nome do modelo incorrecto na definición da acción."
#. module: account
#: help:account.journal,currency:0
@ -806,7 +806,6 @@ msgstr ""
msgid "Move Lines"
msgstr ""
#. module: account
#: model:ir.actions.act_window,name:account.report_account_analytic_journal_tree
#: model:ir.ui.menu,name:account.report_account_analytic_journal_print
@ -2134,7 +2133,8 @@ msgid "Analytic Entry"
msgstr ""
#. module: account
#: view:res.company:0 field:res.company,overdue_msg:0
#: view:res.company:0
#: field:res.company,overdue_msg:0
msgid "Overdue Payments Message"
msgstr ""

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-05-10 08:37+0000\n"
"Last-Translator: eLBati - albatos.com <lorenzo.battistini@albatos.com>\n"
"PO-Revision-Date: 2010-05-13 14:03+0000\n"
"Last-Translator: Carlo - didotech.com <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: 2010-05-11 04:18+0000\n"
"X-Launchpad-Export-Date: 2010-05-14 04:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -2158,7 +2158,8 @@ msgid "Analytic Entry"
msgstr "Registrazione analitica"
#. module: account
#: view:res.company:0 field:res.company,overdue_msg:0
#: view:res.company:0
#: field:res.company,overdue_msg:0
msgid "Overdue Payments Message"
msgstr ""
@ -2231,7 +2232,7 @@ msgstr ""
#. module: account
#: rml:account.invoice:0
msgid "VAT :"
msgstr ""
msgstr "IVA"
#. module: account
#: wizard_field:account.general.ledger.report,account_selection,Account_list:0
@ -4475,7 +4476,7 @@ msgstr "Registrazioni contabili"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_partner_account_move_unreconciled
msgid "Receivables & Payables"
msgstr "Invassi & Pagamenti"
msgstr "Incassi & Pagamenti"
#. module: account
#: rml:account.general.ledger:0

File diff suppressed because it is too large Load Diff

View File

@ -1496,4 +1496,15 @@ class account_invoice_tax(osv.osv):
return res
account_invoice_tax()
class res_partner(osv.osv):
""" Inherits partner and adds invoice information in the partner form """
_inherit = 'res.partner'
_columns = {
'invoice_ids': fields.one2many('account.invoice.line', 'partner_id', 'Invoices'),
}
res_partner()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -74,13 +74,13 @@
<page string="Accounting" position="inside">
<group col="2" colspan="2">
<separator string="Customer Accounting Properties" colspan="2"/>
<field name="property_account_receivable"/>
<field name="property_account_receivable" groups="base.group_extended" />
<field name="property_account_position" widget="selection"/>
<field name="property_payment_term" widget="selection"/>
</group>
<group col="2" colspan="2">
<separator string="Supplier Accounting Properties" colspan="2"/>
<field name="property_account_payable"/>
<field name="property_account_payable" groups="base.group_extended"/>
</group>
<group col="2" colspan="2">
<separator string="Customer Credit" colspan="2"/>

View File

@ -441,6 +441,21 @@
</graph>
</field>
</record>
<!-- Partners inherited form -->
<record id="view_contract_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.contract.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="invoice_ids" position="after">
<field name="contract_ids" colspan="4" nolabel="1" />
</field>
</field>
</record>
</data>
</openerp>

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 15:29+0000\n"
"Last-Translator: Ivica Perić <ivica.peric@ipsoft-tg.com>\n"
"PO-Revision-Date: 2010-05-16 20:18+0000\n"
"Last-Translator: Mario Tomljenović <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: 2010-04-17 04:09+0000\n"
"X-Launchpad-Export-Date: 2010-05-17 05:01+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_balance
@ -24,51 +24,51 @@ msgstr ""
#. module: account_balance
#: selection:account.balance.account.balance.report,init,account_choice:0
msgid "All accounts"
msgstr ""
msgstr "Svi računi"
#. module: account_balance
#: wizard_field:account.balance.account.balance.report,init,period_manner:0
msgid "Entries Selection Based on"
msgstr ""
msgstr "Odabir stavaka zasnovan na"
#. module: account_balance
#: wizard_view:account.balance.account.balance.report,backtoinit:0
#: wizard_view:account.balance.account.balance.report,zero_years:0
msgid "Notification"
msgstr ""
msgstr "Obavijest"
#. module: account_balance
#: selection:account.balance.account.balance.report,init,period_manner:0
msgid "Financial Period"
msgstr ""
msgstr "Financijsko razdoblje"
#. module: account_balance
#: model:ir.actions.report.xml,name:account_balance.account_account_balance
#: model:ir.actions.report.xml,name:account_balance.account_account_balance_landscape
msgid "Account balance"
msgstr ""
msgstr "Saldo računa"
#. module: account_balance
#: rml:account.account.balance.landscape:0
#: rml:account.balance.account.balance:0
msgid "Account Name"
msgstr ""
msgstr "Naziv računa"
#. module: account_balance
#: rml:account.account.balance.landscape:0
#: rml:account.balance.account.balance:0
msgid "Debit"
msgstr ""
msgstr "Dugovanje"
#. module: account_balance
#: wizard_button:account.balance.account.balance.report,init,checkyear:0
msgid "Print"
msgstr ""
msgstr "Ispis"
#. module: account_balance
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Select Period(s)"
msgstr ""
msgstr "Odaberite razdoblja"
#. module: account_balance
#: selection:account.balance.account.balance.report,init,compare_pattern:0

View File

@ -0,0 +1,312 @@
# Basque 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: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-05-14 16:07+0000\n"
"Last-Translator: Jon A. Ortuondo (Euskotec) <Unknown>\n"
"Language-Team: Basque <eu@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: 2010-05-15 04:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Sub Total"
msgstr "Sub Totala"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Invoice Date:"
msgstr "Fakturaren Data:"
#. module: account_invoice_layout
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Objetuaren izena x_ -z hasi behar da eta ezin ditu karaktere berezirik izan!"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Cancelled Invoice"
msgstr "Factura Ezeztatua(k)"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
#: field:notify.message,name:0
msgid "Title"
msgstr "Izenburua"
#. module: account_invoice_layout
#: model:ir.actions.wizard,name:account_invoice_layout.wizard_notify_message
msgid "Invoices with Layout and Message"
msgstr "Molde eta mezu-dun Fakturak"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Disc. (%)"
msgstr "Beherapena (%)"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "(Incl. taxes):"
msgstr "(Barne Zerga):"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Note"
msgstr "Oharra"
#. module: account_invoice_layout
#: wizard_button:wizard.notify_message,init,print:0
msgid "Print"
msgstr "Inprimatu"
#. module: account_invoice_layout
#: help:notify.message,msg:0
msgid ""
"This notification will appear at the bottom of the Invoices when printed."
msgstr "Ohar hau inprimatutako fakturaren oinean agertuko da."
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Unit Price"
msgstr "Unitate Prezioa"
#. module: account_invoice_layout
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
#. module: account_invoice_layout
#: model:ir.model,name:account_invoice_layout.model_notify_message
msgid "Notify By Messages"
msgstr "Mezuz Adierazi"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "PRO-FORMA"
msgstr "PRO-FORMA"
#. module: account_invoice_layout
#: field:account.invoice,abstract_line_ids:0
msgid "Invoice Lines"
msgstr "Faktura Lerroak"
#. module: account_invoice_layout
#: view:account.invoice.line:0
msgid "Seq."
msgstr "Sek."
#. module: account_invoice_layout
#: model:ir.ui.menu,name:account_invoice_layout.menu_finan_config_notify_message
msgid "Notification Message"
msgstr "Adierazpen Mezua"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Customer Ref:"
msgstr "Bezero Erref."
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid ")"
msgstr ""
#. module: account_invoice_layout
#: field:account.invoice.line,state:0
msgid "Type"
msgstr "Mota"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Price"
msgstr "Prezioa"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "/ ("
msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Taxes:"
msgstr "Zergak:"
#. module: account_invoice_layout
#: field:account.invoice.line,functional_field:0
msgid "Source Account"
msgstr "Jatorri Kontua"
#. module: account_invoice_layout
#: model:ir.actions.act_window,name:account_invoice_layout.notify_mesage_tree_form
msgid "Write Messages"
msgstr "Mezua Idatzi"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Base"
msgstr "Oinarria"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Fax :"
msgstr "Fax:"
#. module: account_invoice_layout
#: field:notify.message,msg:0
msgid "Special Message"
msgstr "Mezu Berezia"
#. module: account_invoice_layout
#: view:notify.message:0
msgid "Write a notification or a wishful message."
msgstr "Adierazpen edo zorion-idazkiak sartu"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Tel. :"
msgstr "Tel.:"
#. module: account_invoice_layout
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Page Break"
msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Document:"
msgstr ""
#. module: account_invoice_layout
#: wizard_view:wizard.notify_message,init:0
msgid "Select Message"
msgstr ""
#. module: account_invoice_layout
#: view:notify.message:0
msgid "Messages"
msgstr ""
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Product"
msgstr ""
#. module: account_invoice_layout
#: model:ir.actions.report.xml,name:account_invoice_layout.account_invoices_1
msgid "Invoices with Layout"
msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Description / Taxes"
msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Amount"
msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Description/Taxes"
msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Draft Invoice"
msgstr ""
#. module: account_invoice_layout
#: field:account.invoice.line,sequence:0
msgid "Sequence Number"
msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Quantity"
msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Refund"
msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "VAT :"
msgstr ""
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Separator Line"
msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Supplier Invoice"
msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Note :"
msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Tax"
msgstr ""
#. module: account_invoice_layout
#: model:ir.module.module,shortdesc:account_invoice_layout.module_meta_information
msgid "account_invoice_layout"
msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Total (Excl. taxes):"
msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Invoice"
msgstr ""
#. module: account_invoice_layout
#: wizard_button:wizard.notify_message,init,end:0
msgid "Cancel"
msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Supplier Refund"
msgstr ""
#. module: account_invoice_layout
#: wizard_field:wizard.notify_message,init,message:0
msgid "Message"
msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Total"
msgstr ""
#. module: account_invoice_layout
#: model:ir.ui.menu,name:account_invoice_layout.menu_notify_mesage_tree_form
msgid "All Notification Messages"
msgstr ""

View File

@ -44,6 +44,8 @@
<field name="log_unlink" />
<field name="log_create" />
<field name="state" />
<button string="Subscribe" name="subscribe"
type="object" states="draft" icon="gtk-go-forward"/>
</tree>
</field>
</record>

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
@ -15,34 +15,35 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
"name" : "Basic Calendar Functionality",
"version" : "1.0",
"depends" : ["base"],
"name" : "Basic Calendar Functionality",
"version" : "1.0",
"depends" : ["base"],
'description': """Full featured calendar system that support:
- Alerts (create requests)
- Recurring events (*)
- Invitations to others people""",
"author" : "Tiny",
'category': 'Generic Modules/Others',
'website': 'http://www.openerp.com',
- Invitations to others people""",
"author" : "Tiny",
'category': 'Generic Modules/Others',
'website': 'http://www.openerp.com',
"init_xml" : [
'base_calendar_data.xml'
],
"demo_xml" : [],
],
"demo_xml" : [],
"update_xml" : [
'security/ir.model.access.csv',
'wizard/calendar_event_edit_all_view.xml',
'wizard/base_calendar_invite_attendee_view.xml',
'wizard/calendar_event_edit_all_view.xml',
'wizard/base_calendar_invite_attendee_view.xml',
'wizard/base_calendar_set_exrule_view.xml',
'base_calendar_view.xml'
],
"test" : ['test/base_calendar_test.yml'],
"installable" : True,
"active" : False,
],
# "test" : ['test/base_calendar_test.yml'],
"installable" : True,
"active" : False,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -44,7 +44,6 @@ def get_recurrent_dates(rrulestring, exdate, startdate=None, exrule=None):
@param startdate: Startdate for computing recurrent dates
@return: List of Recurrent dates
"""
def todate(date):
val = parser.parse(''.join((re.compile('\d')).findall(date)))
return val
@ -323,60 +322,60 @@ class calendar_attendee(osv.osv):
'cutype': fields.selection([('individual', 'Individual'), \
('group', 'Group'), ('resource', 'Resource'), \
('room', 'Room'), ('unknown', '') ], \
'Invite Type', help="Specify the type of Invitation"),
'member': fields.char('Member', size=124,
help="Indicate the groups that the attendee belongs to"),
'Invite Type', help="Specify the type of Invitation"),
'member': fields.char('Member', size=124,
help="Indicate the groups that the attendee belongs to"),
'role': fields.selection([('req-participant', 'Participation required'), \
('chair', 'Chair Person'), \
('opt-participant', 'Optional Participation'), \
('non-participant', 'For information Purpose')], 'Role', \
help='Participation role for the calendar user'),
'state': fields.selection([('tentative', 'Tentative'),
('needs-action', 'Needs Action'),
('accepted', 'Accepted'),
('declined', 'Declined'),
help='Participation role for the calendar user'),
'state': fields.selection([('tentative', 'Tentative'),
('needs-action', 'Needs Action'),
('accepted', 'Accepted'),
('declined', 'Declined'),
('delegated', 'Delegated')], 'State', readonly=True, \
help="Status of the attendee's participation"),
'rsvp': fields.boolean('Required Reply?',
help="Indicats whether the favor of a reply is requested"),
help="Status of the attendee's participation"),
'rsvp': fields.boolean('Required Reply?',
help="Indicats whether the favor of a reply is requested"),
'delegated_to': fields.function(_compute_data, method=True, \
string='Delegated To', type="char", size=124, store=True, \
multi='delegated_to', help="The users that the original \
request was delegated to"),
request was delegated to"),
'delegated_from': fields.function(_compute_data, method=True, string=\
'Delegated From', type="char", store=True, size=124, multi='delegated_from'),
'Delegated From', type="char", store=True, size=124, multi='delegated_from'),
'parent_ids': fields.many2many('calendar.attendee', 'calendar_attendee_parent_rel', \
'attendee_id', 'parent_id', 'Delegrated From'),
'attendee_id', 'parent_id', 'Delegrated From'),
'child_ids': fields.many2many('calendar.attendee', 'calendar_attendee_child_rel', \
'attendee_id', 'child_id', 'Delegrated To'),
'attendee_id', 'child_id', 'Delegrated To'),
'sent_by': fields.function(_compute_data, method=True, string='Sent By', \
type="char", multi='sent_by', store=True, size=124, \
help="Specify the user that is acting on behalf of the calendar user"),
help="Specify the user that is acting on behalf of the calendar user"),
'sent_by_uid': fields.function(_compute_data, method=True, string='Sent By User', \
type="many2one", relation="res.users", multi='sent_by_uid'),
type="many2one", relation="res.users", multi='sent_by_uid'),
'cn': fields.function(_compute_data, method=True, string='Common name', \
type="char", size=124, multi='cn', store=True),
type="char", size=124, multi='cn', store=True),
'dir': fields.char('URI Reference', size=124, help="Reference to the URI\
that points to the directory information corresponding to the attendee."),
that points to the directory information corresponding to the attendee."),
'language': fields.function(_compute_data, method=True, string='Language', \
type="selection", selection=_lang_get, multi='language', \
store=True, help="To specify the language for text values in a\
property or property parameter."),
'user_id': fields.many2one('res.users', 'User'),
'partner_address_id': fields.many2one('res.partner.address', 'Contact'),
property or property parameter."),
'user_id': fields.many2one('res.users', 'User'),
'partner_address_id': fields.many2one('res.partner.address', 'Contact'),
'partner_id': fields.related('partner_address_id', 'partner_id', type='many2one', \
relation='res.partner', string='Partner', help="Partner related to contact"),
'email': fields.char('Email', size=124, help="Email of Invited Person"),
relation='res.partner', string='Partner', help="Partner related to contact"),
'email': fields.char('Email', size=124, help="Email of Invited Person"),
'event_date': fields.function(_compute_data, method=True, string='Event Date', \
type="datetime", multi='event_date'),
type="datetime", multi='event_date'),
'event_end_date': fields.function(_compute_data, method=True, \
string='Event End Date', type="datetime", \
multi='event_end_date'),
'ref': fields.reference('Event Ref', selection=_links_get, size=128),
'availability': fields.selection([('free', 'Free'), ('busy', 'Busy')], 'Free/Busy', readonly="True"),
multi='event_end_date'),
'ref': fields.reference('Event Ref', selection=_links_get, size=128),
'availability': fields.selection([('free', 'Free'), ('busy', 'Busy')], 'Free/Busy', readonly="True"),
}
_defaults = {
'state': lambda *x: 'needs-action',
'state': lambda *x: 'needs-action',
}
def get_ics_file(self, cr, uid, event_obj, context=None):
@ -411,7 +410,7 @@ property or property parameter."),
event.add('location').value = event_obj.location
if event_obj.rrule:
event.add('rrule').value = event_obj.rrule
if event_obj.alarm_id:
# computes alarm data
valarm = event.add('valarm')
@ -432,10 +431,10 @@ property or property parameter."),
if interval == 'minutes':
delta = timedelta(minutes=duration)
trigger.value = delta
# Compute other details
valarm.add('DESCRIPTION').value = alarm_data['name'] or 'OpenERP'
for attendee in event_obj.attendee_ids:
attendee_add = event.add('attendee')
attendee_add.params['CUTYPE'] = [str(attendee.cutype)]
@ -470,14 +469,14 @@ property or property parameter."),
att_infos.append(((att2.user_id and att2.user_id.name) or \
(att2.partner_id and att2.partner_id.name) or \
att2.email) + ' - Status: ' + att2.state.title())
body_vals = {'name': res_obj.name,
'start_date': res_obj.date,
'end_date': res_obj.date_deadline or False,
'description': res_obj.description or '-',
'location': res_obj.location or '-',
'attendees': '<br>'.join(att_infos),
'user': res_obj.user_id and res_obj.user_id.name or 'OpenERP User',
'sign': sign,
body_vals = {'name': res_obj.name,
'start_date': res_obj.date,
'end_date': res_obj.date_deadline or False,
'description': res_obj.description or '-',
'location': res_obj.location or '-',
'attendees': '<br>'.join(att_infos),
'user': res_obj.user_id and res_obj.user_id.name or 'OpenERP User',
'sign': sign,
'company': company
}
body = html_invitation % body_vals
@ -584,30 +583,30 @@ class res_alarm(osv.osv):
_description = 'Basic Alarm Information'
_columns = {
'name':fields.char('Name', size=256, required=True),
'name':fields.char('Name', size=256, required=True),
'trigger_occurs': fields.selection([('before', 'Before'), \
('after', 'After')], \
'Triggers', required=True),
'Triggers', required=True),
'trigger_interval': fields.selection([('minutes', 'Minutes'), \
('hours', 'Hours'), \
('days', 'Days')], 'Interval', \
required=True),
'trigger_duration': fields.integer('Duration', required=True),
required=True),
'trigger_duration': fields.integer('Duration', required=True),
'trigger_related': fields.selection([('start', 'The event starts'), \
('end', 'The event ends')], \
'Related to', required=True),
'Related to', required=True),
'duration': fields.integer('Duration', help="""Duration' and 'Repeat' \
are both optional, but if one occurs, so MUST the other"""),
'repeat': fields.integer('Repeat'),
are both optional, but if one occurs, so MUST the other"""),
'repeat': fields.integer('Repeat'),
'active': fields.boolean('Active', help="If the active field is set to \
true, it will allow you to hide the event alarm information without removing it.")
}
_defaults = {
'trigger_interval': lambda *x: 'minutes',
'trigger_duration': lambda *x: 5,
'trigger_occurs': lambda *x: 'before',
'trigger_related': lambda *x: 'start',
'active': lambda *x: 1,
'trigger_interval': lambda *x: 'minutes',
'trigger_duration': lambda *x: 5,
'trigger_occurs': lambda *x: 'before',
'trigger_related': lambda *x: 'start',
'active': lambda *x: 1,
}
def do_alarm_create(self, cr, uid, ids, model, date, context=None):
@ -637,20 +636,20 @@ true, it will allow you to hide the event alarm information without removing it.
self.do_alarm_unlink(cr, uid, [data.id], model)
if basic_alarm:
vals = {
'action': 'display',
'description': data.description,
'name': data.name,
'attendee_ids': [(6, 0, map(lambda x:x.id, data.attendee_ids))],
'trigger_related': basic_alarm.trigger_related,
'trigger_duration': basic_alarm.trigger_duration,
'trigger_occurs': basic_alarm.trigger_occurs,
'trigger_interval': basic_alarm.trigger_interval,
'duration': basic_alarm.duration,
'repeat': basic_alarm.repeat,
'state': 'run',
'event_date': data[date],
'res_id': data.id,
'model_id': model_id,
'action': 'display',
'description': data.description,
'name': data.name,
'attendee_ids': [(6, 0, map(lambda x:x.id, data.attendee_ids))],
'trigger_related': basic_alarm.trigger_related,
'trigger_duration': basic_alarm.trigger_duration,
'trigger_occurs': basic_alarm.trigger_occurs,
'trigger_interval': basic_alarm.trigger_interval,
'duration': basic_alarm.duration,
'repeat': basic_alarm.repeat,
'state': 'run',
'event_date': data[date],
'res_id': data.id,
'model_id': model_id,
'user_id': uid
}
alarm_id = alarm_obj.create(cr, uid, vals)
@ -725,8 +724,8 @@ class calendar_alarm(osv.osv):
}
_defaults = {
'action': lambda *x: 'email',
'state': lambda *x: 'run',
'action': lambda *x: 'email',
'state': lambda *x: 'run',
}
def create(self, cr, uid, vals, context=None):
@ -779,11 +778,11 @@ class calendar_alarm(osv.osv):
for alarm in self.browse(cr, uid, alarm_ids):
if alarm.action == 'display':
value = {
'name': alarm.name,
'act_from': alarm.user_id.id,
'act_to': alarm.user_id.id,
'body': alarm.description,
'trigger_date': alarm.trigger_date,
'name': alarm.name,
'act_from': alarm.user_id.id,
'act_to': alarm.user_id.id,
'body': alarm.description,
'trigger_date': alarm.trigger_date,
'ref_doc1': '%s,%s' % (alarm.model_id.model, alarm.res_id)
}
request_id = request_obj.create(cr, uid, value)
@ -813,9 +812,9 @@ class calendar_alarm(osv.osv):
mail_to.append(att.user_id.address_id.email)
if mail_to:
tools.email_send(
tools.config.get('email_from', False),
mail_to,
sub,
tools.config.get('email_from', False),
mail_to,
sub,
body
)
self.write(cr, uid, [alarm.id], {'state':'done'})
@ -901,7 +900,7 @@ class calendar_event(osv.osv):
cr.execute("UPDATE %s set freq='None',interval=0,count=0,end_date=Null,\
mo=False,tu=False,we=False,th=False,fr=False,sa=False,su=False,\
day=0,select1='date',month_list=Null ,byday=Null where id=%s" % (self._table, id))
if not value:
cr.execute("UPDATE %s set rrule_type='none' where id=%s" % (self._table, id))
return True
@ -930,19 +929,19 @@ class calendar_event(osv.osv):
for day in val['byday'].split(','):
new_val[day] = True
val.pop('byday')
if val.get('until'):
until = parser.parse(''.join((re.compile('\d')).findall(val.get('until'))))
new_val['end_date'] = until.strftime('%Y-%m-%d')
val.pop('until')
new_val.pop('until')
if val.get('bymonthday'):
new_val['day'] = val.get('bymonthday')
val.pop('bymonthday')
new_val['select1'] = 'date'
new_val.pop('bymonthday')
if val.get('byday'):
d = val.get('byday')
if '-' in d:
@ -952,12 +951,12 @@ class calendar_event(osv.osv):
new_val['byday'] = d[:1]
new_val['week_list'] = d[1:3].upper()
new_val['select1'] = 'day'
if val.get('bymonth'):
new_val['month_list'] = val.get('bymonth')
val.pop('bymonth')
new_val.pop('bymonth')
for k, v in new_val.items():
temp = ", %s='%s'" % (k, v)
qry += temp
@ -965,9 +964,9 @@ class calendar_event(osv.osv):
whr = " where id=%(id)s"
qry = qry + whr
val.update({
'table': self._table,
'rule_type': rrule_type,
'id': id,
'table': self._table,
'rule_type': rrule_type,
'id': id,
})
cr.execute(qry % val)
return True
@ -1001,40 +1000,40 @@ class calendar_event(osv.osv):
return result
_columns = {
'id': fields.integer('ID'),
'sequence': fields.integer('Sequence'),
'name': fields.char('Description', size=64, required=True),
'date': fields.datetime('Date'),
'date_deadline': fields.datetime('Deadline'),
'create_date': fields.datetime('Created', readonly=True),
'duration': fields.float('Duration'),
'description': fields.text('Your action'),
'id': fields.integer('ID'),
'sequence': fields.integer('Sequence'),
'name': fields.char('Description', size=64, required=True),
'date': fields.datetime('Date'),
'date_deadline': fields.datetime('Deadline'),
'create_date': fields.datetime('Created', readonly=True),
'duration': fields.float('Duration'),
'description': fields.text('Your action'),
'class': fields.selection([('public', 'Public'), ('private', 'Private'), \
('confidential', 'Confidential')], 'Mark as'),
'location': fields.char('Location', size=264, help="Location of Event"),
'show_as': fields.selection([('free', 'Free'), ('busy', 'Busy')], \
'Show as'),
'base_calendar_url': fields.char('Caldav URL', size=264),
'Show as'),
'base_calendar_url': fields.char('Caldav URL', size=264),
'exdate': fields.text('Exception Date/Times', help="This property \
defines the list of date/time exceptions for arecurring calendar component."),
defines the list of date/time exceptions for arecurring calendar component."),
'exrule': fields.char('Exception Rule', size=352, help="defines a \
rule or repeating pattern for an exception to a recurrence set"),
rule or repeating pattern for an exception to a recurrence set"),
'rrule': fields.function(_get_rulestring, type='char', size=124, method=True, \
string='Recurrent Rule', store=True, \
fnct_inv=_set_rrulestring, help='Defines a\
rule or repeating pattern for recurring events\n\
e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=-1SU'),
FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=-1SU'),
'rrule_type': fields.selection([('none', ''), ('daily', 'Daily'), \
('weekly', 'Weekly'), ('monthly', 'Monthly'), \
('yearly', 'Yearly'), ('custom', 'Custom')], 'Recurrency'),
'alarm_id': fields.many2one('res.alarm', 'Alarm'),
'base_calendar_alarm_id': fields.many2one('calendar.alarm', 'Alarm'),
'recurrent_uid': fields.integer('Recurrent ID'),
'recurrent_id': fields.datetime('Recurrent ID date'),
('yearly', 'Yearly'), ('custom', 'Custom')], 'Recurrency'),
'alarm_id': fields.many2one('res.alarm', 'Alarm'),
'base_calendar_alarm_id': fields.many2one('calendar.alarm', 'Alarm'),
'recurrent_uid': fields.integer('Recurrent ID'),
'recurrent_id': fields.datetime('Recurrent ID date'),
'vtimezone': fields.related('user_id', 'context_tz', type='char', size=24, \
string='Timezone', store=True),
'user_id': fields.many2one('res.users', 'Responsible'),
string='Timezone', store=True),
'user_id': fields.many2one('res.users', 'Responsible'),
'freq': fields.selection([('None', 'No Repeat'), \
('secondly', 'Secondly'), \
('minutely', 'Minutely'), \
@ -1042,23 +1041,23 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
('daily', 'Daily'), \
('weekly', 'Weekly'), \
('monthly', 'Monthly'), \
('yearly', 'Yearly')], 'Frequency'),
'interval': fields.integer('Interval'),
'count': fields.integer('Count'),
'mo': fields.boolean('Mon'),
'tu': fields.boolean('Tue'),
'we': fields.boolean('Wed'),
'th': fields.boolean('Thu'),
'fr': fields.boolean('Fri'),
'sa': fields.boolean('Sat'),
'su': fields.boolean('Sun'),
('yearly', 'Yearly')], 'Frequency'),
'interval': fields.integer('Interval'),
'count': fields.integer('Count'),
'mo': fields.boolean('Mon'),
'tu': fields.boolean('Tue'),
'we': fields.boolean('Wed'),
'th': fields.boolean('Thu'),
'fr': fields.boolean('Fri'),
'sa': fields.boolean('Sat'),
'su': fields.boolean('Sun'),
'select1': fields.selection([('date', 'Date of month'), \
('day', 'Day of month')], 'Option'),
'day': fields.integer('Date of month'),
('day', 'Day of month')], 'Option'),
'day': fields.integer('Date of month'),
'week_list': fields.selection([('MO', 'Monday'), ('TU', 'Tuesday'), \
('WE', 'Wednesday'), ('TH', 'Thursday'), \
('FR', 'Friday'), ('SA', 'Saturday'), \
('SU', 'Sunday')], 'Weekday'),
('SU', 'Sunday')], 'Weekday'),
'byday': fields.selection([('1', 'First'), ('2', 'Second'), \
('3', 'Third'), ('4', 'Fourth'), \
('5', 'Fifth'), ('-1', 'Last')], 'By day'),
@ -1072,14 +1071,14 @@ true, it will allow you to hide the event alarm information without removing it.
}
_defaults = {
'class': lambda *a: 'public',
'show_as': lambda *a: 'busy',
'freq': lambda *x: 'None',
'select1': lambda *x: 'date',
'interval': lambda *x: 1,
'active': lambda *x: 1,
'class': lambda *a: 'public',
'show_as': lambda *a: 'busy',
'freq': lambda *x: 'None',
'select1': lambda *x: 'date',
'interval': lambda *x: 1,
'active': lambda *x: 1,
}
def open_event(self, cr, uid, ids, context=None):
"""
Open Event From for Editing
@ -1091,11 +1090,11 @@ true, it will allow you to hide the event alarm information without removing it.
"""
if not context:
context = {}
data_obj = self.pool.get('ir.model.data')
value = {}
id2 = data_obj._get_id(cr, uid, 'base_calendar', 'event_form_view')
id3 = data_obj._get_id(cr, uid, 'base_calendar', 'event_tree_view')
id4 = data_obj._get_id(cr, uid, 'base_calendar', 'event_calendar_view')
@ -1117,7 +1116,7 @@ true, it will allow you to hide the event alarm information without removing it.
'res_id': base_calendar_id2real_id(id),
'nodestroy': True
}
return value
def modify_this(self, cr, uid, event_id, defaults, real_date, context=None, *args):
@ -1135,9 +1134,9 @@ true, it will allow you to hide the event alarm information without removing it.
event_id = base_calendar_id2real_id(event_id)
datas = self.read(cr, uid, event_id, context=context)
defaults.update({
'recurrent_uid': base_calendar_id2real_id(datas['id']),
'recurrent_id': defaults.get('date') or real_date,
'rrule_type': 'none',
'recurrent_uid': base_calendar_id2real_id(datas['id']),
'recurrent_id': defaults.get('date') or real_date,
'rrule_type': 'none',
'rrule': ''
})
exdate = datas['exdate'] and datas['exdate'].split(',') or []
@ -1156,7 +1155,7 @@ true, it will allow you to hide the event alarm information without removing it.
@param context: A standard dictionary for contextual values
@return: True
"""
for event_id in event_ids:
event_id = base_calendar_id2real_id(event_id)
@ -1171,7 +1170,7 @@ true, it will allow you to hide the event alarm information without removing it.
qry += ", location = '%(location)s'"
qry += "WHERE id = %s" % (event_id)
cr.execute(qry %(defaults))
return True
def get_recurrent_ids(self, cr, uid, select, base_start_date, base_until_date, limit=100):
@ -1193,7 +1192,7 @@ true, it will allow you to hide the event alarm information without removing it.
result = []
if ids and (base_start_date or base_until_date):
cr.execute("select m.id, m.rrule, m.date, m.date_deadline, \
m.exdate from " + self._table + \
m.exdate, m.exrule from " + self._table + \
" m where m.id in ("\
+ ','.join(map(lambda x: str(x), ids))+")")
@ -1240,7 +1239,7 @@ true, it will allow you to hide the event alarm information without removing it.
new_rule = '%s=%s' % (name, value)
new_rrule_str.append(new_rule)
new_rrule_str = ';'.join(new_rrule_str)
rdates = get_recurrent_dates(str(new_rrule_str), exdate, start_date)
rdates = get_recurrent_dates(str(new_rrule_str), exdate, start_date, data['exrule'])
for rdate in rdates:
r_date = datetime.strptime(rdate, "%Y-%m-%d %H:%M:%S")
if start_date and r_date < start_date:
@ -1255,7 +1254,7 @@ true, it will allow you to hide the event alarm information without removing it.
if isinstance(select, (str, int, long)):
return ids and ids[0] or False
return ids
def compute_rule_string(self, cr, uid, datas, context=None, *args):
"""
Compute rule string according to value type RECUR of iCalendar from the values given.
@ -1275,9 +1274,9 @@ true, it will allow you to hide the event alarm information without removing it.
freq = datas.get('freq')
if freq == 'None':
return ''
interval_srting = datas.get('interval') and (';INTERVAL=' + str(datas.get('interval'))) or ''
if freq == 'weekly':
byday = map(lambda x: x.upper(), filter(lambda x: datas.get(x) and x in weekdays, datas))
@ -1313,7 +1312,7 @@ true, it will allow you to hide the event alarm information without removing it.
return rrule_string
def search(self, cr, uid, args, offset=0, limit=100, order=None,
def search(self, cr, uid, args, offset=0, limit=100, order=None,
context=None, count=False):
"""
Overrides orm search method.
@ -1346,6 +1345,7 @@ true, it will allow you to hide the event alarm information without removing it.
return self.get_recurrent_ids(cr, uid, res, start_date, until_date, limit)
def write(self, cr, uid, ids, vals, context=None, check=True, update_check=True):
"""
Overrides orm write method.
@ -1378,7 +1378,7 @@ true, it will allow you to hide the event alarm information without removing it.
event_id = base_calendar_id2real_id(event_id)
if not event_id in new_ids:
new_ids.append(event_id)
res = super(calendar_event, self).write(cr, uid, new_ids, vals, context=context)
if vals.has_key('alarm_id') or vals.has_key('base_calendar_alarm_id'):
alarm_obj = self.pool.get('res.alarm')
@ -1520,7 +1520,7 @@ class calendar_todo(osv.osv):
_description = "Calendar Task"
def _get_date(self, cr, uid, ids, name, arg, context):
"""
"""
Get Date
@param self: The object pointer
@param cr: the current row, from the database cursor,
@ -1536,7 +1536,7 @@ class calendar_todo(osv.osv):
return res
def _set_date(self, cr, uid, id, name, value, arg, context):
"""
"""
Set Date
@param self: The object pointer
@param cr: the current row, from the database cursor,
@ -1554,8 +1554,8 @@ class calendar_todo(osv.osv):
_columns = {
'date': fields.function(_get_date, method=True, fnct_inv=_set_date, \
string='Duration', store=True, type='datetime'),
'duration': fields.integer('Duration'),
string='Duration', store=True, type='datetime'),
'duration': fields.integer('Duration'),
}
__attribute__ = {}
@ -1568,7 +1568,7 @@ class ir_attachment(osv.osv):
_inherit = 'ir.attachment'
def search_count(self, cr, user, args, context=None):
"""
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param user: the current users ID for security checks,
@ -1581,9 +1581,9 @@ class ir_attachment(osv.osv):
args1.append(map(lambda x:str(x).split('-')[0], arg))
return super(ir_attachment, self).search_count(cr, user, args1, context)
def search(self, cr, uid, args, offset=0, limit=None, order=None,
def search(self, cr, uid, args, offset=0, limit=None, order=None,
context=None, count=False):
"""
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@ -1597,8 +1597,8 @@ class ir_attachment(osv.osv):
for i, arg in enumerate(new_args):
if arg[0] == 'res_id':
new_args[i] = (arg[0], arg[1], base_calendar_id2real_id(arg[2]))
return super(ir_attachment, self).search(cr, uid, new_args, offset=offset,
limit=limit, order=order,
return super(ir_attachment, self).search(cr, uid, new_args, offset=offset,
limit=limit, order=order,
context=context, count=False)
ir_attachment()
@ -1607,12 +1607,12 @@ class ir_values(osv.osv):
def set(self, cr, uid, key, key2, name, models, value, replace=True, \
isobject=False, meta=False, preserve_user=False, company=False):
"""
"""
Set IR Values
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param model: Get The Model
@param model: Get The Model
"""
new_model = []
@ -1626,12 +1626,12 @@ class ir_values(osv.osv):
def get(self, cr, uid, key, key2, models, meta=False, context=None, \
res_id_req=False, without_user=True, key2_req=True):
"""
"""
Get IR Values
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param model: Get The Model
@param model: Get The Model
"""
if not context:
context = {}
@ -1658,7 +1658,7 @@ class ir_model(osv.osv):
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param ids: List of IR Models IDs.
@param context: A standard dictionary for contextual values
@param context: A standard dictionary for contextual values
"""
if not context:
context = {}
@ -1674,12 +1674,12 @@ ir_model()
class virtual_report_spool(web_services.report_spool):
def exp_report(self, db, uid, object, ids, datas=None, context=None):
"""
"""
Export Report
@param self: The object pointer
@param db: get the current database,
@param uid: the current users ID for security checks,
@param context: A standard dictionary for contextual values
@param context: A standard dictionary for contextual values
"""
if object == 'printscreen.list':
@ -1704,14 +1704,14 @@ class res_users(osv.osv):
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param ids: List of res users IDs.
@param context: A standard dictionary for contextual values
@param context: A standard dictionary for contextual values
"""
current_datetime = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
res = {}
attendee_obj = self.pool.get('calendar.attendee')
attendee_ids = attendee_obj.search(cr, uid, [
('event_date', '<=', current_datetime), ('event_end_date', '<=', current_datetime),
('event_date', '<=', current_datetime), ('event_end_date', '<=', current_datetime),
('state', '=', 'accepted'), ('user_id', 'in', ids)
])
@ -1735,7 +1735,7 @@ class res_users(osv.osv):
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param ids: List of res users IDs.
@param context: A standard dictionary for contextual values
@param context: A standard dictionary for contextual values
"""
return self._get_user_avail(cr, uid, ids, context=context)
@ -1743,7 +1743,7 @@ class res_users(osv.osv):
_columns = {
'availability': fields.function(_get_user_avail_fun, type='selection', \
selection=[('free', 'Free'), ('busy', 'Busy')], \
string='Free/Busy', method=True),
string='Free/Busy', method=True),
}
res_users()

View File

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

View File

@ -13,37 +13,38 @@
<field name="type" />
<field name="send_mail" />
<newline />
<group col="1" colspan="4"
<group col="2" colspan="6"
attrs="{'invisible': [('type', '!=', 'external')]}">
<field name="email" colspan="4"
attrs="{'required': [('type', '=', 'external')]}" />
</group>
<group col="1" colspan="4"
<group col="2" colspan="6"
attrs="{'invisible': [('type', '!=', 'internal')]}">
<separator string="Users" colspan="4" />
<field name="user_ids" select="1" colspan="4"
nolabel="1" />
<newline />
</group>
<group col="2" colspan="4"
<group col="2" colspan="6"
attrs="{'invisible': [('type', '!=', 'partner')]}">
<field name="partner_id" colspan="2"
on_change="onchange_partner_id(partner_id)"
attrs="{'required': [('type', '=', 'partner')]}" />
<newline />
<separator string="Partner Contacts"
colspan="4" />
colspan="6" />
<field name="contact_ids" select="1" colspan="4"
nolabel="1" domain="[('partner_id', '=', partner_id)]"
attrs="{'readonly': [('type', '!=', 'partner')]}" />
</group>
<newline />
<separator string="" colspan="6" />
<label string="" colspan="2" />
<group col="4" colspan="4">
<button icon='gtk-cancel' special="cancel"
string="Cancel" />
<button name="do_invite" string="Invite"
type="object" icon="gtk-ok" />
</group>
</form>
</field>
</record>

View File

@ -0,0 +1,162 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 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 base_calendar import base_calendar
from osv import fields, osv
from tools.translate import _
import tools
import mx.DateTime
import re
months = {
1: "January", 2: "February", 3: "March", 4: "April", \
5: "May", 6: "June", 7: "July", 8: "August", 9: "September", \
10: "October", 11: "November", 12: "December"
}
class base_calendar_set_exrule(osv.osv_memory):
"""
Set Exrule.
"""
_name = "base.calendar.set.exrule"
_description = "Set Exrule"
_columns = {
'freq': fields.selection([('None', 'No Repeat'), \
('secondly', 'Secondly'), \
('minutely', 'Minutely'), \
('hourly', 'Hourly'), \
('daily', 'Daily'), \
('weekly', 'Weekly'), \
('monthly', 'Monthly'), \
('yearly', 'Yearly')], 'Frequency',required=True),
'interval': fields.integer('Interval'),
'count': fields.integer('Count'),
'mo': fields.boolean('Mon'),
'tu': fields.boolean('Tue'),
'we': fields.boolean('Wed'),
'th': fields.boolean('Thu'),
'fr': fields.boolean('Fri'),
'sa': fields.boolean('Sat'),
'su': fields.boolean('Sun'),
'select1': fields.selection([('date', 'Date of month'), \
('day', 'Day of month')], 'Option'),
'day': fields.integer('Date of month'),
'week_list': fields.selection([('MO', 'Monday'), ('TU', 'Tuesday'), \
('WE', 'Wednesday'), ('TH', 'Thursday'), \
('FR', 'Friday'), ('SA', 'Saturday'), \
('SU', 'Sunday')], 'Weekday'),
'byday': fields.selection([('1', 'First'), ('2', 'Second'), \
('3', 'Third'), ('4', 'Fourth'), \
('5', 'Fifth'), ('-1', 'Last')], 'By day'),
'month_list': fields.selection(months.items(),'Month'),
'end_date': fields.date('Repeat Until'),
}
def view_init(self, cr, uid, fields, context=None):
"""
This function checks for precondition before wizard executes
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param fields: List of fields for default value
@param context: A standard dictionary for contextual values
"""
crm_obj = self.pool.get('crm.meeting')
for meeting in crm_obj.browse(cr, uid, context.get('active_ids', [])):
if not meeting.rrule:
raise osv.except_osv(_("Warning !"), _("Please Apply Recurrency after Apply Exception Rule"))
return False
def compute_exrule_string(self, cr, uid, ids, context=None):
"""
Compute rule string.
@param self: the object pointer
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param datas: dictionary of freq and interval value.
@return: string value which compute FREQILY;INTERVAL
"""
weekdays = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su']
weekstring = ''
monthstring = ''
yearstring = ''
for datas in self.read(cr, uid, ids, context=context):
freq = datas.get('freq')
if freq == 'None':
return ''
interval_srting = datas.get('interval') and (';INTERVAL=' + str(datas.get('interval'))) or ''
if freq == 'weekly':
byday = map(lambda x: x.upper(), filter(lambda x: datas.get(x) and x in weekdays, datas))
if byday:
weekstring = ';BYDAY=' + ','.join(byday)
elif freq == 'monthly':
if datas.get('select1')=='date' and (datas.get('day') < 1 or datas.get('day') > 31):
raise osv.except_osv(_('Error!'), ("Please select proper Day of month"))
if datas.get('select1')=='day':
monthstring = ';BYDAY=' + datas.get('byday') + datas.get('week_list')
elif datas.get('select1')=='date':
monthstring = ';BYMONTHDAY=' + str(datas.get('day'))
elif freq == 'yearly':
if datas.get('select1')=='date' and (datas.get('day') < 1 or datas.get('day') > 31):
raise osv.except_osv(_('Error!'), ("Please select proper Day of month"))
bymonth = ';BYMONTH=' + str(datas.get('month_list'))
if datas.get('select1')=='day':
bystring = ';BYDAY=' + datas.get('byday') + datas.get('week_list')
elif datas.get('select1')=='date':
bystring = ';BYMONTHDAY=' + str(datas.get('day'))
yearstring = bymonth + bystring
if datas.get('end_date'):
datas['end_date'] = ''.join((re.compile('\d')).findall(datas.get('end_date'))) + '235959Z'
enddate = (datas.get('count') and (';COUNT=' + str(datas.get('count'))) or '') +\
((datas.get('end_date') and (';UNTIL=' + datas.get('end_date'))) or '')
exrule_string = 'FREQ=' + freq.upper() + weekstring + interval_srting \
+ enddate + monthstring + yearstring
ex_id = base_calendar.base_calendar_id2real_id(context['active_id'])
model = context.get('model', False)
model_obj = self.pool.get(model)
exrule_value = model_obj.write(cr, uid,ex_id,{
'exrule': exrule_string,
})
return {}
_defaults = {
'freq': lambda *x: 'None',
'select1': lambda *x: 'date',
'interval': lambda *x: 1,
}
base_calendar_set_exrule()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_base_calendar_set_exrule" model="ir.ui.view">
<field name="name">base.calendar.set.exrule.form</field>
<field name="model">base.calendar.set.exrule</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Set Exrule">
<separator string="Select data for ExRule" colspan="8"/>
<group col="8" colspan="6">
<field name="freq" />
<field name="interval" />
<field name="count" />
<field name="end_date" />
</group>
<group col="8" colspan="8" name="Select weekdays"
attrs="{'invisible' : [('freq','!=','weekly')]}">
<field name="mo" colspan="1" />
<field name="tu" colspan="1" />
<field name="we" colspan="1" />
<field name="th" colspan="1" />
<field name="fr" colspan="1" />
<field name="sa" colspan="1" />
<field name="su" colspan="1" />
<newline />
</group>
<group col="8" colspan="6"
attrs="{'invisible' : [('freq','!=','monthly'), ('freq','!=','yearly')]}">
<group col="2" colspan="1">
<field name="select1" />
</group>
<group col="2" colspan="1"
attrs="{'invisible' : [('select1','=','day')]}">
<field name="day"
attrs="{'required' : [('select1','=','date')]}"/>
</group>
<group col="3" colspan="1"
attrs="{'invisible' : [('select1','=','date')]}">
<field name="byday" string="The"
attrs="{'required' : [('select1','=','day')]}"/>
<field name="week_list" nolabel="1"
attrs="{'required' : [('select1','=','day')]}"/>
</group>
<group col="1" colspan="1"
attrs="{'invisible' : [('freq','!=','yearly')]}">
<field name="month_list" string="of"
colspan="1"
attrs="{'required' : [('freq','=','yearly')]}"/>
</group>
</group>
<group colspan="4" col="6">
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-ok" string="ok" name="compute_exrule_string" type="object"/>
</group>
</form>
</field>
</record>
<record id="action_base_calendar_set_exrule" model="ir.actions.act_window">
<field name="name">Set Exrule</field>
<field name="res_model">base.calendar.set.exrule</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="target">new</field>
</record>
</data>
</openerp>

View File

@ -136,8 +136,8 @@
<form string="Address">
<group string="Postal Address" colspan="2" col="2">
<field name="type" />
<field name="street"/>
<field name="street2"/>
<field name="street" widget="selection"/>
<field name="street2" widget="selection"/>
<field name="zip"/>
<field name="city"/>
<field name="country_id" completion="1"/>

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-12-29 16:54+0000\n"
"Last-Translator: Carlo Vettore <Unknown>\n"
"PO-Revision-Date: 2010-05-13 13:58+0000\n"
"Last-Translator: eLBati - albatos.com <lorenzo.battistini@albatos.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-17 04:03+0000\n"
"X-Launchpad-Export-Date: 2010-05-14 04:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_vat
@ -31,9 +31,9 @@ msgstr "XML non valido per Visualizzazione Architettura!"
#. module: base_vat
#: field:res.partner,vat_subjected:0
msgid "VAT Legal Statement"
msgstr "Numero di Partita IVA"
msgstr "Soggetto a IVA"
#. module: base_vat
#: model:ir.module.module,shortdesc:base_vat.module_meta_information
msgid "VAT"
msgstr "P.IVA"
msgstr "Partita IVA"

View File

@ -143,7 +143,8 @@ class board_board(osv.osv):
_columns = {
'name': fields.char('Dashboard', size=64, required=True),
'view_id': fields.many2one('ir.ui.view', 'Board View'),
'line_ids': fields.one2many('board.board.line', 'board_id', 'Action Views')
'line_ids': fields.one2many('board.board.line', 'board_id', 'Action Views'),
'menu_id':fields.many2one('ir.ui.menu', 'Menu', required=False),
}
# the following lines added to let the button on dashboard work.

View File

@ -66,11 +66,14 @@
<field eval="1" name="priority"/>
<field name="arch" type="xml">
<form string="Dashboard">
<field name="name" select="1"/>
<button colspan="2"
name="%(action_board_menu_create)d"
string="Create Menu" type="action"
icon="gtk-justify-fill" />
<group col="6" colspan="4">
<field name="name" select="1" />
<field name="menu_id" colspan="2"/>
<button
name="%(action_board_menu_create)d"
string="Create Menu" type="action"
icon="gtk-justify-fill" attrs="{'invisible':[('menu_id','!=',False)]}"/>
</group>
<field colspan="4" name="line_ids" nolabel="1">
<tree string="Dashboard View">
<field name="name"/>

View File

@ -69,14 +69,17 @@ class board_menu_create(osv.osv_memory):
'view_id': board.view_id.id,
})
obj_menu = self.pool.get('ir.ui.menu')
obj_board = self.pool.get('board.board')
#start Loop
for data in self.read(cr, uid, ids):
obj_menu.create(cr, uid, {
'name': data.get('menu_name'),
'parent_id': data.get('menu_parent_id'),
'icon': 'STOCK_SELECT_COLOR',
'action': 'ir.actions.act_window,' + str(action_id)
}, context=context)
id = obj_menu.create(cr, uid, {
'name': data.get('menu_name'),
'parent_id': data.get('menu_parent_id'),
'icon': 'STOCK_SELECT_COLOR',
'action': 'ir.actions.act_window,' + str(action_id)
}, context=context)
obj_board.write(cr, uid, [context_id], { "menu_id": id})
#End Loop
return {}

View File

@ -18,9 +18,9 @@
<separator string="" colspan="4" />
<group colspan="4" col="6">
<label string=" " colspan="2"/>
<button icon="gtk-cancel" special="cancel"
string="Cancel" />
<button icon="gtk-save" string="Create Menu"
<button icon="gtk-close" special="cancel"
string="Close" />
<button icon="gtk-ok" string="Create"
name="board_menu_create" type="object" />
</group>
</form>

View File

@ -7,40 +7,40 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 12:29+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-05-14 16:28+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <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: 2010-04-17 03:59+0000\n"
"X-Launchpad-Export-Date: 2010-05-15 04:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_sale
#: model:ir.module.module,shortdesc:board_sale.module_meta_information
msgid "Dashboard for sales"
msgstr ""
msgstr "Konsola dla sprzedaży"
#. module: board_sale
#: model:ir.actions.act_window,name:board_sale.open_board_sales_manager
#: model:ir.ui.menu,name:board_sale.menu_board_sales_manager
msgid "Sale Dashboard"
msgstr ""
msgstr "Konsola sprzedaży"
#. module: board_sale
#: view:board.board:0
msgid "Sales of the month"
msgstr ""
msgstr "Sprzedaż w miesiącu"
#. module: board_sale
#: view:board.board:0
msgid "Sales manager board"
msgstr ""
msgstr "Konsola szefa sprzedaży"
#. module: board_sale
#: view:board.board:0
msgid "Cases of the month"
msgstr ""
msgstr "Zdarzenia miesiąca"
#. module: board_sale
#: constraint:ir.ui.view:0
@ -50,12 +50,12 @@ msgstr "XML niewłaściwy dla tej architektury wyświetlania!"
#. module: board_sale
#: view:board.board:0
msgid "My open quotations"
msgstr ""
msgstr "Moje otwarte zamówienia"
#. module: board_sale
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
#. module: board_sale
#: model:ir.ui.menu,name:board_sale.next_id_88
@ -65,9 +65,9 @@ msgstr "Sprzedaż"
#. module: board_sale
#: view:board.board:0
msgid "Cases statistics"
msgstr ""
msgstr "Statystyka zdarzeń"
#. module: board_sale
#: view:board.board:0
msgid "Top ten sales of the month"
msgstr ""
msgstr "Dziesięć najlepszych sprzedaży w miesiącu"

View File

@ -17,10 +17,10 @@
<record model="ir.ui.view" id="view_calendar_collection_tree">
<field name="name">Calendar Collections : Tree</field>
<field name="model">document.directory</field>
<field name="type">tree</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Calendar Collections" toolbar="1">
<field name="name"/>
<field name="name"/>
<field name="user_id"/>
<field name="create_date"/>
<field name="write_date"/>
@ -53,8 +53,8 @@
<field name="view_id" ref="view_calendar_collection_form"/>
<field name="act_window_id" ref="action_calendar_collection_form"/>
</record>
<menuitem
<menuitem
id="menu_calendar"
name="Calendar"
parent="base.menu_document_configuration"/>
@ -73,7 +73,7 @@
<field name="name"/>
<field name="type"/>
<field name="user_id"/>
<field name="collection_id" required="1"/>
<field name="collection_id" required="1"/>
<field name="line_ids" mode="form,tree" colspan="4" nolabel="1">
<form string="Calendar Lines">
<field name="name" required="1" select="1" />
@ -110,11 +110,11 @@
<record model="ir.ui.view" id="view_caldav_tree">
<field name="name">Calendar : Tree</field>
<field name="model">basic.calendar</field>
<field name="type">tree</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Calendars" toolbar="1">
<field name="name"/>
<field name="type"/>
<field name="name"/>
<field name="type"/>
<field name="user_id"/>
<field name="create_date"/>
<field name="write_date"/>
@ -127,8 +127,8 @@
<field name="type">ir.actions.act_window</field>
<field name="res_model">basic.calendar</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<field name="view_mode">tree,form</field>
</record>
<record id="action_caldav_view1" model="ir.actions.act_window.view">
<field eval="10" name="sequence"/>
@ -147,5 +147,6 @@
action="action_caldav_form"
id="menu_caldav_directories"
parent="menu_calendar"/>
</data>
</openerp>

View File

@ -21,9 +21,9 @@
{
'name': 'Customer & Supplier Relationship Management',
'version': '1.0',
'category': 'Generic Modules/CRM & SRM',
'name': 'Customer & Supplier Relationship Management',
'version': '1.0',
'category': 'Generic Modules/CRM & SRM',
'description': """The generic Open ERP Customer Relationship Management
system enables a group of people to intelligently and efficiently manage
leads, opportunities, meeting, phonecall etc.
@ -41,78 +41,78 @@ appropriate staff, and making sure all future correspondence gets to the right
place.
The CRM module has a email gateway for the synchronisation interface
between mails and Open ERP.""",
'author': 'Tiny',
'website': 'http://www.openerp.com',
between mails and Open ERP.""",
'author': 'Tiny',
'website': 'http://www.openerp.com',
'depends': [
'base',
'base_action_rule',
'process',
'mail_gateway',
'base_calendar',
'resource',
],
'base',
'base_action_rule',
'process',
'mail_gateway',
'base_calendar',
'resource',
],
'init_xml': [
'crm_data.xml',
'crm_meeting_data.xml',
'crm_lead_data.xml',
'crm_meeting_data.xml',
'crm_opportunity_data.xml',
'crm_phonecall_data.xml',
],
'crm_data.xml',
'crm_meeting_data.xml',
'crm_lead_data.xml',
'crm_meeting_data.xml',
'crm_opportunity_data.xml',
'crm_phonecall_data.xml',
],
'update_xml': [
'wizard/crm_lead_to_partner_view.xml',
'wizard/crm_lead_to_opportunity_view.xml',
'wizard/crm_lead_to_partner_view.xml',
'wizard/crm_lead_to_opportunity_view.xml',
'wizard/crm_phonecall_to_phonecall_view.xml',
'wizard/crm_phonecall_to_partner_view.xml',
'wizard/crm_phonecall_to_opportunity_view.xml',
'wizard/crm_phonecall_to_phonecall_view.xml',
'wizard/crm_phonecall_to_partner_view.xml',
'wizard/crm_phonecall_to_opportunity_view.xml',
'wizard/crm_opportunity_to_phonecall_view.xml',
'wizard/crm_partner_to_opportunity_view.xml',
'wizard/crm_opportunity_to_phonecall_view.xml',
'wizard/crm_partner_to_opportunity_view.xml',
'wizard/crm_forward_to_partner_view.xml',
'wizard/crm_send_email_view.xml',
'crm_view.xml',
'wizard/crm_forward_to_partner_view.xml',
'wizard/crm_send_email_view.xml',
'crm_view.xml',
'crm_action_rule_view.xml',
'crm_lead_view.xml',
'crm_lead_menu.xml',
'crm_meeting_view.xml',
'crm_meeting_menu.xml',
'crm_phonecall_view.xml',
'crm_phonecall_menu.xml',
'crm_opportunity_view.xml',
'crm_opportunity_menu.xml',
'security/crm_security.xml',
'security/ir.model.access.csv',
'crm_action_rule_view.xml',
'crm_lead_view.xml',
'crm_lead_menu.xml',
'report/crm_lead_report_view.xml',
'report/crm_phonecall_report_view.xml',
'crm_meeting_view.xml',
'crm_meeting_menu.xml',
'process/crm_configuration_process.xml',
'crm_phonecall_view.xml',
'crm_phonecall_menu.xml',
'crm_opportunity_view.xml',
'crm_opportunity_menu.xml',
'security/crm_security.xml',
'security/ir.model.access.csv',
'report/crm_lead_report_view.xml',
'report/crm_phonecall_report_view.xml',
'process/crm_configuration_process.xml',
'crm_installer_view.xml'
],
],
'demo_xml': [
'crm_demo.xml',
'crm_lead_demo.xml',
'crm_meeting_demo.xml',
'crm_opportunity_demo.xml',
'crm_demo.xml',
'crm_lead_demo.xml',
'crm_meeting_demo.xml',
'crm_opportunity_demo.xml',
'crm_phonecall_demo.xml'
],
],
'test': [
'test/test_crm_lead.yml',
'test/test_crm_meeting.yml',
'test/test_crm_opportunity.yml',
'test/test_crm_phonecall.yml',
],
'installable': True,
'active': False,
'certificate': '0079056041421',
'test/test_crm_lead.yml',
'test/test_crm_meeting.yml',
'test/test_crm_opportunity.yml',
'test/test_crm_phonecall.yml',
],
'installable': True,
'active': False,
'certificate': '0079056041421',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -74,7 +74,7 @@ class crm_lead(osv.osv, crm_case):
duration = float(ans.days)
if lead.section_id and lead.section_id.resource_calendar_id:
duration = float(ans.days) * 24
duration = float(ans.days) * 24
new_dates = cal_obj.interval_get(cr,
uid,
lead.section_id.resource_calendar_id and lead.section_id.resource_calendar_id.id or False,
@ -95,18 +95,18 @@ class crm_lead(osv.osv, crm_case):
_columns = {
# From crm.case
'email_from': fields.char('Email', size=128, help="These people will receive email."),
'email_from': fields.char('Email', size=128, help="These people will receive email."),
'section_id': fields.many2one('crm.case.section', 'Sales Team', \
select=True, help='Sales team to which Case belongs to.\
Define Responsible user and Email account for mail gateway.'),
Define Responsible user and Email account for mail gateway.'),
'create_date': fields.datetime('Creation Date' , readonly=True),
'email_cc': fields.text('Watchers Emails', size=252 , help="These \
people will receive a copy of the future communication between partner \
and users by email"),
'description': fields.text('Description'),
'write_date': fields.datetime('Update Date' , readonly=True),
'description': fields.text('Description'),
'write_date': fields.datetime('Update Date' , readonly=True),
# Lead fields
# Lead fields
'categ_id': fields.many2one('crm.case.categ', 'Lead Source', \
domain="[('section_id','=',section_id),\
('object_id.model', '=', 'crm.lead')]"),
@ -117,34 +117,34 @@ and users by email"),
'type':fields.selection([
('lead','Lead'),
('opportunity','Opportunity'),
],'Type', help="Type is used to separate Leads and Opportunities"),
],'Type', help="Type is used to separate Leads and Opportunities"),
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
'date_closed': fields.datetime('Closed', readonly=True),
'stage_id': fields.many2one('crm.case.stage', 'Stage', \
domain="[('section_id','=',section_id),\
('object_id.model', '=', 'crm.lead')]"),
'user_id': fields.many2one('res.users', 'Salesman'),
'user_id': fields.many2one('res.users', 'Salesman',help='By Default Salesman is Administrator when create New User'),
'referred': fields.char('Referred By', size=64),
'date_open': fields.datetime('Opened', readonly=True),
'day_open': fields.function(_compute_day, string='Days to Open', \
method=True, multi='day_open', type="float", store=True),
'day_close': fields.function(_compute_day, string='Days to Close', \
method=True, multi='day_close', type="float", store=True),
'function_name': fields.char('Function', size=64),
'state': fields.selection(crm.AVAILABLE_STATES, 'State', size=16, readonly=True,
'function_name': fields.char('Function', size=64),
'state': fields.selection(crm.AVAILABLE_STATES, 'State', size=16, readonly=True,
help='The state is set to \'Draft\', when a case is created.\
\nIf the case is in progress the state is set to \'Open\'.\
\nWhen the case is over, the state is set to \'Done\'.\
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
}
_defaults = {
'active': lambda *a: 1,
'user_id': crm_case._get_default_user,
'email_from': crm_case._get_default_email,
'state': lambda *a: 'draft',
'section_id': crm_case._get_section,
'active': lambda *a: 1,
'user_id': crm_case._get_default_user,
'email_from': crm_case._get_default_email,
'state': lambda *a: 'draft',
'section_id': crm_case._get_section,
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.lead', context=c),
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
}
@ -160,7 +160,7 @@ and users by email"),
res = super(crm_lead, self).case_open(cr, uid, ids, *args)
self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S')})
return res
def case_close(self, cr, uid, ids, *args):
"""Overrides close for crm_case for setting close date
@param self: The object pointer

View File

@ -47,7 +47,7 @@
name="convert_opportunity"
string="Convert"
help="Convert to Opportunity"
icon="gtk-index"
icon="gtk-index"
type="object"/>
<newline />
<field name="section_id" colspan="1"
@ -175,7 +175,7 @@
<field name="email_to"/>
<field name="description"/>
</tree>
</field>
</field>
<button colspan="2" string="Send New Email"
name="%(action_crm_send_mail)d"
context="{'mail':'new', 'model': 'crm.lead'}"

View File

@ -157,4 +157,32 @@ class calendar_attendee(osv.osv):
calendar_attendee()
class res_users(osv.osv):
_name = 'res.users'
_inherit = 'res.users'
def create(self, cr, uid, data, context={}):
user_id = super(res_users, self).create(cr, uid, data, context)
data_obj = self.pool.get('ir.model.data')
data_id = data_obj._get_id(cr, uid, 'crm', 'ir_ui_view_sc_calendar0')
view_id = data_obj.browse(cr, uid, data_id, context=context).res_id
copy_id = self.pool.get('ir.ui.view_sc').copy(cr, uid, view_id, default = {
'user_id': user_id}, context=context)
return user_id
res_users()
class res_partner(osv.osv):
""" Inherits partner and adds meetings information in the partner form """
_inherit = 'res.partner'
_columns = {
'meeting_ids': fields.one2many('crm.meeting', 'partner_id',\
'Meetings'),
}
res_partner()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -110,7 +110,8 @@
<menuitem id="menu_attendee_invitations"
name="Meeting Invitations" parent="crm.menu_meeting_sale"
sequence="10" action="action_view_attendee_form" />
sequence="10" action="action_view_attendee_form"
groups="base.group_extended" />
</data>
</openerp>

View File

@ -50,6 +50,10 @@
attrs="{'invisible':[('rrule_type','in', ('none', False))]}"
name="open_meeting" icon="gtk-edit"
type="object" />
<button string="ExRule"
name="%(base_calendar.action_base_calendar_set_exrule)d" icon="gtk-zoom-out" type="action"
context="{'model' : 'crm.meeting'}"
attrs="{'invisible':[('rrule_type','in', ('none', False))]}"/>
</group>
</group>
<group col="4" colspan="4" name="rrule" attrs="{'invisible': [('rrule_type','!=','custom')]}">
@ -213,7 +217,6 @@
<field name="partner_id" string="Partner" />
<field name="date" string="Meeting Date" />
<field name="duration" />
<field name="user_id" />
<field name="state"/>
</tree>
</field>
@ -324,5 +327,22 @@
</field>
</field>
</record>
<!-- Partners inherited form -->
<record id="view_meeting_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.meeting.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="CRM Info">
<field name="meeting_ids" colspan="4" nolabel="1" />
</page>
</notebook>
</field>
</record>
</data>
</openerp>

View File

@ -166,4 +166,16 @@ class crm_opportunity(osv.osv):
crm_opportunity()
class res_partner(osv.osv):
""" Inherits partner and adds Opportunities information in the partner form """
_inherit = 'res.partner'
_columns = {
'opportunity_ids': fields.one2many('crm.lead', 'partner_id',\
'Opportunities', domain=[('type', '=', 'opportunity')]),
}
res_partner()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -2,16 +2,6 @@
<openerp>
<data noupdate="1">
<act_window
id="act_crm_opportunity_crm_meeting_new"
name="Meetings"
res_model="crm.meeting"
src_model="crm.lead"
view_mode="tree,form,calendar,"
context="{'default_duration': 4.0, 'default_opportunity_id': active_id}"
domain="[('user_id','=',uid), ('opportunity_id', '=', active_id)]"
view_type="form"/>
<act_window
id="act_crm_opportunity_crm_phonecall_new"
name="Phone calls"
@ -22,6 +12,16 @@
domain="[('user_id','=',uid),('opportunity_id', '=', active_id)]"
view_type="form"/>
<act_window
id="act_crm_opportunity_crm_meeting_new"
name="Meetings"
res_model="crm.meeting"
src_model="crm.lead"
view_mode="tree,form,calendar,"
context="{'default_duration': 4.0, 'default_opportunity_id': active_id}"
domain="[('user_id','=',uid), ('opportunity_id', '=', active_id)]"
view_type="form"/>
<record model="ir.actions.act_window" id="crm_case_category_act_oppor11">
<field name="name">Opportunities</field>
<field name="res_model">crm.lead</field>

View File

@ -216,7 +216,7 @@
<field name="name" string="Opportunity"/>
<field name="partner_id"/>
<field name="stage_id"/>
<field name="categ_id" invisible="1"/>
<field name="categ_id" invisible="1" groups="base.group_extended"/>
<button name="stage_previous" string="Previous"
states="open,pending" type="object" icon="gtk-go-back" />
<button name="stage_next" string="Next"
@ -295,7 +295,7 @@
help="My Opportunities" default="1"
/>
<filter icon="terp-partner"
domain="[('user_id','=', False)]"
domain="[('user_id','=', uid)]"
help="Unassigned Opportunities" />
</field>
<field name="section_id"
@ -315,8 +315,6 @@
domain="[]" context="{'group_by':'categ_id'}" />
<separator orientation="vertical" />
<filter string="Partner" icon="terp-crm" domain="[]"
context="{'group_by':'partner_id'}" />
<filter string="Salesman" icon="terp-crm"
domain="[('user_id','=',uid)]" context="{'group_by':'user_id'}" />
<separator orientation="vertical" />
@ -328,5 +326,60 @@
</search>
</field>
</record>
<!-- Partners inherited form -->
<record id="view_opp_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.opportunity.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="phonecall_ids" position="after">
<field name="opportunity_ids" colspan="4" nolabel="1" domain="[('type', '=', 'opportunity')]">
<tree string="Opportunities" colors="blue:state=='pending';grey:state in ('cancel', 'done')">
<field name="create_date"/>
<field name="partner_name"/>
<field name="name"/>
<field name="email_from"/>
<field name="phone"/>
<field name="categ_id" invisible="1"/>
<field name="type_id" invisible="1"/>
<field name="referred" invisible="1"/>
<field name="stage_id"/>
<button name="stage_previous" string="Previous"
states="open,pending" type="object" icon="gtk-go-back" />
<button name="stage_next" string="Next"
states="open,pending" type="object"
icon="gtk-go-forward" />
<field name="section_id"
invisible="context.get('invisible_section', True)" />
<field name="user_id" />
<field name="state" />
<button name="case_open" string="Open"
states="draft,pending" type="object"
icon="gtk-go-forward" />
<button name="case_close" string="Close"
states="open,draft,pending" type="object"
icon="gtk-close" />
<button string="Convert to Opportunity"
name="convert_opportunity"
states="draft,open,pending" icon="gtk-index"
type="object" />
<button name="case_escalate" string="Escalate"
states="open,draft,pending" type="object"
icon="gtk-go-up" />
<button name="case_cancel" string="Cancel"
states="draft,open,pending" type="object"
icon="gtk-cancel" />
</tree>
</field>
</field>
</field>
</record>
</data>
</openerp>

View File

@ -175,4 +175,15 @@ class crm_phonecall(osv.osv, crm_case):
crm_phonecall()
class res_partner(osv.osv):
""" Inherits partner and adds Phonecalls information in the partner form """
_inherit = 'res.partner'
_columns = {
'phonecall_ids': fields.one2many('crm.phonecall', 'partner_id', 'Phonecalls'),
}
res_partner()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -10,6 +10,7 @@
view_mode="calendar,tree,form"
context="{'default_partner_id': active_id, 'default_duration': 1.0}"
domain="[('partner_id', '=', active_id)]"
groups="base.group_extended"
/>
<!-- PHONE CALLS (menu) -->

View File

@ -291,5 +291,20 @@
</search>
</field>
</record>
<!-- Partners inherited form -->
<record id="view_phonecall_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.phonecall.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="meeting_ids" position="after">
<field name="phonecall_ids" colspan="4" nolabel="1" />
</field>
</field>
</record>
</data>
</openerp>

View File

@ -119,7 +119,6 @@
<menuitem id="menu_crm_case_stage" name="Stages" parent="base.menu_crm_configuration" groups="base.group_extended"/>
<!-- Case Categories Form View -->
<record id="crm_case_categ-view" model="ir.ui.view">
@ -425,7 +424,7 @@
<!-- Case Search View -->
<record id="view_crm_case_filter" model="ir.ui.view">
<field name="name">crm.case.select</field>
<field name="model">mailgate.thread</field>

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
"PO-Revision-Date: 2010-05-12 20:13+0000\n"
"PO-Revision-Date: 2010-05-14 20:14+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <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: 2010-05-13 04:36+0000\n"
"X-Launchpad-Export-Date: 2010-05-15 04:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
@ -27,16 +27,12 @@ msgid ""
"This property defines the list of date/time exceptions for "
"arecurring calendar component."
msgstr ""
"Ta cecha definiuje listę wyjątków daty/czasu dla powtarzanych elementów "
"kalendarza."
#. module: crm
#: help:crm.case.rule,act_mail_to_user:0
msgid ""
"Check this if you want the rule to send an email to the responsible person."
msgstr ""
"Zaznacz to jeżeli chcesz aby przez regułę został wysłany email do "
"odpowiedzialnej osoby."
#. module: crm
#: view:crm.meeting:0
@ -84,12 +80,12 @@ msgstr "Planowane koszty"
#. module: crm
#: wizard_field:crm.job.partner_create,init,close:0
msgid "Close job request"
msgstr "Żądanie zakończenia zadania."
msgstr ""
#. module: crm
#: field:crm.case.stage,name:0
msgid "Stage Name"
msgstr ""
msgstr "Nazwa etapu"
#. module: crm
#: view:crm.case:0
@ -255,7 +251,7 @@ msgstr "Rozmowa telefoniczna"
#. module: crm
#: model:ir.model,name:crm.model_report_crm_case_section_stage
msgid "Cases by section and stage"
msgstr ""
msgstr "Zdarzenia wg sekcji i etapów"
#. module: crm
#: field:crm.case.rule,act_mail_to_email:0
@ -661,7 +657,7 @@ msgstr ""
#. module: crm
#: help:crm.case,email_from:0
msgid "These people will receive email."
msgstr ""
msgstr "Ci ludzie otrzymają wiadomość"
#. module: crm
#: help:crm.case.section,calendar:0
@ -710,6 +706,8 @@ msgstr ""
msgid ""
"You must define a responsible user for this case in order to use this action!"
msgstr ""
"Musisz zdefiniować użytkownika odpowiedzialnego za zdarzenie, aby zastosować "
"tę akcję!"
#. module: crm
#: view:crm.phonecall:0
@ -724,7 +722,7 @@ msgstr "Zdarzenia partnera"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job4
msgid "Contract Proposed"
msgstr ""
msgstr "Zaproponowano umowę"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm_case_job_req_main
@ -737,7 +735,7 @@ msgstr "Praca - proces zatrudnienia"
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Related Cases"
msgstr ""
msgstr "Zdarzenia związane"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@ -781,7 +779,7 @@ msgstr ""
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_stage
msgid "Cases by Opportunities and Stage"
msgstr ""
msgstr "Zdarzenia wg szans i etapów"
#. module: crm
#: view:crm.claim:0
@ -796,18 +794,18 @@ msgstr "Pozycje segmentacji partnera"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_category_act_leads_all
msgid "All Leads"
msgstr ""
msgstr "Wszystkie sygnały"
#. module: crm
#: view:crm.lead:0
msgid "Leads Form"
msgstr ""
msgstr "Formularz sygnałów"
#. module: crm
#: view:crm.segmentation:0
#: model:ir.model,name:crm.model_crm_segmentation
msgid "Partner Segmentation"
msgstr ""
msgstr "Segmentacja partnerów"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job5
@ -833,7 +831,7 @@ msgstr "Prawdopodobieństwo (%)"
#. module: crm
#: model:ir.model,name:crm.model_crm_lead
msgid "Leads Cases"
msgstr ""
msgstr "Zdarzenia - sygnały"
#. module: crm
#: help:crm.case.section,reply_to:0
@ -846,7 +844,7 @@ msgstr ""
#: view:crm.case.rule:0
#: model:ir.model,name:crm.model_crm_case_rule
msgid "Case Rule"
msgstr ""
msgstr "Reguła zdarzenia"
#. module: crm
#: code:addons/crm/crm_opportunity.py:0
@ -1299,7 +1297,7 @@ msgstr "Oblicz segmentację"
#. module: crm
#: view:crm.lead:0
msgid "Lead Email"
msgstr ""
msgstr "Email sygnału"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_segmentation-act
@ -1851,7 +1849,7 @@ msgstr ""
#. module: crm
#: view:crm.claim:0
msgid "In Progress Claims"
msgstr ""
msgstr "Reklamacje w toku"
#. module: crm
#: model:ir.actions.wizard,name:crm.wizard_crm_set_rrule
@ -1916,7 +1914,7 @@ msgstr ""
#. module: crm
#: view:crm.lead:0
msgid "Leads Tree"
msgstr ""
msgstr "Drzewo sygnałów"
#. module: crm
#: field:crm.meeting,caldav_url:0
@ -2180,7 +2178,7 @@ msgstr "Utworzono"
#. module: crm
#: view:crm.lead:0
msgid "Lead Information"
msgstr ""
msgstr "Informacja sygnału"
#. module: crm
#: model:ir.model,name:crm.model_crm_segmentation_line
@ -2438,6 +2436,8 @@ msgid ""
"Allows you to track and manage leads which are pre-sales requests or "
"contacts, the very first contact with a customer request."
msgstr ""
"Pozwala śledzić i zarządzać sygnałami, które są pytaniami sondażowymi lub "
"przypadkowymi kontaktami."
#. module: crm
#: help:crm.case,som:0
@ -2770,7 +2770,7 @@ msgstr ""
#. module: crm
#: view:crm.lead:0
msgid "Lead Name"
msgstr ""
msgstr "Nazwa sygnału"
#. module: crm
#: view:crm.claim:0
@ -2785,13 +2785,14 @@ msgstr ""
#. module: crm
#: view:crm.lead:0
msgid "Meeting For Leads Generation"
msgstr ""
msgstr "Spotkanie do generacji sygnałów"
#. module: crm
#: wizard_view:crm.lead.opportunity_set,create_partner:0
#: wizard_view:crm.lead.partner_create,init:0
msgid "Are you sure you want to create a partner based on this lead ?"
msgstr ""
"Jesteś pewien, że chcesz utworzyć partnera na podstawie tego sygnału ?"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job6
@ -2868,7 +2869,7 @@ msgstr ""
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_categ_claim0
msgid "All Claims"
msgstr ""
msgstr "Wszystkie reklamacje"
#. module: crm
#: field:crm.case.log,user_id:0
@ -2972,12 +2973,12 @@ msgstr "Wszystkie przypadki"
#: code:addons/crm/wizard/crm_lead_wizard.py:0
#, python-format
msgid "A partner is already defined on this lead."
msgstr ""
msgstr "Na podstawie tego sygnału juz został utworzony partner."
#. module: crm
#: view:crm.lead:0
msgid "Lead Source"
msgstr ""
msgstr "Źródło sygnału"
#. module: crm
#: field:report.crm.case.section.categ.categ2,nbr:0
@ -3072,7 +3073,7 @@ msgstr ""
#. module: crm
#: view:crm.lead:0
msgid "Search Leads"
msgstr ""
msgstr "Szukaj sygnału"
#. module: crm
#: help:crm.case.rule,active:0
@ -3244,7 +3245,7 @@ msgstr ""
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_lead_stage
msgid "Cases by Leads and Stage"
msgstr ""
msgstr "Zdarzenia wg sygnałów i etapów"
#. module: crm
#: field:crm.meeting,exdate:0
@ -3259,7 +3260,7 @@ msgstr ""
#. module: crm
#: model:process.transition,note:crm.process_transition_leadopportunity0
msgid "Creating business opportunities from Leads"
msgstr ""
msgstr "Tworzenie szansy z sygnału"
#. module: crm
#: model:ir.ui.menu,name:crm.next_id_64
@ -3331,7 +3332,7 @@ msgstr ""
#. module: crm
#: view:crm.lead:0
msgid "Lead Subject"
msgstr ""
msgstr "Temat sygnału"
#. module: crm
#: view:crm.lead:0
@ -3515,7 +3516,7 @@ msgstr ""
#. module: crm
#: view:crm.lead:0
msgid "Lead Details"
msgstr ""
msgstr "Szczegóły sygnału"
#. module: crm
#: field:crm.case.rule,act_section_id:0

View File

@ -63,7 +63,7 @@
</record>
<!-- Leads by user and section Search View -->
<record id="view_report_crm_lead_filter" model="ir.ui.view">
<field name="name">crm.lead.report.select</field>
<field name="model">crm.lead.report</field>
@ -119,7 +119,7 @@
</field>
</group>
<newline/>
<group expand="1" string="Extended options..." colspan="10" col="12">
<group expand="1" string="Extended options..." colspan="10" col="12" groups="base.group_extended">
<filter icon="terp-sale"
string="Done"
domain="[('state','=','done')]"/>
@ -144,14 +144,14 @@
<filter string="Section" icon="terp-sale"
domain="[]"
context="{'group_by':'section_id'}" />
<separator orientation="vertical" />
<filter string="State" icon="terp-sale"
domain="[]" context="{'group_by':'state'}" />
<filter string="Stage" icon="terp-sale" domain="[]"
context="{'group_by':'stage_id'}" />
<filter string="Category" icon="terp-sale"
domain="[]" context="{'group_by':'categ_id'}" />
@ -180,9 +180,9 @@
<tree string="Opportunities">
<field name="name" invisible="1"/>
<field name="month" invisible="1"/>
<field name="section_id" invisible="1"/>
<field name="section_id" invisible="1" groups="base.group_extended"/>
<field name="user_id" invisible="1"/>
<field name="company_id" invisible="1"/>
<field name="company_id" invisible="1" groups="base.group_extended"/>
<field name="partner_id" invisible="1"/>
<field name="day" invisible="1"/>
<field name="nbr" string="#Opportunities" sum="#Opportunities"/>
@ -220,7 +220,7 @@
<field name="view_id" ref="view_report_crm_lead_graph"/>
<field name="act_window_id" ref="action_report_crm_lead"/>
</record>
<record id="action_report_crm_opportunity" model="ir.actions.act_window">
<field name="name">Opportunities</field>
<field name="res_model">crm.lead.report</field>
@ -244,7 +244,7 @@
<field name="view_id" ref="view_report_crm_lead_graph"/>
<field name="act_window_id" ref="action_report_crm_opportunity"/>
</record>
<menuitem name="Leads" id="menu_report_crm_leads_tree"
groups="base.group_extended"
parent="base.next_id_64" action="action_report_crm_lead" />

View File

@ -39,7 +39,8 @@
key2="client_action_multi" name="Create Opportunity"
res_model="crm.partner2opportunity" src_model="res.partner"
view_id="view_crm_lead2partner_create"
view_mode="form" target="new" view_type="form" />
view_mode="form" target="new" view_type="form"
groups="base.group_extended"/>
</data>
</openerp>

View File

@ -118,7 +118,7 @@
<record model="ir.ui.view" id="view_document_directory_tree">
<field name="name">document.directory</field>
<field name="model">document.directory</field>
<field name="type">tree</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Directories" toolbar="1">
<field name="name"/>

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-05-10 10:27+0000\n"
"PO-Revision-Date: 2010-05-13 08:53+0000\n"
"Last-Translator: lyyser <logard.1961@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-05-11 04:18+0000\n"
"X-Launchpad-Export-Date: 2010-05-14 04:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: event
@ -185,7 +185,7 @@ msgstr ""
#. module: event
#: view:event.registration:0
msgid "Badge"
msgstr ""
msgstr "Tunnusmärk"
#. module: event
#: field:event.event,section_id:0
@ -200,7 +200,7 @@ msgstr ""
#. module: event
#: model:ir.ui.menu,name:event.menu_event_event
msgid "All Events"
msgstr ""
msgstr "Kõik sündmused"
#. module: event
#: model:ir.ui.menu,name:event.menu_report_event
@ -210,12 +210,12 @@ msgstr "Aruandlus"
#. module: event
#: view:event.registration:0
msgid "Cancel Registration"
msgstr ""
msgstr "Loobu registreerimisest"
#. module: event
#: model:ir.ui.menu,name:event.menu_action_event_categories
msgid "Events by Categories"
msgstr ""
msgstr "Sündmused kategooria järgi"
#. module: event
#: wizard_view:event.confirm_registration,split:0
@ -225,12 +225,12 @@ msgstr ""
#. module: event
#: field:report.event.type.registration,confirm_state:0
msgid "Confirm Registrations"
msgstr ""
msgstr "Kinnita registreerimised"
#. module: event
#: view:event.registration:0
msgid "References"
msgstr ""
msgstr "Viited"
#. module: event
#: model:ir.actions.act_window,name:event.action_event_type_registration
@ -252,7 +252,7 @@ msgstr "Vigane XML vaate arhitektuurile!"
#. module: event
#: wizard_button:event.confirm_registration,split,confirm:0
msgid "Confirm Anyway"
msgstr ""
msgstr "Kinnita siiski"
#. module: event
#: constraint:product.template:0
@ -272,7 +272,7 @@ msgstr ""
#. module: event
#: field:report.event.type.registration,nbevent:0
msgid "Number Of Events"
msgstr ""
msgstr "Sündmuste arv"
#. module: event
#: view:event.event:0
@ -282,7 +282,7 @@ msgstr ""
#. module: event
#: wizard_field:event.reg_make_invoice,init,inv_rej_reason:0
msgid "Error Messages"
msgstr ""
msgstr "Veateated"
#. module: event
#: view:event.event:0
@ -299,7 +299,7 @@ msgstr ""
#: model:ir.actions.act_window,name:event.action_registration_draft
#: model:ir.ui.menu,name:event.menu_action_registration_draft
msgid "Unconfirmed Registrations"
msgstr ""
msgstr "Kinnitamatta registreerimised"
#. module: event
#: field:event.registration,partner_invoice_id:0
@ -314,7 +314,7 @@ msgstr ""
#. module: event
#: selection:event.event,state:0
msgid "Canceled"
msgstr ""
msgstr "Katkestatud"
#. module: event
#: view:event.event:0

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-02-03 12:00+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-05-15 08:57+0000\n"
"Last-Translator: Boris <boris.t.ivanov@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-17 04:16+0000\n"
"X-Launchpad-Export-Date: 2010-05-17 05:01+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr
@ -316,6 +316,7 @@ msgstr ""
#: constraint:hr.employee:0
msgid "Error ! You cannot create recursive Hierarchy of Employees."
msgstr ""
"Грешка! Не могат да бъдат създавани рекурсивни йерархии от служители."
#. module: hr
#: model:process.process,name:hr.process_process_employeecontractprocess0

View File

@ -0,0 +1,277 @@
# Chinese (Simplified) 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: 2009-11-25 12:18+0000\n"
"PO-Revision-Date: 2010-05-15 06:32+0000\n"
"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-05-17 05:01+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_evaluation
#: view:hr_evaluation.type:0
#: field:hr_evaluation.type,info:0
msgid "Information"
msgstr ""
#. module: hr_evaluation
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr "对象名称必须以“x_”开头且不能包含任何特殊字符"
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Schedule next evaluation"
msgstr "安排下次考核"
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
#: field:hr_evaluation.evaluation,info_bad:0
msgid "Bad Points"
msgstr ""
#. module: hr_evaluation
#: model:ir.actions.act_window,name:hr_evaluation.open_view_employee_evaluation_next_my_list
msgid "My Next Evaluation"
msgstr "我的下次考核"
#. module: hr_evaluation
#: field:hr_evaluation.type,value_ids:0
msgid "Values"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
#: field:hr_evaluation.evaluation,info_good:0
msgid "Good Points"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.evaluation,state:0
msgid "State"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.evaluation,score:0
#: field:hr_evaluation.quote,score:0
#: field:hr_evaluation.type,score:0
#: field:hr_evaluation.type.value,score:0
msgid "Score"
msgstr "评分"
#. module: hr_evaluation
#: selection:hr_evaluation.evaluation,state:0
msgid "Draft"
msgstr "草稿"
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Informal Data"
msgstr ""
#. module: hr_evaluation
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.evaluation,employee_id:0
msgid "Employee"
msgstr "员工"
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
#: field:hr_evaluation.evaluation,info_improve:0
msgid "To Improve"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.quote,evaluation_id:0
msgid "Evaluation"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.type.value,type_id:0
msgid "Evaluation Type"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Status"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.type:0
msgid "Apply to categories"
msgstr ""
#. module: hr_evaluation
#: model:ir.module.module,description:hr_evaluation.module_meta_information
msgid "Ability to create employees evaluation."
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.quote,name:0
msgid "Quote"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.type,category_ids:0
msgid "Appliable Role"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.evaluation,user_id:0
msgid "Evaluation User"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.type:0
msgid "Choices Results"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.evaluation,date:0
msgid "Date"
msgstr ""
#. module: hr_evaluation
#: model:ir.ui.menu,name:hr_evaluation.menu_eval_hr
#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_employee_evaluation_form
msgid "Evaluations"
msgstr ""
#. module: hr_evaluation
#: model:ir.ui.menu,name:hr_evaluation.menu_eval_config
msgid "Configuration"
msgstr ""
#. module: hr_evaluation
#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_employee_evaluation_next_list
msgid "Next Evaluations"
msgstr ""
#. module: hr_evaluation
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
#. module: hr_evaluation
#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_evaluation_type_form
msgid "Evaluation Criterions"
msgstr ""
#. module: hr_evaluation
#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_employee_my_old_evaluation_list
msgid "My Preceeding Evaluations"
msgstr ""
#. module: hr_evaluation
#: model:ir.ui.menu,name:hr_evaluation.menu_resp_hr
msgid "HR Responsible"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.quote,value_id:0
#: field:hr_evaluation.type.value,name:0
msgid "Value"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.evaluation,name:0
msgid "Summary"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.type,active:0
msgid "Active"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.type:0
msgid "Notes"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
#: model:ir.model,name:hr_evaluation.model_hr_evaluation_evaluation
msgid "Employee Evaluation"
msgstr ""
#. module: hr_evaluation
#: model:ir.model,name:hr_evaluation.model_hr_evaluation_type
msgid "Employee Evaluation Type"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Quotations"
msgstr ""
#. module: hr_evaluation
#: model:ir.actions.act_window,name:hr_evaluation.open_view_employee_evaluation_next_list
msgid "Next Employee Evaluation"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.quote,type_id:0
msgid "Type"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.type:0
#: field:hr_evaluation.type,name:0
msgid "Evaluation Criterion"
msgstr ""
#. module: hr_evaluation
#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_employee_evaluation_next_my_list
msgid "My Next Evaluations"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.quote:0
msgid "Evalution Quote"
msgstr ""
#. module: hr_evaluation
#: model:ir.module.module,shortdesc:hr_evaluation.module_meta_information
msgid "Human Resources Evaluation"
msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.evaluation,quote_ids:0
msgid "Quotes"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
#: selection:hr_evaluation.evaluation,state:0
msgid "Done"
msgstr ""
#. module: hr_evaluation
#: model:ir.model,name:hr_evaluation.model_hr_evaluation_quote
msgid "Employee Evaluation Quote"
msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
#: field:hr_evaluation.evaluation,info_employee:0
msgid "Employee Response"
msgstr ""
#. module: hr_evaluation
#: model:ir.model,name:hr_evaluation.model_hr_evaluation_type_value
msgid "Evaluation Type Value"
msgstr ""

View File

@ -21,8 +21,6 @@
#
##############################################################################
from mx import DateTime
import time
import pooler
import netsvc
import datetime
@ -53,8 +51,6 @@ class hr_holidays_status(osv.osv):
return_false = False
employee_id = False
res = {}
for id in ids:
res[id] = {}.fromkeys(name, 0)
if context and context.has_key('employee_id'):
if not context['employee_id']:
return_false = True
@ -67,6 +63,8 @@ class hr_holidays_status(osv.osv):
return_false = True
if employee_id:
res = self.get_days(cr, uid, ids, employee_id, return_false, context=context)
else:
res = dict.fromkeys(ids, {name: 0})
return res
_columns = {
@ -135,20 +133,15 @@ class hr_holidays(osv.osv):
vals['allocation_type'] = context['allocation_type']
return super(osv.osv,self).create(cr, uid, vals, context)
def onchange_date_from(self, cr, uid, ids, date_to, date_from):
result = {}
if date_to and date_from:
from_dt = time.mktime(time.strptime(date_from,'%Y-%m-%d %H:%M:%S'))
to_dt = time.mktime(time.strptime(date_to,'%Y-%m-%d %H:%M:%S'))
diff_day = (to_dt-from_dt)/(3600*24)
result['value'] = {
'number_of_days_temp': round(diff_day)+1
}
return result
result['value'] = {
'number_of_days_temp': 0,
}
return result
def _get_number_of_days(date_from, date_to):
"""Returns a float equals to the timedelta between two dates given as string."""
DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S"
from_dt = datetime.datetime.strptime(date_from, DATETIME_FORMAT)
to_dt = datetime.datetime.strptime(date_to, DATETIME_FORMAT)
timedelta = to_dt - from_dt
diff_day = timedelta.days + float(timedelata.seconds) / 86400
return diff_day
def _update_user_holidays(self, cr, uid, ids):
for record in self.browse(cr, uid, ids):
@ -178,21 +171,22 @@ class hr_holidays(osv.osv):
return super(hr_holidays, self).unlink(cr, uid, ids, context)
def onchange_date_to(self, cr, uid, ids, date_from, date_to):
def onchange_date_from(self, cr, uid, ids, date_to, date_from):
result = {}
if date_from and date_to:
from_dt = time.mktime(time.strptime(date_from,'%Y-%m-%d %H:%M:%S'))
to_dt = time.mktime(time.strptime(date_to,'%Y-%m-%d %H:%M:%S'))
diff_day = (to_dt-from_dt)/(3600*24)
if date_to and date_from:
diff_day = self._get_number_of_days(date_from, date_to)
result['value'] = {
'number_of_days_temp': round(diff_day)+1
}
return result
result['value'] = {
'number_of_days_temp': 0
'number_of_days_temp': 0,
}
return result
def onchange_date_to(self, cr, uid, ids, date_from, date_to):
return onchange_date_from(cr, uid, ids, date_to, date_from)
def onchange_sec_id(self, cr, uid, ids, status, context={}):
warning = {}
if status:
@ -323,16 +317,15 @@ class hr_holidays(osv.osv):
self.holidays_validate(cr, uid, holiday_ids)
if record.holiday_status_id.categ_id and record.date_from and record.date_to and record.employee_id:
vals={}
vals['name']=record.name
vals['categ_id']=record.holiday_status_id.categ_id.id
epoch_c = time.mktime(time.strptime(record.date_to,'%Y-%m-%d %H:%M:%S'))
epoch_d = time.mktime(time.strptime(record.date_from,'%Y-%m-%d %H:%M:%S'))
diff_day = (epoch_c - epoch_d)/(3600*24)
vals['duration'] = (diff_day) * 8
vals['note'] = record.notes
vals['user_id'] = record.user_id.id
vals['date'] = record.date_from
diff_day = self._get_number_of_days(record.date_from, record.date_to)
vals = {
'name' : record.name,
'categ_id' : record.holiday_status_id.categ_id.id,
'duration' : (diff_day) * 8,
'note' : record.notes,
'user_id' : record.user_id.id,
'date' : record.date_from,
}
case_id = self.pool.get('crm.meeting').create(cr,uid,vals)
self.write(cr, uid, ids, {'case_id':case_id})
return True

View File

@ -43,7 +43,7 @@ class hr_analytic_timesheet(osv.osv):
_inherits = {'account.analytic.line': 'line_id'}
_order = "id desc"
_columns = {
'line_id' : fields.many2one('account.analytic.line', 'Analytic line', ondelete='cascade'),
'line_id' : fields.many2one('account.analytic.line', 'Analytic line', ondelete='cascade'),
'partner_id': fields.related('account_id', 'partner_id', type='many2one', string='Partner Id',relation='account.analytic.account',store=True),
}
@ -57,8 +57,7 @@ class hr_analytic_timesheet(osv.osv):
def on_change_unit_amount(self, cr, uid, id, prod_id, unit_amount, unit, context={}):
res = {}
# if prod_id and unit_amount:
if prod_id:
if prod_id and unit_amount:
# find company
company_id=self.pool.get('res.company')._company_default_get(cr, uid, 'account.analytic.line', context)
res = self.pool.get('account.analytic.line').on_change_unit_amount(cr, uid, id, prod_id, unit_amount,company_id,unit, context)

View File

@ -20,6 +20,7 @@
##############################################################################
from osv import osv, fields
import time
VoteValues = [('-1', 'Not Voted'), ('0', 'Very Bad'), ('25', 'Bad'), \
('50', 'Normal'), ('75', 'Good'), ('100', 'Very Good') ]
@ -90,26 +91,6 @@ class idea_idea(osv.osv):
cr.execute(sql, (ids,))
return dict(cr.fetchall())
def _comment_count(self, cr, uid, ids, name, arg, context=None):
""" count number of comment
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param ids: List of comments IDs
@return: dictionay of Idea """
if not ids:
return {}
sql = """SELECT i.id, COUNT(1)
FROM idea_idea i LEFT OUTER JOIN idea_comment c ON i.id = c.idea_id
WHERE i.id = ANY(%s)
GROUP BY i.id
"""
cr.execute(sql, (ids,))
return dict(cr.fetchall())
def _vote_read(self, cr, uid, ids, name, arg, context = None):
""" Read Vote
@ -149,18 +130,15 @@ class idea_idea(osv.osv):
vote_obj.create(cr, uid, {'idea_id': id, 'user_id': uid, 'score': textual_value })
_columns = {
'user_id': fields.many2one('res.users', 'Creator', required=True, readonly=True),
'user_id': fields.many2one('res.users', 'Responsible', required=True, readonly=True),
'title': fields.char('Idea Summary', size=64, required=True),
'description': fields.text('Description', required=True, help='Content of the idea'),
'comment_ids': fields.one2many('idea.comment', 'idea_id', 'Comments'),
'create_date': fields.datetime('Creation date', readonly=True),
'vote_ids': fields.one2many('idea.vote', 'idea_id', 'Vote'),
'created_date': fields.datetime('Date'),
'vote_ids': fields.one2many('idea.vote', 'idea_id', 'Vote', readonly=True),
'my_vote': fields.function(_vote_read, fnct_inv = _vote_save, \
string="My Vote", method=True, type="selection", selection=VoteValues),
'vote_avg': fields.function(_vote_avg_compute, method=True, string="Average Score", type="float"),
'count_votes': fields.function(_vote_count, method=True, string="Count of votes", type="integer"),
'count_comments': fields.function(_comment_count, method=True, \
string="Count of comments", type="integer"),
'category_id': fields.many2one('idea.category', 'Category', required=True),
'state': fields.selection([('draft', 'Draft'), ('open', 'Opened'), \
('close', 'Accepted'), ('cancel', 'Cancelled')], \
@ -169,8 +147,7 @@ class idea_idea(osv.osv):
opened by the user, the state is \'Opened\'.\
\nIf the idea is accepted, the state is \'Accepted\'.'),
'stat_vote_ids': fields.one2many('idea.vote.stat', 'idea_id', 'Statistics', readonly=True),
'date': fields.date('Creation date'),
'vote_user': fields.integer('Maximum Vote per User',
'vote_limit': fields.integer('Maximum Vote per User',
help="Set to one if you require only one Vote per user"),
}
@ -178,7 +155,8 @@ class idea_idea(osv.osv):
'user_id': lambda self,cr,uid,context: uid,
'my_vote': lambda *a: '-1',
'state': lambda *a: 'draft',
'vote_user': lambda * a: 1,
'vote_limit': lambda * a: 1,
'created_date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
}
_order = 'id desc'
@ -199,29 +177,6 @@ class idea_idea(osv.osv):
return True
idea_idea()
class idea_comment(osv.osv):
""" Apply Idea for Comment """
_name = 'idea.comment'
_description = 'Comments'
_rec_name = 'content'
_columns = {
'idea_id': fields.many2one('idea.idea', 'Idea', required=True, ondelete='cascade'),
'user_id': fields.many2one('res.users', 'User', required=True),
'content': fields.text('Comment', required=True),
'create_date': fields.datetime('Creation date', readonly=True),
}
_defaults = {
'user_id': lambda self, cr, uid, context: uid
}
_order = 'id desc'
idea_comment()
class idea_vote(osv.osv):
""" Apply Idea for Vote """
@ -230,12 +185,15 @@ class idea_vote(osv.osv):
_rec_name = 'score'
_columns = {
'user_id': fields.many2one('res.users', 'User'),
'idea_id': fields.many2one('idea.idea', 'Idea', required=True, ondelete='cascade'),
'score': fields.selection(VoteValues, 'Score', required=True),
'user_id': fields.many2one('res.users', 'By user', readonly="True"),
'idea_id': fields.many2one('idea.idea', 'Idea', readonly="True", ondelete='cascade'),
'score': fields.selection(VoteValues, 'Vote Status', readonly="True"),
'date': fields.datetime('Date', readonly="True"),
'comment': fields.text('Comment', readonly="True"),
}
_defaults = {
'score': lambda *a: DefaultVoteValue,
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
}
idea_vote()

View File

@ -47,10 +47,10 @@
id="base.menu_lunch_survey_root" sequence="6"/>
<menuitem name="Ideas" parent="base.menu_lunch_survey_root" id="menu_ideas"/>
<menuitem name="Categories" parent="menu_ideas"
id="menu_idea_category" action="action_idea_category" />
<!-- Idea Category Action -->
<record model="ir.actions.act_window" id="action_idea_category_tree">
@ -61,13 +61,18 @@
</record>
<menuitem name="Ideas" parent="base.menu_tools" id="menu_ideas1" sequence="4"/>
<menuitem
name="Ideas by Categories" parent="menu_ideas1"
id="menu_idea_category_tree"
action="action_idea_category_tree"/>
<menuitem name="Give Vote" parent="menu_ideas1"
id="menu_give_vote"
action="action_idea_select"/>
<!-- Oepn Ideas Action -->
<!-- Open Ideas Action -->
<record model="ir.actions.act_window" id="action_idea_idea_categ_open">
<field name="name">Open Ideas</field>
@ -108,9 +113,9 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Votes">
<field name="idea_id"/>
<field name="user_id"/>
<field name="score" />
<field name="user_id" />
<field name="score"/>
<field name="date"/>
</tree>
</field>
</record>
@ -123,9 +128,14 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Votes">
<field name="idea_id" select="1" />
<field name="user_id" select="1" />
<field name="score"/>
<group colspan="4">
<field name="user_id" select="1" />
<field name="date"/>
<newline/>
<field name="score"/>
</group>
<separator string="Comments:" colspan="4"/>
<field name="comment" colspan="4" nolabel="1"/>
</form>
</field>
</record>
@ -144,6 +154,7 @@
</group>
<newline/>
<group expand="1" string="Group By..." colspan="14">
<filter string="Vote date" icon="terp-crm" domain="[]" context="{'group_by':'date'}"/>
<filter string="Idea" icon="terp-crm" domain="[]" context="{'group_by':'idea_id'}"/>
<filter string="User" name="user" icon="terp-partner" domain="[]" context="{'group_by':'user_id'}"/>
</group>
@ -159,37 +170,25 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="New Idea">
<notebook>
<page string="Idea">
<field name="title" select="1" />
<field name="category_id" select="1"/>
<field name="date" />
<field name="user_id" select="1"/>
<field name="vote_avg" widget="progressbar"/>
<field name="vote_user"/>
<separator string="Description" colspan="4"/>
<field name="description" colspan="4" widget="text_wiki" nolabel="1"/>
<field name="state"/>
<group colspan="2" col="3">
<button name="idea_open" string="Open" states="draft" icon="gtk-go-forward"/>
<button name="idea_close" string="Close" states="open" icon="gtk-close" groups="base.group_extended"/>
<button name="idea_cancel" string="Cancel" states="open" icon="gtk-cancel" groups="base.group_extended"/>
</group>
</page>
<page string="Comments">
<field name="comment_ids" nolabel="1" colspan="4">
<form string="Comment">
<field name="user_id" colspan="2"/>
<separator string="User comment" colspan="4"/>
<field name="content" nolabel="1" colspan="4"/>
</form>
</field>
</page>
<page string="Vote">
<field name="vote_ids" nolabel="1" colspan="4" />
</page>
<page string="Statistics">
<field name="stat_vote_ids" colspan="4" mode="graph,tree" nolabel="1">
<group colspan="4" col="6">
<field name="title" select="1"/>
<field name="created_date" />
<field name="user_id" select="1"/>
<newline/>
<field name="category_id" select="1"/>
<field name="vote_avg" widget="progressbar"/>
<field name="vote_limit"/>
</group>
<notebook colspan="4">
<page string="Notes">
<separator string="Description" colspan="4"/>
<field name="description" nolabel="1"/>
</page>
<page string="Votes">
<field name="vote_ids" nolabel="1" colspan="4" />
</page>
<page string="Statistics">
<field name="stat_vote_ids" colspan="4" mode="graph,tree" nolabel="1">
<graph string="vote_stat of ideas" type="bar">
<field name="score"/>
<field name="nbr"/>
@ -199,8 +198,17 @@
<field name="nbr"/>
</tree>
</field>
</page>
</notebook>
</page>
</notebook>
<group colspan="4" col="6">
<field name="state"/>
<button name="idea_open" string="Open" states="draft" icon="gtk-go-forward"/>
<button name="idea_close" string="Close" states="open" icon="gtk-close" groups="base.group_extended"/>
<button name="idea_cancel" string="Cancel" states="open" icon="gtk-cancel" groups="base.group_extended"/>
<button name="%(action_idea_post_vote)d"
icon="gtk-execute" type="action" states="draft,open"
string="Give vote" />
</group>
</form>
</field>
</record>
@ -213,12 +221,11 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="All Ideas">
<field name="category_id" />
<field name="create_date"/>
<field name="user_id" />
<field name="title"/>
<field name="title"/>
<field name="category_id"/>
<field name="user_id"/>
<field name="created_date"/>
<field name="vote_avg" />
<field name="count_comments" />
<field name="count_votes" />
<button name="%(action_idea_post_vote)d" icon="gtk-execute"
type="action" states="draft,open" string="Vote" />
@ -251,30 +258,13 @@
<filter string="Category" icon="terp-crm" domain="[]" context="{'group_by':'category_id'}"/>
<filter string="State" icon="terp-crm" domain="[]" context="{'group_by':'state'}"/>
<separator orientation="vertical"/>
<filter string="Idea date" icon="terp-crm" domain="[]" context="{'group_by':'date'}"/>
<filter string="Vote date" icon="terp-crm" domain="[]" context="{'group_by':'created_date'}"/>
<filter string="User" name="user" icon="terp-partner" domain="[]" context="{'group_by':'user_id'}"/>
</group>
</search>
</field>
</record>
<!-- Comments on Idea Tree View -->
<record model="ir.ui.view" id="view_idea_comment_tree">
<field name="name">idea.comment.tree</field>
<field name="model">idea.comment</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Comments">
<field name="create_date" />
<field name="user_id" />
<field name="content" string="Comment" />
</tree>
</field>
</record>
<!-- Idea Action -->
<record model="ir.actions.act_window" id="action_idea_idea">
<field name="name">Ideas</field>
<field name="res_model">idea.idea</field>

View File

@ -1,7 +1,6 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_idea_category","idea.category","model_idea_category","base.group_user",1,0,0,0
"access_idea_idea","idea.idea","model_idea_idea","base.group_user",1,1,1,1
"access_idea_comment","idea.comment","model_idea_comment","base.group_user",1,1,1,1
"access_idea_vote","idea.vote","model_idea_vote","base.group_user",1,1,1,1
"access_idea_vote_stat","idea.vote.stat","model_idea_vote_stat","base.group_user",1,0,0,0
"access_idea_category_system","idea.category system","model_idea_category","base.group_system",1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_idea_category idea.category model_idea_category base.group_user 1 0 0 0
3 access_idea_idea idea.idea model_idea_idea base.group_user 1 1 1 1
access_idea_comment idea.comment model_idea_comment base.group_user 1 1 1 1
4 access_idea_vote idea.vote model_idea_vote base.group_user 1 1 1 1
5 access_idea_vote_stat idea.vote.stat model_idea_vote_stat base.group_user 1 0 0 0
6 access_idea_category_system idea.category system model_idea_category base.group_system 1 1 1 1

View File

@ -8,10 +8,10 @@
name: Technical
- |
I create a New Idea of "Technical presentation for 1 hours in every day" and specify category "Technical".
-
!record {model: idea.idea, id: idea_idea_0}:
category_id: idea_category_technical0
created_date: '05/13/2010 19:16:26'
description: I want that Technical presentation are arranged for 1 hours in every
day.\nso, on that presentation, we can know all things what improvement and development
are done in our company.\n\n\n\n\n
@ -50,31 +50,34 @@
- |
In order to post vote I connect as user1 and open the idea page
I click on "Vote" wizard and vote the idea as "Normal"
I click on "Give Vote" wizard button and vote the idea as "Normal"
-
!record {model: idea.post.vote, id: idea_post_vote_0}:
vote: 50
- |
Now I click on "Post Vote" button of wizard.
Now I click on "Post" button of this wizard.
-
!python {model: idea.post.vote}: |
uid = ref('res_users_user0')
self.do_vote(cr, uid, [ref("idea_post_vote_0")], {'active_id': ref('idea_idea_0')})
self.do_vote(cr, uid, [ref("idea_post_vote_0")], {'active_ids': [ref('idea_idea_0')]})
- |
To add other vote I connect as user2 and open the idea page
I click on "Vote" wizard and vote the idea as "Very Good"
I click on "Give Vote" wizard and vote the idea as "Very Good" and put comment "We can learn many things from technical presentation".
-
!record {model: idea.post.vote, id: idea_post_vote_1}:
vote: 100
content: We can learn many things from technical presentation
- |
I click on "Post Vote" button of this wizard.
I click on "Post" button of this wizard.
-
!python {model: idea.post.vote}: |
uid = ref('res_users_user1')
self.do_vote(cr, uid, [ref("idea_post_vote_1")], {'active_id': ref('idea_idea_0')})
self.do_vote(cr, uid, [ref("idea_post_vote_1")], {'active_ids': [ref('idea_idea_0')]})
- |
I can see that the Average score changed in "Average score" field with value 75
@ -82,14 +85,6 @@
!record {model: idea.idea, id: idea_idea_0}:
vote_avg: 75
- |
I put one comment "We can learn many things from technical presentation" for the idea.
-
!record {model: idea.idea, id: idea.idea_idea_0}:
comment_ids:
- content: We can learn many things from technical presentation
idea_id: idea.idea_idea_0
user_id: res_users_user1
- |
I connect as Manager and close this idea by click on "Close" button.
-

View File

@ -34,7 +34,7 @@ class idea_post_vote(osv.osv_memory):
('25', 'Bad'),
('50', 'Normal'),
('75', 'Good'),
('100', 'Very Good') ], 'Post Vote', required=True),
('100', 'Very Good') ], 'Give Vote', required=True),
'content': fields.text('Comment'),
}
@ -48,25 +48,28 @@ class idea_post_vote(osv.osv_memory):
@param context: A standard dictionary for contextual values
"""
idea_obj = self.pool.get('idea.idea')
vote_obj = self.pool.get('idea.vote')
for idea in idea_obj.browse(cr, uid, context.get('active_ids', [])):
cr.execute('select count(id) from idea_vote where user_id=%s\
and idea_id=%s' % (uid, context.get('active_id')))
res = cr.fetchone()[0]
user_limit = idea.vote_user
if res >= user_limit:
for active_id in context.get('active_ids'):
vote_ids = vote_obj.search(cr, uid, [('user_id', '=', uid), ('idea_id', '=', active_id)])
vote_obj_id = vote_obj.browse(cr, uid, vote_ids)
count = 0
for vote in vote_obj_id:
count += 1
user_limit = idea.vote_limit
if count >= user_limit:
raise osv.except_osv(_('Warning !'),_("You can not give Vote for this idea more than %s times") % (user_limit))
if idea.state in ['draft', 'close', 'cancel']:
raise osv.except_osv(_("Warning !"), _("Draft/Accepted/Cancelled \
ideas Could not be voted"))
if idea.state != 'open':
raise osv.except_osv(_('Warning !'), _('idea should be in \
raise osv.except_osv(_('Warning !'), _('Idea should be in \
\'Open\' state before vote for that idea.'))
return False
def do_vote(self, cr, uid, ids, context):
def do_vote(self, cr, uid, ids, context=None):
"""
Create idea vote.
@ -75,21 +78,56 @@ ideas Could not be voted"))
@param ids: List of Idea Post votes IDs.
@return: Dictionary {}
"""
data = context and context.get('active_id', False) or False
data = context and context.get('active_ids', []) or []
vote_obj = self.pool.get('idea.vote')
comment_obj = self.pool.get('idea.comment')
for do_vote_obj in self.read(cr, uid, ids):
score = str(do_vote_obj['vote'])
comment = do_vote_obj['content']
dic = {'idea_id': data, 'user_id': uid, 'score': score}
if comment:
comment_id = comment_obj.create(cr, uid, {'idea_id': data, 'user_id': uid, 'content': comment})
vote = vote_obj.create(cr, uid, dic)
for id in data:
dic = {'idea_id': id, 'user_id': uid, 'score': score, 'comment': comment}
vote = vote_obj.create(cr, uid, dic)
return {}
idea_post_vote()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
class idea_select(osv.osv_memory):
""" Select idea for vote."""
_name = "idea.select"
_description = "select idea"
_columns = {
'idea_id': fields.many2one('idea.idea', 'Idea', required=True),
}
def open_vote(self, cr, uid, ids, context=None):
"""
This function load column.
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param ids: List of load column,
@return: dictionary of query logs clear message window
"""
idea_obj = self.browse(cr, uid, ids)
for idea in idea_obj:
idea_id = idea.idea_id.id
data_obj = self.pool.get('ir.model.data')
id2 = data_obj._get_id(cr, uid, 'idea', 'view_idea_post_vote')
if id2:
id2 = data_obj.browse(cr, uid, id2, context=context).res_id
value = {
'view_type': 'form',
'view_mode': 'form',
'res_model': 'idea.post.vote',
'views': [(id2, 'form'), (False, 'tree'), (False, 'calendar'), (False, 'graph')],
'type': 'ir.actions.act_window',
'target': 'new',
'context': {'active_ids': [idea_id]}
}
return value
idea_select()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -9,8 +9,9 @@
<field name="model">idea.post.vote</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Create Tasks">
<form string="Give Vote">
<group colspan="4" >
<separator colspan="4" string="Give Vote for Idea"/>
<field name="vote"/>
<separator string="Comment" colspan="4"/>
<field name="content" colspan="4" nolabel="1"/>
@ -18,8 +19,29 @@
<separator string="" colspan="4"/>
<group colspan="4" col="6">
<label string="" colspan="2"/>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-ok" name="do_vote" string="Post Vote" type="object"/>
<button icon="gtk-cancel" special="cancel" string="Close"/>
<button icon="gtk-apply" name="do_vote" string="Post" type="object"/>
</group>
</form>
</field>
</record>
<record id="view_idea_select" model="ir.ui.view">
<field name="name">idea.select.form</field>
<field name="model">idea.select</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Select Idea for Vote">
<group colspan="4" >
<separator string="Select Idea for Vote" colspan="4"/>
<field name="idea_id"/>
</group>
<separator string="" colspan="4"/>
<group colspan="4" col="6">
<label string="" colspan="2"/>
<button icon="gtk-cancel" special="cancel" string="Close"/>
<button icon="gtk-go-forward" name="open_vote" string="Next" type="object"/>
</group>
</form>
</field>
@ -36,12 +58,16 @@
<field name="target">new</field>
</record>
<!-- Post Idea for vote Action Window -->
<act_window id="action_idea_post_vote_values"
key2="client_action_multi" name="vote"
res_model="idea.post.vote" src_model="idea.idea"
view_mode="form" target="new" view_type="form" />
<record id="action_idea_select" model="ir.actions.act_window">
<field name="name">Idea select</field>
<field name="res_model">idea.select</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_idea_select"/>
<field name="target">new</field>
<field name="context">{'model': 'idea.idea'}</field>
</record>
</data>
</openerp>

View File

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

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
@ -15,40 +15,30 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'Detailed information on partner form',
'version': '1.0',
'category': 'Generic Modules/Base',
'description': """
This module allows a salesman to have a direct overlook at all events related to this partner directly from the partner form.
It adds the following fields on the partner form:
* Opportunities
* Meetings
* Phone Calls
* Invoices
- group by product_id
* Contracts
* Timesheets
""",
'author': 'Tiny',
'website': 'http://www.openerp.com',
'depends': ['crm', 'account_analytic_analysis'],
'init_xml': [],
"name" : "",
"version" : "1.1",
"depends" : ["crm",
"document",
"poweremail" # need to get this module form the branch
# lp:poweremail
],
"author" : "Tiny",
"category": 'Generic Modules/Marketing',
"description": """
""",
'website': 'http://www.openerp.com',
'init_xml': [],
'update_xml': [
'security/ir.model.access.csv',
'partner_infotab_view.xml'
],
'demo_xml': [],
'installable': True,
'active': False,
'marketing_campaign_view.xml',
],
'demo_xml': [],
'installable': True,
'active': False,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,180 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import time
from datetime import datetime
from dateutil.relativedelta import relativedelta
from osv import fields, osv
_intervalTypes = {
'hours': lambda interval: relativedelta(hours=interval),
'days': lambda interval: relativedelta(days=interval),
'months': lambda interval: relativedelta(months=interval),
'years': lambda interval: relativedelta(years=interval),
}
class marketing_campaign(osv.osv): #{{{
_name = "marketing.campaign"
_description = "Marketing Campaigns"
_columns = {
'name': fields.char('Name', size=64),
'object_id': fields.many2one('ir.model', 'Objects'),
'mode':fields.selection([('test', 'Test'),
('test_realtime', 'Realtime Time'),
('manual', 'Manual'),
('active', 'Active')],
'Mode'),
'state': fields.selection([('draft', 'Draft'),
('running', 'Running'),
('done', 'Done'),
('cancelled', 'Cancelled'),],
'State',
readonly=True),
}
marketing_campaign()#}}}
class marketing_campaign_segment(osv.osv): #{{{
_name = "marketing.campaign.segment"
_description = "Marketing Campaign Segments"
_columns = {
'name': fields.char('Name', size=64),
'campaign_id': fields.many2one('marketing.campaign', 'Campaign'),
'object_id': fields.related('campaign_id','object_id',
type='many2one', relation='ir.model',
string='Object'),
'ir_filter_id':fields.many2one('ir.filters', 'Filter'),
'sync_last_date': fields.datetime('Date'),
'sync_mode':fields.selection([('create', 'Create'),
('write', 'Write')],
'Mode'),
'state': fields.selection([('draft', 'Draft'),
('running', 'Running'),
('done', 'Done'),
('cancelled', 'Cancelled')],
'State',
readonly=True),
'date_run': fields.datetime('Running'),
'date_done': fields.datetime('Done'),
}
marketing_campaign_segment()#}}}
class marketing_campaign_activity(osv.osv): #{{{
_name = "marketing.campaign.activity"
_description = "Marketing Campaign Activities"
_columns = {
'name': fields.char('Name', size=64),
'campaign_id': fields.many2one('marketing.campaign', 'Campaign'),
'object_id': fields.related('campaign_id','object_id',
type='many2one', relation='ir.model',
string='Object'),
'start': fields.boolean('Start'),
'condition': fields.text('Condition'),
'type':fields.selection([('email', 'E-mail'),
('paper', 'Paper'),
('action', 'Action'),
('subcampaign', 'Sub-Campaign')],
'Type'),
'email_template_id': fields.many2one('poweremail.templates','Email Template'),
'report_id': fields.many2one('ir.actions.report.xml', 'Reports'),
'report_directory_id': fields.many2one('document.directory', 'Directory'),
'server_action_id': fields.many2one('ir.actions.server', string='Action'),
'to_ids': fields.one2many('marketing.campaign.transition',
'activity_from_id',
'Next Activities'),
'subcampaign_id' :fields.many2one('marketing.campaign', 'Sub-Campaign'),
'subcampaign_segment_id' :fields.many2one('marketing.campaign.segment',
'Sub Campaign Segment'),
}
marketing_campaign_activity()#}}}
class marketing_campaign_transition(osv.osv): #{{{
_name = "marketing.campaign.transition"
_description = "Campaign Transitions"
_columns = {
'activity_from_id': fields.many2one('marketing.campaign.activity',
'Source Activity'),
'activity_to_id': fields.many2one('marketing.campaign.activity',
'Destination Activity'),
'interval_nbr': fields.integer('Interval No.'),
'interval_type': fields.selection([('hours', 'Hours'), ('days', 'Days'),
('months', 'Months'), ('years','Years')], 'Interval Type')
}
marketing_campaign_transition() #}}}
class marketing_campaign_workitem(osv.osv): #{{{
_name = "marketing.campaign.workitem"
_description = "Campaign Workitems"
_columns = {
'segment_id': fields.many2one('marketing.campaign.segment', 'Segment'),
'activity_id': fields.many2one('marketing.campaign.activity', 'Activity'),
'object_id': fields.related('segment_id', 'campaign_id', 'object_id',
type='many2one', relation='ir.model',
string='Object'),
'res_id': fields.integer('Results'),
'date': fields.datetime('Execution Date'),
'partner_id': fields.many2one('res.partner', 'Partner'),
'state': fields.selection([('todo', 'ToDo'), ('inprogress', 'In Progress'),
('exception', 'Exception'), ('done', 'Done'),
('cancelled', 'Cancelled')], 'State')
}
def process_chain(self, cr, uid, workitem_id, context={}):
workitem = self.browse(cr, uid, workitem_id)
to_ids = [to_ids.id for to_ids in workitem.activity_id.to_ids]
mct_obj = self.pool.get('marketing.campaign.transition')
process_to_id = mct_obj.search(cr,uid, [('id', 'in', to_ids),
('activity_from_id','=', 'activity_id')])
for mct_id in mct_obj.browse(cr, uid, process_to_id):
launch_date = datetime.datetime.now() + _intervalTypes[ \
mct_id.interval_type](mct_id.interval_nbr)
workitem_vals = {'segment_id': workitem.segment_id.id,
'activity_id': mct_id.activity_to_id.id,
'date': launch_date,
'partner_id': workitem.partner_id.id,
'state': 'todo',
}
self.create(cr, uid, workitem_vals)
def process(self, cr, uid, workitem_ids, context={}):
#for wi in self.browse(cr, uid, workitem_ids):
# if wi.state == 'todo'# we searched the wi which are in todo state then y v keep this filter again
return True
def process_all(self, cr, uid, context={}):
workitem_ids = self.search(cr, uid, [('type', '=', 'todo'),
('date','<=', time.strftime('%Y-%m-%d %H:%M:%S'))])
if workitem_ids:
self.parocess(cr, uid, workitem_ids, context)
marketing_campaign_workitem() #}}}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,18 @@
<?xml version="1.0" ?>
<openerp>
<data noupdate="1">
<!-- Cron -->
<record model="ir.cron" id="ir_cron_marketing_campaign_every_hour">
<field name="name">Check Workitem</field>
<field name="interval_number">60</field>
<field name="interval_type">minutes</field>
<field name="numbercall">-1</field>
<field name="doall" eval="False"/>
<field name="model" eval="'marketing.campaign.workitem'"/>
<field name="function" eval="'process_all'"/>
<field name="args" eval="'()'"/>
</record>
</data>
</openerp>

View File

@ -0,0 +1,261 @@
<?xml version="1.0"?>
<openerp>
<data>
<menuitem name="Direct Marketing" id="menu_marketing" parent="base.menu_base_partner"/>
<!--
======================
Marketing Campaign
======================
-->
<record model="ir.ui.view" id="view_marketing_campaign_form">
<field name="name">marketing.campaign.form</field>
<field name="model">marketing.campaign</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Campaign">
<group colspan="4">
<field name="name" select="1"/>
<field name="object_id" select="1"/>
<field name="mode"/>
</group>
<separator string="Status" colspan="4" />
<field name="state" nolabel = "1" colspan="4"/>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_marketing_campaign_tree">
<field name="name">marketing.campaign.tree</field>
<field name="model">marketing.campaign</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="All Campaigns">
<field name="name" select="1"/>
<field name="object_id" select="1"/>
<field name="mode"/>
<field name="state"/>
</tree>
</field>
</record>
<!--record id="view_marketing_campaign_diagram" model="ir.ui.view">
<field name="name">marketing.campaign.diagram</field>
<field name="model">marketing.campaign</field>
<field name="type">diagram</field>
<field name="arch" type="xml">
<diagram string="Campaign Editor">
<node object="marketing.campaign.activity" shape="rectangle:type!='subcampaign'" bgcolor="gray:start==True">
<field name="name"/>
<field name="type"/>
<field name="start" invisible="1"/>
</node>
<arrow object="marketing.campaign.transition" source="activity_from_id" destination="activity_to_id">
<field name="activity_from_id"/>
<field name="activity_to_id"/>
</arrow>
</diagram>
</field>
</record-->
<record model="ir.actions.act_window" id="action_marketing_campaign_form">
<field name="name">All Campaigns</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">marketing.campaign</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,diagram</field>
<field name="view_id" ref="view_marketing_campaign_tree"/>
</record>
<menuitem id="menu_marketing_campaign_form" parent="menu_marketing" action="action_marketing_campaign_form" sequence="20" />
<!--
======================
Marketing Segments
======================
-->
<record model="ir.ui.view" id="view_marketing_campaign_segment_form">
<field name="name">marketing.campaign.segment.form</field>
<field name="model">marketing.campaign.segment</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Segments">
<group colspan="4">
<field name="name" select="1"/>
<newline/>
<field name="campaign_id" select="1"/>
<field name="object_id" select="1"/>
<newline/>
<field name="ir_filter_id" select="1"/>
<newline/>
<field name="date_run"/>
<field name="date_done"/>
<separator string="Synchronization" colspan="4" />
<field name="sync_last_date"/>
<field name="sync_mode"/>
</group>
<separator string="Status" colspan="4" />
<field name="state" nolabel = "1" colspan="4"/>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_marketing_campaign_segment_tree">
<field name="name">marketing.campaign.segment.tree</field>
<field name="model">marketing.campaign.segment</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="All Segments">
<field name="name" select="1"/>
<field name="campaign_id" select="1"/>
<field name="sync_last_date"/>
<field name="sync_mode"/>
<field name="state"/>
<field name="date_run"/>
<field name="date_done"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="action_marketing_campaign_segment_form">
<field name="name">All Segments</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">marketing.campaign.segment</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_marketing_campaign_segment_tree"/>
</record>
<menuitem id="menu_marketing_campaign_segment_form" parent="menu_marketing" action="action_marketing_campaign_segment_form" sequence="10" />
<!--
======================
Marketing Activities
======================
-->
<record model="ir.ui.view" id="view_marketing_campaign_activity_form">
<field name="name">marketing.campaign.activity.form</field>
<field name="model">marketing.campaign.activity</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Activities">
<field name="name" select="1" />
<field name="start"/>
<field name="campaign_id" select="1"/>
<field name="object_id"/>
<field name="condition" colspan="4"/>
<newline/>
<field name="type"/>
<group colspan="4" attrs="{'invisible':[('type','!=','email')]}" >
<field name="email_template_id" attrs="{'required':[('type','=','email')]}" />
</group>
<group colspan="4" attrs="{'invisible':[('type','!=','paper')]}" >
<field name="report_id" attrs="{'required':[('type','=','paper')]}" />
<field name="report_directory_id" attrs="{'required':[('type','=','paper')]}" />
</group>
<group colspan="4" attrs="{'invisible':[('type','!=','action')]}" >
<field name="server_action_id" attrs="{'required':[('type','=','action')]}" />
</group>
<group colspan="4" attrs="{'invisible':[('type','!=','subcampaign')]}" >
<field name="subcampaign_id" attrs="{'required':[('type','=','subcampaign')]}" />
<field name="subcampaign_segment_id" attrs="{'required':[('type','=','subcampaign')]}" />
</group>
<field name="to_ids" nolabel="1" colspan="4" mode="tree">
<tree string="All Transitions" editable="bottom">
<field name="activity_from_id"/>
<field name="activity_to_id" />
<field name="interval_nbr" />
<field name="interval_type"/>
</tree>
</field>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_marketing_campaign_activity_tree">
<field name="name">marketing.campaign.activity.tree</field>
<field name="model">marketing.campaign.activity</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="All Activities">
<field name="name" select="1"/>
<field name="campaign_id" select="1"/>
<field name="start"/>
<field name="object_id"/>
<field name="condition"/>
<field name="type"/>
<field name="report_id"/>
<field name="to_ids"/>
<field name="subcampaign_id"/>
<field name="subcampaign_segment_id"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="action_marketing_campaign_activity_form">
<field name="name">All Activities</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">marketing.campaign.activity</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_marketing_campaign_activity_tree"/>
</record>
<!--
<menuitem id="menu_marketing_campaign_activity_form" parent="menu_marketing" action="action_marketing_campaign_activity_form" sequence="3" />-->
<!--
======================
Marketing Workitems
======================
-->
<record model="ir.ui.view" id="view_marketing_campaign_workitem_tree">
<field name="name">marketing.campaign.workitem.tree</field>
<field name="model">marketing.campaign.workitem</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="All Workitems">
<field name="segment_id"/>
<field name="activity_id" />
<field name="res_id" />
<field name="date"/>
<field name="state"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_marketing_campaign_workitem_form">
<field name="name">marketing.campaign.workitem.form</field>
<field name="model">marketing.campaign.workitem</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Workitem">
<field name="segment_id" select="1"/>
<field name="activity_id" select="1"/>
<field name="object_id"/>
<field name="res_id"/>
<field name="date" select="1"/>
<field name="partner_id" select="1"/>
<separator string="Status" colspan="4"/>
<field name="state" nolabel="1" colspan="4" readonly="True" select="1"/>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_marketing_campaign_workitem">
<field name="name">All Workitems</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">marketing.campaign.workitem</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_marketing_campaign_workitem_tree"/>
</record>
<menuitem id="menu_action_marketing_campaign_workitem" parent="menu_marketing" action="action_marketing_campaign_workitem" sequence="30" groups="base.group_extended"/>
</data>
</openerp>

View File

@ -7,87 +7,87 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 16:42+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-05-13 16:57+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <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: 2010-04-17 04:19+0000\n"
"X-Launchpad-Export-Date: 2010-05-14 04:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Fees Line"
msgstr ""
msgstr "Pozycja opłat"
#. module: mrp_repair
#: field:mrp.repair.fee,repair_id:0
#: field:mrp.repair.line,repair_id:0
msgid "Repair Order Ref"
msgstr ""
msgstr "Odnośnik zamówienia naprawy"
#. module: mrp_repair
#: field:mrp.repair.line,move_id:0
msgid "Inventory Move"
msgstr ""
msgstr "Przesunięcie zapasów"
#. module: mrp_repair
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Untaxed amount"
msgstr ""
msgstr "Kwota bez podatku"
#. module: mrp_repair
#: field:mrp.repair,state:0
msgid "Repair State"
msgstr ""
msgstr "Stan naprawy"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Printing Date"
msgstr ""
msgstr "Data wydruku"
#. module: mrp_repair
#: field:mrp.repair.fee,product_uom_qty:0
#: rml:repair.order:0
msgid "Quantity"
msgstr ""
msgstr "Ilość"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Set to Draft"
msgstr ""
msgstr "Ustaw na projekt"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "Invoice Exception"
msgstr ""
msgstr "Wyjątek faktury"
#. module: mrp_repair
#: field:mrp.repair,address_id:0
msgid "Delivery Address"
msgstr ""
msgstr "Adres dostawy"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Make Invoice"
msgstr ""
msgstr "Utwórz fakturę"
#. module: mrp_repair
#: field:mrp.repair.fee,price_subtotal:0
#: field:mrp.repair.line,price_subtotal:0
msgid "Subtotal"
msgstr ""
msgstr "Wartość"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Invoice address :"
msgstr ""
msgstr "Adres do faktury :"
#. module: mrp_repair
#: field:mrp.repair,guarantee_limit:0
@ -99,12 +99,12 @@ msgstr ""
#: field:mrp.repair.fee,tax_id:0
#: field:mrp.repair.line,tax_id:0
msgid "Taxes"
msgstr ""
msgstr "Podatki"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Net Total :"
msgstr ""
msgstr "Suma netto :"
#. module: mrp_repair
#: rml:repair.order:0
@ -114,148 +114,148 @@ msgstr ""
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Operations"
msgstr ""
msgstr "Operacje"
#. module: mrp_repair
#: field:mrp.repair,move_id:0
msgid "Move"
msgstr ""
msgstr "Przesunięcie"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_order_tree
msgid "Repair Orders"
msgstr ""
msgstr "Zamówienie naprawy"
#. module: mrp_repair
#: model:ir.actions.report.xml,name:mrp_repair.report_mrp_repair
msgid "Quotation / Order"
msgstr ""
msgstr "Oferta / Zamówienie"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Extra Info"
msgstr ""
msgstr "Dodatkowe informacje"
#. module: mrp_repair
#: field:mrp.repair,partner_id:0
msgid "Partner"
msgstr ""
msgstr "Partner"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_quotation_tree
#: model:ir.ui.menu,name:mrp_repair.menu_repair_quotation
msgid "Repairs in quotation"
msgstr ""
msgstr "Naprawy w ofercie"
#. module: mrp_repair
#: selection:mrp.repair,state:0
#: selection:mrp.repair.line,state:0
msgid "Confirmed"
msgstr ""
msgstr "Potwierdzone"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Recreate Invoice"
msgstr ""
msgstr "Utwórz fakturę od nowa"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Repairs order"
msgstr ""
msgstr "Zamówienie napraw"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Repair Order N° :"
msgstr ""
msgstr "Zamówienie naprawy nr :"
#. module: mrp_repair
#: field:mrp.repair,prodlot_id:0
#: rml:repair.order:0
msgid "Lot Number"
msgstr ""
msgstr "Numer partii"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "Under Repair"
msgstr ""
msgstr "W trakcie naprawy"
#. module: mrp_repair
#: field:mrp.repair,fees_lines:0
msgid "Fees Lines"
msgstr ""
msgstr "Pozycja opłaty"
#. module: mrp_repair
#: model:ir.model,name:mrp_repair.model_mrp_repair_fee
msgid "Repair Fees line"
msgstr ""
msgstr "Pozycja opłaty naprawy"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Fees Line(s)"
msgstr ""
msgstr "Pozycja(e) opłaty"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "To be Invoiced"
msgstr ""
msgstr "Do zafakturowania"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Shipping address :"
msgstr ""
msgstr "Adres do wysyłki :"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Start Repair"
msgstr ""
msgstr "Rozpocznij naprawę"
#. module: mrp_repair
#: field:mrp.repair.line,product_uom_qty:0
msgid "Quantity (UoM)"
msgstr ""
msgstr "Ilość (JM)"
#. module: mrp_repair
#: field:mrp.repair.fee,to_invoice:0
#: field:mrp.repair.line,to_invoice:0
msgid "To Invoice"
msgstr ""
msgstr "Do zafakturowania"
#. module: mrp_repair
#: model:ir.ui.menu,name:mrp_repair.menu_repair_order
msgid "Repairs"
msgstr ""
msgstr "Naprawy"
#. module: mrp_repair
#: field:mrp.repair,picking_id:0
msgid "Packing"
msgstr ""
msgstr "Lista przesunięć"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Total :"
msgstr ""
msgstr "Suma :"
#. module: mrp_repair
#: field:mrp.repair,pricelist_id:0
msgid "Pricelist"
msgstr ""
msgstr "Cennik"
#. module: mrp_repair
#: help:mrp.repair,state:0
msgid "Gives the state of the Repair Order"
msgstr ""
msgstr "Określa stan zamówienia naprawy"
#. module: mrp_repair
#: view:mrp.repair:0
#: field:mrp.repair,quotation_notes:0
msgid "Quotation Notes"
msgstr ""
msgstr "Uwagi oferty"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_progress_tree
#: model:ir.ui.menu,name:mrp_repair.menu_repair_progress
msgid "Repairs in progress"
msgstr ""
msgstr "Naprawa w trakcie"
#. module: mrp_repair
#: constraint:ir.ui.view:0
@ -274,93 +274,93 @@ msgstr ""
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Repair Line"
msgstr ""
msgstr "Pozycja naprawy"
#. module: mrp_repair
#: rml:repair.order:0
msgid "N° :"
msgstr ""
msgstr "Nr :"
#. module: mrp_repair
#: field:mrp.repair,invoice_method:0
msgid "Invoice Method"
msgstr ""
msgstr "Metoda fakturowania"
#. module: mrp_repair
#: field:mrp.repair,repaired:0
msgid "Repaired"
msgstr ""
msgstr "Naprawione"
#. module: mrp_repair
#: wizard_field:mrp.repair.make_invoice,init,group:0
msgid "Group by partner invoice address"
msgstr ""
msgstr "Grupuj wg adresów partnera do faktur"
#. module: mrp_repair
#: field:mrp.repair.fee,invoice_line_id:0
#: field:mrp.repair.line,invoice_line_id:0
msgid "Invoice Line"
msgstr ""
msgstr "Pozycja faktury"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Total amount"
msgstr ""
msgstr "Suma kwot"
#. module: mrp_repair
#: selection:mrp.repair.line,state:0
msgid "Canceled"
msgstr ""
msgstr "Anulowano"
#. module: mrp_repair
#: selection:mrp.repair,invoice_method:0
msgid "Before Repair"
msgstr ""
msgstr "Przed naprawą"
#. module: mrp_repair
#: field:mrp.repair,location_id:0
msgid "Current Location"
msgstr ""
msgstr "Obecna strefa"
#. module: mrp_repair
#: wizard_button:mrp.repair.cancel,display,yes:0
msgid "Yes"
msgstr ""
msgstr "Tak"
#. module: mrp_repair
#: field:mrp.repair,invoiced:0
#: field:mrp.repair.fee,invoiced:0
#: field:mrp.repair.line,invoiced:0
msgid "Invoiced"
msgstr ""
msgstr "Zafakturowano"
#. module: mrp_repair
#: wizard_button:mrp.repair.cancel,display,end:0
msgid "No"
msgstr ""
msgstr "Nie"
#. module: mrp_repair
#: wizard_view:mrp.repair.make_invoice,init:0
#: wizard_button:mrp.repair.make_invoice,init,invoice:0
msgid "Create invoices"
msgstr ""
msgstr "Utwórz faktury"
#. module: mrp_repair
#: selection:mrp.repair.line,type:0
#: rml:repair.order:0
msgid "Add"
msgstr ""
msgstr "Dodaj"
#. module: mrp_repair
#: selection:mrp.repair.line,state:0
msgid "Draft"
msgstr ""
msgstr "Projekt"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_order_form
#: model:ir.ui.menu,name:mrp_repair.menu_repair_form
msgid "New Repair"
msgstr ""
msgstr "Nowa naprawa"
#. module: mrp_repair
#: constraint:ir.model:0
@ -373,12 +373,12 @@ msgstr ""
#. module: mrp_repair
#: field:mrp.repair,amount_untaxed:0
msgid "Untaxed Amount"
msgstr ""
msgstr "Kwota bez podatku"
#. module: mrp_repair
#: field:mrp.repair.line,state:0
msgid "Status"
msgstr ""
msgstr "Stan"
#. module: mrp_repair
#: rml:repair.order:0
@ -389,12 +389,12 @@ msgstr ""
#: field:mrp.repair,product_id:0
#: rml:repair.order:0
msgid "Product to Repair"
msgstr ""
msgstr "Produkt do naprawy"
#. module: mrp_repair
#: help:mrp.repair,pricelist_id:0
msgid "The pricelist comes from the selected partner, by default."
msgstr ""
msgstr "Cennik domyślnie jest pobierany z wybranego partnera"
#. module: mrp_repair
#: wizard_view:mrp.repair.cancel,display:0
@ -402,105 +402,107 @@ msgid ""
"This operation will cancel the Repair process, but will not cancel it's "
"Invoice. Do you want to continue?"
msgstr ""
"Ta operacja anuluje proces naprawy, ale nie anuluje faktury. Czy chcesz "
"kontynuować?"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "Quotation"
msgstr ""
msgstr "Oferta"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Compute"
msgstr ""
msgstr "Oblicz"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Confirm Repair"
msgstr ""
msgstr "Potwierdź naprawę"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Repair Quotation"
msgstr ""
msgstr "Oferta naprawy"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "End Repair"
msgstr ""
msgstr "Koniec naprawy"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "History"
msgstr ""
msgstr "Historia"
#. module: mrp_repair
#: model:ir.model,name:mrp_repair.model_mrp_repair
msgid "Repairs Order"
msgstr ""
msgstr "Oferty napraw"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_ready_tree
#: model:ir.ui.menu,name:mrp_repair.menu_repair_ready
msgid "Repairs Ready to Start"
msgstr ""
msgstr "Naprawy gotowe do rozpoczęcia"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Qty"
msgstr ""
msgstr "Il."
#. module: mrp_repair
#: selection:mrp.repair,state:0
#: selection:mrp.repair.line,state:0
msgid "Done"
msgstr ""
msgstr "Wykonano"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_2binvoiced_tree
#: model:ir.ui.menu,name:mrp_repair.menu_repair_2binvoiced
msgid "Repairs to be invoiced"
msgstr ""
msgstr "Naprawy do zafakturowania"
#. module: mrp_repair
#: field:mrp.repair,invoice_id:0
msgid "Invoice"
msgstr ""
msgstr "Faktura"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Fees"
msgstr ""
msgstr "Opłaty"
#. module: mrp_repair
#: selection:mrp.repair,state:0
#: wizard_button:mrp.repair.make_invoice,init,end:0
msgid "Cancel"
msgstr ""
msgstr "Anuluj"
#. module: mrp_repair
#: field:mrp.repair.line,location_dest_id:0
msgid "Dest. Location"
msgstr ""
msgstr "Strefa docelowa"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Operation Line(s)"
msgstr ""
msgstr "Pozycje operacji"
#. module: mrp_repair
#: model:ir.model,name:mrp_repair.model_mrp_repair_line
msgid "Repair Operations Lines"
msgstr ""
msgstr "Pozycje operacji naprawy"
#. module: mrp_repair
#: field:mrp.repair,location_dest_id:0
msgid "Delivery Location"
msgstr ""
msgstr "Strefa dostawy"
#. module: mrp_repair
#: model:ir.module.module,shortdesc:mrp_repair.module_meta_information
msgid "Products Repairs Module"
msgstr ""
msgstr "Moduł naprawy produktów"
#. module: mrp_repair
#: help:mrp.repair,invoice_method:0
@ -515,35 +517,35 @@ msgstr ""
#: field:mrp.repair.line,price_unit:0
#: rml:repair.order:0
msgid "Unit Price"
msgstr ""
msgstr "Cena jednostkowa"
#. module: mrp_repair
#: wizard_view:mrp.repair.make_invoice,init:0
msgid "Do you really want to create the invoices ?"
msgstr ""
msgstr "Na pewno chcesz utworzyć faktury ?"
#. module: mrp_repair
#: field:mrp.repair.fee,name:0
#: field:mrp.repair.line,name:0
#: rml:repair.order:0
msgid "Description"
msgstr ""
msgstr "Opis"
#. module: mrp_repair
#: field:mrp.repair,operations:0
msgid "Operation Lines"
msgstr ""
msgstr "Pozycje operacji"
#. module: mrp_repair
#: field:mrp.repair.fee,product_id:0
#: field:mrp.repair.line,product_id:0
msgid "Product"
msgstr ""
msgstr "Produkt"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Invoice Corrected"
msgstr ""
msgstr "Faktura poprawiona"
#. module: mrp_repair
#: help:mrp.repair,deliver_bool:0
@ -553,118 +555,122 @@ msgid ""
"that you can select the locations in the Info tab, if you have the extended "
"view."
msgstr ""
"Zaznacz to pole, jeśli chcesz zarządzać dostawą po naprawie. Jeśli "
"zaznaczone, to zostanie utworzona lista przesunięć z wybranym produktem. "
"Zwróć uwagę, że możesz wybrać strefę w zakładce informacyjnej, jeśli masz "
"ustawiony rozszerzony widok."
#. module: mrp_repair
#: field:mrp.repair.line,type:0
msgid "Type"
msgstr ""
msgstr "Typ"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Price"
msgstr ""
msgstr "Cena"
#. module: mrp_repair
#: field:mrp.repair,deliver_bool:0
msgid "Deliver"
msgstr ""
msgstr "Dostarcz"
#. module: mrp_repair
#: view:mrp.repair:0
#: field:mrp.repair,internal_notes:0
msgid "Internal Notes"
msgstr ""
msgstr "Uwagi wewnętrzne"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Taxes:"
msgstr ""
msgstr "Podatki:"
#. module: mrp_repair
#: model:ir.actions.wizard,name:mrp_repair.wizard_mrp_repair_make_invoice
msgid "Make invoices"
msgstr ""
msgstr "Utwórz faktury"
#. module: mrp_repair
#: field:mrp.repair,name:0
msgid "Repair Ref"
msgstr ""
msgstr "Odnośnik naprawy"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "UoM"
msgstr ""
msgstr "JM"
#. module: mrp_repair
#: selection:mrp.repair.line,type:0
#: rml:repair.order:0
msgid "Remove"
msgstr ""
msgstr "Usuń"
#. module: mrp_repair
#: wizard_view:mrp.repair.cancel,display:0
msgid "Cancel Repair...??"
msgstr ""
msgstr "Anulować naprawę...??"
#. module: mrp_repair
#: field:mrp.repair.fee,product_uom:0
#: field:mrp.repair.line,product_uom:0
msgid "Product UoM"
msgstr ""
msgstr "JM produktu"
#. module: mrp_repair
#: field:mrp.repair,partner_invoice_id:0
msgid "Invoicing Address"
msgstr ""
msgstr "Adres do faktury"
#. module: mrp_repair
#: selection:mrp.repair,invoice_method:0
msgid "After Repair"
msgstr ""
msgstr "Po naprawie"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Invoicing"
msgstr ""
msgstr "Fakturowanie"
#. module: mrp_repair
#: field:mrp.repair.line,location_id:0
msgid "Source Location"
msgstr ""
msgstr "Strefa źródłowa"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Quality"
msgstr ""
msgstr "Jakość"
#. module: mrp_repair
#: model:ir.actions.wizard,name:mrp_repair.action_cancel_repair
#: view:mrp.repair:0
msgid "Cancel Repair"
msgstr ""
msgstr "Anuluj naprawę"
#. module: mrp_repair
#: selection:mrp.repair,invoice_method:0
msgid "No Invoice"
msgstr ""
msgstr "Brak faktur"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "States"
msgstr ""
msgstr "Stany"
#. module: mrp_repair
#: help:mrp.repair,partner_id:0
msgid ""
"This field allow you to choose the parner that will be invoiced and delivered"
msgstr ""
msgstr "To pole pozwala ci wybrać partnera, który dostanie fakturę i dostawę"
#. module: mrp_repair
#: field:mrp.repair,amount_total:0
msgid "Total"
msgstr ""
msgstr "Suma"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "Ready to Repair"
msgstr ""
msgstr "Gotowe do naprawy"

View File

@ -8,41 +8,45 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-12-08 11:46+0000\n"
"PO-Revision-Date: 2010-01-26 11:01+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2010-05-13 16:47+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <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: 2010-04-17 04:21+0000\n"
"X-Launchpad-Export-Date: 2010-05-14 04:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: multi_company
#: help:multi_company.default,object_id:0
msgid "Object affect by this rules"
msgstr ""
msgstr "Obiekt podlegający tej regule"
#. module: multi_company
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Nazwa obiektu musi zaczynać się od x_ oraz nie może zawierać znaków "
"specjalnych !"
#. module: multi_company
#: constraint:product.template:0
msgid ""
"Error: The default UOM and the purchase UOM must be in the same category."
msgstr ""
msgstr "Błąd: domyślna JM i zakupowa JM muszą być tej samej kategorii."
#. module: multi_company
#: constraint:res.partner:0
msgid "The VAT doesn't seem to be correct."
msgstr ""
"Numer NIP wygląda na niepoprawny. Wpisuj numer z PL na początku. Bez kresek "
"i spacji."
#. module: multi_company
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
#. module: multi_company
#: model:res.company,overdue_msg:multi_company.res_company_odoo
@ -59,18 +63,18 @@ msgstr ""
#. module: multi_company
#: field:multi_company.default,company_dest_id:0
msgid "Default Company"
msgstr ""
msgstr "Domyślna firma"
#. module: multi_company
#: field:multi_company.default,object_id:0
msgid "Object"
msgstr ""
msgstr "Obiekt"
#. module: multi_company
#: model:ir.module.module,shortdesc:multi_company.module_meta_information
#: view:multi_company.default:0
msgid "Multi Company"
msgstr ""
msgstr "Wielofirmowość"
#. module: multi_company
#: model:ir.module.module,description:multi_company.module_meta_information
@ -83,12 +87,12 @@ msgstr ""
#. module: multi_company
#: field:multi_company.default,company_id:0
msgid "Main Company"
msgstr ""
msgstr "Główna firma"
#. module: multi_company
#: view:multi_company.default:0
msgid "Condition"
msgstr ""
msgstr "Warunek"
#. module: multi_company
#: help:multi_company.default,company_dest_id:0
@ -98,17 +102,17 @@ msgstr ""
#. module: multi_company
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
msgstr "XML niewłaściwy dla tej architektury wyświetlania!"
#. module: multi_company
#: field:multi_company.default,name:0
msgid "Name"
msgstr ""
msgstr "Nazwa"
#. module: multi_company
#: constraint:product.template:0
msgid "Error: UOS must be in a different category than the UOM"
msgstr ""
msgstr "Błąd: JS musi być innej kategorii niż JM."
#. module: multi_company
#: model:product.category,name:multi_company.Odoo1
@ -118,17 +122,17 @@ msgstr ""
#. module: multi_company
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
msgstr ""
msgstr "Błąd! Nie możesz tworzyć firm rekurencyjnych."
#. module: multi_company
#: help:multi_company.default,name:0
msgid "Name it to easily find a record"
msgstr ""
msgstr "Nazwij to, aby łatwiej odszukać rekord"
#. module: multi_company
#: model:ir.ui.menu,name:multi_company.menu_custom_multicompany
msgid "Multi company"
msgstr ""
msgstr "Wielofirmowość"
#. module: multi_company
#: model:ir.model,name:multi_company.model_multi_company_default
@ -138,17 +142,17 @@ msgstr ""
#. module: multi_company
#: help:multi_company.default,company_id:0
msgid "Company where the user is connected"
msgstr ""
msgstr "Firma, do której użytkownik jest podłączony"
#. module: multi_company
#: model:ir.actions.act_window,name:multi_company.action_inventory_form
msgid "Default Company per Object"
msgstr ""
msgstr "Domyślna firma dla obiektów"
#. module: multi_company
#: field:multi_company.default,expression:0
msgid "Expression"
msgstr ""
msgstr "Wyrażenie"
#. module: multi_company
#: model:product.template,name:multi_company.product_product_odoo1_product_template
@ -158,35 +162,35 @@ msgstr ""
#. module: multi_company
#: field:multi_company.default,sequence:0
msgid "Sequence"
msgstr ""
msgstr "Numeracja"
#. module: multi_company
#: constraint:product.category:0
msgid "Error ! You can not create recursive categories."
msgstr ""
msgstr "Błąd ! Nie możesz tworzyć rekurencyjnych kategorii."
#. module: multi_company
#: constraint:product.product:0
msgid "Error: Invalid ean code"
msgstr ""
msgstr "Błąd: Niedozwolony kod EAN"
#. module: multi_company
#: help:multi_company.default,expression:0
msgid "Expression, must be True to match"
msgstr ""
msgstr "Wyrażenie, musi być Prawdą aby było spełnione"
#. module: multi_company
#: model:ir.ui.menu,name:multi_company.menu_action_inventory_form
msgid "Default company per Object"
msgstr ""
msgstr "Domyślna firma dla obiektu"
#. module: multi_company
#: code:addons/multi_company/multi_company.py:0
#, python-format
msgid " (copy)"
msgstr ""
msgstr " (kopia)"
#. module: multi_company
#: view:multi_company.default:0
msgid "Matching"
msgstr ""
msgstr "Zgodność"

View File

@ -46,8 +46,8 @@
"data/olap_security.xml",
'security/ir.model.access.csv'
],
"demo_xml" : ["data/olap_demo.xml",
"test/olap_test00.yml"],
"demo_xml" : ["data/olap_demo.xml"
],
"active": False,
"installable": True
}

View File

@ -3,7 +3,7 @@
<data>
<!-- Wizard view for the load data -->
<record id="bi_load_db_form" model="ir.ui.view">
<field name="name">bi.load.db.form</field>
<field name="model">bi.load.db.wizard</field>
@ -22,7 +22,7 @@
</form>
</field>
</record>
<record id="act_bi_load_db_wizard" model="ir.actions.act_window">
<field name="name">Load database Structure</field>
<field name="res_model">bi.load.db.wizard</field>
@ -33,10 +33,10 @@
<field name="auto_refresh" eval="1"/>
<field name="target">new</field>
</record>
<!-- Wizard For Olap Warehouse -->
<record id="view_warehouse_bi" model="ir.ui.view">
<field name="name">Olap Warehouse</field>
<field name="model">olap.warehouse.wizard</field>
@ -51,7 +51,7 @@
</form>
</field>
</record>
<record id="action_olap_warehouse" model="ir.actions.act_window">
<field name="name">Olap Warehouse</field>
<field name="type">ir.actions.act_window</field>
@ -60,7 +60,7 @@
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<menuitem
name="Olap Warehouse"
action="action_olap_warehouse"
@ -68,9 +68,9 @@
sequence="51"
parent="base.next_id_50"
/>
<!-- Wizard View for the parameters wizard -->
<record id="view_config_bi" model="ir.ui.view">
<field name="name">Parameters Configuration</field>
<field name="model">olap.parameters.config.wizard</field>
@ -90,7 +90,7 @@
</form>
</field>
</record>
<record id="action_config_bi_parameters" model="ir.actions.act_window">
<field name="name">Parameters Configuration</field>
<field name="type">ir.actions.act_window</field>
@ -99,7 +99,7 @@
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<menuitem
name="Server Parameters"
action="action_config_bi_parameters"
@ -107,16 +107,16 @@
sequence="50"
parent="base.next_id_50"
/>
<record model="ir.actions.todo" id="config_auto_directory">
<field name="name">Server Parameters Configuration</field>
<field name="note">This wizard will configure the URL of the web client</field>
<field name="action_id" ref="action_config_bi_parameters"/>
</record>
<!-- Wizard view for the Auto Configuring the data -->
<record id="bi_auto_configure_form" model="ir.ui.view">
<field name="name">bi.auto.configure.form</field>
<field name="model">bi.auto.configure.wizard</field>
@ -131,7 +131,7 @@
</form>
</field>
</record>
<record id="act_bi_auto_configure" model="ir.actions.act_window">
<field name="name">Auto Configuration</field>
<field name="res_model">bi.auto.configure.wizard</field>
@ -142,13 +142,13 @@
<field name="auto_refresh" eval="1"/>
<field name="target">new</field>
</record>
# ------------------------------------------------------------------
# Olap Schema
# ------------------------------------------------------------------
<record model="ir.ui.view" id="view_olap_schema_tree">
<field name="name">olap.schema.tree</field>
<field name="model">olap.schema</field>
@ -160,7 +160,7 @@
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_olap_schema_form">
<field name="name">olap.schema.form</field>
<field name="model">olap.schema</field>
@ -195,19 +195,19 @@
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_olap_schema_form">
<field name="name">Olap Schemas</field>
<field name="res_model">olap.schema</field>
<field name="view_type">form</field>
</record>
<menuitem
name="Olap Schema"
action="action_olap_schema_form"
id="menu_action_olap_schema_form"
parent="menu_bi_conf_cubes"/>
# ------------------------------------------------------------------
# Olap Cubes Table
# ------------------------------------------------------------------
@ -245,23 +245,23 @@
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_olap_cube_table_form">
<field name="name">Olap Cube Tables</field>
<field name="res_model">olap.cube.table</field>
<field name="view_type">form</field>
</record>
<menuitem
name="Olap Cubes Table"
parent = "menu_bi_conf_cubes"
action="action_olap_cube_table_form"
id="menu_action_olap_cube_table_form"/>
# ------------------------------------------------------------------
# Olap Cubes
# ------------------------------------------------------------------
<record model="ir.ui.view" id="view_olap_cube_tree">
<field name="name">olap.cube.tree</field>
<field name="model">olap.cube</field>
@ -273,7 +273,7 @@
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_olap_cube_form">
<field name="name">olap.cube.form</field>
<field name="model">olap.cube</field>
@ -287,24 +287,24 @@
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_olap_cube_form">
<field name="name">Olap Cubes</field>
<field name="res_model">olap.cube</field>
<field name="view_type">form</field>
</record>
<menuitem
name="Olap Cubes"
parent ="menu_bi_conf_cubes"
action="action_olap_cube_form"
id="menu_action_olap_cube_form"/>
# ------------------------------------------------------------------
# Olap Dimensions
# ------------------------------------------------------------------
<record model="ir.ui.view" id="view_olap_dimension_tree">
<field name="name">olap.dimension.tree</field>
<field name="model">olap.dimension</field>
@ -316,7 +316,7 @@
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_olap_dimension_form">
<field name="name">olap.dimension.form</field>
<field name="model">olap.dimension</field>
@ -328,23 +328,23 @@
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_olap_dimension_form">
<field name="name">Olap Dimensions</field>
<field name="res_model">olap.dimension</field>
<field name="view_type">form</field>
</record>
<menuitem
name="Olap Dimension"
parent = "menu_bi_conf_cubes"
action="action_olap_dimension_form"
id="menu_action_olap_dimension_form"/>
# ------------------------------------------------------------------
# Olap Hierarchies
# ------------------------------------------------------------------
<record model="ir.ui.view" id="view_olap_hierarchy_tree">
<field name="name">olap.hierarchy.tree</field>
<field name="model">olap.hierarchy</field>
@ -356,7 +356,7 @@
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_olap_hierarchy_form">
<field name="name">olap.hierarchy.form</field>
<field name="model">olap.hierarchy</field>
@ -365,33 +365,29 @@
<form string="Olap hierarchy">
<field name="name" select="1" colspan="2"/>
<field name="sequence" colspan="2"/>
<field name="dimension_id" select="1" attrs="{'readonly':[('dimension_id','!=','')]}" colspan="4"/>
<!-- <field name="field_name" select="2"/>-->
<field name="table_id" select="2" colspan="4" context="{'d_id':dimension_id}"/>
<!-- <separator string="Levels" colspan="4"/>
<field name="level_ids" colspan="4" nolabel="1"/>-->
<field name="dimension_id" select="1" attrs="{'readonly':[('dimension_id','!=','')]}" colspan="2"/>
<field name="table_id" select="2" colspan="2" context="{'d_id':dimension_id}"/>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_olap_hierarchy_form">
<field name="name">Olap Hierarchies</field>
<field name="res_model">olap.hierarchy</field>
<field name="view_type">form</field>
</record>
<menuitem
name="Olap Hierarchy"
parent = "menu_bi_conf_cubes"
action="action_olap_hierarchy_form"
id="menu_action_olap_hierarchy_form"/>
# ------------------------------------------------------------------
# Olap Levels
# ------------------------------------------------------------------
<record model="ir.ui.view" id="view_olap_level_tree">
<field name="name">olap.level.tree</field>
<field name="model">olap.level</field>
@ -408,7 +404,7 @@
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_olap_level_form">
<field name="name">olap.level.form</field>
<field name="model">olap.level</field>
@ -427,24 +423,24 @@
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_olap_level_form">
<field name="name">Olap Level</field>
<field name="res_model">olap.level</field>
<field name="view_type">form</field>
</record>
<menuitem
name="Olap Level"
parent = "menu_bi_conf_cubes"
action="action_olap_level_form"
id="menu_action_olap_level_form"/>
# ------------------------------------------------------------------
# Olap Measure
# ------------------------------------------------------------------
<record model="ir.ui.view" id="view_olap_measure_tree">
<field name="name">olap.measure.tree</field>
<field name="model">olap.measure</field>
@ -456,7 +452,7 @@
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_olap_measure_form">
<field name="name">olap.measure.form</field>
<field name="model">olap.measure</field>
@ -471,7 +467,7 @@
<group colspan="4" attrs="{'invisible':[('measure_type','!=','fact_column')]}">
<newline/>
<field name="value_column" select="1" attrs="{'required':[('measure_type','=','fact_column')]}" on_change="onchange_measure_name(value_column)" context="{'filter_cols_cube':cube_id}"/>
<field name="agregator" select="2" />
<field name="agregator" select="2"/>
<field name="formatstring" select="2"/>
</group>
<group colspan="4" attrs="{'invisible':[('measure_type','!=','sql_expr')]}">
@ -484,19 +480,19 @@
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_olap_measure_form">
<field name="name">Olap Measures</field>
<field name="res_model">olap.measure</field>
<field name="view_type">form</field>
</record>
<menuitem
name="Olap Measures"
parent = "menu_bi_conf_cubes"
action="action_olap_measure_form"
id="menu_action_olap_measure_form"/>
# ------------------------------------------------------------------
# Olap Saved Query
# ------------------------------------------------------------------
@ -515,7 +511,7 @@
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_olap_saved_query_form_mdx">
<field name="name">olap.saved.query.mdx</field>
<field name="model">olap.saved.query</field>
@ -531,7 +527,7 @@
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_olap_saved_query_form">
<field name="name">olap.saved.query.form</field>
<field name="model">olap.saved.query</field>
@ -553,22 +549,22 @@
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_olap_saved_query_form">
<field name="name">Olap Saved Query</field>
<field name="res_model">olap.saved.query</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,mdx</field>
</record>
<menuitem
name="Olap Saved Query"
parent = "menu_bi_conf_tools"
action="action_olap_saved_query_form"
id="menu_action_olap_saved_query_form"/>
<!-- All Logs -->
<record model="ir.ui.view" id="view_olap_query_logs_tree">
<field name="name">olap.query.logs</field>
<field name="model">olap.query.logs</field>
@ -582,7 +578,7 @@
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_olap_query_logs_form">
<field name="name">olap.query.logs.form</field>
<field name="model">olap.query.logs</field>
@ -599,21 +595,21 @@
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_olap_query_logs_form">
<field name="name">All Logs</field>
<field name="res_model">olap.query.logs</field>
<field name="view_type">form</field>
</record>
<menuitem
name="All Logs"
action="action_olap_query_logs_form"
id="menu_action_olap_query_logs_form"
parent="menu_bi_conf_tools"/>
<!-- All Logs / My logs -->
<record model="ir.ui.view" id="view_olap_query_logs_my_tree">
<field name="name">olap.query.logs</field>
<field name="model">olap.query.logs</field>
@ -626,7 +622,7 @@
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_olap_query_logs_my_tree">
<field name="name">olap.query.logs</field>
<field name="model">olap.query.logs</field>
@ -639,9 +635,9 @@
</tree>
</field>
</record>
<!-- Query Logs -->
<record model="ir.ui.view" id="view_olap_query_logs_my_form">
<field name="name">olap.query.logs.form</field>
<field name="model">olap.query.logs</field>
@ -657,7 +653,7 @@
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_olap_query_logs_my_form">
<field name="name">My Logs</field>
<field name="res_model">olap.query.logs</field>
@ -665,12 +661,12 @@
<field name="view_mode">tree,form,mdx</field>
<field name="domain">[('user_id','=',uid)]</field>
</record>
<menuitem
name="My Logs"
action="action_olap_query_logs_my_form"
id="menu_action_olap_query_logs_my_form"
parent="menu_action_olap_query_logs_form"/>
</data>
</openerp>

View File

@ -11,20 +11,23 @@
name: OpenERP
type: postgres
-
I will check the connection for successful login. >>>>>>(Problem)
# !python {model: olap.fact.database}: |
# self.test_connection(cr, uid,[ref('olap_fact_database_openerp0')], context)
I will check the connection for successful login.
-
!python {model: olap.fact.database}: |
import tools
if tools.config['db_name'] == 'tiny' and tools.config['db_password'] == '123456' and tools.config['db_host'] == 'localhost':
self.test_connection(cr, uid, ids ,{'active_ids':[ref('olap_fact_database_openerp0')]})
-
In order to test schema,I create a new schema record.
-
!record {model: olap.schema, id: olap_schema_Partners0}:
database_id: olap_fact_database_openerp0
name: Partners
-
-
I press "Connect to Database" and I see that the Schema State is "Database Connected" now
-
-
!workflow {model: olap.schema, action: dbconnect, ref: olap_schema_Partners0}
-
-
Now I will load the structure of the database. by structure we mean tables, columns and the relations. This will help in defining cube easily.
-
!record {model: bi.load.db.wizard, id: bi_load_db_wizard_0}:
@ -45,7 +48,7 @@
!workflow {model: olap.schema, action: dbconfigure, ref: olap_schema_Partners0}
-
Performing a workflow action dbready on module olap.schema
-
-
!workflow {model: olap.schema, action: dbready, ref: olap_schema_Partners0}
-
In order to create Cube I first define the fact table.Fact table are the key tables in which measures are stored and we can branch to other tables for other parameters.
@ -93,7 +96,7 @@
table_id: olap_cube_table_partnercubetable0
-
After adding the hierarchy I create level.I select Product's default_code as Columns Name that is loaded in Fact columns.
-
-
!record {model: olap.level, id: olap_level_productscode0}:
column_id_name: name
column_name: olap.columns_res_user_name
@ -107,5 +110,4 @@
-
!python {model: olap.load.column}: |
ids = self.search(cr, uid, [])
self.get_table_data(cr, uid, ids, {'active_ids': [ref('olap_cube_table_partnercubetable0')]})
self.get_table_data(cr, uid, ids, {'active_ids': [ref('olap_cube_table_partnercubetable0')]})

View File

@ -9,9 +9,13 @@
<field name="model">olap.load.column</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="">
<separator string=" " colspan="4"/>
<button name="get_table_data" string="Open" type="object"/>
<form string="Open Columns">
<label string="Do u Want to Open Columns ?" colspan="6"/>
<separator string="" colspan="6"/>
<group col="6" colspan="4">
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
<button name="get_table_data" string="Open" type="object" icon="gtk-ok"/>
</group>
</form>
</field>
</record>

View File

@ -11,11 +11,10 @@
<field name="arch" type="xml">
<form string=" To Load Data">
<field name='user_name'/>
<separator string="" colspan="4" />
<label string="" colspan="2" />
<group colspan="4">
<button special="cancel" string="Cancel" />
<button name="clear_logs" string="Clear Logs" type="object"/>
<separator string="" colspan="6" />
<group col="4" colspan="4">
<button special="cancel" string="Cancel" icon="gtk-cancel" />
<button name="clear_logs" string="Clear Logs" type="object" icon="gtk-clear"/>
</group>
</form>
</field>

View File

@ -1,42 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import osv, fields
class res_partner(osv.osv):
""" Inherits partner and adds more information in the partner form """
_inherit = 'res.partner'
_columns = {
'opportunity_ids': fields.one2many('crm.lead', 'partner_id', 'Opportunities', domain=[('type', '=', 'opportunity')]),
'meeting_ids': fields.one2many('crm.meeting', 'partner_id',\
'Meetings'),
'phonecall_ids': fields.one2many('crm.phonecall', 'partner_id', 'Phonecalls'),
'invoice_ids': fields.one2many('account.invoice.line', 'partner_id', 'Invoices'),
'contract_ids': fields.one2many('account.analytic.account', \
'partner_id', 'Contracts'),
'account_line_ids': fields.one2many('hr.analytic.timesheet', \
'partner_id', 'Anaylitic account lines '),
}
res_partner()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,32 +0,0 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!-- Partners inherited form -->
<record id="view_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.form.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="CRM Info">
<field name="opportunity_ids" colspan="4" nolabel="1" />
<field name="meeting_ids" colspan="4" nolabel="1" />
<field name="phonecall_ids" colspan="4" nolabel="1" />
</page>
<page string="Other Info">
<field name="invoice_ids" colspan="4" nolabel="1" context="{'group_by':'product_id'}"/>
<field name="contract_ids" colspan="4" nolabel="1"/>
<field name="account_line_ids" colspan="4" nolabel="1" context="{'group_by':'date'}"/>
</page>
</notebook>
</field>
</record>
</data>
</openerp>

View File

@ -1,9 +0,0 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_crm_meeting_partner_manager","crm.meeting","crm.model_crm_meeting","base.group_partner_manager",1,0,0,0
"access_crm_meeting_user","crm.meeting","crm.model_crm_meeting","base.group_user",1,0,0,0
"access_crm_phonecall_partner_manager","crm.phonecall","crm.model_crm_phonecall","base.group_partner_manager",1,0,0,0
"access_crm_phonecall_user","crm.phonecall","crm.model_crm_phonecall","base.group_user",1,0,0,0
"access_invoice_partner_manager","account.invoice","account.model_account_invoice","base.group_partner_manager",1,0,0,0
"access_invoice_user","account.invoice","account.model_account_invoice","base.group_user",1,0,0,0
"access_analytic_account_partner_manager","account.analytic.account","account_analytic_analysis.model_account_analytic_account","base.group_partner_manager",1,0,0,0
"access_analytic_account_user","account.analytic.account","account_analytic_analysis.model_account_analytic_account","base.group_user",1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_crm_meeting_partner_manager crm.meeting crm.model_crm_meeting base.group_partner_manager 1 0 0 0
3 access_crm_meeting_user crm.meeting crm.model_crm_meeting base.group_user 1 0 0 0
4 access_crm_phonecall_partner_manager crm.phonecall crm.model_crm_phonecall base.group_partner_manager 1 0 0 0
5 access_crm_phonecall_user crm.phonecall crm.model_crm_phonecall base.group_user 1 0 0 0
6 access_invoice_partner_manager account.invoice account.model_account_invoice base.group_partner_manager 1 0 0 0
7 access_invoice_user account.invoice account.model_account_invoice base.group_user 1 0 0 0
8 access_analytic_account_partner_manager account.analytic.account account_analytic_analysis.model_account_analytic_account base.group_partner_manager 1 0 0 0
9 access_analytic_account_user account.analytic.account account_analytic_analysis.model_account_analytic_account base.group_user 1 0 0 0

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 12:55+0000\n"
"Last-Translator: ale <alessio.guidi@gmail.com>\n"
"PO-Revision-Date: 2010-05-16 08:40+0000\n"
"Last-Translator: Luca Bedogni <me@lucabedogni.it>\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: 2010-04-17 04:00+0000\n"
"X-Launchpad-Export-Date: 2010-05-17 05:01+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: point_of_sale
@ -52,7 +52,7 @@ msgstr "Totale pezzi"
#. module: point_of_sale
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nome del modello non valido nella definizione dell'azione."
#. module: point_of_sale
#: field:pos.order,name:0
@ -77,7 +77,7 @@ msgstr "Aggiungi Prodotto"
#. module: point_of_sale
#: rml:pos.lines:0
msgid "Net Total"
msgstr ""
msgstr "Totale netto"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.menu_action_pos_order_tree2
@ -102,17 +102,17 @@ msgstr "Seleziona un ordine di vendita aperto"
#. module: point_of_sale
#: rml:pos.lines:0
msgid "Company"
msgstr ""
msgstr "Impresa"
#. module: point_of_sale
#: rml:pos.invoice:0
msgid "Invoice Date"
msgstr ""
msgstr "Data della fattura"
#. module: point_of_sale
#: rml:pos.receipt:0
msgid ","
msgstr ""
msgstr ","
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_lines_detail
@ -137,12 +137,12 @@ msgstr "Subtotale"
#. module: point_of_sale
#: rml:pos.invoice:0
msgid "Partner Ref."
msgstr ""
msgstr "Rif. Partner"
#. module: point_of_sale
#: rml:pos.receipt:0
msgid "Tel : + 32 (0) 2 231 04 35"
msgstr ""
msgstr "Tel: + 32 (0) 2 231 04 35"
#. module: point_of_sale
#: field:pos.order.line,name:0
@ -192,7 +192,7 @@ msgstr "Riga Vendita"
#. module: point_of_sale
#: rml:pos.lines:0
msgid "No. Of Articles"
msgstr ""
msgstr "N. Di Articoli"
#. module: point_of_sale
#: field:pos.config.journal,code:0
@ -242,7 +242,7 @@ msgstr "Qta'"
#. module: point_of_sale
#: field:pos.order,user_id:0
msgid "Logged in User"
msgstr ""
msgstr "Utente autenticato"
#. module: point_of_sale
#: rml:pos.details:0
@ -262,7 +262,7 @@ msgstr "Totale Transazione"
#. module: point_of_sale
#: rml:pos.details:0
msgid "Disc"
msgstr ""
msgstr "Sconto"
#. module: point_of_sale
#: rml:pos.invoice:0
@ -273,7 +273,7 @@ msgstr "Fax :"
#. module: point_of_sale
#: wizard_view:pos.scan_product,init:0
msgid "Scan Barcode"
msgstr ""
msgstr "Scansione codice a barre"
#. module: point_of_sale
#: field:pos.order,partner_id:0
@ -340,7 +340,7 @@ msgstr "Data Pagamento"
#. module: point_of_sale
#: wizard_field:pos.payment,ask_pay,payment_name:0
msgid "Payment name"
msgstr ""
msgstr "Nome del pagamento"
#. module: point_of_sale
#: field:pos.order,lines:0
@ -350,17 +350,17 @@ msgstr "Righe Ordine"
#. module: point_of_sale
#: rml:pos.invoice:0
msgid "Disc.(%)"
msgstr ""
msgstr "Sconto (%)"
#. module: point_of_sale
#: model:ir.module.module,shortdesc:point_of_sale.module_meta_information
msgid "Point Of Sale"
msgstr ""
msgstr "Punto vendita"
#. module: point_of_sale
#: field:pos.order.line,create_date:0
msgid "Creation Date"
msgstr ""
msgstr "Data della creazione"
#. module: point_of_sale
#: rml:pos.invoice:0
@ -385,7 +385,7 @@ msgstr "Configurazione Registro Punto Vendita"
#. module: point_of_sale
#: rml:pos.receipt:0
msgid "Total :"
msgstr ""
msgstr "Totale :"
#. module: point_of_sale
#: wizard_field:pos.config.journal,init,default_journal:0
@ -437,7 +437,7 @@ msgstr "Registri Predefiniti"
#. module: point_of_sale
#: rml:pos.invoice:0
msgid "Draft Invoice"
msgstr ""
msgstr "Bozza Fattura"
#. module: point_of_sale
#: field:pos.order.line,discount:0

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-12-26 09:25+0000\n"
"Last-Translator: lem0na <nickyk@gmx.net>\n"
"PO-Revision-Date: 2010-05-15 09:15+0000\n"
"Last-Translator: Boris <boris.t.ivanov@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-17 04:10+0000\n"
"X-Launchpad-Export-Date: 2010-05-17 05:01+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product
@ -1218,7 +1218,7 @@ msgstr ""
#. module: product
#: help:product.pricelist.version,date_end:0
msgid "Ending date for this pricelist version to be valid."
msgstr ""
msgstr "Крайна дата на валидност на тази версия на ценоразпис."
#. module: product
#: field:pricelist.partnerinfo,suppinfo_id:0

View File

@ -42,7 +42,7 @@
<field name="view_id" ref="product_pricelist_version_tree_view"/>
</record>
<menuitem
action="product_pricelist_action" id="menu_product_pricelist_action"
action="product_pricelist_action" id="menu_product_pricelist_action"
parent="product.menu_product_pricelist_main" sequence="2"/>
<record id="product_pricelist_item_tree_view" model="ir.ui.view">

View File

@ -446,9 +446,9 @@ class product_product(osv.osv):
'outgoing_qty': fields.function(_product_outgoing_qty, method=True, type='float', string='Outgoing'),
'price': fields.function(_product_price, method=True, type='float', string='Pricelist', digits_compute=dp.get_precision('Sale Price')),
'lst_price' : fields.function(_product_lst_price, method=True, type='float', string='List Price', digits_compute=dp.get_precision('Sale Price')),
'code': fields.function(_product_code, method=True, type='char', string='Code'),
'code': fields.function(_product_code, method=True, type='char', string='Reference'),
'partner_ref' : fields.function(_product_partner_ref, method=True, type='char', string='Customer ref'),
'default_code' : fields.char('Code', size=64),
'default_code' : fields.char('Reference', size=64),
'active': fields.boolean('Active', help="If the active field is set to true, 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=False),
@ -676,7 +676,20 @@ class pricelist_partnerinfo(osv.osv):
_order = 'min_quantity asc'
pricelist_partnerinfo()
class res_users(osv.osv):
_name = 'res.users'
_inherit = 'res.users'
def create(self, cr, uid, data, context={}):
user_id = super(res_users, self).create(cr, uid, data, context)
data_obj = self.pool.get('ir.model.data')
data_id = data_obj._get_id(cr, uid, 'product', 'ir_ui_view_sc_product0')
view_id = data_obj.browse(cr, uid, data_id, context=context).res_id
copy_id = self.pool.get('ir.ui.view_sc').copy(cr, uid, view_id, default = {
'user_id': user_id}, context=context)
return user_id
res_users()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -18,7 +18,7 @@
<field name="name" select="1"/>
<field name="categ_id" select="1" widget="selection" operator="child_of"/>
<newline/>
<group col='8' colspan='14' expand="1" string="Extended options...">
<group col='8' colspan='14' expand="1" string="Extended options..." groups="base.group_extended">
<field name="pricelist_id" select="1" widget="selection" context="{'pricelist': self}" />
</group>
<newline/>
@ -99,7 +99,7 @@
<group colspan="2" col="2" name="status">
<separator string="Status" colspan="2"/>
<field name="categ_id" select="1"/>
<field name="categ_id" select="1" groups="base.group_extended"/>
<field name="state"/>
<field groups="base.group_extended" name="product_manager"/>
</group>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" ?>
<openerp>
<data>
<wizard
id="report_wizard_price"
string="Price List"
model="product.product"
name="product.price_list"
keyword="client_print_multi"
groups="base.group_extended"/>
</data>
</openerp>

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-03-31 08:41+0000\n"
"PO-Revision-Date: 2010-05-15 08:53+0000\n"
"Last-Translator: Boris <boris.t.ivanov@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-17 03:54+0000\n"
"X-Launchpad-Export-Date: 2010-05-17 05:01+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project
@ -199,6 +199,7 @@ msgid ""
"Estimated time for you to validate the work done by the user to whom you "
"delegate this task."
msgstr ""
"Очаквано време за да валидирате извършената от назначения потребител работа."
#. module: project
#: view:project.project:0
@ -483,7 +484,7 @@ msgstr "Мои проекти"
#. module: project
#: help:project.task.delegate,init,planned_hours:0
msgid "Estimated time to close this task by the delegated user."
msgstr ""
msgstr "Очаквано време за приключване на задачата от назначения потребител."
#. module: project
#: selection:project.project,state:0

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-04-20 08:36+0000\n"
"Last-Translator: PROSID <Unknown>\n"
"PO-Revision-Date: 2010-05-13 17:05+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <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: 2010-04-21 04:05+0000\n"
"X-Launchpad-Export-Date: 2010-05-14 04:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project
@ -54,7 +54,7 @@ msgstr "Otwórz wykonane zadania"
#. module: project
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
#. module: project
#: wizard_field:project.task.delegate,init,planned_hours_me:0
@ -73,6 +73,8 @@ msgid ""
"Total remaining time, can be re-estimated periodically by the assignee of "
"the task."
msgstr ""
"Czas pozostały. Może być okresowo przeszacowany przez osobę przypisaną do "
"zadania."
#. module: project
#: field:project.project,child_id:0
@ -93,7 +95,7 @@ msgstr "Zadania wg przydzieleń"
#: model:ir.actions.act_window,name:project.open_view_my_project_my_run
#: model:ir.ui.menu,name:project.menu_open_view_my_project_my_run
msgid "My Running Projects"
msgstr ""
msgstr "Moje projekty w toku"
#. module: project
#: field:project.task,child_ids:0
@ -125,7 +127,7 @@ msgstr "Użytkownik, któremu chcesz przydzielić to zadanie."
#. module: project
#: model:ir.actions.wizard,name:project.wizard_attachment_task
msgid "All Attachments"
msgstr ""
msgstr "Wszystkie załączniki"
#. module: project
#: model:process.transition.action,name:project.process_transition_action_openpendingtask0
@ -247,6 +249,7 @@ msgstr "Moje projekty zadań"
msgid ""
"Automatic variables for headers and footer. Use exactly the same notation."
msgstr ""
"Automatyczne zmienne dla nagłówka i stopki. Stosuj dokładnie tę samą notację."
#. module: project
#: selection:project.project,state:0
@ -258,7 +261,7 @@ msgstr "Anulowano"
#: view:project.project:0
#: field:project.project,warn_header:0
msgid "Mail Header"
msgstr ""
msgstr "Magłówke wiadomości"
#. module: project
#: model:process.node,name:project.process_node_donetask0
@ -278,7 +281,7 @@ msgstr "Przydziela zadanie innemu użytkownikowi"
#. module: project
#: help:project.task,effective_hours:0
msgid "Computed using the sum of the task work done."
msgstr ""
msgstr "Obliczone według sum czasów wykonanych zadań."
#. module: project
#: help:project.project,warn_customer:0
@ -376,7 +379,7 @@ msgstr "Przydzielone zadanie"
#. module: project
#: help:project.project,progress_rate:0
msgid "Percent of tasks closed according to the total of tasks todo."
msgstr ""
msgstr "Procent zadań zamkniętych do sumy zadań do wykonania."
#. module: project
#: wizard_field:project.task.delegate,init,new_task_description:0
@ -396,7 +399,7 @@ msgstr "Projekt nadrzędny"
#. module: project
#: help:project.task,total_hours:0
msgid "Computed as: Time Spent + Remaining Time."
msgstr ""
msgstr "Obliczone jako: Czas spędzony + Czas pozostały"
#. module: project
#: field:project.task,type:0
@ -459,7 +462,7 @@ msgstr "Godziny"
#: model:ir.actions.act_window,name:project.action_view_task5_pending
#: model:ir.ui.menu,name:project.menu_tasks_yours_pending
msgid "My Pending Tasks"
msgstr ""
msgstr "Moje zadania oczekujące"
#. module: project
#: model:ir.actions.act_window,name:project.act_project_project_2_project_task_opened
@ -532,7 +535,7 @@ msgstr "Wyzwól fakturę"
#. module: project
#: model:process.transition,name:project.process_transition_draftopentask0
msgid "Draft Open task"
msgstr ""
msgstr "Projekty otwartych zadań"
#. module: project
#: view:project.project:0
@ -629,7 +632,7 @@ msgstr "Planowane"
#. module: project
#: help:project.project,total_hours:0
msgid "Sum of total hours of all tasks related to this project."
msgstr ""
msgstr "Suma godzin wszystkich zadań związanych z tym projektem."
#. module: project
#: view:project.task:0
@ -855,18 +858,18 @@ msgstr ""
#. module: project
#: model:ir.actions.act_window,name:project.act_res_users_2_project_task_work_month
msgid "Month works"
msgstr ""
msgstr "Praca miesięczna"
#. module: project
#: model:ir.actions.report.xml,name:project.report_project_project_gantt
#: model:ir.actions.report.xml,name:project.report_project_task_gantt
msgid "Gantt Representation"
msgstr ""
msgstr "Reprezentacja Gantt"
#. module: project
#: field:project.project,warn_customer:0
msgid "Warn Partner"
msgstr ""
msgstr "Ostrzeż partnera"
#. module: project
#: field:project.project,state:0
@ -876,12 +879,12 @@ msgstr "Stan"
#. module: project
#: field:project.task,name:0
msgid "Task summary"
msgstr ""
msgstr "Podsumowanie zadania"
#. module: project
#: view:project.project:0
msgid "Date Start: %(date_start)s"
msgstr ""
msgstr "Data początkowa: %(date_start)s"
#. module: project
#: help:project.project,category_id:0
@ -965,7 +968,7 @@ msgstr "Bardzo niski"
#. module: project
#: wizard_view:project.task.close,mail_ask:0
msgid "Send mail to customer"
msgstr ""
msgstr "Wyślij wiadomość do klienta"
#. module: project
#: field:project.project,warn_manager:0
@ -980,12 +983,12 @@ msgstr ""
#. module: project
#: wizard_button:project.task.close,mail_ask,close:0
msgid "Quiet close"
msgstr ""
msgstr "Ciche zamknięcie"
#. module: project
#: help:project.task.delegate,init,prefix:0
msgid "New title of your own task to validate the work done."
msgstr ""
msgstr "Nowy tytuł twojego zadania do zatwierdzenia wykkonanej pracy."
#. module: project
#: field:project.task,progress:0
@ -1031,6 +1034,8 @@ msgid ""
"If you have [?] in the name, it means there are no analytic account linked "
"to project."
msgstr ""
"Jeśli masz [?] w nazwie, to oznacza, że nie przypisano do projektu konta "
"analitycznego."
#. module: project
#: model:ir.actions.wizard,name:project.wizard_delegate_task
@ -1048,11 +1053,13 @@ msgid ""
"If you check this field, the project manager will receive a request each "
"time a task is completed by his team."
msgstr ""
"Jeśli zaznaczysz to pole, to menedżer projektu otrzyma zgłoszenie za każdym "
"razem, gdy zadanie zostanie wypełnione przez zespół."
#. module: project
#: model:project.task.type,name:project.project_tt_feature
msgid "New Feature"
msgstr ""
msgstr "Nowa funkcjonalność"
#. module: project
#: model:process.node,note:project.process_node_opentask0
@ -1097,6 +1104,8 @@ msgid ""
"Footer added at the beginning of the email for the warning message sent to "
"the customer when a task is closed."
msgstr ""
"Nagłówek dodawany na początek wiadomości informującej klienta o zamknięciu "
"zadania."
#. module: project
#: view:project.project:0
@ -1131,12 +1140,12 @@ msgstr "Przypisz do"
#. module: project
#: field:project.task.work,name:0
msgid "Work summary"
msgstr ""
msgstr "Podsumowanie pracy"
#. module: project
#: view:project.project:0
msgid "Date Stop: %(date_stop)s"
msgstr ""
msgstr "Data zakończenia: %(date_stop)s"
#. module: project
#: field:project.project,date_end:0

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-01-09 14:07+0000\n"
"Last-Translator: Carlo Vettore <Unknown>\n"
"PO-Revision-Date: 2010-05-13 14:08+0000\n"
"Last-Translator: eLBati - albatos.com <lorenzo.battistini@albatos.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-17 03:59+0000\n"
"X-Launchpad-Export-Date: 2010-05-14 04:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: purchase
@ -691,7 +691,7 @@ msgstr "Annulla"
#. module: purchase
#: view:res.partner:0
msgid "Purchases Properties"
msgstr ""
msgstr "Proprietà d'acquisto"
#. module: purchase
#: field:purchase.order.line,order_id:0

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-01-09 13:15+0000\n"
"Last-Translator: Carlo Vettore <Unknown>\n"
"PO-Revision-Date: 2010-05-13 07:44+0000\n"
"Last-Translator: Carlo - didotech.com <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: 2010-04-17 04:13+0000\n"
"X-Launchpad-Export-Date: 2010-05-14 04:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: report_sale
@ -283,7 +283,7 @@ msgstr "Ammontare Vendite giornaliere dopo un anno"
#. module: report_sale
#: selection:report.sale.order.created,state:0
msgid "Manual In Progress"
msgstr "Manuale in Progressp"
msgstr "Manuale in Progresso"
#. module: report_sale
#: field:report.sale.order.category,name:0

View File

@ -8,26 +8,26 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-16 11:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2010-05-13 16:50+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <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: 2010-04-17 04:21+0000\n"
"X-Launchpad-Export-Date: 2010-05-14 04:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: report_task
#: selection:report.closed.task,state:0
msgid "In Progress"
msgstr ""
msgstr "W toku"
#. module: report_task
#: model:ir.actions.act_window,name:report_task.action_project_task
#: model:ir.ui.menu,name:report_task.menu_project_task_user_tree
#: view:report.task.user.pipeline.open:0
msgid "Tasks by User"
msgstr ""
msgstr "Zadania wg użytkownika"
#. module: report_task
#: constraint:ir.model:0
@ -40,17 +40,17 @@ msgstr ""
#. module: report_task
#: field:report.closed.task,remaining_hours:0
msgid "Remaining Hours"
msgstr ""
msgstr "Pozostałe godziny"
#. module: report_task
#: selection:report.task.user.pipeline.open,task_state:0
msgid "No Task"
msgstr ""
msgstr "Brak zadań"
#. module: report_task
#: model:ir.module.module,shortdesc:report_task.module_meta_information
msgid "Report on tasks by user for projects"
msgstr ""
msgstr "Raport zadań wg użytkowników"
#. module: report_task
#: view:report.closed.task:0
@ -60,66 +60,66 @@ msgstr ""
#. module: report_task
#: selection:report.closed.task,priority:0
msgid "Very Low"
msgstr ""
msgstr "Bardzo niski"
#. module: report_task
#: selection:report.closed.task,state:0
#: selection:report.task.user.pipeline.open,task_state:0
msgid "Draft"
msgstr ""
msgstr "Projekt"
#. module: report_task
#: selection:report.closed.task,priority:0
msgid "Low"
msgstr ""
msgstr "Mało"
#. module: report_task
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
#. module: report_task
#: field:report.closed.task,name:0
msgid "Task summary"
msgstr ""
msgstr "Podsumowanie zadania"
#. module: report_task
#: selection:report.closed.task,state:0
#: selection:report.task.user.pipeline.open,task_state:0
msgid "Pending"
msgstr ""
msgstr "Oczekiwanie"
#. module: report_task
#: field:report.closed.task,state:0
#: field:report.task.user.pipeline.open,task_state:0
msgid "Status"
msgstr ""
msgstr "Stan"
#. module: report_task
#: selection:report.closed.task,priority:0
msgid "Medium"
msgstr ""
msgstr "Średni"
#. module: report_task
#: model:ir.actions.act_window,name:report_task.action_report_timesheet_task_user
#: model:ir.ui.menu,name:report_task.menu_timesheet_task_user
msgid "Timesheet / Task Hours Per Month"
msgstr ""
msgstr "Karta czasu pracy / Czasy zadań na miesiąc"
#. module: report_task
#: field:report.closed.task,progress:0
msgid "Progress (%)"
msgstr ""
msgstr "Postęp (%)"
#. module: report_task
#: field:report.closed.task,priority:0
msgid "Importance"
msgstr ""
msgstr "Ważność"
#. module: report_task
#: field:report.task.user.pipeline.open,company_id:0
msgid "Company"
msgstr ""
msgstr "Firma"
#. module: report_task
#: model:ir.ui.menu,name:report_task.next_id_57
@ -136,29 +136,29 @@ msgstr ""
#: field:report.task.user.pipeline.open,user_id:0
#: field:report.timesheet.task.user,user_id:0
msgid "User"
msgstr ""
msgstr "Użytkownik"
#. module: report_task
#: model:ir.actions.act_window,name:report_task.action_closed_task_board
msgid "Task Closed Within Past 15 Days"
msgstr ""
msgstr "Zadania zamknięte w ostatnich 15stu dniach"
#. module: report_task
#: selection:report.closed.task,priority:0
msgid "Very urgent"
msgstr ""
msgstr "Bardzo pilne"
#. module: report_task
#: selection:report.closed.task,state:0
#: selection:report.task.user.pipeline.open,task_state:0
msgid "Done"
msgstr ""
msgstr "Wykonano"
#. module: report_task
#: field:report.task.user.pipeline.open,task_hrs:0
#: field:report.timesheet.task.user,task_hrs:0
msgid "Task Hours"
msgstr ""
msgstr "Godziny zadania"
#. module: report_task
#: constraint:ir.ui.view:0
@ -168,17 +168,17 @@ msgstr "XML niewłaściwy dla tej architektury wyświetlania!"
#. module: report_task
#: field:report.closed.task,delay_hours:0
msgid "Delay Hours"
msgstr ""
msgstr "Opóźnienie"
#. module: report_task
#: field:report.closed.task,project_id:0
msgid "Project"
msgstr ""
msgstr "Projekt"
#. module: report_task
#: field:report.task.user.pipeline.open,task_nbr:0
msgid "Task Number"
msgstr ""
msgstr "Numer zadania"
#. module: report_task
#: model:ir.model,name:report_task.model_report_timesheet_task_user
@ -188,18 +188,18 @@ msgstr ""
#. module: report_task
#: model:ir.model,name:report_task.model_report_task_user_pipeline_open
msgid "Tasks by user and project"
msgstr ""
msgstr "Zadania wg użytkownika i projektu"
#. module: report_task
#: view:report.closed.task:0
msgid "Planned"
msgstr ""
msgstr "Planowane"
#. module: report_task
#: selection:report.closed.task,state:0
#: selection:report.task.user.pipeline.open,task_state:0
msgid "Cancelled"
msgstr ""
msgstr "Anulowano"
#. module: report_task
#: view:report.timesheet.task.user:0
@ -209,59 +209,59 @@ msgstr ""
#. module: report_task
#: field:report.task.user.pipeline.open,task_progress:0
msgid "Task Progress"
msgstr ""
msgstr "Postęp zadania"
#. module: report_task
#: field:report.closed.task,date_close:0
msgid "Date Closed"
msgstr ""
msgstr "Data zamknięcia"
#. module: report_task
#: field:report.closed.task,user_id:0
msgid "Assigned to"
msgstr ""
msgstr "Przypisano do"
#. module: report_task
#: field:report.closed.task,sequence:0
msgid "Sequence"
msgstr ""
msgstr "Numeracja"
#. module: report_task
#: model:ir.model,name:report_task.model_report_closed_task
msgid "Closed Task Report"
msgstr ""
msgstr "Raport zamkniętych zadań"
#. module: report_task
#: field:report.timesheet.task.user,name:0
msgid "Month"
msgstr ""
msgstr "Miesiąc"
#. module: report_task
#: selection:report.closed.task,priority:0
msgid "Urgent"
msgstr ""
msgstr "Pilne"
#. module: report_task
#: field:report.closed.task,date_deadline:0
msgid "Deadline"
msgstr ""
msgstr "Ostateczny czas ukończenia"
#. module: report_task
#: field:report.timesheet.task.user,timesheet_hrs:0
msgid "Timesheet Hours"
msgstr ""
msgstr "Godziny karty czasu pracy"
#. module: report_task
#: view:report.closed.task:0
msgid "Closed Tasks"
msgstr ""
msgstr "Zadania zamknięte"
#. module: report_task
#: selection:report.task.user.pipeline.open,task_state:0
msgid "Open"
msgstr ""
msgstr "Otwarte"
#. module: report_task
#: field:report.closed.task,planned_hours:0
msgid "Planned Hours"
msgstr ""
msgstr "Planowane godziny"

View File

@ -7,31 +7,31 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-09 19:50+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-05-13 16:51+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <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: 2010-04-17 04:12+0000\n"
"X-Launchpad-Export-Date: 2010-05-14 04:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_account_date_stat_my
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_account_date_my
msgid "My daily timesheets by account"
msgstr ""
msgstr "Moja dzienne karty czasu pracy wg konta"
#. module: report_timesheet
#: view:report_timesheet.user:0
msgid "Timesheet by user"
msgstr ""
msgstr "Karty czasu pracy wg użytkownika"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_account_stat_all
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_account_all
msgid "Timesheet by Account"
msgstr ""
msgstr "Karta czasu pracy wg konta"
#. module: report_timesheet
#: constraint:ir.model:0
@ -44,19 +44,19 @@ msgstr ""
#. module: report_timesheet
#: view:report_timesheet.account:0
msgid "Timesheet by account"
msgstr ""
msgstr "Karta czasu pracy wg konta"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.act_res_users_2_report_timesheet_invoice
#: model:ir.model,name:report_timesheet.model_report_timesheet_invoice
msgid "Costs to invoice"
msgstr ""
msgstr "Koszty do faktury"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_user_stat_my
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_user_my
msgid "My Timesheet of the Month"
msgstr ""
msgstr "Moja karta czasu pracy w miesiącu"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_random_timesheet_lines_board
@ -67,33 +67,33 @@ msgstr "Przypadkowe pozycje karty czasu pracy"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.act_account_analytic_account_2_report_timehsheet_account
msgid "Timesheets"
msgstr ""
msgstr "Karty czasu pracy"
#. module: report_timesheet
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.act_res_users_2_report_timehsheet_account
msgid "Timesheets per account"
msgstr ""
msgstr "Karty czasu pracy na konto"
#. module: report_timesheet
#: view:report_timesheet.invoice:0
msgid "Timesheets to invoice"
msgstr ""
msgstr "Karta czasu pracy to zafakturowania"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.act_res_users_2_report_timesheet_user
msgid "Timesheets per day"
msgstr ""
msgstr "Karty czasu pracy na dni"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_account_date_stat_all
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_account_date_all
msgid "Daily Timesheet by Account"
msgstr ""
msgstr "Dzienna karta czasu pracy wg konta"
#. module: report_timesheet
#: field:random.timesheet.lines,product_id:0
@ -104,18 +104,18 @@ msgstr "Produkt"
#: field:random.timesheet.lines,name:0
#: field:report.random.timesheet,name:0
msgid "Description"
msgstr ""
msgstr "Opis"
#. module: report_timesheet
#: model:ir.model,name:report_timesheet.model_report_timesheet_account
#: view:report_timesheet.account:0
msgid "Timesheet per account"
msgstr ""
msgstr "Karta czasu pracy na konto"
#. module: report_timesheet
#: model:ir.module.module,shortdesc:report_timesheet.module_meta_information
msgid "Timesheet - Reporting"
msgstr ""
msgstr "Karta czasu pracy - Raportowanie"
#. module: report_timesheet
#: field:random.timesheet.lines,date:0
@ -123,12 +123,12 @@ msgstr ""
#: field:report_timesheet.account.date,name:0
#: field:report_timesheet.user,name:0
msgid "Date"
msgstr ""
msgstr "Data"
#. module: report_timesheet
#: view:report_timesheet.invoice:0
msgid "Timesheet by invoice"
msgstr ""
msgstr "Karta czasu pracy wg faktury"
#. module: report_timesheet
#: field:random.timesheet.lines,quantity:0
@ -138,23 +138,23 @@ msgstr ""
#: field:report_timesheet.invoice,quantity:0
#: field:report_timesheet.user,quantity:0
msgid "Quantity"
msgstr ""
msgstr "Ilość"
#. module: report_timesheet
#: model:ir.ui.menu,name:report_timesheet.next_id_69
msgid "This Month"
msgstr ""
msgstr "W tym miesiącu"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_account_stat_my
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_account_my
msgid "My timesheets by account"
msgstr ""
msgstr "Moje karty czasu pracy wg konta"
#. module: report_timesheet
#: model:ir.model,name:report_timesheet.model_report_random_timesheet
msgid "Random Timesheet Report"
msgstr ""
msgstr "Raport przypadkowych kart czasu pracy"
#. module: report_timesheet
#: field:random.timesheet.lines,user_id:0
@ -164,7 +164,7 @@ msgstr ""
#: field:report_timesheet.invoice,user_id:0
#: field:report_timesheet.user,user_id:0
msgid "User"
msgstr ""
msgstr "Użytkownik"
#. module: report_timesheet
#: constraint:ir.ui.view:0
@ -174,12 +174,12 @@ msgstr "XML niewłaściwy dla tej architektury wyświetlania!"
#. module: report_timesheet
#: view:report.random.timesheet:0
msgid "Random Timesheets"
msgstr ""
msgstr "Przypadkowe karty czasu pracy"
#. module: report_timesheet
#: view:report_timesheet.account.date:0
msgid "Daily timesheet by account"
msgstr ""
msgstr "Dzienna karta czasu pracy wg konta"
#. module: report_timesheet
#: view:random.timesheet.lines:0
@ -189,7 +189,7 @@ msgstr "Pozycje przypadkowych kart czasu pracy"
#. module: report_timesheet
#: field:report_timesheet.invoice,account_id:0
msgid "Project"
msgstr ""
msgstr "Projekt"
#. module: report_timesheet
#: field:random.timesheet.lines,amount:0
@ -199,24 +199,24 @@ msgstr "Kwota"
#. module: report_timesheet
#: field:report_timesheet.invoice,amount_invoice:0
msgid "To invoice"
msgstr ""
msgstr "Do zafakturowania"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_user_stat_all
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_user_all
msgid "Timesheet by User"
msgstr ""
msgstr "Karta czasu pracy wg użytkownika"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_invoice_stat_all
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_invoice_all
msgid "Timesheet by Invoice"
msgstr ""
msgstr "Karta czasu pracy wg faktury"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_random_timesheet_board
msgid "Random Timesheet"
msgstr ""
msgstr "Przypadkowa karta czasu pracy"
#. module: report_timesheet
#: field:random.timesheet.lines,to_invoice:0
@ -231,19 +231,19 @@ msgstr "Konto ogólne"
#. module: report_timesheet
#: model:ir.model,name:report_timesheet.model_report_timesheet_user
msgid "Timesheet per day"
msgstr ""
msgstr "Karta czasu pracy na dzień"
#. module: report_timesheet
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_invoice_stat_my
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_invoice_my
msgid "My timesheets to invoice"
msgstr ""
msgstr "Moje karty czasu pracy do zafakturowania"
#. module: report_timesheet
#: model:ir.model,name:report_timesheet.model_report_timesheet_account_date
#: view:report_timesheet.account.date:0
msgid "Daily timesheet per account"
msgstr ""
msgstr "Dzienna karta czasu pracy na konto"
#. module: report_timesheet
#: model:ir.module.module,description:report_timesheet.module_meta_information
@ -251,11 +251,14 @@ msgid ""
"Module to add timesheet views like\n"
" All Month, Timesheet By User, Timesheet Of Month, Timesheet By Account"
msgstr ""
"Moduł do dodawania widoków karty czasu pracy jak\n"
" Wszystkie miesiące, Karta czasu pracy wg użytkownika, Karta czasu pracy "
"miesiąca, Karta czasu pracy wg konta"
#. module: report_timesheet
#: field:report_timesheet.account,name:0
msgid "Month"
msgstr ""
msgstr "Miesiąc"
#. module: report_timesheet
#: field:random.timesheet.lines,analytic_account_id:0
@ -263,17 +266,17 @@ msgstr ""
#: field:report_timesheet.account,account_id:0
#: field:report_timesheet.account.date,account_id:0
msgid "Analytic Account"
msgstr ""
msgstr "Konto analityczne"
#. module: report_timesheet
#: field:report_timesheet.invoice,manager_id:0
msgid "Manager"
msgstr ""
msgstr "Menedżer"
#. module: report_timesheet
#: field:report_timesheet.user,cost:0
msgid "Cost"
msgstr ""
msgstr "Koszt"
#. module: report_timesheet
#: field:random.timesheet.lines,uom_id:0
@ -284,4 +287,4 @@ msgstr "JM"
#: model:ir.actions.act_window,name:report_timesheet.action_timesheet_user_stat
#: model:ir.ui.menu,name:report_timesheet.menu_report_timesheet_user
msgid "Timesheet by user (this month)"
msgstr ""
msgstr "Karta czasu pracy wg użytkownika (ten miesiąc)"

View File

@ -49,7 +49,6 @@ def _incoterm_get(self, cr, uid, context=None):
cr.execute('select code, code||\', \'||name from stock_incoterms where active')
return cr.fetchall()
class sale_order(osv.osv):
_name = "sale.order"
_description = "Sale Order"
@ -1043,7 +1042,7 @@ class sale_order_line(osv.osv):
if product_obj.uos_id.category_id.id != uos2.category_id.id:
uos = False
else:
uos = False
uos = False
if product_obj.description_sale:
result['notes'] = product_obj.description_sale
fpos = fiscal_position and self.pool.get('account.fiscal.position').browse(cr, uid, fiscal_position) or False

View File

@ -193,6 +193,7 @@
<field name="amount_tax"/>
<field name="amount_total" sum="Total amount"/>
<button name="button_dummy" states="draft" string="Compute" type="object" icon="gtk-execute"/>
<button name="%(action_view_sale_advance_payment_inv)d" string="Advance Invoice" type="action" icon="gtk-execute"/>
</group>
<group col="13" colspan="4">
<field name="state"/>
@ -384,6 +385,11 @@
<field colspan="4" name="tax_id" domain="[('parent_id','=',False),('type_tax_use','&lt;&gt;','purchase')]"/>
<separator colspan="4" string="States"/>
<field name="state"/>
<button colspan="1"
name="%(action_view_sale_order_line_make_invoice)d"
string="Make Invoice"
type="action"
icon="gtk-print" />
<group col="2" colspan="2">
<button name="button_done"
states="confirmed,exception"

View File

@ -16,13 +16,14 @@
</field>
</record>
<act_window name="Make Invoices"
res_model="sale.order.line.make.invoice"
src_model="sale.order.line"
view_mode="form"
target="new"
key2="client_action_multi"
id="action_view_sale_order_line_make_invoice"/>
<record id="action_view_sale_order_line_make_invoice" model="ir.actions.act_window">
<field name="name">Make Invoices</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sale.order.line.make.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
</data>
</openerp>

View File

@ -1,4 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_sale_advance_payment_inv" model="ir.ui.view">
@ -20,15 +19,14 @@
</field>
</record>
<act_window name="Advance Invoice"
res_model="sale.advance.payment.inv"
src_model="sale.order"
view_mode="form"
target="new"
key2="client_action_multi"
id="action_view_sale_advance_payment_inv"/>
<record id="action_view_sale_advance_payment_inv" model="ir.actions.act_window">
<field name="name">Advance Invoice</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sale.advance.payment.inv</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="view_sale_open_invoice" model="ir.ui.view">
<field name="name">Open Invoice</field>

View File

@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-18 15:13+0000\n"
"Last-Translator: Radoslav Sloboda <rado.sloboda@gmail.com>\n"
"PO-Revision-Date: 2010-05-13 15:14+0000\n"
"Last-Translator: misko <Unknown>\n"
"Language-Team: Slovak <sk@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: 2010-04-17 04:17+0000\n"
"X-Launchpad-Export-Date: 2010-05-14 04:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale_analytic_plans
#: field:sale.order.line,analytics_id:0
msgid "Analytic Distribution"
msgstr ""
msgstr "Analytická distribúcia"
#. module: sale_analytic_plans
#: constraint:ir.ui.view:0

View File

@ -9,7 +9,7 @@
<field name="inherit_id" ref="crm.crm_case_form_view_oppor"/>
<field name="arch" type="xml">
<field name="priority" position="after">
<button string="Convert to Quote" icon="terp-sale" name="%(sale_crm_wizard)d" type="action"/>
<button string="Create a Sale Order" icon="terp-sale" name="%(sale_crm_wizard)d" type="action"/>
<label colspan="2" string=""/>
</field>
</field>

View File

@ -28,7 +28,7 @@ import pooler
from tools.translate import _
sale_form = """<?xml version="1.0"?>
<form string="Convert to Quote">
<form string="Create a Sale Order">
<field name="partner_id" required="True"/>
<field name="shop_id" required="True"/>
<field name="analytic_account"/>
@ -130,10 +130,10 @@ class make_sale(wizard.interface):
if data['form']['close']:
case_obj.case_close(cr, uid, data['ids'])
if not new_ids:
return {}
if len(new_ids)<=1:
value = {
'domain': str([('id', 'in', new_ids)]),
@ -154,14 +154,14 @@ class make_sale(wizard.interface):
'type': 'ir.actions.act_window',
'res_id':new_ids
}
return value
states = {
'init': {
'actions': [_selectPartner],
'result': {'type': 'form', 'arch': sale_form, 'fields': sale_fields,
'state' : [('end', 'Cancel', 'gtk-cancel'),('order', 'Create Quote', 'gtk-go-forward')]}
'state' : [('end', 'Cancel', 'gtk-cancel'),('order', 'Create', 'gtk-go-forward')]}
},
'order': {
'actions': [],

View File

@ -91,7 +91,7 @@
<field name="model">sale.journal.picking.report</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Picking journal">
<tree string="Picking Journal">
<field name="name" invisible="1"/>
<field name="month" invisible="1"/>
<field name="invoice_state" invisible="1"/>
@ -172,7 +172,7 @@
<!-- Action for picking journal view -->
<record model="ir.actions.act_window" id="action_sale_journal_picking_report_open_menu_all">
<field name="name">Picking journal</field>
<field name="name">Picking Journal</field>
<field name="res_model">sale.journal.picking.report</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
@ -184,4 +184,4 @@
<menuitem name="Picking journal" id="menu_invoice_type_picking_stats_open_all" parent="stock.next_id_61" action="action_sale_journal_picking_report_open_menu_all"/>
</data>
</openerp>
</openerp>

View File

@ -49,7 +49,7 @@
<field name="model">sale_journal.sale.journal</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Sale Journal">
<form string="Sales Journals">
<notebook>
<page string="Journal">
<separator string="Journal Information" colspan="4"/>
@ -96,7 +96,7 @@
<field name="model">sale_journal.sale.journal</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Sale Journal">
<tree string="Sales Journals">
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="user_id" select="1"/>
@ -146,9 +146,10 @@
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form" />
<field name="arch" type="xml">
<field name="invoiced" position="after">
<field name="journal_id" select="1"/>
<field name="invoice_type_id" select="1"/>
<field name="user_id" position="after">
<separator string="Journal" colspan="4"/>
<field name="journal_id" select="1" widget="selection"/>
<field name="invoice_type_id" select="1" widget="selection"/>
</field>
</field>
</record>
@ -192,7 +193,7 @@
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.vpicktree" />
<field name="arch" type="xml">
<field name="invoice_state" position="after">
<field name="origin" position="after">
<field name="journal_id" select="1"/>
<field name="invoice_type_id" select="1"/>
<field name="sale_journal_id" select="1"/>
@ -252,7 +253,7 @@
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_in_tree" />
<field name="arch" type="xml">
<field name="invoice_state" position="after">
<field name="origin" position="after">
<field name="journal_id" select="1"/>
<field name="invoice_type_id" select="1"/>
<field name="sale_journal_id" select="1"/>
@ -280,7 +281,7 @@
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_out_tree" />
<field name="arch" type="xml">
<field name="invoice_state" position="after">
<field name="origin" position="after">
<field name="journal_id" select="1"/>
<field name="invoice_type_id" select="1"/>
<field name="sale_journal_id" select="1"/>
@ -417,7 +418,7 @@
<field name="model">sale_journal.picking.journal</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Picking Journal">
<search string="Picking Journals">
<group col="8" colspan="4">
<filter icon="terp-hr" string="My Picking Journals" domain="[('user_id','=',uid)]" help="My Picking Journals"/>
<filter icon="terp-hr" string="Open" domain="[('state','=','open')]" help="Open Picking Journals"/>
@ -434,7 +435,7 @@
<!-- Action of Picking journals -->
<record model="ir.actions.act_window" id="action_definition_picking_journal">
<field name="name">Picking journals</field>
<field name="name">Picking Journals</field>
<field name="res_model">sale_journal.picking.journal</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>

View File

@ -0,0 +1,840 @@
# Chinese (Simplified) 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: 2009-11-26 06:00+0000\n"
"PO-Revision-Date: 2010-05-15 06:34+0000\n"
"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-05-17 05:01+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: smtpclient
#: field:email.smtpclient.queue,bcc:0
msgid "BCC to"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__number__ for Invoice / Sales Number"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,ssl:0
msgid "Use SSL?"
msgstr "使用 SSL"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Start Server"
msgstr "启动服务器"
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_verifycode
msgid "Verify Server"
msgstr "校验服务器"
#. module: smtpclient
#: field:email.smtpclient,priority:0
msgid "Server Priority"
msgstr "服务器优先级"
#. module: smtpclient
#: help:email.sendcode,init,emailto:0
msgid "Enter the address Email where you want to get the Verification Code"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Other Mail Servers"
msgstr "其他的邮件服务器"
#. module: smtpclient
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "在动作定义中使用了无效的模快名。"
#. module: smtpclient
#: field:email.smtpclient.queue,to:0
msgid "Mail to"
msgstr "致"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Message Error!"
msgstr "邮件错误!"
#. module: smtpclient
#: field:email.smtpclient,name:0
msgid "Server Name"
msgstr "服务器名称"
#. module: smtpclient
#: field:email.smtpclient,header_ids:0
msgid "Default Headers"
msgstr "缺省邮件头"
#. module: smtpclient
#: wizard_button:email.testemail,init,send:0
msgid "Send Email"
msgstr "发送邮件"
#. module: smtpclient
#: field:res.company.address,company_id:0
msgid "Company"
msgstr "公司"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Set to Draft"
msgstr "设为草稿"
#. module: smtpclient
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Server already verified!"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#: code:addons/smtpclient/wizard/testemail.py:0
#, python-format
msgid "Verification Failed. Please check the Server Configuration!"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Server Error!"
msgstr "SMTP 服务器错误!"
#. module: smtpclient
#: field:email.smtpclient,auth_type:0
#: field:email.smtpclient,type:0
msgid "Server Type"
msgstr "服务器类型"
#. module: smtpclient
#: field:email.smtpclient,from_email:0
msgid "Email From"
msgstr "发件人"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "User Information"
msgstr "用户信息"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "OpenERP SMTP server Email Registration Code!"
msgstr "OpenERP SMTP 服务器电子邮件注册码"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_report_smtp_server
#: view:report.smtp.server:0
msgid "Server Statistics"
msgstr "服务器统计"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Messages"
msgstr "邮件列表"
#. module: smtpclient
#: selection:email.smtpclient,type:0
#: selection:res.company.address,name:0
msgid "Sale"
msgstr "销售"
#. module: smtpclient
#: field:email.headers,value:0
msgid "Value"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Access Permission"
msgstr "访问权限"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_headers
msgid "Email Headers"
msgstr "邮件头"
#. module: smtpclient
#: field:email.smtpclient,delete_queue:0
msgid "Queue Option"
msgstr "队列选项"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Please configure Email Server Messages [Verification / Test]"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Verification failed. Invalid Verification Code!"
msgstr ""
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_history
msgid "Email History"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.history:0
msgid "Server History"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Yahoo!!! Server"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,test_email:0
msgid "Test Message"
msgstr ""
#. module: smtpclient
#: field:report.smtp.server,server_id:0
msgid "Server ID"
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,delete_queue_period:0
msgid "delete emails/contents from email queue after specified no of days"
msgstr ""
#. module: smtpclient
#: field:report.smtp.server,no:0
msgid "Total No."
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,process_id:0
msgid "Mail Transport Agent Process"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__user__ for User Name"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,date_create:0
msgid "Date Create"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,state:0
msgid "Server Status"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,error:0
msgid "Last Error"
msgstr ""
#. module: smtpclient
#: wizard_view:email.sendcode,init:0
#: wizard_button:email.sendcode,init,send:0
msgid "Send Code"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,name:0
msgid "Subject"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Read Error!"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Unable to read Server Settings"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,server_statistics:0
msgid "Statistics"
msgstr ""
#. module: smtpclient
#: wizard_view:email.testemail,init:0
msgid "Test Email"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,server_id:0
msgid "Smtp Server"
msgstr ""
#. module: smtpclient
#: field:res.company,addresses:0
msgid "Email Addresses"
msgstr ""
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_history_tree
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server_history
msgid "Email Server History"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Waiting"
msgstr ""
#. module: smtpclient
#: help:email.testemail,init,emailto:0
msgid "Enter the address Email where you want to get the Test Email"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Not Verified"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,email:0
msgid "Email"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Sent"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,user_id:0
msgid "Username"
msgstr ""
#. module: smtpclient
#: field:res.company.address,name:0
msgid "Address Type"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Permission"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "Message with All Headers"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Message Headers"
msgstr ""
#. module: smtpclient
#: field:ir.actions.server,report_id:0
msgid "Report"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Other Information"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Configuration"
msgstr ""
#. module: smtpclient
#: constraint:ir.cron:0
msgid "Invalid arguments"
msgstr ""
#. module: smtpclient
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,disclaimers:0
msgid "Disclaimers"
msgstr ""
#. module: smtpclient
#: field:report.smtp.server,name:0
msgid "Server"
msgstr ""
#. module: smtpclient
#: view:res.company:0
msgid "SMTP Settings"
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,body:0
msgid ""
"The message text that will be send along with the email which is send "
"through this server"
msgstr ""
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_testemail
msgid "Send Test Email"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient_queue
msgid "Email Queue"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Server Information"
msgstr ""
#. module: smtpclient
#: help:email.verifycode,init,code:0
msgid "Enter the verification code thay you get in your verification Email"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient_history
msgid "Email Client History"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Never Delete Message"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "OpenERP Test Email!"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,body:0
#: view:email.smtpclient.queue:0
#: field:email.smtpclient.queue,serialized_message:0
msgid "Message"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,process_id:0
msgid "MTA Process"
msgstr ""
#. module: smtpclient
#: field:email.headers,server_id:0
#: view:email.smtpclient:0
#: field:email.smtpclient,server:0
#: field:email.smtpclient.queue,server_id:0
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server
msgid "SMTP Server"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Google Server"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Verified"
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,priority:0
msgid ""
"Priority between 0 to 10, will be used to define the MTA process priotiry"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,port:0
msgid "SMTP Port"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Email TO Address not Defined !"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Server Error !"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,auth:0
msgid "Use Auth"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,pstate:0
msgid "Server Statue"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,user:0
msgid "User Name"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,verify_email:0
msgid "Verify Message"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient
#: model:ir.module.module,shortdesc:smtpclient.module_meta_information
msgid "Email Client"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Disclaimers Message"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__code__ for Verification Code"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Queued"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,date_create:0
#: field:email.smtpclient.queue,date_create:0
msgid "Date"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,cc:0
msgid "CC to"
msgstr ""
#. module: smtpclient
#: model:email.smtpclient,verify_email:smtpclient.email_smtpclient_sendmailserver0
msgid ""
"Verification Message. This is the code\n"
"__code__ \n"
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
"Created by user __user__"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_queue_tree
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server_queue
msgid "Message Queue"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
#: selection:res.company.address,name:0
msgid "Default"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Delete Content After"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "You have no permission to access SMTP Server : %s "
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,active:0
msgid "Active"
msgstr ""
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_queue
msgid "Message Queus"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#: code:addons/smtpclient/wizard/testemail.py:0
#: code:addons/smtpclient/wizard/verifycode.py:0
#: view:email.smtpclient.queue:0
#: selection:email.smtpclient.queue,state:0
#, python-format
msgid "Error"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Server Error!"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Clear All After"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid ""
"Please verify Email Server, without verification you can not send Email(s)."
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,history_line:0
#: field:report.smtp.server,history:0
msgid "History"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,priority:0
msgid "Message Priority"
msgstr ""
#. module: smtpclient
#: field:ir.actions.server,file_ids:0
msgid "Attachments"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__name__ for Customer Name"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "General"
msgstr ""
#. module: smtpclient
#: field:email.headers,key:0
msgid "Header"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid ""
"Verification Message. This is the code\n"
"\n"
"__code__\n"
"\n"
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
"\n"
"Created by user __user__"
msgstr ""
#. module: smtpclient
#: selection:res.company.address,name:0
msgid "Invoice"
msgstr ""
#. module: smtpclient
#: wizard_view:email.verifycode,init:0
#: wizard_button:email.verifycode,init,check:0
msgid "Verify Code"
msgstr ""
#. module: smtpclient
#: wizard_button:email.sendcode,init,end:0
#: wizard_button:email.testemail,init,end:0
#: wizard_button:email.verifycode,init,end:0
msgid "Cancel"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,delete_queue_period:0
msgid "Delete after"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Server is not Verified, Please Verify the Server !"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,resource_id:0
msgid "Resource ID"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Data Error !"
msgstr ""
#. module: smtpclient
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Delete when Email Sent"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
msgid "Account"
msgstr ""
#. module: smtpclient
#: model:ir.module.module,description:smtpclient.module_meta_information
msgid ""
"Email Client module that provides:\n"
" Sending Email\n"
" Use Multiple Server\n"
" Multi Threading\n"
" Multi Attachment\n"
" "
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
msgid "Stock"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,name:0
msgid "Description"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,code:0
#: wizard_field:email.verifycode,init,code:0
msgid "Verification Code"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,pstate:0
msgid "Stop"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,body:0
msgid "Email Text"
msgstr ""
#. module: smtpclient
#: selection:res.company.address,name:0
msgid "Delivery"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,pstate:0
msgid "Running"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "Last Error occured"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Waiting for Verification"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,password:0
msgid "Password"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,users_id:0
msgid "Users Allowed"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#, python-format
msgid "Verification Code Already Generated !"
msgstr ""
#. module: smtpclient
#: wizard_field:email.sendcode,init,emailto:0
#: field:email.smtpclient,email:0
#: wizard_field:email.testemail,init,emailto:0
#: view:res.company:0
#: field:res.company.address,email:0
msgid "Email Address"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Verification Message"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Stop Server"
msgstr ""
#. module: smtpclient
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server
msgid "Email Servers"
msgstr ""
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_sendcode
msgid "Send Verification Code"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,model:0
msgid "Model"
msgstr ""
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_tree
#: field:ir.actions.server,email_server:0
msgid "Email Server"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Permission Error!"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_res_company_address
msgid "res.company.address"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,state:0
msgid "Message Status"
msgstr ""

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-11-26 06:01+0000\n"
"PO-Revision-Date: 2010-05-07 17:04+0000\n"
"PO-Revision-Date: 2010-05-13 09:26+0000\n"
"Last-Translator: lyyser <logard.1961@gmail.com>\n"
"Language-Team: Estonian <et@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: 2010-05-08 04:05+0000\n"
"X-Launchpad-Export-Date: 2010-05-14 04:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: survey
@ -118,7 +118,7 @@ msgstr "Märkused"
#. module: survey
#: field:survey.question,tot_resp:0
msgid "Total Response"
msgstr ""
msgstr "Kokku vastuseid"
#. module: survey
#: view:survey.question.wiz:0

View File

@ -42,8 +42,8 @@
'data/wiki_main.xml',
'security/ir.model.access.csv'
],
'demo_xml': ['test/wiki_test00.yml'],
# 'test': ['test/wiki_test00.yml'],
'demo_xml': [],
'test': ['test/wiki_test00.yml'],
'installable': True,
'active': False,
'certificate': '0086363630317',

View File

@ -33,8 +33,9 @@
ids = self.search(cr, uid, [])
self.wiki_do_index(cr, uid, ids , {'active_ids': [ref('wiki_wiki_openerpwikiediting0')]})
-
# Remaining Act window
I check the page history for the current page by clicking on "Page History".After that find difference between history.
-
!act_window {name: Page History,view_type: form,id: act_wiki_wiki_history,domain: "[('wiki_id', '=', active_id)]",res_model: wiki.wiki.history,src_model: wiki.wiki,view_mode: tree,key2: client_action_multi,target: new}
-
I create a new wiki group on the Given Home Page
-
@ -48,7 +49,10 @@
ids = self.search(cr, uid, [])
self.open_wiki_page(cr, uid, ids, {'active_ids': [ref('wiki_groups_wikigroupediting0')]})
-
# Remaining beacuse of Act window (I search the page by clicking on the "search page".)
I search the page by clicking on the "search page".
-
!act_window {name: Search Page,view_type: form,id: act_wiki_group_open,domain: "[('group_id', '=', active_id)]",res_model: wiki.wiki,src_model: wiki.groups,view_mode: tree,key2: client_action_multi,target: new}
-
In order to create a menu I will create wizard data
-
!record {model: wiki.groups, id: wiki.wiki_groups_wikiformatting0}:

View File

@ -21,7 +21,7 @@
<field name="model">wiki.groups</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Wikis">
<tree string="Wiki Groups">
<field name="name"/>
</tree>
</field>
@ -34,7 +34,7 @@
<field name="model">wiki.groups</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Wikis">
<form string="Wiki Groups">
<group colspan="4" col="4">
<field name="name" select="1"/>
<field name="create_date" readonly="2"/>
@ -62,7 +62,7 @@
<!-- Wiki Groups Action -->
<record model="ir.actions.act_window" id="action_wiki_groups">
<field name="name">Wikis</field>
<field name="name">Wiki Groups</field>
<field name="res_model">wiki.groups</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
@ -74,7 +74,7 @@
action="action_wiki_groups"/>
<record model="ir.actions.act_window" id="action_wiki_groups_browse">
<field name="name">Wikis</field>
<field name="name">Wiki Groups</field>
<field name="res_model">wiki.groups</field>
<field name="view_type">tree</field>
</record>
@ -126,13 +126,15 @@
<form string="Wiki">
<group col="8" colspan="4">
<field name="name" select="1" colspan="6"/>
<field name="group_id" select="1" on_change="onchange_group_id(group_id, text_area)"/>
<field name="section" invisible="not context.get('section',False)"/>
<field name="parent_id"/>
<button name="open_wiki_page" type="object"
string="Basic Wiki Editing" icon="gtk-ok" />
</group>
<group col="8" colspan="4">
<field name="group_id" select="1" on_change="onchange_group_id(group_id, text_area)"/>
<field name="section" invisible="not context.get('section',False)"/>
<field name="parent_id"/>
</group>
<separator colspan="4" string="Informations"/>
<field name="text_area" nolabel="1" colspan="4" select="1" widget="text_wiki"/>
<separator colspan="4" string="Modifications"/>
<group col="6" colspan="4">
@ -169,7 +171,7 @@
<!-- search page for wiki -->
<record model="ir.actions.act_window" id="action_wiki">
<field name="name">Search Pages</field>
<field name="name">Wiki Pages</field>
<field name="res_model">wiki.wiki</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>

View File

@ -41,6 +41,7 @@ class wiki_create_menu(osv.osv_memory):
@param ids: List of create menus IDs
"""
data = context and context.get('active_id', False) or False
mod_obj = self.pool.get('ir.model.data')
action_id = mod_obj._get_id(cr, uid, 'wiki', 'action_view_wiki_wiki_page_open')
@ -49,10 +50,10 @@ class wiki_create_menu(osv.osv_memory):
'name': menu.menu_name,
'parent_id':menu.menu_parent_id.id,
'icon': 'STOCK_DIALOG_QUESTION',
'action': 'ir.actions.act_window,'+ str(action_id)
'action': 'ir.actions.act_window,'+ str(action_id)[0]
}, context)
home = menu.page.id
group_id = menu.id
group_id = data
res = {
'home': home,
}
@ -61,7 +62,6 @@ class wiki_create_menu(osv.osv_memory):
{'group_id': group_id, 'action_id': menu_id})
return {}
wiki_create_menu()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -9,13 +9,11 @@
<field name="model">wiki.make.index</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Create Menu">
<separator string="Menu Information" colspan="4"/>
<label string="Want to create a Index on Selected Pages ? "/>
<form string="Create Index">
<label string="Want to create a Index on Selected Pages ?" colspan="4"/>
<separator string="" colspan="6" />
<label string="" colspan="2"/>
<group>
<button special="cancel" string="Cancel" icon="gtk-cancel" />
<group col="4" colspan="4">
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
<button name="wiki_do_index" string="Create Index" type="object" icon="gtk-ok"/>
</group>
</form>

View File

@ -14,6 +14,7 @@
<field name="diff" nolabel="1" colspan="4" width="300"/>
<label string="" colspan="2" />
<group>
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
<button special="cancel" string="OK" icon="gtk-ok" />
</group>
</form>

View File

@ -10,11 +10,9 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Open Page">
<separator string="" colspan="6" />
<label string="Want to open a wiki page? "/>
<separator string="" colspan="6" />
<label string="" colspan="2" />
<group>
<label string="Want to open a wiki page?" colspan="4"/>
<separator string="" colspan="4"/>
<group col="4" colspan="4">
<button special="cancel" string="Cancel" icon="gtk-cancel" />
<button name="open_wiki_page" string="Open Wiki Page" type="object" icon="gtk-ok"/>
</group>