[MERGE] merge with main addons

bzr revid: psi@tinyerp.com-20120919091058-33m1dqf2k2oly8dj
This commit is contained in:
Purnendu Singh (OpenERP) 2012-09-19 14:40:58 +05:30
commit ba12f1e786
308 changed files with 4787 additions and 49390 deletions

View File

@ -181,7 +181,7 @@ class account_account_type(osv.osv):
'Balance' will generally be used for cash accounts.
'Detail' will copy each existing journal item of the previous year, even the reconciled ones.
'Unreconciled' will copy only the journal items that were unreconciled on the first day of the new fiscal year."""),
'report_type': fields.function(_get_current_report_type, fnct_inv=_save_report_type, type='selection', string='P&L / BS Category',
'report_type': fields.function(_get_current_report_type, fnct_inv=_save_report_type, type='selection', string='P&L / BS Category', store=True,
selection= [('none','/'),
('income', _('Profit & Loss (Income account)')),
('expense', _('Profit & Loss (Expense account)')),
@ -836,6 +836,8 @@ class account_journal(osv.osv):
@return: Returns a list of tupples containing id, name
"""
if isinstance(ids, (int, long)):
ids = [ids]
result = self.browse(cr, user, ids, context=context)
res = []
for rs in result:

View File

@ -304,7 +304,7 @@ class account_bank_statement(osv.osv):
'date': st_line.date,
'ref': st_line.ref,
'move_id': move_id,
'partner_id': partner_id,
'partner_id': par_id,
'account_id': acc_id,
'credit': credit,
'debit': debit,

View File

@ -252,16 +252,6 @@
</tree>
</field>
</record>
<record id="view_treasory_graph" model="ir.ui.view">
<field name="name">account.treasury.graph</field>
<field name="model">account.account</field>
<field name="arch" type="xml">
<graph string="Treasury Analysis" type="bar">
<field name="name"/>
<field name="balance" operator="+"/>
</graph>
</field>
</record>
<record id="action_account_form" model="ir.actions.act_window">
<field name="name">Accounts</field>
<field name="res_model">account.account</field>
@ -2537,7 +2527,7 @@ action = pool.get('res.config').next(cr, uid, [], context)
<header>
<button name="button_confirm_cash" states="open" string="Close CashBox" type="object" class="oe_highlight"/>
<button name="button_open" states="draft" string="Open CashBox" type="object" class="oe_highlight"/>
<button name="button_cancel" states="confirm,open" string="Cancel" type="object" groups="base.group_extended"/>
<button name="button_cancel" states="confirm,open" string="Cancel" type="object"/>
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/>
</header>
<sheet string="Statement">

View File

@ -12,16 +12,6 @@
<field name="domain">[('year','=',time.strftime('%Y'))]</field>
</record>
<record id="action_treasory_graph" model="ir.actions.act_window">
<field name="name">Treasury</field>
<field name="res_model">account.account</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
<field name="domain">[('type','=','liquidity')]</field>
<field name="context">{'default_type': 'liquidity'}</field>
<field name="view_id" ref="account.view_treasory_graph"/>
</record>
<record id="board_account_form" model="ir.ui.view">
<field name="name">board.account.form</field>
<field name="model">board.board</field>
@ -31,9 +21,6 @@
<column>
<action name="%(action_company_analysis_tree)d" string="Company Analysis"/>
</column>
<column>
<action name="%(action_treasory_graph)d" string="Treasury"/>
</column>
</board>
</form>
</field>

View File

@ -5,6 +5,7 @@
<field name="name">Invoicing &amp; Payments</field>
<field name="category_id" ref="base.module_category_accounting_and_finance"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
</record>
<record id="group_account_user" model="res.groups">
<field name="name">Accountant</field>

View File

@ -82,6 +82,7 @@ access_account_entries_report_invoice,account.entries.report,model_account_entri
access_account_entries_report_employee,account.entries.report employee,model_account_entries_report,base.group_user,1,0,0,0
access_analytic_entries_report_manager,analytic.entries.report,model_analytic_entries_report,account.group_account_manager,1,0,0,0
access_account_cashbox_line,account.cashbox.line,model_account_cashbox_line,account.group_account_user,1,1,1,1
access_account_journal_cashbox_line,account.journal.cashbox.line,model_account_journal_cashbox_line,account.group_account_user,1,1,1,0
access_account_journal_view_invoice,account.journal.view invoice,model_account_journal_view,account.group_account_invoice,1,1,1,1
access_account_journal_column_invoice,account.journal.column invoice,model_account_journal_column,account.group_account_invoice,1,1,1,1
access_account_invoice_tax_accountant,account.invoice.tax accountant,model_account_invoice_tax,account.group_account_user,1,0,0,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
82 access_account_entries_report_employee account.entries.report employee model_account_entries_report base.group_user 1 0 0 0
83 access_analytic_entries_report_manager analytic.entries.report model_analytic_entries_report account.group_account_manager 1 0 0 0
84 access_account_cashbox_line account.cashbox.line model_account_cashbox_line account.group_account_user 1 1 1 1
85 access_account_journal_cashbox_line account.journal.cashbox.line model_account_journal_cashbox_line account.group_account_user 1 1 1 0
86 access_account_journal_view_invoice account.journal.view invoice model_account_journal_view account.group_account_invoice 1 1 1 1
87 access_account_journal_column_invoice account.journal.column invoice model_account_journal_column account.group_account_invoice 1 1 1 1
88 access_account_invoice_tax_accountant account.invoice.tax accountant model_account_invoice_tax account.group_account_user 1 0 0 0

View File

@ -92,14 +92,14 @@ class account_move_journal(osv.osv_memory):
journal = False
if journal_id:
journal = journal_pool.read(cr, uid, [journal_id], ['name'])[0]['name']
journal = journal_pool.read(cr, uid, journal_id, ['name'], context=context).name
journal_string = _("Journal: %s") % tools.ustr(journal)
else:
journal_string = _("Journal: All")
period = False
if period_id:
period = period_pool.browse(cr, uid, [period_id], ['name'])[0]['name']
period = period_pool.browse(cr, uid, period_id, context=context).name
period_string = _("Period: %s") % tools.ustr(period)
open_string = _("Open")

View File

