From bc3009d590af243ee28bb1e6994bcb2fae6d2bba Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Mon, 8 Oct 2012 14:03:51 +0200 Subject: [PATCH 01/13] [FIX] mail: default alias_domain should be web.base.url bzr revid: odo@openerp.com-20121008120351-fqmjckrjmy52xdji --- addons/mail/data/mail_demo.xml | 5 ----- addons/mail/res_config.py | 13 +++++++++++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/addons/mail/data/mail_demo.xml b/addons/mail/data/mail_demo.xml index 1350fd33547..7bda32c002b 100644 --- a/addons/mail/data/mail_demo.xml +++ b/addons/mail/data/mail_demo.xml @@ -42,10 +42,5 @@ This month you also get 250 EUR of eco-vouchers if you have been in the company comment - - mail.catchall.domain - demo.openerp.com - - diff --git a/addons/mail/res_config.py b/addons/mail/res_config.py index ce2f75687ba..91606e1c720 100644 --- a/addons/mail/res_config.py +++ b/addons/mail/res_config.py @@ -19,6 +19,8 @@ # ############################################################################## +import urlparse + from openerp.osv import osv, fields class project_configuration(osv.TransientModel): @@ -31,9 +33,16 @@ class project_configuration(osv.TransientModel): } def get_default_alias_domain(self, cr, uid, ids, context=None): - return {'alias_domain': self.pool.get("ir.config_parameter").get_param(cr, uid, "mail.catchall.domain", context=context)} + alias_domain = self.pool.get("ir.config_parameter").get_param(cr, uid, "mail.catchall.domain", context=context) + if not alias_domain: + domain = self.pool.get("ir.config_parameter").get_param(cr, uid, "web.base.url", context=context) + try: + alias_domain = urlparse.urlsplit(domain).netloc.split(':')[0] + except Exception: + pass + return {'alias_domain': alias_domain} def set_alias_domain(self, cr, uid, ids, context=None): config_parameters = self.pool.get("ir.config_parameter") for record in self.browse(cr, uid, ids, context=context): - config_parameters.set_param(cr, uid, "mail.catchall.domain", record.alias_domain or '', context=context) \ No newline at end of file + config_parameters.set_param(cr, uid, "mail.catchall.domain", record.alias_domain or '', context=context) From 43595fbeb1f2020ab7e1f545c0dbf6a579bf77b2 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Mon, 8 Oct 2012 14:04:21 +0200 Subject: [PATCH 02/13] [FIX] mail: default email From should consider user email if there is no alias bzr revid: odo@openerp.com-20121008120421-k9aj7g6vsr3zu5u2 --- addons/mail/mail_mail.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/addons/mail/mail_mail.py b/addons/mail/mail_mail.py index e9a569a8192..5b4a096e969 100644 --- a/addons/mail/mail_mail.py +++ b/addons/mail/mail_mail.py @@ -63,10 +63,12 @@ class mail_mail(osv.Model): } def _get_default_from(self, cr, uid, context=None): - cur = self.pool.get('res.users').browse(cr, uid, uid, context=context) - if not cur.alias_domain: - raise osv.except_osv(_('Invalid Action!'), _('Unable to send email, set an alias domain in your server settings.')) - return cur.alias_name + '@' + cur.alias_domain + this = self.pool.get('res.users').browse(cr, uid, uid, context=context) + if this.alias_domain: + return '%s@%s' % (this.alias, this.alias_domain) + elif this.email: + return this.email + raise osv.except_osv(_('Invalid Action!'), _("Unable to send email, please configure the sender's email address or alias.")) _defaults = { 'state': 'outgoing', From d54120565152cc0f1c8164bf7538802f7d527332 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Mon, 8 Oct 2012 15:02:45 +0200 Subject: [PATCH 03/13] [FIX] portal: add test email address for outgoing emails sent during tests bzr revid: odo@openerp.com-20121008130245-7n1ed3i2ez9bzniy --- addons/portal/tests/test_portal.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/portal/tests/test_portal.py b/addons/portal/tests/test_portal.py index 653a05d40aa..10392be53ff 100644 --- a/addons/portal/tests/test_portal.py +++ b/addons/portal/tests/test_portal.py @@ -49,6 +49,9 @@ class test_portal(test_mail.TestMailMockups): self.user_chell = self.res_users.browse(cr, uid, self.user_chell_id) self.partner_chell_id = self.user_chell.partner_id.id + # Set an email address for the user running the tests, used as Sender for outgoing mails + self.res_users.write(cr, uid, uid, {'email': 'test@localhost'}) + def test_00_access_rights(self): """ Test basic mail_message and mail_group access rights for portal users. """ cr, uid = self.cr, self.uid From 635c3225dbf78dd6ff548b9f979f549a49a663da Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Mon, 8 Oct 2012 16:08:57 +0200 Subject: [PATCH 04/13] [FIX] project_long_term: demo project with phases should be marked as `use_phases` bzr revid: odo@openerp.com-20121008140857-zd3kcyq8t2ewyfno --- addons/project_long_term/project_long_term_demo.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/project_long_term/project_long_term_demo.xml b/addons/project_long_term/project_long_term_demo.xml index bca8231fdaa..fda481d5a11 100644 --- a/addons/project_long_term/project_long_term_demo.xml +++ b/addons/project_long_term/project_long_term_demo.xml @@ -7,6 +7,7 @@ + From 42ece6cdb779bfdaed041768736a521dbc2aadc3 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Tue, 9 Oct 2012 12:35:35 +0200 Subject: [PATCH 05/13] [FIX] project: leftover typos in mail processing methods bzr revid: odo@openerp.com-20121009103535-ohvpd1u81hcc5izi --- addons/project/project.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/addons/project/project.py b/addons/project/project.py index 6b02a018293..98c385c0ce3 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -1173,11 +1173,10 @@ class task(base_stage, osv.osv): """ Override to updates the document according to the email. """ if custom_values is None: custom_values = {} custom_values.update({ - 'name': subject, + 'name': msg.get('subject'), 'planned_hours': 0.0, - 'subject': msg.get('subject'), }) - return super(project_tasks,self).message_new(cr, uid, msg, custom_values=custom_values, context=context) + return super(task,self).message_new(cr, uid, msg, custom_values=custom_values, context=context) def message_update(self, cr, uid, ids, msg, update_vals=None, context=None): """ Override to update the task according to the email. """ @@ -1202,7 +1201,7 @@ class task(base_stage, osv.osv): act = 'do_%s' % res.group(2).lower() if act: getattr(self,act)(cr, uid, ids, context=context) - return super(project_tasks,self).message_update(cr, uid, msg, update_vals=update_vals, context=context) + return super(task,self).message_update(cr, uid, msg, update_vals=update_vals, context=context) # --------------------------------------------------- # OpenChatter methods and notifications From 099825109ef0795693d6fce665891e0641d2766d Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Tue, 9 Oct 2012 15:19:11 +0200 Subject: [PATCH 06/13] [FIX] mail.message: catch more error cases when trying to resolve msg author + lint cleanup bzr revid: odo@openerp.com-20121009131911-6lo2knsrh2qgrxv8 --- addons/mail/mail_message.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py index 9c873a31097..98b7ef9f36d 100644 --- a/addons/mail/mail_message.py +++ b/addons/mail/mail_message.py @@ -180,7 +180,6 @@ class mail_message(osv.Model): fields allow to have the foreign record name without having to check external access rights). """ - child_nbr = len(msg.child_ids) has_voted = False vote_ids = self.pool.get('res.users').name_get(cr, SUPERUSER_ID, [user.id for user in msg.vote_user_ids], context=context) for vote in vote_ids: @@ -194,7 +193,7 @@ class mail_message(osv.Model): try: author_id = self.pool.get('res.partner').name_get(cr, uid, [msg.author_id.id], context=context)[0] is_author = uid == msg.author_id.user_ids[0].id - except (orm.except_orm, osv.except_osv): + except Exception: author_id = False is_author = False try: From fac6e9246be0f03915c199a2f9277658dd501c95 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Tue, 9 Oct 2012 15:31:32 +0200 Subject: [PATCH 07/13] [FIX] mail: allow overriding message_post in threads + fix res.users' delegation to res.partner bzr revid: odo@openerp.com-20121009133132-at5j8pm8engxqi10 --- addons/mail/mail_thread.py | 2 +- addons/mail/res_users.py | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 9f53b4c08b1..8dee944751c 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -427,7 +427,7 @@ class mail_thread(osv.AbstractModel): model_pool.message_update(cr, user_id, [thread_id], msg, context=context) else: thread_id = model_pool.message_new(cr, user_id, msg, custom_values, context=context) - self.message_post(cr, uid, [thread_id], context=context, **msg) + model_pool.message_post(cr, uid, [thread_id], context=context, **msg) return thread_id def message_new(self, cr, uid, msg_dict, custom_values=None, context=None): diff --git a/addons/mail/res_users.py b/addons/mail/res_users.py index 545198f4c7f..f870604b03a 100644 --- a/addons/mail/res_users.py +++ b/addons/mail/res_users.py @@ -110,9 +110,19 @@ class res_users(osv.Model): alias_pool.unlink(cr, uid, alias_ids, context=context) return res - def message_post(self, cr, uid, thread_id, **kwargs): - partner_id = self.pool.get('res.users').browse(cr, uid, thread_id)[0].partner_id.id - return self.pool.get('res.partner').message_post(cr, uid, partner_id, **kwargs) + def message_post(self, cr, uid, thread_id, context=None, **kwargs): + assert thread_id, "res.users does not support posting global messages" + if context and 'thread_model' in context: + context['thread_model'] = 'res.partner' + if isinstance(thread_id, (list, tuple)): + thread_id = thread_id[0] + partner_id = self.pool.get('res.users').browse(cr, uid, thread_id).partner_id.id + return self.pool.get('res.partner').message_post(cr, uid, partner_id, context=context, **kwargs) + + def message_update(self, cr, uid, ids, msg_dict, update_vals=None, context=None): + partner_id = self.pool.get('res.users').browse(cr, uid, ids)[0].partner_id.id + return self.pool.get('res.partner').message_update(cr, uid, [partner_id], msg_dict, + update_vals=update_vals, context=context) class res_users_mail_group(osv.Model): """ Update of res.users class From 0ce1ef32a872bd1f942dd73ee11214374b6ce520 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Tue, 9 Oct 2012 15:40:20 +0200 Subject: [PATCH 08/13] [FIX] mail: typos -> message-id header is mapped to message_id column bzr revid: odo@openerp.com-20121009134020-9wf96yszv8qcmbm1 --- addons/mail/mail_thread.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 8dee944751c..2261b940944 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -422,7 +422,7 @@ class mail_thread(osv.AbstractModel): model_pool = self.pool.get(model) assert thread_id and hasattr(model_pool, 'message_update') or hasattr(model_pool, 'message_new'), \ "Undeliverable mail with Message-Id %s, model %s does not accept incoming emails" % \ - (msg['message-id'], model) + (msg['message_id'], model) if thread_id and hasattr(model_pool, 'message_update'): model_pool.message_update(cr, user_id, [thread_id], msg, context=context) else: @@ -538,7 +538,7 @@ class mail_thread(osv.AbstractModel): field may not be present if missing in original message:: - { 'message-id': msg_id, + { 'message_id': msg_id, 'subject': subject, 'from': from, 'to': to, From cb57169c97fa8577d2b2e24789b563f2066f059e Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Tue, 9 Oct 2012 15:44:14 +0200 Subject: [PATCH 09/13] [FIX] mail.mail: typo in previous commits bzr revid: odo@openerp.com-20121009134414-923kv1ciw00pxh6v --- addons/mail/mail_mail.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/mail/mail_mail.py b/addons/mail/mail_mail.py index 5b4a096e969..741184ef7a3 100644 --- a/addons/mail/mail_mail.py +++ b/addons/mail/mail_mail.py @@ -65,7 +65,7 @@ class mail_mail(osv.Model): def _get_default_from(self, cr, uid, context=None): this = self.pool.get('res.users').browse(cr, uid, uid, context=context) if this.alias_domain: - return '%s@%s' % (this.alias, this.alias_domain) + return '%s@%s' % (this.alias_name, this.alias_domain) elif this.email: return this.email raise osv.except_osv(_('Invalid Action!'), _("Unable to send email, please configure the sender's email address or alias.")) From 7f516d2835e3f2ba9a9b466d7ad4a92251566a20 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Tue, 9 Oct 2012 15:50:40 +0200 Subject: [PATCH 10/13] [FIX] mail.message: incorrect message-id generation, id/model were swapped For backwards-compatibility reasons we need to stick with this format: `res_id-model`, even if reversing the values would look more logical bzr revid: odo@openerp.com-20121009135040-spvejc1l4mos25yv --- addons/mail/mail_message.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py index 98b7ef9f36d..7e77b2f2e8c 100644 --- a/addons/mail/mail_message.py +++ b/addons/mail/mail_message.py @@ -501,7 +501,7 @@ class mail_message(osv.Model): def create(self, cr, uid, values, context=None): if not values.get('message_id') and values.get('res_id') and values.get('model'): - values['message_id'] = tools.generate_tracking_message_id('%(model)s-%(res_id)s' % values) + values['message_id'] = tools.generate_tracking_message_id('%(res_id)s-%(model)s' % values) newid = super(mail_message, self).create(cr, uid, values, context) self._notify(cr, SUPERUSER_ID, newid, context=context) return newid From e9d314646d310c1310fd405719cc1b518b00feaf Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Tue, 9 Oct 2012 17:54:20 +0200 Subject: [PATCH 11/13] [FIX] mail.thread subclasses: convert body to plaintext in message_new, as body is now HTML Also disable the updating of the body when new messages are received for project.issue records, because this might discard important information that was manually entered. bzr revid: odo@openerp.com-20121009155420-72xvyhhiwd696upv --- addons/crm/crm_lead.py | 5 ++++- addons/crm_claim/crm_claim.py | 4 +++- addons/crm_helpdesk/crm_helpdesk.py | 4 +++- addons/hr_recruitment/hr_recruitment.py | 4 +++- addons/project/project.py | 8 +++++--- addons/project_issue/project_issue.py | 6 ++++-- 6 files changed, 22 insertions(+), 9 deletions(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 7e33f397e8a..48c6491a7c3 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -26,6 +26,7 @@ from osv import fields, osv import time import tools from tools.translate import _ +from tools import html2plaintext from base.res.res_partner import format_address @@ -812,9 +813,11 @@ class crm_lead(base_stage, format_address, osv.osv): This override updates the document according to the email. """ if custom_values is None: custom_values = {} + + desc = html2plaintext(msg.get('body')) if msg.get('body') else '' custom_values.update({ 'name': msg.get('subject') or _("No Subject"), - 'description': msg.get('body'), + 'description': desc, 'email_from': msg.get('from'), 'email_cc': msg.get('cc'), 'user_id': False, diff --git a/addons/crm_claim/crm_claim.py b/addons/crm_claim/crm_claim.py index cbf3ec9f13a..c88b2fe26af 100644 --- a/addons/crm_claim/crm_claim.py +++ b/addons/crm_claim/crm_claim.py @@ -26,6 +26,7 @@ from osv import fields, osv import time import tools from tools.translate import _ +from tools import html2plaintext CRM_CLAIM_PENDING_STATES = ( crm.AVAILABLE_STATES[2][0], # Cancelled @@ -192,9 +193,10 @@ class crm_claim(base_stage, osv.osv): This override updates the document according to the email. """ if custom_values is None: custom_values = {} + desc = html2plaintext(msg.get('body')) if msg.get('body') else '' custom_values.update({ 'name': msg.get('subject') or _("No Subject"), - 'description': msg.get('body'), + 'description': desc, 'email_from': msg.get('from'), 'email_cc': msg.get('cc'), }) diff --git a/addons/crm_helpdesk/crm_helpdesk.py b/addons/crm_helpdesk/crm_helpdesk.py index f36a3b72640..ceffd282aa8 100644 --- a/addons/crm_helpdesk/crm_helpdesk.py +++ b/addons/crm_helpdesk/crm_helpdesk.py @@ -25,6 +25,7 @@ from crm import crm from osv import fields, osv import tools from tools.translate import _ +from tools import html2plaintext CRM_HELPDESK_STATES = ( crm.AVAILABLE_STATES[2][0], # Cancelled @@ -104,9 +105,10 @@ class crm_helpdesk(base_state, base_stage, osv.osv): This override updates the document according to the email. """ if custom_values is None: custom_values = {} + desc = html2plaintext(msg.get('body')) if msg.get('body') else '' custom_values.update({ 'name': msg.get('subject') or _("No Subject"), - 'description': msg.get('body'), + 'description': desc, 'email_from': msg.get('from'), 'email_cc': msg.get('cc'), 'user_id': False, diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py index 31959d7e9c7..ccfcae0d26e 100644 --- a/addons/hr_recruitment/hr_recruitment.py +++ b/addons/hr_recruitment/hr_recruitment.py @@ -26,6 +26,7 @@ from base_status.base_stage import base_stage from datetime import datetime from osv import fields, osv from tools.translate import _ +from tools import html2plaintext AVAILABLE_STATES = [ ('draft', 'New'), @@ -327,9 +328,10 @@ class hr_applicant(base_stage, osv.Model): This override updates the document according to the email. """ if custom_values is None: custom_values = {} + desc = html2plaintext(msg.get('body')) if msg.get('body') else '' custom_values.update({ 'name': msg.get('subject') or _("No Subject"), - 'description': msg.get('body'), + 'description': desc, 'email_from': msg.get('from'), 'email_cc': msg.get('cc'), 'user_id': False, diff --git a/addons/project/project.py b/addons/project/project.py index 98c385c0ce3..a47b582be77 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -19,12 +19,14 @@ # ############################################################################## -from base_status.base_stage import base_stage -from datetime import datetime, date +import time from lxml import etree +from datetime import datetime, date + +import tools +from base_status.base_stage import base_stage from osv import fields, osv from openerp.addons.resource.faces import task as Task -import time from tools.translate import _ from openerp import SUPERUSER_ID diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 2004e1310f0..9e434078d2f 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -27,6 +27,7 @@ from tools.translate import _ import binascii import time import tools +from tools import html2plaintext class project_issue_version(osv.osv): _name = "project.issue.version" @@ -462,9 +463,11 @@ class project_issue(base_stage, osv.osv): if context is None: context = {} context['state_to'] = 'draft' + desc = html2plaintext(msg.get('body')) if msg.get('body') else '' + custom_values.update({ 'name': msg.get('subject') or _("No Subject"), - 'description': msg.get('body'), + 'description': desc, 'email_from': msg.get('from'), 'email_cc': msg.get('cc'), 'user_id': False, @@ -486,7 +489,6 @@ class project_issue(base_stage, osv.osv): if update_vals is None: update_vals = {} # Update doc values according to the message - update_vals['description'] = msg.get('body', '') if msg.get('priority'): update_vals['priority'] = msg.get('priority') # Parse 'body' to find values to update From 49b102b54a860e655156fced1940ae6b913a7458 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Wed, 10 Oct 2012 04:44:51 +0000 Subject: [PATCH 12/13] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20121010044451-x88fqu2rrhax9fq4 --- addons/account_analytic_default/i18n/hu.po | 13 +- addons/account_budget/i18n/hu.po | 27 +- addons/account_budget/i18n/lo.po | 32 +- addons/hr_contract/i18n/mk.po | 271 +++++++ addons/hr_holidays/i18n/mk.po | 864 +++++++++++++++++++++ 5 files changed, 1185 insertions(+), 22 deletions(-) create mode 100644 addons/hr_contract/i18n/mk.po create mode 100644 addons/hr_holidays/i18n/mk.po diff --git a/addons/account_analytic_default/i18n/hu.po b/addons/account_analytic_default/i18n/hu.po index 557aa2e66f5..8b863f51679 100644 --- a/addons/account_analytic_default/i18n/hu.po +++ b/addons/account_analytic_default/i18n/hu.po @@ -7,15 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2011-02-01 18:11+0000\n" -"Last-Translator: NOVOTRADE RENDSZERHÁZ ( novotrade.hu ) " -"\n" +"PO-Revision-Date: 2012-10-09 13:58+0000\n" +"Last-Translator: krnkris \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:22+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-10-10 04:44+0000\n" +"X-Generator: Launchpad (build 16112)\n" #. module: account_analytic_default #: help:account.analytic.default,partner_id:0 @@ -134,12 +133,14 @@ msgstr "Gyűjtőkód alapértelmezések" #. module: account_analytic_default #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "" +msgstr "Minden vállalkozáshoz egyedi hivatkozás kell!" #. module: account_analytic_default #: view:account.analytic.default:0 msgid "Analytical defaults whose end date is greater than today or None" msgstr "" +"A mai napnál későbbi lejáratú vagy nem létező dátumú elemzések " +"alapértelmezései" #. module: account_analytic_default #: help:account.analytic.default,product_id:0 diff --git a/addons/account_budget/i18n/hu.po b/addons/account_budget/i18n/hu.po index c48392c7c8a..35df6ac7dc9 100644 --- a/addons/account_budget/i18n/hu.po +++ b/addons/account_budget/i18n/hu.po @@ -7,15 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2011-01-30 16:38+0000\n" -"Last-Translator: NOVOTRADE RENDSZERHÁZ ( novotrade.hu ) " -"\n" +"PO-Revision-Date: 2012-10-09 13:49+0000\n" +"Last-Translator: krnkris \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:27+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-10-10 04:44+0000\n" +"X-Generator: Launchpad (build 16112)\n" #. module: account_budget #: field:crossovered.budget,creating_user_id:0 @@ -105,6 +104,7 @@ msgid "Percentage" msgstr "Százalék" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:crossovered.budget.report:0 msgid "to" msgstr "-" @@ -138,21 +138,24 @@ msgstr "" #: code:addons/account_budget/account_budget.py:119 #, python-format msgid "The Budget '%s' has no accounts!" -msgstr "" +msgstr "A '%s' költségvetésnek nincs számlaszáma!" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "%" msgstr "%" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "Description" msgstr "Leírás" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:crossovered.budget.report:0 msgid "Currency" msgstr "Pénznem" @@ -187,6 +190,7 @@ msgid "Planned Amount" msgstr "Tervezett összeg" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "Perc(%)" @@ -199,6 +203,7 @@ msgid "Done" msgstr "Kész" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "Practical Amt" @@ -259,7 +264,7 @@ msgstr "Üzleti terv" #. module: account_budget #: view:crossovered.budget:0 msgid "To Approve Budgets" -msgstr "" +msgstr "Költségvetés jóváhagyása" #. module: account_budget #: code:addons/account_budget/account_budget.py:119 @@ -333,6 +338,7 @@ msgid "Account Budget crossvered summary report" msgstr "Üzleti terv összesítő kimutatás" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "Theoretical Amt" @@ -359,9 +365,10 @@ msgstr "Nyomtatás" #: view:crossovered.budget:0 #: field:crossovered.budget.lines,theoritical_amount:0 msgid "Theoretical Amount" -msgstr "" +msgstr "Elméleti mennyiség" #. module: account_budget +#: report:account.analytic.account.budget:0 #: field:crossovered.budget.lines,analytic_account_id:0 #: model:ir.model,name:account_budget.model_account_analytic_account msgid "Analytic Account" @@ -373,6 +380,7 @@ msgid "Budget :" msgstr "Üzleti terv :" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "Planned Amt" @@ -413,6 +421,7 @@ msgid "Error! You can not create recursive analytic accounts." msgstr "Hiba! Nem hozhat létre rekurzív gyűjtőkódokat." #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "Analysis from" @@ -421,7 +430,7 @@ msgstr "Elemzési időszak" #. module: account_budget #: view:crossovered.budget:0 msgid "Draft Budgets" -msgstr "" +msgstr "Előzetes, tervezett költségvetés" #, python-format #~ msgid "The General Budget '%s' has no Accounts!" diff --git a/addons/account_budget/i18n/lo.po b/addons/account_budget/i18n/lo.po index daa39b8a6e6..cbc81b84000 100644 --- a/addons/account_budget/i18n/lo.po +++ b/addons/account_budget/i18n/lo.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2011-01-19 15:50+0000\n" +"PO-Revision-Date: 2012-10-09 16:05+0000\n" "Last-Translator: Brice Muangkhot ສຸພາ ເມືອງໂຄຕ \n" "Language-Team: Lao \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:27+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-10-10 04:44+0000\n" +"X-Generator: Launchpad (build 16112)\n" #. module: account_budget #: field:crossovered.budget,creating_user_id:0 @@ -31,7 +31,7 @@ msgstr "ຮັບຮູ້ເເລັວ" #: model:ir.actions.act_window,name:account_budget.open_budget_post_form #: model:ir.ui.menu,name:account_budget.menu_budget_post_form msgid "Budgetary Positions" -msgstr "ຈຸດງົບປະມານ" +msgstr "ຕໍາແຫນ່ງງົບປະມານ" #. module: account_budget #: report:account.budget:0 @@ -105,6 +105,7 @@ msgid "Percentage" msgstr "ເປີເຊັນ" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:crossovered.budget.report:0 msgid "to" msgstr "ຫາ" @@ -126,6 +127,14 @@ msgid "" "revenue per analytic account and monitor its evolution based on the actuals " "realised during that period." msgstr "" +"ງົບປະມານແມ່ນຄາດຄະເນລາຍໄດ້ຂອງບໍລິສັດຂອງທ່ານແລະຄ່າໃຊ້ຈ່າຍຄາດວ່າຈະສໍາລັບໄລຍະເວລາ" +"ໃນອະນາຄົດໄດ້. ມີງົບປະມານ, " +"ບໍລິສັດສາມາດລະມັດລະວັງເບິ່ງວິທີການເງິນຫຼາຍປານເຂົາເຈົ້າໄດ້ຖືກກິນໃນໄລຍະເວລາໃນໄລ" +"ຍະໃດຫນຶ່ງ, ແລະສະວິທີທີ່ດີທີ່ສຸດເພື່ອແບ່ງມັນໃນບັນດາປະເພດຂອງລາຍການຕ່າງໆ. " +"ໂດຍການຮັກສາຕິດຕາມບ່ອນທີ່ເງິນຂອງທ່ານດີ, ທ່ານອາດຈະມີຫນ້ອຍອາດຈະ overspend, " +"ແລະອື່ນໆທີ່ອາດຈະຕອບສະຫນອງໄດ້ຕາມເປົ້າຫມາຍທາງດ້ານການເງິນຂອງທ່ານ. " +"ຄາດງົບປະມານໂດຍ detailing ລາຍຮັບຄາດວ່າຈະຕໍ່ບັນຊີແຍກທາດແລະຕິດຕາມກວດກາຂອງຕົນ " +"evolution ອີງຕາມຕົວຈິງໃນ realized ໃນໄລຍະນັ້ນ." #. module: account_budget #: code:addons/account_budget/account_budget.py:119 @@ -134,18 +143,21 @@ msgid "The Budget '%s' has no accounts!" msgstr "" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "%" msgstr "" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "Description" msgstr "ຄຳອະທິບາຍ" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:crossovered.budget.report:0 msgid "Currency" msgstr "ເງິນຕາ" @@ -170,7 +182,7 @@ msgstr "ເພື່ອຮັບຮູ້" #. module: account_budget #: view:crossovered.budget:0 msgid "Reset to Draft" -msgstr "" +msgstr "ປັບກັບຮ່າງ" #. module: account_budget #: view:account.budget.post:0 @@ -180,6 +192,7 @@ msgid "Planned Amount" msgstr "ຈໍານວນຄາດໝາຍມ້ຽນ" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "Perc(%)" @@ -192,6 +205,7 @@ msgid "Done" msgstr "ຈົບເເລັວ" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "Practical Amt" @@ -203,7 +217,7 @@ msgstr "" #: view:crossovered.budget:0 #: field:crossovered.budget.lines,practical_amount:0 msgid "Practical Amount" -msgstr "" +msgstr "ຈໍານວນເງິນປະຕິບັດໄດ້" #. module: account_budget #: field:crossovered.budget,date_to:0 @@ -292,7 +306,7 @@ msgstr "" #. module: account_budget #: selection:crossovered.budget,state:0 msgid "Cancelled" -msgstr "" +msgstr "ຍົກເລີກ" #. module: account_budget #: view:crossovered.budget:0 @@ -326,6 +340,7 @@ msgid "Account Budget crossvered summary report" msgstr "" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "Theoretical Amt" @@ -355,6 +370,7 @@ msgid "Theoretical Amount" msgstr "" #. module: account_budget +#: report:account.analytic.account.budget:0 #: field:crossovered.budget.lines,analytic_account_id:0 #: model:ir.model,name:account_budget.model_account_analytic_account msgid "Analytic Account" @@ -366,6 +382,7 @@ msgid "Budget :" msgstr "ງົບປະມານ" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "Planned Amt" @@ -406,6 +423,7 @@ msgid "Error! You can not create recursive analytic accounts." msgstr "" #. module: account_budget +#: report:account.analytic.account.budget:0 #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "Analysis from" diff --git a/addons/hr_contract/i18n/mk.po b/addons/hr_contract/i18n/mk.po new file mode 100644 index 00000000000..2a4011c9e0d --- /dev/null +++ b/addons/hr_contract/i18n/mk.po @@ -0,0 +1,271 @@ +# 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 , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-10-09 08:00+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Macedonian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-10-10 04:44+0000\n" +"X-Generator: Launchpad (build 16112)\n" + +#. module: hr_contract +#: field:hr.contract,wage:0 +msgid "Wage" +msgstr "Плата" + +#. module: hr_contract +#: view:hr.contract:0 +msgid "Information" +msgstr "Информации" + +#. module: hr_contract +#: view:hr.contract:0 +msgid "Trial Period" +msgstr "Пробен Период" + +#. module: hr_contract +#: field:hr.contract,trial_date_start:0 +msgid "Trial Start Date" +msgstr "Пробен Почетен Датум" + +#. module: hr_contract +#: view:hr.employee:0 +msgid "Medical Examination" +msgstr "Систематски Преглед" + +#. module: hr_contract +#: field:hr.employee,vehicle:0 +msgid "Company Vehicle" +msgstr "Службено Возило" + +#. module: hr_contract +#: view:hr.employee:0 +msgid "Miscellaneous" +msgstr "Разно" + +#. module: hr_contract +#: view:hr.contract:0 +msgid "Current" +msgstr "Тековен" + +#. module: hr_contract +#: view:hr.contract:0 +msgid "Group By..." +msgstr "Групирај По..." + +#. module: hr_contract +#: field:hr.contract,department_id:0 +msgid "Department" +msgstr "Сектор" + +#. module: hr_contract +#: view:hr.contract:0 +msgid "Overpassed" +msgstr "Изминат" + +#. module: hr_contract +#: view:hr.contract:0 +#: field:hr.contract,employee_id:0 +#: model:ir.model,name:hr_contract.model_hr_employee +msgid "Employee" +msgstr "Вработен" + +#. module: hr_contract +#: view:hr.contract:0 +msgid "Search Contract" +msgstr "Пребарај Договор" + +#. module: hr_contract +#: view:hr.contract:0 +msgid "Contracts in progress" +msgstr "Договори во тек" + +#. module: hr_contract +#: field:hr.employee,vehicle_distance:0 +msgid "Home-Work Distance" +msgstr "Дома-Работа Одалеченост" + +#. module: hr_contract +#: view:hr.contract:0 +#: field:hr.employee,contract_ids:0 +#: model:ir.actions.act_window,name:hr_contract.act_hr_employee_2_hr_contract +#: model:ir.actions.act_window,name:hr_contract.action_hr_contract +#: model:ir.ui.menu,name:hr_contract.hr_menu_contract +msgid "Contracts" +msgstr "Договори" + +#. module: hr_contract +#: view:hr.employee:0 +msgid "Personal Info" +msgstr "Лични информации" + +#. module: hr_contract +#: view:hr.contract:0 +msgid "Contracts whose end date already passed" +msgstr "Договори чии што краен рок е веќе поминат" + +#. module: hr_contract +#: help:hr.employee,contract_id:0 +msgid "Latest contract of the employee" +msgstr "Последен договор на вработениот" + +#. module: hr_contract +#: view:hr.contract:0 +msgid "Job" +msgstr "Работно Место" + +#. module: hr_contract +#: view:hr.contract:0 +#: field:hr.contract,advantages:0 +msgid "Advantages" +msgstr "Придобивки" + +#. module: hr_contract +#: view:hr.contract:0 +msgid "Valid for" +msgstr "Валиден за" + +#. module: hr_contract +#: view:hr.contract:0 +msgid "Work Permit" +msgstr "Дозвола за Работа" + +#. module: hr_contract +#: field:hr.employee,children:0 +msgid "Number of Children" +msgstr "Број на Деца" + +#. module: hr_contract +#: model:ir.actions.act_window,name:hr_contract.action_hr_contract_type +#: model:ir.ui.menu,name:hr_contract.hr_menu_contract_type +msgid "Contract Types" +msgstr "Типови на Договор" + +#. module: hr_contract +#: constraint:hr.employee:0 +msgid "Error ! You cannot create recursive Hierarchy of Employees." +msgstr "Грешка! Не можете да креирате рекурзивна хиерархија на вработените." + +#. module: hr_contract +#: field:hr.contract,date_end:0 +msgid "End Date" +msgstr "Краен датум" + +#. module: hr_contract +#: help:hr.contract,wage:0 +msgid "Basic Salary of the employee" +msgstr "Основна Плата на вработениот" + +#. module: hr_contract +#: field:hr.contract,name:0 +msgid "Contract Reference" +msgstr "Референца" + +#. module: hr_contract +#: help:hr.employee,vehicle_distance:0 +msgid "In kilometers" +msgstr "во километри" + +#. module: hr_contract +#: view:hr.contract:0 +#: field:hr.contract,notes:0 +msgid "Notes" +msgstr "Забелешки" + +#. module: hr_contract +#: field:hr.contract,permit_no:0 +msgid "Work Permit No" +msgstr "Број на Дозвола за Работа" + +#. module: hr_contract +#: view:hr.contract:0 +#: field:hr.employee,contract_id:0 +#: model:ir.model,name:hr_contract.model_hr_contract +#: model:ir.ui.menu,name:hr_contract.next_id_56 +msgid "Contract" +msgstr "Договор" + +#. module: hr_contract +#: view:hr.contract:0 +#: field:hr.contract,type_id:0 +#: view:hr.contract.type:0 +#: field:hr.contract.type,name:0 +#: model:ir.model,name:hr_contract.model_hr_contract_type +msgid "Contract Type" +msgstr "Тип на Договор" + +#. module: hr_contract +#: view:hr.contract:0 +#: field:hr.contract,working_hours:0 +msgid "Working Schedule" +msgstr "Распоред за Работа" + +#. module: hr_contract +#: view:hr.employee:0 +msgid "Job Info" +msgstr "Информации за Работата" + +#. module: hr_contract +#: field:hr.contract,visa_expire:0 +msgid "Visa Expire Date" +msgstr "Виза Датум на Истекување" + +#. module: hr_contract +#: field:hr.contract,job_id:0 +msgid "Job Title" +msgstr "Звање" + +#. module: hr_contract +#: field:hr.employee,manager:0 +msgid "Is a Manager" +msgstr "Менаџер" + +#. module: hr_contract +#: field:hr.contract,date_start:0 +msgid "Start Date" +msgstr "Почетен датум" + +#. module: hr_contract +#: constraint:hr.contract:0 +msgid "Error! contract start-date must be lower then contract end-date." +msgstr "" +"Грешка! Почетниот датум на договорот мора да биде помал од крајниот датум." + +#. module: hr_contract +#: field:hr.contract,visa_no:0 +msgid "Visa No" +msgstr "Број на Виза" + +#. module: hr_contract +#: field:hr.employee,place_of_birth:0 +msgid "Place of Birth" +msgstr "Место на раѓање" + +#. module: hr_contract +#: view:hr.contract:0 +msgid "Duration" +msgstr "Траење" + +#. module: hr_contract +#: field:hr.employee,medic_exam:0 +msgid "Medical Examination Date" +msgstr "Датум за Систематски Преглед" + +#. module: hr_contract +#: field:hr.contract,trial_date_end:0 +msgid "Trial End Date" +msgstr "Пробен Краен Датум" + +#. module: hr_contract +#: view:hr.contract.type:0 +msgid "Search Contract Type" +msgstr "Пребарај Тип на Договор" diff --git a/addons/hr_holidays/i18n/mk.po b/addons/hr_holidays/i18n/mk.po new file mode 100644 index 00000000000..2694317ebe9 --- /dev/null +++ b/addons/hr_holidays/i18n/mk.po @@ -0,0 +1,864 @@ +# 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 , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 01:37+0100\n" +"PO-Revision-Date: 2012-10-09 08:43+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Macedonian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-10-10 04:44+0000\n" +"X-Generator: Launchpad (build 16112)\n" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Blue" +msgstr "Сина" + +#. module: hr_holidays +#: field:hr.holidays,holiday_type:0 +msgid "Allocation Type" +msgstr "Тип на Алокација" + +#. module: hr_holidays +#: selection:hr.employee,current_leave_state:0 +#: selection:hr.holidays,state:0 +msgid "Waiting Second Approval" +msgstr "Се чека на второ одобрување" + +#. module: hr_holidays +#: help:hr.holidays.status,remaining_leaves:0 +msgid "Maximum Leaves Allowed - Leaves Already Taken" +msgstr "Мкасимален број на дозволени отсуства - Отсуствата се веќе земени" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Leaves Management" +msgstr "Менаџирање на Отсуства" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Group By..." +msgstr "Групирај По..." + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Allocation Mode" +msgstr "Мод на Алокација" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: field:hr.holidays,department_id:0 +msgid "Department" +msgstr "Сектор" + +#. module: hr_holidays +#: model:ir.actions.act_window,name:hr_holidays.request_approve_holidays +msgid "Requests Approve" +msgstr "Одобри Барања" + +#. module: hr_holidays +#: selection:hr.employee,current_leave_state:0 +#: selection:hr.holidays,state:0 +msgid "Refused" +msgstr "Одбиени" + +#. module: hr_holidays +#: help:hr.holidays,category_id:0 +msgid "Category of Employee" +msgstr "Категорија на Вработен" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid " Month-1" +msgstr " Месец-1" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Brown" +msgstr "Кафена" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Remaining Days" +msgstr "Останати Денови" + +#. module: hr_holidays +#: selection:hr.holidays,holiday_type:0 +msgid "By Employee" +msgstr "По Вработен" + +#. module: hr_holidays +#: help:hr.holidays,employee_id:0 +msgid "" +"Leave Manager can let this field empty if this leave request/allocation is " +"for every employee" +msgstr "" +"Менаџерот за отсуства може да го остави ова поле празно ако барањето за " +"отсуство/преместување е за секој вработен" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Set to Draft" +msgstr "Подеси на нацрт" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Light Cyan" +msgstr "Светла Цијан" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Light Green" +msgstr "Светло зелено" + +#. module: hr_holidays +#: field:hr.employee,current_leave_id:0 +msgid "Current Leave Type" +msgstr "Тековен Тип на Отсуство" + +#. module: hr_holidays +#: model:ir.actions.act_window,help:hr_holidays.open_ask_holidays +msgid "" +"Leave requests can be recorded by employees and validated by their managers. " +"Once a leave request is validated, it appears automatically in the agenda of " +"the employee. You can define several allowance types (paid holidays, " +"sickness, etc.) and manage allowances per type." +msgstr "" + +#. module: hr_holidays +#: model:ir.actions.report.xml,name:hr_holidays.report_holidays_summary +msgid "Summary Of Leaves" +msgstr "Збир на Отсуства" + +#. module: hr_holidays +#: selection:hr.employee,current_leave_state:0 +#: view:hr.holidays:0 +#: selection:hr.holidays,state:0 +msgid "Approved" +msgstr "Одобрено" + +#. module: hr_holidays +#: field:hr.employee,last_login:0 +msgid "Latest Connection" +msgstr "Последна Конекција" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Refuse" +msgstr "Одбиј" + +#. module: hr_holidays +#: code:addons/hr_holidays/hr_holidays.py:344 +#, python-format +msgid "" +"You cannot validate leaves for employee %s: too few remaining days (%s)." +msgstr "" +"Не можете да валидирате отсуства за вработениот %s: премалку преостанати " +"денови (%s)." + +#. module: hr_holidays +#: help:hr.holidays,state:0 +msgid "" +"The state is set to 'Draft', when a holiday request is created. \n" +"The state is 'Waiting Approval', when holiday request is confirmed by user. " +" \n" +"The state is 'Refused', when holiday request is refused by manager. " +" \n" +"The state is 'Approved', when holiday request is approved by manager." +msgstr "" + +#. module: hr_holidays +#: view:board.board:0 +#: model:ir.actions.act_window,name:hr_holidays.act_hr_employee_holiday_request +#: model:ir.ui.menu,name:hr_holidays.menu_hr_reporting_holidays +#: model:ir.ui.menu,name:hr_holidays.menu_open_ask_holidays +msgid "Leaves" +msgstr "Отсуства" + +#. module: hr_holidays +#: model:ir.model,name:hr_holidays.model_hr_holidays +msgid "Leave" +msgstr "" + +#. module: hr_holidays +#: model:ir.ui.menu,name:hr_holidays.menu_request_approve_holidays +msgid "Leave Requests to Approve" +msgstr "Барања за отсуства за одобрување" + +#. module: hr_holidays +#: model:ir.ui.menu,name:hr_holidays.menu_account_central_journal +msgid "Leaves by Department" +msgstr "Отсуства по Сектор" + +#. module: hr_holidays +#: selection:hr.employee,current_leave_state:0 +#: selection:hr.holidays,state:0 +msgid "Cancelled" +msgstr "Откажано" + +#. module: hr_holidays +#: help:hr.holidays,type:0 +msgid "" +"Choose 'Leave Request' if someone wants to take an off-day. \n" +"Choose 'Allocation Request' if you want to increase the number of leaves " +"available for someone" +msgstr "" + +#. module: hr_holidays +#: help:hr.employee,remaining_leaves:0 +msgid "" +"Total number of legal leaves allocated to this employee, change this value " +"to create allocation/leave requests." +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays.status:0 +msgid "Validation" +msgstr "" + +#. module: hr_holidays +#: code:addons/hr_holidays/hr_holidays.py:377 +#, python-format +msgid "Warning !" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.status,color_name:0 +msgid "Color in Report" +msgstr "" + +#. module: hr_holidays +#: model:ir.model,name:hr_holidays.model_hr_holidays_summary_employee +msgid "HR Holidays Summary Report By Employee" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays,manager_id:0 +msgid "This area is automatically filled by the user who validate the leave" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,holiday_status_id:0 +#: field:hr.holidays.remaining.leaves.user,leave_type:0 +#: view:hr.holidays.status:0 +#: field:hr.holidays.status,name:0 +#: field:hr.holidays.summary.dept,holiday_type:0 +#: model:ir.actions.act_window,name:hr_holidays.open_view_holiday_status +#: model:ir.model,name:hr_holidays.model_hr_holidays_status +#: model:ir.ui.menu,name:hr_holidays.menu_open_view_holiday_status +msgid "Leave Type" +msgstr "" + +#. module: hr_holidays +#: code:addons/hr_holidays/hr_holidays.py:199 +#: code:addons/hr_holidays/hr_holidays.py:344 +#, python-format +msgid "Warning!" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Magenta" +msgstr "" + +#. module: hr_holidays +#: code:addons/hr_holidays/wizard/hr_holidays_summary_department.py:44 +#, python-format +msgid "You have to select at least 1 Department. And try again" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.summary.dept,holiday_type:0 +#: selection:hr.holidays.summary.employee,holiday_type:0 +msgid "Confirmed" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.summary.dept,date_from:0 +#: field:hr.holidays.summary.employee,date_from:0 +msgid "From" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Confirm" +msgstr "" + +#. module: hr_holidays +#: code:addons/hr_holidays/hr_holidays.py:384 +#, python-format +msgid "Leave Request for %s" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.status,remaining_leaves:0 +msgid "Remaining Leaves" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: field:hr.holidays,state:0 +msgid "State" +msgstr "" + +#. module: hr_holidays +#: model:ir.model,name:hr_holidays.model_hr_holidays_remaining_leaves_user +msgid "Total holidays by type" +msgstr "" + +#. module: hr_holidays +#: view:hr.employee:0 +#: view:hr.holidays:0 +#: field:hr.holidays,employee_id:0 +#: field:hr.holidays.remaining.leaves.user,name:0 +#: model:ir.model,name:hr_holidays.model_hr_employee +msgid "Employee" +msgstr "" + +#. module: hr_holidays +#: selection:hr.employee,current_leave_state:0 +#: selection:hr.holidays,state:0 +msgid "New" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Type" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Red" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays.remaining.leaves.user:0 +msgid "Leaves by Type" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Light Salmon" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Wheat" +msgstr "" + +#. module: hr_holidays +#: constraint:resource.calendar.leaves:0 +msgid "Error! leave start-date must be lower then leave end-date." +msgstr "" + +#. module: hr_holidays +#: code:addons/hr_holidays/hr_holidays.py:382 +#, python-format +msgid "Allocation for %s" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: field:hr.holidays,number_of_days:0 +#: field:hr.holidays,number_of_days_temp:0 +msgid "Number of Days" +msgstr "" + +#. module: hr_holidays +#: code:addons/hr_holidays/hr_holidays.py:377 +#, python-format +msgid "" +"The feature behind the field 'Remaining Legal Leaves' can only be used when " +"there is only one leave type with the option 'Allow to Override Limit' " +"unchecked. (%s Found). Otherwise, the update is ambiguous as we cannot " +"decide on which leave type the update has to be done. \n" +"You may prefer to use the classic menus 'Leave Requests' and 'Allocation " +"Requests' located in 'Human Resources \\ Leaves' to manage the leave days of " +"the employees if the configuration does not allow to use this field." +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays.status:0 +msgid "Search Leave Type" +msgstr "" + +#. module: hr_holidays +#: sql_constraint:hr.holidays:0 +msgid "You have to select an employee or a category" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays.status,double_validation:0 +msgid "" +"When selected, the Allocation/Leave Requests for this type require a second " +"validation to be approved." +msgstr "" + +#. module: hr_holidays +#: selection:hr.employee,current_leave_state:0 +#: selection:hr.holidays,state:0 +msgid "Waiting Approval" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.summary.employee,emp:0 +msgid "Employee(s)" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays.status,categ_id:0 +msgid "" +"If you set a meeting type, OpenERP will create a meeting in the calendar " +"once a leave is validated." +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,linked_request_ids:0 +msgid "Linked Requests" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,parent_id:0 +msgid "Parent" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Lavender" +msgstr "" + +#. module: hr_holidays +#: xsl:holidays.summary:0 +#: view:hr.holidays:0 +msgid "Month" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: model:ir.actions.act_window,name:hr_holidays.open_ask_holidays +#: model:ir.ui.menu,name:hr_holidays.menu_open_ask_holidays_new +msgid "Leave Requests" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.status,limit:0 +msgid "Allow to Override Limit" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays.summary.employee:0 +#: model:ir.actions.act_window,name:hr_holidays.action_hr_holidays_summary_employee +msgid "Employee's Holidays" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: field:hr.holidays,category_id:0 +msgid "Category" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays.status,max_leaves:0 +msgid "" +"This value is given by the sum of all holidays requests with a positive " +"value." +msgstr "" + +#. module: hr_holidays +#: view:board.board:0 +msgid "All Employee Leaves" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Light Coral" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays.summary.dept:0 +#: model:ir.actions.act_window,name:hr_holidays.action_hr_holidays_summary_dept +msgid "Holidays by Department" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Black" +msgstr "" + +#. module: hr_holidays +#: model:ir.actions.act_window,name:hr_holidays.hr_holidays_leaves_assign_legal +msgid "Allocate Leaves for Employees" +msgstr "" + +#. module: hr_holidays +#: field:resource.calendar.leaves,holiday_id:0 +msgid "Holiday" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,case_id:0 +#: field:hr.holidays.status,categ_id:0 +msgid "Meeting" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Ivory" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.summary.dept,holiday_type:0 +#: selection:hr.holidays.summary.employee,holiday_type:0 +msgid "Both Validated and Confirmed" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.status,leaves_taken:0 +msgid "Leaves Already Taken" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,user_id:0 +#: field:hr.holidays.remaining.leaves.user,user_id:0 +msgid "User" +msgstr "" + +#. module: hr_holidays +#: sql_constraint:hr.holidays:0 +msgid "The start date must be before the end date !" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.status,active:0 +msgid "Active" +msgstr "" + +#. module: hr_holidays +#: constraint:hr.employee:0 +msgid "Error ! You cannot create recursive Hierarchy of Employees." +msgstr "" + +#. module: hr_holidays +#: view:hr.employee:0 +#: field:hr.employee,remaining_leaves:0 +msgid "Remaining Legal Leaves" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,manager_id:0 +msgid "First Approval" +msgstr "" + +#. module: hr_holidays +#: model:hr.holidays.status,name:hr_holidays.holiday_status_unpaid +msgid "Unpaid" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: model:ir.actions.act_window,name:hr_holidays.open_company_allocation +#: model:ir.ui.menu,name:hr_holidays.menu_open_company_allocation +msgid "Leaves Summary" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Holidays during last month" +msgstr "" + +#. module: hr_holidays +#: code:addons/hr_holidays/wizard/hr_holidays_summary_department.py:44 +#, python-format +msgid "Error" +msgstr "" + +#. module: hr_holidays +#: view:hr.employee:0 +msgid "Assign Leaves" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Light Blue" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "My Department Leaves" +msgstr "" + +#. module: hr_holidays +#: field:hr.employee,current_leave_state:0 +msgid "Current Leave Status" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,type:0 +msgid "Request Type" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays.status,active:0 +msgid "" +"If the active field is set to false, it will allow you to hide the leave " +"type without removing it." +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays.status:0 +msgid "Misc" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "General" +msgstr "" + +#. module: hr_holidays +#: model:hr.holidays.status,name:hr_holidays.holiday_status_comp +msgid "Compensatory Days" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: field:hr.holidays,notes:0 +msgid "Reasons" +msgstr "" + +#. module: hr_holidays +#: model:ir.actions.act_window,name:hr_holidays.action_hr_available_holidays_report +#: model:ir.ui.menu,name:hr_holidays.menu_hr_available_holidays_report_tree +msgid "Leaves Analysis" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays.summary.dept:0 +#: view:hr.holidays.summary.employee:0 +msgid "Cancel" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays.status,color_name:0 +msgid "" +"This color will be used in the leaves summary located in Reporting\\Leaves " +"by Departement" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: selection:hr.holidays.summary.dept,holiday_type:0 +#: selection:hr.holidays.summary.employee,holiday_type:0 +msgid "Validated" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: selection:hr.holidays,type:0 +msgid "Allocation Request" +msgstr "" + +#. module: hr_holidays +#: model:ir.model,name:hr_holidays.model_resource_calendar_leaves +msgid "Leave Detail" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,double_validation:0 +#: field:hr.holidays.status,double_validation:0 +msgid "Apply Double Validation" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays.summary.dept:0 +#: view:hr.holidays.summary.employee:0 +msgid "Print" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays.status:0 +msgid "Details" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: model:ir.actions.act_window,name:hr_holidays.action_hr_holidays_leaves_by_month +msgid "My Leaves" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays,holiday_type:0 +msgid "By Employee Category" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: selection:hr.holidays,type:0 +msgid "Leave Request" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,name:0 +msgid "Description" +msgstr "" + +#. module: hr_holidays +#: model:hr.holidays.status,name:hr_holidays.holiday_status_cl +msgid "Legal Leaves" +msgstr "" + +#. module: hr_holidays +#: sql_constraint:hr.holidays:0 +msgid "The number of days must be greater than 0 !" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays,holiday_type:0 +msgid "" +"By Employee: Allocation/Request for individual Employee, By Employee " +"Category: Allocation/Request for group of employees in category" +msgstr "" + +#. module: hr_holidays +#: code:addons/hr_holidays/hr_holidays.py:199 +#, python-format +msgid "You cannot delete a leave which is not in draft state !" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Search Leave" +msgstr "Пребарај Отсуство" + +#. module: hr_holidays +#: field:hr.holidays.summary.employee,holiday_type:0 +msgid "Select Holiday Type" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.remaining.leaves.user,no_of_leaves:0 +msgid "Remaining leaves" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.summary.dept,depts:0 +msgid "Department(s)" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,manager_id2:0 +msgid "Second Approval" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,date_to:0 +msgid "End Date" +msgstr "" + +#. module: hr_holidays +#: model:hr.holidays.status,name:hr_holidays.holiday_status_sl +msgid "Sick Leaves" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays.status,limit:0 +msgid "" +"If you select this checkbox, the system allows the employees to take more " +"leaves than the available ones for this type." +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays.status,leaves_taken:0 +msgid "" +"This value is given by the sum of all holidays requests with a negative " +"value." +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Violet" +msgstr "" + +#. module: hr_holidays +#: model:ir.actions.act_window,help:hr_holidays.hr_holidays_leaves_assign_legal +msgid "" +"You can assign remaining Legal Leaves for each employee, OpenERP will " +"automatically create and validate allocation requests." +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.status,max_leaves:0 +msgid "Maximum Allowed" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays,manager_id2:0 +msgid "" +"This area is automaticly filled by the user who validate the leave with " +"second level (If Leave type need second validation)" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Mode" +msgstr "" + +#. module: hr_holidays +#: model:ir.model,name:hr_holidays.model_hr_holidays_summary_dept +msgid "HR Holidays Summary Report By Department" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Approve" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: field:hr.holidays,date_from:0 +msgid "Start Date" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: model:ir.actions.act_window,name:hr_holidays.open_allocation_holidays +#: model:ir.ui.menu,name:hr_holidays.menu_open_allocation_holidays +msgid "Allocation Requests" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Light Yellow" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Light Pink" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Manager" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "To Confirm" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Year" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "To Approve" +msgstr "" From f7d5b5ff0aabd129cbb9c9c1278eab0c3ec361f2 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Wed, 10 Oct 2012 09:25:10 +0200 Subject: [PATCH 13/13] [FIX] mail: in function field mail_follower_ids, support value False in setter bzr revid: rco@openerp.com-20121010072510-aacyyj3csj720z8l --- addons/mail/mail_thread.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 529ee8c65cc..e6150640eb3 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -138,6 +138,8 @@ class mail_thread(osv.AbstractModel): return res def _set_followers(self, cr, uid, id, name, value, arg, context=None): + if not value: + return partner_obj = self.pool.get('res.partner') fol_obj = self.pool.get('mail.followers')