@ -26,15 +26,12 @@
'sequence': 10,
'summary': 'Financial and Analytic Accounting',
'description': """
Accounting Access Rights.
=========================
Accounting Access Rights
========================
It gives the Administrator user access to all accounting features such as journal items and the chart of accounts.
This module gives the Admin user the access to all the accounting features
like the journal items and the chart of accounts.
It assigns manager and user access rights to the Administrator and only
user rights to Demo user.
""",
It assigns manager and user access rights to the Administrator and only user rights to the Demo user.
""",
'website': 'http://www.openerp.com',
'depends' : ['account_voucher'],
'data': [

View File

@ -5,6 +5,7 @@
<!-- Top menu item -->
<menuitem name="Accounting"
id="account.menu_finance"/>
</data>
<data noupdate="1">
@ -14,10 +15,9 @@
<field name="tag">reload</field>
<field name="params" eval="{'menu_id': ref('account.menu_finance')}"/>
</record>
<record id="todo_open_account_menu" model="ir.actions.todo">
<record id="base.open_menu" model="ir.actions.todo">
<field name="action_id" ref="action_client_account_menu"/>
<field name="type">automatic</field>
<field name="sequence">100</field>
<field name="state">open</field>
</record>
<!-- Notify all employees of module installation -->

View File

@ -465,7 +465,7 @@ class account_analytic_account(osv.osv):
def open_sale_order_lines(self,cr,uid,ids,context=None):
if context is None:
context = {}
sale_ids = self.pool.get('sale.order').search(cr,uid,[('project_id','=',context.get('search_default_project_id',False)),('partner_id','=',context.get('search_default_partner_id',False))])
sale_ids = self.pool.get('sale.order').search(cr,uid,[('project_id','=',context.get('search_default_project_id',False)),('partner_id','in',context.get('search_default_partner_id',False))])
names = [record.name for record in self.browse(cr, uid, ids, context=context)]
name = _('Sale Order Lines of %s') % ','.join(names)
return {

View File

@ -73,9 +73,18 @@
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,graph</field>
<field name="context">{'default_type':'contract'}</field>
<field name="context">{'default_type':'contract', 'search_default_open':1, 'search_default_pending':1}</field>
<field name="domain">[('type','=','contract')]</field>
<field name="search_view_id" ref="view_account_analytic_account_overdue_search"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a new contract.
</p><p>
Use contracts to follow tasks, issues, timesheets or invoicing based on
work done, expenses and/or sales orders. OpenERP will automatically manage
the alerts for the renewal of the contracts to the right salesperson.
</p>
</field>
</record>
<menuitem id="base.menu_sales" name="Sales"
parent="base.menu_base_partner"

View File

@ -140,6 +140,16 @@
<field name="view_mode">tree,form</field>
<field name="domain">[('type','=','template')]</field>
<field name="context">{'search_default_type':'template','default_type' : 'template'}</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click here to create a template of contract.
</p><p>
Templates are used to prefigure contract/project that
can be selected by the salespeople to quickly configure the
terms and conditions of the contract.
</p>
</field>
</record>
<menuitem action="template_of_contract_action" id="menu_template_of_contract_action" parent="base.menu_base_config"/>
</data>

View File

@ -299,7 +299,7 @@
<field name="inherit_id" ref="analytic.view_account_analytic_account_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Budget Lines">
<page string="Budget Lines" groups="account.group_account_user">
<field name="crossovered_budget_line" widget="one2many_list" colspan="4" nolabel="1" mode="tree,graph">
<tree string="Budget Lines" editable="top">
<field name="crossovered_budget_id"/>

View File

@ -4,4 +4,4 @@ access_account_budget_post,account.budget.post,model_account_budget_post,account
access_account_budget_post_accountant,account.budget.post accountant,model_account_budget_post,account.group_account_user,1,1,1,1
access_crossovered_budget_accountant,crossovered.budget accountant,model_crossovered_budget,account.group_account_user,1,1,1,1
access_crossovered_budget_lines_accountant,crossovered.budget.lines accountant,model_crossovered_budget_lines,account.group_account_user,1,1,1,1
access_budget,crossovered.budget.lines manager,model_crossovered_budget_lines,base.group_user,1,0,0,0
access_budget,crossovered.budget.lines manager,model_crossovered_budget_lines,base.group_user,1,1,1,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
4 access_account_budget_post_accountant account.budget.post accountant model_account_budget_post account.group_account_user 1 1 1 1
5 access_crossovered_budget_accountant crossovered.budget accountant model_crossovered_budget account.group_account_user 1 1 1 1
6 access_crossovered_budget_lines_accountant crossovered.budget.lines accountant model_crossovered_budget_lines account.group_account_user 1 1 1 1
7 access_budget crossovered.budget.lines manager model_crossovered_budget_lines base.group_user 1 0 1 0 1 0

View File

@ -0,0 +1,214 @@
# Greek translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-09-15 17:55+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Greek <el@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-16 04:39+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: account_sequence
#: view:account.sequence.installer:0
#: model:ir.actions.act_window,name:account_sequence.action_account_seq_installer
msgid "Account Sequence Application Configuration"
msgstr ""
#. module: account_sequence
#: constraint:account.move:0
msgid ""
"You can not create more than one move per period on centralized journal"
msgstr ""
#. module: account_sequence
#: constraint:account.move.line:0
msgid "Company must be the same for its related account and period."
msgstr ""
"Η εταιρία πρέπει να είναι ίδια για τους σχετικούς λογαριασμούς και περίοδο"
#. module: account_sequence
#: help:account.move,internal_sequence_number:0
#: help:account.move.line,internal_sequence_number:0
msgid "Internal Sequence Number"
msgstr ""
#. module: account_sequence
#: help:account.sequence.installer,number_next:0
msgid "Next number of this sequence"
msgstr "Επόμενος αριθμός αυτής της ακολουθίας"
#. module: account_sequence
#: field:account.sequence.installer,number_next:0
msgid "Next Number"
msgstr "Επόμενος Αριθμός"
#. module: account_sequence
#: field:account.sequence.installer,number_increment:0
msgid "Increment Number"
msgstr "Αριθμός Προσαύξησης"
#. module: account_sequence
#: help:account.sequence.installer,number_increment:0
msgid "The next number of the sequence will be incremented by this number"
msgstr ""
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "Configure Your Account Sequence Application"
msgstr ""
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "Configure"
msgstr ""
#. module: account_sequence
#: help:account.sequence.installer,suffix:0
msgid "Suffix value of the record for the sequence"
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,company_id:0
msgid "Company"
msgstr ""
#. module: account_sequence
#: help:account.journal,internal_sequence_id:0
msgid ""
"This sequence will be used to maintain the internal number for the journal "
"entries related to this journal."
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,padding:0
msgid "Number padding"
msgstr ""
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_move_line
msgid "Journal Items"
msgstr ""
#. module: account_sequence
#: field:account.move,internal_sequence_number:0
#: field:account.move.line,internal_sequence_number:0
msgid "Internal Number"
msgstr ""
#. module: account_sequence
#: constraint:account.move.line:0
msgid "You can not create journal items on an account of type view."
msgstr ""
#. module: account_sequence
#: help:account.sequence.installer,padding:0
msgid ""
"OpenERP will automatically adds some '0' on the left of the 'Next Number' to "
"get the required padding size."
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,name:0
msgid "Name"
msgstr ""
#. module: account_sequence
#: constraint:account.move.line:0
msgid "You can not create journal items on closed account."
msgstr ""
#. module: account_sequence
#: constraint:account.journal:0
msgid ""
"Configuration error! The currency chosen should be shared by the default "
"accounts too."
msgstr ""
#. module: account_sequence
#: sql_constraint:account.move.line:0
msgid "Wrong credit or debit value in accounting entry !"
msgstr ""
#. module: account_sequence
#: field:account.journal,internal_sequence_id:0
msgid "Internal Sequence"
msgstr ""
#. module: account_sequence
#: help:account.sequence.installer,prefix:0
msgid "Prefix value of the record for the sequence"
msgstr ""
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_move
msgid "Account Entry"
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,suffix:0
msgid "Suffix"
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,config_logo:0
msgid "Image"
msgstr ""
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "title"
msgstr ""
#. module: account_sequence
#: sql_constraint:account.journal:0
msgid "The name of the journal must be unique per company !"
msgstr ""
#. module: account_sequence
#: constraint:account.move.line:0
msgid ""
"The selected account of your Journal Entry forces to provide a secondary "
"currency. You should remove the secondary currency on the account or select "
"a multi-currency view on the journal."
msgstr ""
#. module: account_sequence
#: constraint:account.move.line:0
msgid ""
"The date of your Journal Entry is not in the defined period! You should "
"change the date or remove this constraint from the journal."
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,prefix:0
msgid "Prefix"
msgstr ""
#. module: account_sequence
#: sql_constraint:account.journal:0
msgid "The code of the journal must be unique per company !"
msgstr ""
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_sequence_installer
msgid "account.sequence.installer"
msgstr ""
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_journal
msgid "Journal"
msgstr ""
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "You can enhance the Account Sequence Application by installing ."
msgstr ""

View File

@ -25,13 +25,19 @@
'author' : 'OpenERP SA',
'summary': 'Send Invoices and Track Payments',
'description': """
eInvoicing & Payments module manage all Voucher Entries such as 'Reconciliation Entries', 'Adjustment Entries', 'Closing or Opening Entries' for Sales, Purchase, Bank, Cash, Expense, Contra.
==============================================================================================================================================================================================
Invoicing & Payments by Accounting Voucher & Receipts
======================================================
The specific and easy-to-use Invoicing system in OpenERP allows you to keep track of your accounting, even when you are not an accountant. It provides an easy way to follow up on your suppliers and customers.
* Voucher Entry
* Voucher Receipt [Sales & Purchase]
* Voucher Payment [Customer & Supplier]
* Cheque Register
You could use this simplified accounting in case you work with an (external) account to keep your books, and you still want to keep track of payments.
The Invoicing system includes receipts and vouchers (an easy way to keep track of sales and purchases). It also offers you an easy method of registering payments, without having to encode complete abstracts of account.
This module manages:
* Voucher Entry
* Voucher Receipt [Sales & Purchase]
* Voucher Payment [Customer & Supplier]
""",
'category': 'Accounting & Finance',
'sequence': 4,

View File

@ -272,10 +272,9 @@
<field name="tag">reload</field>
<field name="params" eval="{'menu_id': ref('account.menu_finance')}"/>
</record>
<record id="todo_open_invoice_menu" model="ir.actions.todo">
<record id="base.open_menu" model="ir.actions.todo">
<field name="action_id" ref="action_client_invoice_menu"/>
<field name="type">automatic</field>
<field name="sequence">100</field>
<field name="state">open</field>
</record>
</data>

View File

@ -41,6 +41,7 @@
units is reached, the account manager
is warned by email to renew the contract.
</p>
<field name="date_start"/>
<label for="date" string="End Date"/>
<div name="duration">
<field name="date" class="oe_inline"/>

View File

@ -64,11 +64,13 @@ class ir_model_fields_anonymization(osv.osv):
state = 'anonymized' # all fields are anonymized
else:
state = 'unstable' # fields are mixed: this should be fixed
return state
def _check_write(self, cr, uid, context=None):
# check that the field is created from the menu and not from an database update
# otherwise the database update can crash:
if context.get('manual'):
global_state = self._get_global_state(cr, uid, context=context)
if global_state == 'anonymized':
@ -100,12 +102,16 @@ class ir_model_fields_anonymization(osv.osv):
# check field state: all should be clear before we can add a new field to anonymize:
self._check_write(cr, uid, context=context)
global_state = self._get_global_state(cr, uid, context=context)
if 'field_name' in vals and vals['field_name'] and 'model_name' in vals and vals['model_name']:
vals['model_id'], vals['field_id'] = self._get_model_and_field_ids(cr, uid, vals, context=context)
# check not existing fields:
if not vals.get('field_id'):
vals['state'] = 'not_existing'
else:
vals['state'] = global_state
res = super(ir_model_fields_anonymization, self).create(cr, uid, vals, context=context)
@ -340,8 +346,9 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
# remove the placeholer:
eview.remove(placeholder)
else:
# unstable ?
raise
msg = "The database anonymization is currently in an unstable state. Some fields are anonymized," + \
" while some fields are not anonymized. You should try to solve this problem before trying to do anything else."
raise osv.except_osv('Error !', msg)
res['arch'] = etree.tostring(eview)

View File

@ -34,7 +34,8 @@ Allow users to login through Google OAuth2.
'depends': ['base', 'web', 'base_setup'],
'data': [
'auth_oauth_data.xml',
'auth_oauth_view.xml'
'auth_oauth_view.xml',
'security/ir.model.access.csv'
],
'js': ['static/src/js/auth_oauth.js'],
'css': ['static/lib/zocial/css/zocial.css'],

View File

@ -4,7 +4,6 @@
<record model="ir.ui.view" id="view_oauth_provider_form">
<field name="name">auth.oauth.provider.form</field>
<field name="model">auth.oauth.provider</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="arch" version="7.0">
<sheet>
@ -26,7 +25,6 @@
<record model="ir.ui.view" id="view_oauth_provider_list">
<field name="name">auth.oauth.provider.list</field>
<field name="model">auth.oauth.provider</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="arch" version="7.0">
<field name="name" />

View File

@ -0,0 +1,2 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_auth_oauth_provider,auth_oauth_provider,model_auth_oauth_provider,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_auth_oauth_provider auth_oauth_provider model_auth_oauth_provider base.group_system 1 1 1 1

View File

@ -32,10 +32,6 @@ def message_check(msg, secret):
class res_users(osv.osv):
_inherit = 'res.users'
_sql_constraints = [
('email_uniq', 'UNIQUE (user_email)', 'You can not have two users with the same email!')
]
def _auth_reset_password_secret(self, cr, uid, context=None):
uuid = self.pool.get('ir.config_parameter').get_param(cr, uid, 'database.uuid')
res = {
@ -77,6 +73,7 @@ class res_users(osv.osv):
MailMessage.send(cr, uid, [msg_id], context=context)
def send_reset_password_request(self, cr, uid, email, context=None):
# TODO reseting a password knowing only an email is not good enough (email can be shared between multiple logins).
ids = self.pool.get('res.users').search(cr, SUPERUSER_ID, [('user_email', '=', email)], context=context)
if ids:
self._auth_reset_password_send_email(cr, SUPERUSER_ID, email, 'reset_password_email', ids[0], context=context)

View File

@ -22,7 +22,6 @@ or by copy-pasting the following URL in your browser: ${object._auth_reset_passw
<record id="reset_password_wizard_form_view" model="ir.ui.view">
<field name="name">auth.reset_password.form</field>
<field name="model">auth.reset_password</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Reset Password" version="7.0">
<field name="state" invisible="1"/>

View File

@ -418,7 +418,7 @@
<field name="type">ir.actions.act_window</field>
<field name="res_model">calendar.event</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar</field>
<field name="view_mode">calendar,tree,form</field>
<field name="search_view_id" ref="view_calendar_event_filter"/>
</record>

View File

@ -66,6 +66,11 @@ class crm_meeting(base_state, osv.Model):
'state': 'open',
}
def copy(self, cr, uid, id, default=None, context=None):
default = default or {}
default['attendee_ids'] = False
return super(crm_meeting, self).copy(cr, uid, id, default, context)
# ----------------------------------------
# OpenChatter
# ----------------------------------------

File diff suppressed because it is too large Load Diff

View File

@ -6,9 +6,6 @@
<record id="base.menu_res_company_global" model="ir.ui.menu">
<field name="groups_id" eval="[(3, ref('base.group_no_one'))]"/>
</record>
<record id="base.menu_publisher_warranty" model="ir.ui.menu">
<field name="groups_id" eval="[(3, ref('base.group_no_one'))]"/>
</record>
<!-- Specify your terminology config wiz -->
<record id="base_setup_terminology_form" model="ir.ui.view">

View File

@ -9,12 +9,11 @@
<field name="inherit_id" ref="base.res_partner_kanban_view"/>
<field name="arch" type="xml">
<xpath expr="//div[@class='oe_kanban_partner_categories']" position="inside">
<t t-foreach="record.category_id.raw_value" t-as="category">
<span class="oe_tag" t-att-data-category_id="category"/>
</t>
<span class="oe_kanban_list_many2many">
<field name="category_id"/>
</span>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@ -1,24 +0,0 @@
openerp.base_setup = function(openerp) {
/* extend kanban to include the names of partner categories in the kanban view of partners */
openerp.web_kanban.KanbanView.include({
on_groups_started: function() {
var self = this;
self._super.apply(this, arguments);
if (this.dataset.model === 'res.partner') {
/* Set names for partner categories */
var category_ids = [];
this.$el.find('.oe_kanban_partner_categories span').each(function() {
category_ids.push($(this).data('category_id'));
});
var dataset = new openerp.web.DataSetSearch(this, 'res.partner.category', self.session.context);
dataset.name_get(_.uniq(category_ids)).then(function(result) {
_.each(result, function(value) {
self.$el
.find('.oe_kanban_partner_categories span[data-category_id=' + value[0] + ']')
.html(value[1]);
});
});
}
}
});
};

View File

@ -109,6 +109,7 @@ class res_partner(osv.osv):
if not self.check_vat(cr, uid, ids, context=context):
msg = self._construct_constraint_msg(cr, uid, ids, context=context)
raise osv.except_osv(_('Error!'), msg)
return True
def check_vat(self, cr, uid, ids, context=None):
user_company = self.pool.get('res.users').browse(cr, uid, uid).company_id

View File

@ -1,3 +1,36 @@
.openerp .oe_dashboard_layout_1 .oe_dashboard_column.index_0 {
width: 100%;
}
.openerp .oe_dashboard_layout_1 .oe_dashboard_column.index_1, .openerp .oe_dashboard_layout_1 .oe_dashboard_column.index_2 {
display: none;
}
.openerp .oe_dashboard_layout_1-1 .oe_dashboard_column {
width: 50%;
}
.openerp .oe_dashboard_layout_1-1 .oe_dashboard_column.index_2 {
display: none;
}
.openerp .oe_dashboard_layout_1-1-1 .oe_dashboard_column {
width: 33%;
}
.openerp .oe_dashboard_layout_2-1 .oe_dashboard_column.index_0 {
width: 70%;
}
.openerp .oe_dashboard_layout_2-1 .oe_dashboard_column.index_1 {
width: 30%;
}
.openerp .oe_dashboard_layout_2-1 .oe_dashboard_column.index_2 {
display: none;
}
.openerp .oe_dashboard_layout_1-2 .oe_dashboard_column.index_0 {
width: 30%;
}
.openerp .oe_dashboard_layout_1-2 .oe_dashboard_column.index_1 {
width: 70%;
}
.openerp .oe_dashboard_layout_1-2 .oe_dashboard_column.index_2 {
display: none;
}
.openerp .oe_dashboard_layout_selector ul {
white-space: nowrap;
}

View File

@ -9,6 +9,31 @@
box-shadow: $bsval
.openerp
.oe_dashboard_layout_1 .oe_dashboard_column
&.index_0
width: 100%
&.index_1, &.index_2
display: none
.oe_dashboard_layout_1-1 .oe_dashboard_column
width: 50%
&.index_2
display: none
.oe_dashboard_layout_1-1-1 .oe_dashboard_column
width: 33%
.oe_dashboard_layout_2-1 .oe_dashboard_column
&.index_0
width: 70%
&.index_1
width: 30%
&.index_2
display: none
.oe_dashboard_layout_1-2 .oe_dashboard_column
&.index_0
width: 30%
&.index_1
width: 70%
&.index_2
display: none
.oe_dashboard_layout_selector
ul
white-space: nowrap
@ -98,3 +123,4 @@
> tbody
tr:nth-child(odd)
background: transparent

View File

@ -24,6 +24,10 @@ instance.web.form.DashBoard = instance.web.form.FormWidget.extend({
scroll: false
}).bind('sortstop', self.do_save_dashboard);
var old_title = this.__parentedParent.get('title');
this.__parentedParent.on_record_loaded.add_last(function(){
self.__parentedParent.set({ 'title' : old_title});
});
// Events
this.$el.find('.oe_dashboard_link_reset').click(this.on_reset);
this.$el.find('.oe_dashboard_link_change_layout').click(this.on_change_layout);
@ -165,8 +169,6 @@ instance.web.form.DashBoard = instance.web.form.FormWidget.extend({
this.rpc('/web/view/add_custom', {
view_id: this.view.fields_view.view_id,
arch: arch
}, function() {
self.$el.find('.oe_dashboard_link_reset').show();
});
},
on_load_action: function(result, index, action_attrs) {

View File

@ -1,7 +1,7 @@
<template>
<t t-name="DashBoard">
<div class="oe_dashboard_links">
<button type="button" class="button oe_dashboard_link_reset" title="Reset Layout.." t-att-style="view.fields_view.custom_view_id ? null : 'display: none'">
<button type="button" class="button oe_dashboard_link_reset" title="Reset Layout.." t-att-style="view.fields_view.custom_view_id || session.debug ? null : 'display: none'">
<img src="/board/static/src/img/layout_2-1.png" width="16" height="16"/>
<span> Reset </span>
</button>

View File

@ -30,7 +30,9 @@ Create a claim from a delivery order.
Adds a Claim link to the delivery order.
""",
'data' : ['claim_delivery_view.xml'],
'data' : [
'claim_delivery_view.xml',
'claim_delivery_data.xml',],
'auto_install': False,
'installable': True,
'certificate' : '001101649349223746957',

View File

@ -0,0 +1,11 @@
<?xml version="1.0"?>
<openerp>
<data>
<record model="res.request.link" id="request_link_claim_from_delivery">
<field name="name">Delivery Order</field>
<field name="object">stock.picking.out</field>
</record>
</data>
</openerp>

View File

@ -1,11 +1,27 @@
<openerp>
<data>
<act_window id="action_claim_from_delivery" name="Claim"
domain="[]" target="current"
context="{'default_partner_id': partner_id}"
view_mode="form" res_model="crm.claim"
src_model="stock.picking" />
<record id="action_claim_from_delivery" model="ir.actions.act_window">
<field name="name">Claim From Delivery</field>
<field name="res_model">crm.claim</field>
<field name="view_type">form</field>
<field name="view_id" ref="crm_claim.crm_case_claims_tree_view"/>
<field name="context">{'default_ref': 'stock.picking.out,'+str(context.get('active_id', False))}</field>
<field name="domain">[('ref','=','stock.picking.out,'+str(context.get('active_id',False)))]</field>
</record>
<record id="crm_claim_from_delivery" model="ir.ui.view">
<field name="name">crm.claim.from_delivery.form</field>
<field name="model">stock.picking.out</field>
<field name="inherit_id" ref="stock.view_picking_out_form"/>
<field name="arch" type="xml">
<xpath expr="/form/sheet/h1" position="before">
<div class="oe_right oe_button_box">
<button name="%(action_claim_from_delivery)d" string="Claims" type="action"/>
</div>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@ -27,35 +27,24 @@
'sequence': 2,
'summary': 'Leads, Opportunities, Agenda',
'description': """
The generic OpenERP Customer Relationship Management.
The generic OpenERP Customer Relationship Management
=====================================================
This system enables a group of people to intelligently and efficiently manage
leads, opportunities, meeting, phonecall.
This application enables a group of people to intelligently and efficiently manage leads, opportunities, meetings and phone calls.
It manages key tasks such as communication, identification, prioritization,
assignment, resolution and notification.
It manages key tasks such as communication, identification, prioritization, assignment, resolution and notification.
OpenERP ensures that all cases are successfully tracked by users, customers and
suppliers. It can automatically send reminders, escalate the request, trigger
specific methods and lots of other actions based on your own enterprise rules.
OpenERP ensures that all cases are successfully tracked by users, customers and suppliers. It can automatically send reminders, escalate the request, trigger specific methods and many other actions based on your own enterprise rules.
The greatest thing about this system is that users don't need to do anything
special. They can just send email to the request tracker. OpenERP will take
care of thanking them for their message, automatically routing it to the
appropriate staff and make sure all future correspondence gets to the right
place.
The greatest thing about this system is that users don't need to do anything special. The CRM module has an email gateway for the synchronization interface between mails and OpenERP. That way, users can just send emails to the request tracker.
The CRM module has a email gateway for the synchronisation interface
between mails and OpenERP.
OpenERP will take care of thanking them for their message, automatically routing it to the appropriate staff and make sure all future correspondence gets to the right place.
Creates a dashboard for CRM that includes:
------------------------------------------
* List of New Leads
* List of My Opportunities
* List of My Next Meetings
* Planned Revenue by Stage and User (graph)
* Opportunities by Stage (graph)
Dashboard for CRM will include:
-------------------------------
* Planned Revenue by Stage and User (graph)
* Opportunities by Stage (graph)
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',

View File

@ -8,10 +8,9 @@
<field name="tag">reload</field>
<field name="params" eval="{'menu_id': ref('base.menu_base_partner')}"/>
</record>
<record id="todo_open_crm_menu" model="ir.actions.todo">
<record id="base.open_menu" model="ir.actions.todo">
<field name="action_id" ref="action_client_crm_menu"/>
<field name="type">automatic</field>
<field name="sequence">100</field>
<field name="state">open</field>
</record>
<record model="crm.case.channel" id="crm_case_channel_website">

View File

@ -32,12 +32,6 @@
</div>
</group>
</div>
<div name="Customer Features" position="inside">
<div>
<field name="module_google_map" class="oe_inline"/>
<label for="module_google_map"/>
</div>
</div>
</field>
</record>

View File

@ -3,18 +3,21 @@
<data noupdate="0">
<record id="base.group_sale_salesman" model="res.groups">
<field name="name">User - Own Leads Only</field>
<field name="name">User: Own Leads Only</field>
<field name="category_id" ref="base.module_category_sales_management"/>
<field name="comment">the user will have access to his own data in the sales application.</field>
</record>
<record id="base.group_sale_salesman_all_leads" model="res.groups">
<field name="name">User - All Leads</field>
<field name="name">User: All Leads</field>
<field name="category_id" ref="base.module_category_sales_management"/>
<field name="implied_ids" eval="[(4, ref('base.group_sale_salesman'))]"/>
<field name="comment">the user will have access to all records of everyone in the sales application.</field>
</record>
<record id="base.group_sale_manager" model="res.groups">
<field name="name">Manager</field>
<field name="comment">the user will have an access to the sales configuration as well as statistic reports.</field>
<field name="category_id" ref="base.module_category_sales_management"/>
<field name="implied_ids" eval="[(4, ref('base.group_sale_salesman_all_leads'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>

View File

@ -18,9 +18,9 @@
assert not lead.partner_id, "Customer should be a new"
assert lead.name == "Fournir votre devis avec le meilleur prix.", "Subject does not match"
-
I reply him request with welcome message.
I reply him request with welcome message. TODO revert mail.mail to mail.compose.message (conversion to customer should be automatic).
-
!python {model: mail.compose.message}: |
!python {model: mail.mail}: |
lead_ids = self.pool.get('crm.lead').search(cr, uid, [('email_from','=', 'Mr. John Right <info@customer.com>')])
context.update({'active_model': 'crm.lead','active_id': lead_ids[0]})
id = self.create(cr, uid, {'body': "Merci à l'intérêt pour notre produit.nous vous contacterons bientôt. Merci", 'email_from': 'sales@mycompany.com'}, context=context)

View File

@ -8,15 +8,15 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-07-28 18:41+0000\n"
"PO-Revision-Date: 2012-09-15 21:58+0000\n"
"Last-Translator: Fábio Martinelli - http://zupy.com.br "
"<webmaster@guaru.net>\n"
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-07 04:59+0000\n"
"X-Generator: Launchpad (build 15914)\n"
"X-Launchpad-Export-Date: 2012-09-16 04:39+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,send_to:0
@ -36,7 +36,7 @@ msgstr "Excluir Permanentemente o email após o envio"
#. module: crm_partner_assign
#: field:crm.lead.report.assign,delay_close:0
msgid "Delay to Close"
msgstr "Espera para Fechar"
msgstr "Adiar Fechamento"
#. module: crm_partner_assign
#: help:crm.lead.forward.to.partner,email_to:0
@ -92,12 +92,12 @@ msgstr "Março"
#. module: crm_partner_assign
#: selection:crm.lead.report.assign,type:0
msgid "Lead"
msgstr "Prospécto"
msgstr "Prospecto"
#. module: crm_partner_assign
#: view:crm.lead.report.assign:0
msgid "Delay to close"
msgstr "Atraso para fechar"
msgstr "Adiar o fechamento"
#. module: crm_partner_assign
#: view:crm.partner.report.assign:0
@ -233,7 +233,7 @@ msgstr "Anterior"
#: code:addons/crm_partner_assign/partner_geo_assign.py:36
#, python-format
msgid "Network error"
msgstr "Erro de rede"
msgstr "Erro na rede"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,email_from:0
@ -274,12 +274,12 @@ msgstr "Prioridade"
#: view:crm.lead.report.assign:0
#: field:crm.lead.report.assign,state:0
msgid "State"
msgstr "Status"
msgstr "Situação"
#. module: crm_partner_assign
#: field:crm.lead.report.assign,delay_expected:0
msgid "Overpassed Deadline"
msgstr "Prazo Superado"
msgstr "Prazo Ultrapassado"
#. module: crm_partner_assign
#: field:crm.lead.report.assign,type:0
@ -318,12 +318,12 @@ msgstr "Analisar Prospecções"
#. module: crm_partner_assign
#: field:crm.lead.report.assign,creation_date:0
msgid "Creation Date"
msgstr "Dt. Criação"
msgstr "Data de Criação"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,res_id:0
msgid "Related Document ID"
msgstr "Documento Relacionado"
msgstr "ID do Documento Relacionado"
#. module: crm_partner_assign
#: view:crm.lead.report.assign:0
@ -397,7 +397,7 @@ msgstr "Fechar"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,use_template:0
msgid "Use Template"
msgstr "Usar modelo"
msgstr "Usar Modelo"
#. module: crm_partner_assign
#: model:ir.actions.act_window,name:crm_partner_assign.action_report_crm_opportunity_assign
@ -453,7 +453,7 @@ msgstr "Assunto"
#: view:crm.lead.report.assign:0
#: view:crm.partner.report.assign:0
msgid "Salesman"
msgstr "Vendedor"
msgstr "Representante"
#. module: crm_partner_assign
#: view:crm.lead.report.assign:0
@ -580,7 +580,7 @@ msgstr "# da Oportunidade"
#. module: crm_partner_assign
#: view:crm.lead.report.assign:0
msgid "Lead Assign"
msgstr "Atribuir Prospécto"
msgstr "Atribuir Prospecto"
#. module: crm_partner_assign
#: selection:crm.lead.report.assign,month:0
@ -600,7 +600,7 @@ msgstr "Janeiro"
#. module: crm_partner_assign
#: help:crm.lead,partner_assigned_id:0
msgid "Partner this case has been forwarded/assigned to."
msgstr "O Parceiro desse Caso foi Enviado/Atribuído para."
msgstr "Parceiro para que este caso foi enviado/atribuído"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,date:0
@ -661,7 +661,7 @@ msgstr "Nome da Grade"
#. module: crm_partner_assign
#: help:crm.lead,date_assign:0
msgid "Last date this case was forwarded/assigned to a partner"
msgstr "Última data que este Caso foi Enviado/Atribuído a um parceiro"
msgstr "Última data que este caso foi enviado/atribuído a um parceiro"
#. module: crm_partner_assign
#: selection:crm.lead.report.assign,state:0
@ -679,7 +679,9 @@ msgstr "Cópia oculta da mensagem para os destinatários"
msgid ""
"Full message headers, e.g. SMTP session headers (usually available on "
"inbound messages only)"
msgstr "Cabeçalho completo, Ex Cabecalhos SMTP"
msgstr ""
"Cabeçalho completo da mensagem, Ex. SMTP session headers (geralmente "
"disponível somente para mensagens recebidas)"
#. module: crm_partner_assign
#: field:res.partner,date_localization:0
@ -808,7 +810,7 @@ msgstr "Abril"
#: model:ir.actions.act_window,name:crm_partner_assign.action_report_crm_partner_assign
#: model:ir.ui.menu,name:crm_partner_assign.menu_report_crm_partner_assign_tree
msgid "Partnership Analysis"
msgstr "Analise de Parceria"
msgstr "Análise de Parceria"
#. module: crm_partner_assign
#: model:ir.model,name:crm_partner_assign.model_crm_lead
@ -839,7 +841,7 @@ msgstr ""
#. module: crm_partner_assign
#: constraint:res.partner:0
msgid "Error ! You cannot create recursive associated members."
msgstr "Erro! Você não pode criar recursivamente a membros associados."
msgstr "Erro! Você não pode criar membros associados recursivamente."
#. module: crm_partner_assign
#: selection:crm.lead.forward.to.partner,history:0

View File

@ -0,0 +1,96 @@
# Russian translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-09-14 06:29+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-15 04:55+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: crm_todo
#: model:ir.model,name:crm_todo.model_project_task
msgid "Task"
msgstr "Задачи"
#. module: crm_todo
#: view:crm.lead:0
msgid "Timebox"
msgstr "Резерв времени"
#. module: crm_todo
#: view:crm.lead:0
msgid "For cancelling the task"
msgstr "Для отмены задачи"
#. module: crm_todo
#: constraint:project.task:0
msgid "Error ! Task end-date must be greater then task start-date"
msgstr ""
"Ошибка! Дата завершения задачи должна быть позднее чем дата начала задачи"
#. module: crm_todo
#: model:ir.model,name:crm_todo.model_crm_lead
msgid "crm.lead"
msgstr "crm.lead"
#. module: crm_todo
#: view:crm.lead:0
msgid "Next"
msgstr "Далее"
#. module: crm_todo
#: model:ir.actions.act_window,name:crm_todo.crm_todo_action
#: model:ir.ui.menu,name:crm_todo.menu_crm_todo
msgid "My Tasks"
msgstr "Мои задачи"
#. module: crm_todo
#: view:crm.lead:0
#: field:crm.lead,task_ids:0
msgid "Tasks"
msgstr "Задачи"
#. module: crm_todo
#: view:crm.lead:0
msgid "Done"
msgstr "Сделано"
#. module: crm_todo
#: constraint:project.task:0
msgid "Error ! You cannot create recursive tasks."
msgstr "Ошибка! Вы не можете создавать рекурсивные задачи."
#. module: crm_todo
#: view:crm.lead:0
msgid "Cancel"
msgstr "Отмена"
#. module: crm_todo
#: view:crm.lead:0
msgid "Extra Info"
msgstr "Доп. инфо."
#. module: crm_todo
#: field:project.task,lead_id:0
msgid "Lead / Opportunity"
msgstr "Кандидат / предложение"
#. module: crm_todo
#: view:crm.lead:0
msgid "For changing to done state"
msgstr "Для смены в состояние \"Сделано\""
#. module: crm_todo
#: view:crm.lead:0
msgid "Previous"
msgstr "Назад"

View File

@ -259,10 +259,10 @@
<record id="view_picking_withweight_internal_move_form" model="ir.ui.view">
<field name="name">stock.picking_withweight.internal.move.form.view</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_form"/>
<field name="model">stock.move</field>
<field name="inherit_id" ref="stock.view_move_picking_tree"/>
<field name="arch" type="xml">
<xpath expr="/form/sheet/notebook/page/field[@name='move_lines']/tree/field[@name='product_uom']" position="after">
<xpath expr="//field[@name='product_uom']" position="after">
<field name="weight"/>
<field name="weight_net" groups="base.group_no_one"/>
</xpath>
@ -306,7 +306,7 @@
<record id="view_delivery_order_inherit_stock" model="ir.ui.view">
<field name="name">stock.picking.out.form</field>
<field name="model">stock.picking</field>
<field name="model">stock.picking.out</field>
<field name="inherit_id" ref="stock.view_picking_out_form"/>
<field name="arch" type="xml">
<xpath expr="/form/header//button[@string='Create Invoice/Refund']" position="after">

View File

@ -69,7 +69,7 @@ class document_directory(osv.osv):
}
def _get_root_directory(self, cr,uid, context=None):
def _get_root_directory(self, cr, uid, context=None):
objid=self.pool.get('ir.model.data')
try:
mid = objid._get_id(cr, uid, 'document', 'dir_root')
@ -77,9 +77,7 @@ class document_directory(osv.osv):
return False
root_id = objid.read(cr, uid, mid, ['res_id'])['res_id']
return root_id
except Exception, e:
_logger.warning('Cannot set directory root:'+ str(e))
except Exception:
return False
return objid.browse(cr, uid, mid, context=context).res_id

View File

@ -114,7 +114,7 @@
<field name="model">report.document.user</field>
<field name="arch" type="xml">
<graph string="Files by User" type="pie">
<field name="user" />
<field name="user_id" />
<field name="nbr" operator="+"/>
</graph>
</field>

View File

@ -6,7 +6,6 @@
</record>
<record id="demo_category1" model="document.page">
<field name="name">OpenERP Features</field>
<field name="sequence">10</field>
<field name="type">category</field>
<field name="content">
Summary of the feature

View File

@ -65,7 +65,6 @@ class document_page_create_menu(osv.osv_memory):
'view_id': False,
'type': 'ir.actions.act_window',
'target': 'inlineview',
'nodestroy': True,
}
value['domain'] = "[('parent_id','=',%d)]" % (page.id)
value['res_id'] = page.id

View File

@ -25,21 +25,18 @@
'name': 'Events Organisation',
'version': '0.1',
'category': 'Tools',
'summary': 'For Trainings, Conferences & Meetings',
'summary': 'Trainings, Conferences, Meetings, Exhibitions, Registrations',
'description': """
Organization and management of Events.
======================================
This module allows you:
-----------------------
* to manage your events and their registrations
* to use emails to automatically confirm and send acknowledgements for any
registration to an event
The event module allows you to efficiently organise events and all related tasks: planification, registration tracking,
attendances, etc.
Note that:
----------
- You can define new types of events in
**Events** / **Configuration** / **Types of Events**
Key Features
------------
* Manage your Events and Registrations
* Use emails to automatically confirm and send acknowledgements for any event registration
""",
'author': 'OpenERP SA',
'depends': ['base_setup', 'board', 'email_template', 'google_map'],

View File

@ -207,6 +207,8 @@ class event_event(osv.osv):
'main_speaker_id': fields.many2one('res.partner','Main Speaker', readonly=False, states={'done': [('readonly', True)]}, help="Speaker who will be giving speech at the event."),
'address_id': fields.many2one('res.partner','Location Address', readonly=False, states={'done': [('readonly', True)]}),
'street': fields.related('address_id','street',type='char',string='Street'),
'street2': fields.related('address_id','street2',type='char',string='Street2'),
'state_id': fields.related('address_id','state_id',type='many2one', relation="res.country.state", string='State'),
'zip': fields.related('address_id','zip',type='char',string='zip'),
'city': fields.related('address_id','city',type='char',string='city'),
'speaker_confirmed': fields.boolean('Speaker Confirmed', readonly=False, states={'done': [('readonly', True)]}),
@ -265,16 +267,20 @@ class event_event(osv.osv):
def on_change_address_id(self, cr, uid, ids, address_id, context=None):
values = {
'street' : False,
'street2' : False,
'city' : False,
'zip' : False,
'country_id' : False,
'state_id' : False,
}
if isinstance(address_id, (long, int)):
address = self.pool.get('res.partner').browse(cr, uid, address_id, context=context)
values.update({
'street' : address.street,
'street2' : address.street2,
'city' : address.city,
'country_id' : address.country_id and address.country_id.id,
'state_id' : address.state_id and address.state_id.id,
'zip' : address.zip,
})

View File

@ -7,10 +7,9 @@
<field name="tag">reload</field>
<field name="params" eval="{'menu_id': ref('event.event_main_menu')}"/>
</record>
<record id="todo_open_event_menu" model="ir.actions.todo">
<record id="base.open_menu" model="ir.actions.todo">
<field name="action_id" ref="action_client_event_menu"/>
<field name="type">automatic</field>
<field name="sequence">100</field>
<field name="state">open</field>
</record>
<!-- notify all employees of module installation -->

View File

@ -101,7 +101,7 @@
<field name="arch" type="xml">
<form string="Events" version="7.0">
<header>
<span groups="base.user_group">
<span groups="base.group_user">
<button string="Confirm Event" name="button_confirm" states="draft" type="object" class="oe_highlight"/>
<button string="Event Ended" name="button_done" states="confirm" type="object" class="oe_highlight"/>
<button string="Set To Draft" name="button_draft" states="cancel,done" type="object" />
@ -111,52 +111,54 @@
</header>
<sheet>
<div class="oe_right oe_button_box">
<button name="%(event.act_event_list_register_event)d" type="action" string="Registration" icon="gtk-index" help="Register with this event"/>
<button name="%(event.act_event_list_register_event)d" type="action" string="Registrations" help="Register with this event"/>
</div>
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1><field name="name"/></h1>
</div>
<div>
<h2>From <field name="date_begin" class="oe_inline" /> to <field name="date_end" class="oe_inline"/>
</h2>
<group>
<group>
<label for="address_id" string="Location Address"/>
<label for="address_id" string="Location"/>
<div>
<field name="address_id" widget="many2one_address_google_map" widget_option="{'placeholder':'.oe_google_map'}" on_change="on_change_address_id(address_id)" />
<field name="address_id" on_change="on_change_address_id(address_id)" />
<field name="street" placeholder="Street..."/>
<div>
<field name="zip" class="oe_inline" placeholder="Zip"/>
<field name="city" class="oe_inline" placeholder="City"/>
<field name="street2"/>
<div class="address_format">
<field name="city" placeholder="City" style="width: 40%%"/>
<field name="state_id" class="oe_no_button" placeholder="State" style="width: 37%%" options='{"no_open": true}'/>
<field name="zip" placeholder="ZIP" style="width: 20%%"/>
</div>
<field name="country_id" placeholder="Country" class="oe_no_button" options='{"no_open": true}'/>
</div>
</group>
<group>
<field name="type" on_change="onchange_event_type(type,context)"/>
<field name="register_min"/>
<field name="register_max"/>
<label for="register_current" string="Current Registrations" groups="base.group_user"/>
<div groups="base.group_user">
Confirmed: <field name="register_current" class="oe_inline"/>, Unconfirmed: <field name="register_prospect" class="oe_inline"/>
</div>
<field name="date_begin"/>
<field name="date_end"/>
</group>
</group>
</div>
<div class="oe_google_map" style="height: 200px"></div>
<notebook>
<page string="Event Description">
<field name="note" colspan="4" nolabel="1"/>
</page>
<page string="Internal Data">
<page string="Registrations">
<group>
<group>
<field name="register_min"/>
<field name="register_max"/>
<label for="register_current" string="Current Registrations" groups="base.group_user"/>
<div groups="base.group_user">
<field name="register_prospect" class="oe_inline"/> (confirmed: <field name="register_current" class="oe_inline"/>)
</div>
<field name="register_attended"/>
</group>
<group>
<field name="main_speaker_id" domain="[('speaker','=',True)]" context="{'default_speaker':1}"/>
<field name="speaker_confirmed"/>
</group>
<group>
<field name="register_attended"/>
</group>
</group>
<field name="registration_ids" colspan="4" nolabel="1" groups="event.group_event_manager,event.group_event_user">
<tree string="Registration" editable="top">
@ -166,7 +168,7 @@
<field name="nb_register" />
<field name="state"/>
<button name="registration_open" string="Confirm Registration" states="draft" type="object" icon="gtk-apply"/>
<button name="button_reg_close" string="Attented the Event" states="open" type="object" icon="gtk-jump-to"/>
<button name="button_reg_close" string="Attended the Event" states="open" type="object" icon="gtk-jump-to"/>
<button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object" icon="gtk-cancel"/>
</tree>
<form string="Registration">

View File

@ -39,10 +39,9 @@
</record>
<!-- register configuration wizard -->
<record id="config_wizard_config_moodle" model="ir.actions.todo">
<record id="base.open_menu" model="ir.actions.todo">
<field name="action_id" ref="configure_moodle"/>
<field name="type">automatic</field>
<field name="name">Configuration of moodle</field>
<field name="state">open</field>
</record>
<menuitem name="Moodle Configuration" parent="base.menu_marketing_config_root" id="wizard_moodle" action="configure_moodle"/>

View File

@ -81,8 +81,6 @@ class sale_order_line(osv.osv):
'nb_register': int(order_line.product_uom_qty),
'email': order_line.order_id.partner_id.email,
'phone': order_line.order_id.partner_id.phone,
'street': order_line.order_id.partner_invoice_id.street,
'city': order_line.order_id.partner_invoice_id.city,
'origin': order_line.order_id.name,
'event_id': order_line.event_id.id,
}

333
addons/fetchmail/i18n/mk.po Normal file
View File

@ -0,0 +1,333 @@
# Macedonian translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-09-18 16:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Macedonian <mk@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-19 04:37+0000\n"
"X-Generator: Launchpad (build 15966)\n"
#. module: fetchmail
#: selection:fetchmail.server,state:0
msgid "Confirmed"
msgstr "Потврдено"
#. module: fetchmail
#: field:fetchmail.server,server:0
msgid "Server Name"
msgstr ""
#. module: fetchmail
#: field:fetchmail.server,script:0
msgid "Script"
msgstr ""
#. module: fetchmail
#: help:fetchmail.server,priority:0
msgid "Defines the order of processing, lower values mean higher priority"
msgstr ""
#. module: fetchmail
#: help:fetchmail.server,is_ssl:0
msgid ""
"Connections are encrypted with SSL/TLS through a dedicated port (default: "
"IMAPS=993, POP3S=995)"
msgstr ""
#. module: fetchmail
#: field:fetchmail.server,attach:0
msgid "Keep Attachments"
msgstr ""
#. module: fetchmail
#: help:fetchmail.server,original:0
msgid ""
"Whether a full original copy of each email should be kept for referenceand "
"attached to each processed message. This will usually double the size of "
"your message database."
msgstr ""
#. module: fetchmail
#: field:fetchmail.server,priority:0
msgid "Server Priority"
msgstr ""
#. module: fetchmail
#: field:fetchmail.server,state:0
msgid "State"
msgstr "Состојба"
#. module: fetchmail
#: view:fetchmail.server:0
msgid "POP"
msgstr "POP"
#. module: fetchmail
#: view:fetchmail.server:0
msgid "Fetch Now"
msgstr ""
#. module: fetchmail
#: model:ir.actions.act_window,name:fetchmail.action_email_server_tree
#: model:ir.ui.menu,name:fetchmail.menu_action_fetchmail_server_tree
msgid "Incoming Mail Servers"
msgstr ""
#. module: fetchmail
#: field:fetchmail.server,port:0
msgid "Port"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "POP/IMAP Servers"
msgstr "POP/IMAP сервери"
#. module: fetchmail
#: selection:fetchmail.server,type:0
msgid "Local Server"
msgstr ""
#. module: fetchmail
#: field:fetchmail.server,user:0
msgid "Username"
msgstr ""
#. module: fetchmail
#: model:ir.model,name:fetchmail.model_fetchmail_server
msgid "POP/IMAP Server"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "Reset Confirmation"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "SSL"
msgstr ""
#. module: fetchmail
#: model:ir.model,name:fetchmail.model_mail_message
msgid "Email Message"
msgstr ""
#. module: fetchmail
#: field:fetchmail.server,date:0
msgid "Last Fetch Date"
msgstr ""
#. module: fetchmail
#: help:fetchmail.server,action_id:0
msgid ""
"Optional custom server action to trigger for each incoming mail, on the "
"record that was created or updated by this mail"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "# of emails"
msgstr ""
#. module: fetchmail
#: field:fetchmail.server,original:0
msgid "Keep Original"
msgstr ""
#. module: fetchmail
#: code:addons/fetchmail/fetchmail.py:155
#, python-format
msgid ""
"Here is what we got instead:\n"
" %s"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
#: field:fetchmail.server,configuration:0
msgid "Configuration"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "Incoming Mail Server"
msgstr ""
#. module: fetchmail
#: code:addons/fetchmail/fetchmail.py:155
#, python-format
msgid "Connection test failed!"
msgstr ""
#. module: fetchmail
#: help:fetchmail.server,server:0
msgid "Hostname or IP of the mail server"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "Server type IMAP."
msgstr ""
#. module: fetchmail
#: field:fetchmail.server,name:0
msgid "Name"
msgstr ""
#. module: fetchmail
#: field:fetchmail.server,is_ssl:0
msgid "SSL/TLS"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "Test & Confirm"
msgstr ""
#. module: fetchmail
#: field:fetchmail.server,action_id:0
msgid "Server Action"
msgstr ""
#. module: fetchmail
#: field:mail.message,fetchmail_server_id:0
msgid "Inbound Mail Server"
msgstr ""
#. module: fetchmail
#: field:fetchmail.server,message_ids:0
#: model:ir.actions.act_window,name:fetchmail.act_server_history
msgid "Messages"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "Search Incoming Mail Servers"
msgstr ""
#. module: fetchmail
#: field:fetchmail.server,active:0
msgid "Active"
msgstr ""
#. module: fetchmail
#: help:fetchmail.server,attach:0
msgid ""
"Whether attachments should be downloaded. If not enabled, incoming emails "
"will be stripped of any attachments before being processed"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "Advanced Options"
msgstr ""
#. module: fetchmail
#: selection:fetchmail.server,type:0
msgid "IMAP Server"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "IMAP"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "Server type POP."
msgstr ""
#. module: fetchmail
#: field:fetchmail.server,password:0
msgid "Password"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "Actions to Perform on Incoming Mails"
msgstr ""
#. module: fetchmail
#: field:fetchmail.server,type:0
msgid "Server Type"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "Login Information"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "Server Information"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "If SSL required."
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "Advanced"
msgstr ""
#. module: fetchmail
#: view:fetchmail.server:0
msgid "Server & Login"
msgstr ""
#. module: fetchmail
#: help:fetchmail.server,object_id:0
msgid ""
"Process each incoming mail as part of a conversation corresponding to this "
"document type. This will create new documents for new conversations, or "
"attach follow-up emails to the existing conversations (documents)."
msgstr ""
#. module: fetchmail
#: field:fetchmail.server,object_id:0
msgid "Create a New Record"
msgstr ""
#. module: fetchmail
#: selection:fetchmail.server,state:0
msgid "Not Confirmed"
msgstr "Непотврдено"
#. module: fetchmail
#: selection:fetchmail.server,type:0
msgid "POP Server"
msgstr ""
#. module: fetchmail
#: view:mail.message:0
msgid "Mail Server"
msgstr ""
#~ msgid "Confirm"
#~ msgstr "Потврди"
#~ msgid "Group By..."
#~ msgstr "Групирај по..."
#~ msgid "Type"
#~ msgstr "Вид"
#~ msgid ""
#~ "Warning! Record for selected Model can not be created\n"
#~ "Please choose valid Model"
#~ msgstr ""
#~ "Предупредување! Записот за избраниот Модел не може да се креира\n"
#~ "Изберете валиден Модел"

View File

@ -38,12 +38,12 @@ class google_login(osv.osv_memory):
def google_login(self, user, password, type='', context=None):
if type == 'group':
gd_client = gdata.contacts.client.ContactsClient(source='OpenERP')
if type == 'contact':
gd_client = gdata.contacts.service.ContactsService()
if type == 'calendar':
elif type == 'contact':
gd_client = gdata.contacts.service.ContactsService()
elif type == 'calendar':
gd_client = gdata.calendar.service.CalendarService()
if type =='docs_client':
elif type =='docs_client':
gd_client = gdata.docs.client.DocsClient()
else:
gd_client = gdata.contacts.service.ContactsService()

View File

@ -26,16 +26,19 @@
'category': 'Human Resources',
'sequence': 12,
'website': 'http://www.openerp.com',
'summary': 'All Infos on Employees',
'summary': 'Jobs, Departments, Employees Details',
'description': """
Module for Human Resource Management.
=====================================
Human Resources Management
=========================
This application enables you to manage important aspects of your company's staff and other details such as their skills, contacts, working time...
You can manage:
---------------
* Employees and hierarchies : You can define your employee with User and display hierarchies
* HR Departments
* HR Jobs
* Employees and hierarchies : You can define your employee with User and display hierarchies
* HR Departments
* HR Jobs
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',

View File

@ -7,10 +7,9 @@
<field name="tag">reload</field>
<field name="params" eval="{'menu_id': ref('menu_hr_root')}"/>
</record>
<record id="todo_open_hr_menu" model="ir.actions.todo">
<record id="base.open_menu" model="ir.actions.todo">
<field name="action_id" ref="action_client_hr_menu"/>
<field name="type">automatic</field>
<field name="sequence">100</field>
<field name="state">open</field>
</record>
</data>
<data>

View File

@ -55,7 +55,7 @@ class hr_attendance(osv.osv):
'name': fields.datetime('Date', required=True, select=1),
'action': fields.selection([('sign_in', 'Sign In'), ('sign_out', 'Sign Out'), ('action','Action')], 'Action', required=True),
'action_desc': fields.many2one("hr.action.reason", "Action Reason", domain="[('action_type', '=', action)]", help='Specifies the reason for Signing In/Signing Out in case of extra hours.'),
'employee_id': fields.many2one('hr.employee', "Employee's Name", required=True, select=True),
'employee_id': fields.many2one('hr.employee', "Employee", required=True, select=True),
'day': fields.function(_day_compute, type='char', string='Day', store=True, select=1, size=32),
}
_defaults = {

View File

@ -25,19 +25,27 @@
'author': 'OpenERP SA',
'category': 'Human Resources',
'website': 'http://www.openerp.com',
'summary': 'Periodical Evaluations, Surveys',
'summary': 'Periodical Evaluations, Appraisals, Surveys',
'images': ['images/hr_evaluation_analysis.jpeg','images/hr_evaluation.jpeg'],
'depends': ['hr','base_calendar','survey'],
'description': """
Ability to create employees evaluation.
=======================================
Periodical Employees evaluation and appraisals
==============================================
An evaluation can be created by employee for subordinates, juniors as well as
his manager. The evaluation is done under a plan in which various surveys can be
created and it can be defined which level of employee hierarchy fills what and
final review and evaluation is done by the manager. Every evaluation filled by
the employees can be viewed in the form of pdf file.
""",
By using this application you can maintain the motivational process by doing periodical evaluations of your employees' performance. The regular assessment of human resources can benefit your people as well your organization.
An evaluation plan can be assigned to each employee. These plans define the frequency and the way you manage your periodic personal evaluations. You will be able to define steps and attach interview forms to each step.
Manages several types of evaluations: bottom-up, top-down, self-evaluations and the final evaluation by the manager.
Key Features
------------
* Ability to create employees evaluations.
* An evaluation can be created by an employee for subordinates, juniors as well as his manager.
* The evaluation is done according to a plan in which various surveys can be created. Each survey can be answered by a particular level in the employees hierarchy. The final review and evaluation is done by the manager.
* Every evaluation filled by employees can be viewed in a PDF form.
* Interview Requests are generated automatically by OpenERP according to employees evaluation plans. Each user receives automatic emails and requests to perform a periodical evaluation of their colleagues.
""",
"demo": ["hr_evaluation_demo.xml"],
"data": [
'security/ir.model.access.csv',

View File

@ -1,17 +1,10 @@
<?xml version="1.0"?>
<openerp>
<data>
<record id="hr.todo_open_hr_menu" model="ir.actions.todo">
<field name="state">done</field>
</record>
</data>
<data noupdate="1">
<!-- After installation of the module, open the related menu -->
<record id="todo_open_hr_menu" model="ir.actions.todo">
<record id="base.open_menu" model="ir.actions.todo">
<field name="action_id" ref="hr.action_client_hr_menu"/>
<field name="type">automatic</field>
<field name="sequence">100</field>
<field name="state">open</field>
</record>
<!-- notify all employees of module installation -->
<record model="mail.message" id="module_install_notification">

View File

@ -27,19 +27,21 @@
'sequence': 30,
'summary': 'Expenses Validation, Invoicing',
'description': """
This module aims to manage employee expenses.
=============================================
Manage expenses by Employees
============================
The whole workflow is implemented:
This application allows you to manage your employees' daily expenses. It gives you access to your employees fee notes and give you the right to complete and validate or refuse the notes. After validation it creates an invoice for the employee.
Employee can encode their own expenses and the validation flow puts it automatically in the accounting after validation by managers.
The whole flow is implemented as:
----------------------------------
* Draft expense
* Confirmation of the sheet by the employee
* Validation by his manager
* Validation by the accountant and receipt creation
* Draft expense
* Confirmation of the sheet by the employee
* Validation by his manager
* Validation by the accountant and receipt creation
This module also uses the analytic accounting and is compatible with
the invoice on timesheet module so that you will be able to automatically
re-invoice your customer's expenses if your work by project.
This module also uses analytic accounting and is compatible with the invoice on timesheet module so that you are able to automatically re-invoice your customers' expenses if your work by project.
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',

View File

@ -1,15 +1,9 @@
<openerp>
<data>
<record id="hr.todo_open_hr_menu" model="ir.actions.todo">
<field name="state">done</field>
</record>
</data>
<data noupdate="1">
<!-- After installation of the module, open the related menu -->
<record id="todo_open_hr_menu" model="ir.actions.todo">
<record id="base.open_menu" model="ir.actions.todo">
<field name="action_id" ref="hr.action_client_hr_menu"/>
<field name="type">automatic</field>
<field name="sequence">100</field>
<field name="state">open</field>
</record>
</data>
<data>

View File

@ -29,33 +29,20 @@
'summary': 'Holidays, Allocation and Leave Requests',
'website': 'http://www.openerp.com',
'description': """
This module allows you to manage leaves and leave requests.
===========================================================
Manage leaves and allocation requests
=====================================
Implements a dashboard for human resource management that includes:
-------------------------------------------------------------------
* Leaves
This application controls the holiday schedule of your company. It allows employees to request holidays. Then, managers can review requests for holidays and approve or reject them. This way you can control the overall holiday planning for the company or department.
Note that:
~~~~~~~~~~
- A synchronisation with an internal agenda (use of the CRM module) is
possible: in order to automatically create a case when an holiday request
is accepted, you have to link the holidays status to a case section. You
can setup this info and your colour preferences in
**Human Resources** / **Configuration** / **Leave Type**
- An employee can make an ask for more off-days by making a new Allocation. It will increase his total of that leave type available (if the request is accepted).
- There are two ways to print the employee's holidays:
* The first will allow to choose employees by department and is used by clicking the menu item located in
**Reporting** / **Human Resources** / **Leaves** / **Leaves by Department**
* The second will allow you to choose the holidays report for specific employees. Go on the list
**Human Resources** / **Human Resources** / **Employees**
then select the ones you want to choose, click on the print icon and select the option
'Leaves Summary'
- The wizard allows you to choose if you want to print either the Approved & Confirmed holidays or both. These states must be set up by a user from the group 'HR'. You can define these features in the security tab from the user data in
**Settings** / **Users** / **Users**
for example, you maybe will do it for the user 'admin'.
You can configure several kinds of leaves (sickness, holidays, paid days, ...) and allocate leaves to an employee or department quickly using allocation requests. An employee can also make a request for more days off by making a new Allocation. It will increase the total of available days for that leave type (if the request is accepted).
You can keep track of leaves in different ways by following reports:
* Leaves Summary
* Leaves by Department
* Leaves Analysis
A synchronization with an internal agenda (Meetings of the CRM module) is also possible in order to automatically create a meeting when a holiday request is accepted by setting up a type of meeting in Leave Type.
""",
'images': ['images/hr_allocation_requests.jpeg', 'images/hr_leave_requests.jpeg', 'images/leaves_analysis.jpeg'],
'depends': ['hr', 'base_calendar', 'process', 'resource'],

View File

@ -1,16 +1,10 @@
<?xml version="1.0"?>
<openerp>
<data>
<record id="hr.todo_open_hr_menu" model="ir.actions.todo">
<field name="state">done</field>
</record>
</data>
<data noupdate="1">
<!-- After installation of the module, open the related menu -->
<record id="todo_open_hr_menu" model="ir.actions.todo">
<record id="base.open_menu" model="ir.actions.todo">
<field name="action_id" ref="hr.action_client_hr_menu"/>
<field name="type">automatic</field>
<field name="sequence">100</field>
<field name="state">open</field>
</record>
<!-- notify all employees of module installation -->
<record model="mail.message" id="module_install_notification">

View File

@ -99,8 +99,8 @@
<menuitem
id="menu_hr_payroll_structure_view"
action="action_view_hr_payroll_structure_list_form"
parent="hr.menu_hr_configuration"
sequence="20"
parent="payroll_configure"
sequence="2"
/>
<record id="action_view_hr_payroll_structure_tree" model="ir.actions.act_window">
<field name="name">Salary Structures Hierarchy</field>

View File

@ -25,17 +25,16 @@
'version': '1.0',
'category': 'Human Resources',
'sequence': 24,
'summary': 'Recruitment Process, Job Descriptions',
'summary': 'Jobs, Recruitment, Applications, Job Interviews',
'description': """
Manages job positions and the recruitment process.
==================================================
Manage job positions and the recruitment process
=================================================
It's integrated with the survey module to allow you to define interview for different jobs.
This application allows you to easily keep track of jobs, vacancies, applications, interviews...
This module is integrated with the mail gateway to automatically tracks email
sent to jobs@YOURCOMPANY.com. It's also integrated with the document management
system to store and search in your CV base.
""",
It is integrated with the mail gateway to automatically fetch email sent to <jobs@yourcompany.com> in the list of applications. It's also integrated with the document management system to store and search in the CV base and find the candidate that you are looking for. Similarly, it is integrated with the survey module to allow you to define interviews for different jobs.
You can define the different phases of interviews and easily rate the applicant from the kanban view.
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
'images': ['images/hr_recruitment_analysis.jpeg','images/hr_recruitment_applicants.jpeg'],

View File

@ -194,7 +194,7 @@ class hr_applicant(base_stage, osv.Model):
When the case is over, the state is set to \'Done\'.\
If the case needs to be reviewed then the state is \
set to \'Pending\'.'),
'categ_ids': fields.many2many('hr.applicant_category', string='Categories'),
'categ_ids': fields.many2many('hr.applicant_category', string='Tags'),
'company_id': fields.many2one('res.company', 'Company'),
'user_id': fields.many2one('res.users', 'Responsible'),
# Applicant Columns
@ -398,7 +398,7 @@ class hr_applicant(base_stage, osv.Model):
for applicant in self.browse(cr, uid, ids, context=context):
address_id = False
if applicant.partner_id:
address_id = applicant.partner_id.address_get(['contact'])['contact']
address_id = self.pool.get('res.partner').address_get(cr,uid,[applicant.partner_id.id],['contact'])['contact']
if applicant.job_id:
applicant.job_id.write({'no_of_recruitment': applicant.job_id.no_of_recruitment - 1})
emp_id = hr_employee.create(cr,uid,{'name': applicant.partner_name or applicant.name,

View File

@ -314,9 +314,7 @@
</div>
<div class="oe_kanban_footer_left" style="margin-top:5px;">
<div class="oe_left oe_tags">
<t t-foreach="record.categ_ids.raw_value" t-as="categ_id">
<span class="oe_tag" t-att-data-categ_id="categ_id"></span>
</t>
<field name="categ_ids"/>
</div>
</div>
</div>
@ -337,7 +335,7 @@
<field name="no_of_recruitment" version="7.0" position="after">
<label for="survey_id" groups="base.group_user"/>
<div groups="base.group_user">
<field name="survey_id" class="oe_inline"/>
<field name="survey_id" class="oe_inline" domain="[('type','=','Human Resources')]"/>
<button class="oe_inline"
string="Interview"
name="action_print_survey" type="object"

View File

@ -2,17 +2,12 @@
<openerp>
<data noupdate="1">
<!-- After installation of the module, open the related menu -->
<record id="todo_open_hr_menu" model="ir.actions.todo">
<record id="base.open_menu" model="ir.actions.todo">
<field name="action_id" ref="hr.action_client_hr_menu"/>
<field name="type">automatic</field>
<field name="sequence">100</field>
<field name="state">open</field>
</record>
</data>
<data>
<record id="hr.todo_open_hr_menu" model="ir.actions.todo">
<field name="state">done</field>
</record>
<record id="view_hr_apll_config_settings" model="ir.ui.view">
<field name="name">hr settings for recruitment</field>
<field name="model">hr.config.settings</field>

View File

@ -137,11 +137,13 @@ class hr_analytic_timesheet(osv.osv):
if context is None:
context = {}
emp_id = emp_obj.search(cr, uid, [('user_id', '=', context.get('user_id', uid))], context=context)
if emp_id:
emp = emp_obj.browse(cr, uid, emp_id[0], context=context)
if emp.journal_id:
return emp.journal_id.id
return False
if not emp_id :
raise osv.except_osv(_('Warning!'), _('Please create an employee for this user, using the menu: Human Resources > Employees.'))
emp = emp_obj.browse(cr, uid, emp_id[0], context=context)
if emp.journal_id:
return emp.journal_id.id
else :
raise osv.except_osv(_('Warning!'), _('No analytic journal defined for \'%s\'.\nYou should assign an analytic journal on the employee form.')%(emp.name))
_defaults = {

View File

@ -27,27 +27,21 @@
'sequence': 16,
'summary': 'Timesheets, Attendances, Activities',
'description': """
This module helps you to easily record and validate timesheets and attendances within the same view.
====================================================================================================
Record and validate timesheets and attendances easily
=====================================================
* It will maintain attendances and track (sign in/sign out) events.
* Track the timesheet lines.
This application supplies a new screen enabling you to manage both attendances (Sign in/Sign out) and your work encoding (timesheet) by period. Timesheet entries are made by employees each day. At the end of the defined period, employees validate their sheet and the manager must then approve his team's entries. Periods are defined in the company forms and you can set them to run monthly or weekly.
Other tabs contains statistics views to help you analyse your time or the time of your team:
--------------------------------------------------------------------------------------------
* Time spent by day (with attendances)
* Time spent by project
This module also implements a complete timesheet validation process:
--------------------------------------------------------------------
* Draft sheet
* Confirmation at the end of the period by the employee
* Validation by the project manager
The complete timesheet validation process is:
---------------------------------------------
* Draft sheet
* Confirmation at the end of the period by the employee
* Validation by the project manager
The validation can be configured in the company:
------------------------------------------------
* Period size (day, week, month, year)
* Maximal difference between timesheet and attendances
* Period size (Day, Week, Month)
* Maximal difference between timesheet and attendances
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',

View File

@ -46,7 +46,7 @@
<field name="arch" type="xml">
<form string="Timesheet" version="7.0">
<header>
<button name="button_confirm" states="draft" string="Submited to Manager" type="object" class="oe_highlight"/>
<button name="button_confirm" states="draft" string="Submit to Manager" type="object" class="oe_highlight"/>
<button name="done" states="confirm" string="Approve" type="workflow" groups="base.group_hr_user" class="oe_highlight"/>
<button name="action_set_to_draft" states="done" string="Set to Draft" type="object" />
<button name="cancel" states="confirm" string="Refuse" type="workflow" groups="base.group_hr_user" />

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -976,7 +976,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -957,7 +957,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -957,7 +957,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -991,7 +991,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -957,7 +957,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -958,7 +958,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -1009,8 +1009,8 @@ msgstr "Sie können nicht an einem anderen Tag ein oder aus cheken"
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgstr "Bestätigen zur Überprüfung"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet
#: field:hr_timesheet_sheet.sheet,account_ids:0
@ -1368,3 +1368,6 @@ msgstr "Journal"
#~ "* Periodendauer des Unternehmens (Tag, Woche, Monat, Jahr)\n"
#~ "* Maximal akzeptierte Abweichung zwischen Anwesenheit und Arbeitszeit u.a.\n"
#~ " "
#~ msgid "Submited to Manager"
#~ msgstr "Bestätigen zur Überprüfung"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
"X-Poedit-SourceCharset: utf-8\n"
@ -963,7 +963,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:22+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -990,7 +990,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:22+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -959,7 +959,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:22+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
"Language: \n"
#. module: hr_timesheet_sheet
@ -1010,8 +1010,8 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgstr "Propuesto al Director"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet
#: field:hr_timesheet_sheet.sheet,account_ids:0
@ -1363,3 +1363,6 @@ msgstr "Diario"
#~ "* El tamaño del período (día, semana, mes, año)\n"
#~ "* Diferencia máxima entre el parte de horas y de las visitas\n"
#~ " "
#~ msgid "Submited to Manager"
#~ msgstr "Propuesto al Director"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:22+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -975,7 +975,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -957,7 +957,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -978,8 +978,8 @@ msgstr "Et voi kirjautua sisään/ulos muulle kuin kuluvalle päivälle"
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgstr "Lähetetty esimiehelle"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet
#: field:hr_timesheet_sheet.sheet,account_ids:0
@ -1265,3 +1265,6 @@ msgstr "Loki"
#, python-format
#~ msgid "Cannot delete Sheet(s) which have attendance entries encoded !"
#~ msgstr "Ei voida poistaa tuntilistoja joilla on läsnäoloja syötettynä"
#~ msgid "Submited to Manager"
#~ msgstr "Lähetetty esimiehelle"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -1016,8 +1016,8 @@ msgstr "Vous ne pouvez pas pointer pour un autre jour qu'aujourd'hui"
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgstr "Soumettre au responsable"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet
#: field:hr_timesheet_sheet.sheet,account_ids:0
@ -1327,3 +1327,6 @@ msgstr "Journal"
#~ "* Durée de la période (jour, semaine, mois, année)\n"
#~ "* Différence maximale entre les feuilles de temps et les présences\n"
#~ " "
#~ msgid "Submited to Manager"
#~ msgstr "Soumettre au responsable"

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:22+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -957,7 +957,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -976,7 +976,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -127,7 +127,7 @@ msgstr "Munkaidő-kimutatás alapján"
#. module: hr_timesheet_sheet
#: view:hr.timesheet.report:0 view:timesheet.report:0
msgid "Group by day of date"
msgstr ""
msgstr "Csoportosítás nap szerint"
#. module: hr_timesheet_sheet
#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:615
@ -143,7 +143,7 @@ msgstr "Jóváhagyás"
#. module: hr_timesheet_sheet
#: selection:hr_timesheet_sheet.sheet,state:0
msgid "Approved"
msgstr ""
msgstr "Jóváhagyott"
#. module: hr_timesheet_sheet
#: selection:hr_timesheet_sheet.sheet,state_attendance:0
@ -220,7 +220,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: field:hr_timesheet_sheet.sheet.account,name:0
msgid "Project / Analytic Account"
msgstr ""
msgstr "Projekt /Gyűjtőkód"
#. module: hr_timesheet_sheet
#: model:process.transition,name:hr_timesheet_sheet.process_transition_validatetimesheet0
@ -361,7 +361,7 @@ msgstr "Órák"
#. module: hr_timesheet_sheet
#: view:hr.timesheet.report:0 view:timesheet.report:0
msgid "Group by month of date"
msgstr ""
msgstr "Csoportosítás hónap szerint"
#. module: hr_timesheet_sheet
#: constraint:hr.attendance:0
@ -400,7 +400,7 @@ msgstr "Munka a feladaton"
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Daily"
msgstr ""
msgstr "Napi"
#. module: hr_timesheet_sheet
#: view:timesheet.report:0 field:timesheet.report,quantity:0
@ -467,7 +467,7 @@ msgstr "Megnyitja az Ön aktuális munkaidő-kimutatását"
#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:241
#, python-format
msgid "You cannot duplicate a timesheet!"
msgstr ""
msgstr "Munkaidő kimutatást nem lehet duplikálni!"
#. module: hr_timesheet_sheet
#: view:hr.timesheet.report:0 field:hr.timesheet.report,month:0
@ -493,6 +493,8 @@ msgid ""
"In order to create a timesheet for this employee, you must link the employee "
"to a product!"
msgstr ""
"Ahhoz, hogy munkaidő kimutatást lehessen létrehozni ennek a mukavállalónak, "
"hozzá kell kapcsolni egy termékhez!"
#. module: hr_timesheet_sheet
#: model:process.transition,name:hr_timesheet_sheet.process_transition_attendancetimesheet0
@ -502,7 +504,7 @@ msgstr "Bejelentkezés/Kijelentkezés"
#. module: hr_timesheet_sheet
#: selection:hr_timesheet_sheet.sheet,state:0
msgid "Waiting Approval"
msgstr ""
msgstr "Jóváhagyásra vár"
#. module: hr_timesheet_sheet
#: model:process.transition,name:hr_timesheet_sheet.process_transition_invoiceontimesheet0
@ -528,7 +530,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: field:hr_timesheet_sheet.sheet,name:0
msgid "Note"
msgstr ""
msgstr "Megjegyzés"
#. module: hr_timesheet_sheet
#: model:ir.actions.act_window,help:hr_timesheet_sheet.action_hr_timesheet_report_stat_all
@ -694,7 +696,7 @@ msgstr "Vállalatok"
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Summary"
msgstr ""
msgstr "Összegzés"
#. module: hr_timesheet_sheet
#: constraint:hr_timesheet_sheet.sheet:0
@ -706,7 +708,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Unvalidated Timesheets"
msgstr ""
msgstr "Nem jóváhagyott munkaidő-kimutatások"
#. module: hr_timesheet_sheet
#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:457
@ -723,7 +725,7 @@ msgstr "Mennyiség"
#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:455
#, python-format
msgid "You cannot delete a timesheet which is already confirmed!"
msgstr ""
msgstr "Jóváhagyott munkaidő kimutatást nem lehet törölni!"
#. module: hr_timesheet_sheet
#: view:hr.timesheet.report:0 field:hr.timesheet.report,general_account_id:0
@ -821,7 +823,7 @@ msgstr "Munkaidő-kimutatás megnyitása"
#. module: hr_timesheet_sheet
#: view:hr.timesheet.report:0 view:timesheet.report:0
msgid "Group by year of date"
msgstr ""
msgstr "Csoportosítás év szerint"
#. module: hr_timesheet_sheet
#: model:process.node,note:hr_timesheet_sheet.process_node_validatedtimesheet0
@ -860,7 +862,7 @@ msgstr "Munkaidő-kimutatás keresése"
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Confirmed Timesheets"
msgstr ""
msgstr "Jóváhagyott munkaidő kimutatások"
#. module: hr_timesheet_sheet
#: model:ir.model,name:hr_timesheet_sheet.model_hr_analytic_timesheet
@ -914,7 +916,7 @@ msgstr "Feladattételeket mozgat a munkaidő-kimutatás sorba"
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet.day:0
msgid "Total Attendances"
msgstr ""
msgstr "Összes jelenlét"
#. module: hr_timesheet_sheet
#: model:ir.actions.act_window,name:hr_timesheet_sheet.action_timesheet_report_stat_all
@ -992,7 +994,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -957,7 +957,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -968,7 +968,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -971,8 +971,8 @@ msgstr "今日とは別の日付でサインイン / サインアウトするこ
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgstr "マネジャに提出済み"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet
#: field:hr_timesheet_sheet.sheet,account_ids:0
@ -1040,5 +1040,8 @@ msgstr "合計"
msgid "Journal"
msgstr "仕訳帳"
#~ msgid "Submited to Manager"
#~ msgstr "マネジャに提出済み"
#~ msgid "My Timesheet"
#~ msgstr "私の勤務表"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -958,7 +958,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -957,7 +957,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -958,7 +958,7 @@ msgstr ""
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet

View File

@ -27,8 +27,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 06:21+0000\n"
"X-Generator: Launchpad (build 15864)\n"
"X-Launchpad-Export-Date: 2012-09-17 04:37+0000\n"
"X-Generator: Launchpad (build 15944)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0
@ -1009,8 +1009,8 @@ msgstr "Өнөөдрөөс өөр өдөрт нэвтрэх/гарах үйлд
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "Submited to Manager"
msgstr "Менежерт илгээгдсэн"
msgid "Submit to Manager"
msgstr ""
#. module: hr_timesheet_sheet
#: field:hr_timesheet_sheet.sheet,account_ids:0
@ -1305,3 +1305,6 @@ msgstr "Журнал"
#, python-format
#~ msgid "Cannot delete Sheet(s) which have attendance entries encoded !"
#~ msgstr "Ирцийн бичлэгүүд бүртгэгдсэн цаг бүртгэлийг устгаж болохгүй !"
#~ msgid "Submited to Manager"
#~ msgstr "Менежерт илгээгдсэн"

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