[MRG]Merge with lp:openobject-addons
bzr revid: cod@tinyerp.com-20140320120823-hq13lrntarvjzsgl
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
<separator/>
|
||||
<filter string="Draft" icon="terp-document-new" domain="[('state','=','draft')]" help = "Draft Invoices"/>
|
||||
<filter string="Pro-forma" icon="terp-gtk-media-pause" domain="['|', ('state','=','proforma'),('state','=','proforma2')]" help = "Pro-forma Invoices"/>
|
||||
<filter string="Invoiced" name="current" icon="terp-check" domain="[('state','not in', ('draft','cancel'))]" help = "Open and Paid Invoices"/>
|
||||
<filter string="Invoiced" name="current" icon="terp-check" domain="[('state','not in', ('draft','cancel','proforma','proforma2'))]" help = "Open and Paid Invoices"/>
|
||||
<separator/>
|
||||
<filter icon="terp-personal" string="Customer" name="customer" domain="['|', ('type','=','out_invoice'),('type','=','out_refund')]" help="Customer Invoices And Refunds"/>
|
||||
<filter icon="terp-personal" string="Supplier" domain="['|', ('type','=','in_invoice'),('type','=','in_refund')]" help="Supplier Invoices And Refunds"/>
|
||||
|
||||
@@ -0,0 +1,963 @@
|
||||
# Amharic translation for openobject-addons
|
||||
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||
"PO-Revision-Date: 2014-03-18 13:39+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Amharic <am@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: 2014-03-19 05:52+0000\n"
|
||||
"X-Generator: Launchpad (build 16963)\n"
|
||||
|
||||
#. module: hr
|
||||
#: model:process.node,name:hr.process_node_openerpuser0
|
||||
msgid "Openerp user"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_timesheet_sheet:0
|
||||
msgid "Allow timesheets validation by managers"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.job,requirements:0
|
||||
msgid "Requirements"
|
||||
msgstr "አስፈላጊ"
|
||||
|
||||
#. module: hr
|
||||
#: model:process.transition,name:hr.process_transition_contactofemployee0
|
||||
msgid "Link the employee to information"
|
||||
msgstr "የሰራተኞች መረጃ ማገናኘት"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,sinid:0
|
||||
msgid "SIN No"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.open_board_hr
|
||||
#: model:ir.ui.menu,name:hr.menu_hr_dashboard
|
||||
#: model:ir.ui.menu,name:hr.menu_hr_main
|
||||
#: model:ir.ui.menu,name:hr.menu_hr_reporting
|
||||
#: model:ir.ui.menu,name:hr.menu_hr_root
|
||||
#: model:ir.ui.menu,name:hr.menu_human_resources_configuration
|
||||
msgid "Human Resources"
|
||||
msgstr "የሰው ሀይል አስተዳደር"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.employee,image_medium:0
|
||||
msgid ""
|
||||
"Medium-sized photo of the employee. It is automatically resized as a "
|
||||
"128x128px image, with aspect ratio preserved. Use this field in form views "
|
||||
"or some kanban views."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Time Tracking"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
#: view:hr.job:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.view_department_form_installer
|
||||
msgid "Create Your Departments"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.job,no_of_employee:0
|
||||
msgid "Number of employees currently occupying this job position."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_evaluation:0
|
||||
msgid "Organize employees periodic evaluation"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.department:0
|
||||
#: view:hr.employee:0
|
||||
#: field:hr.employee,department_id:0
|
||||
#: view:hr.job:0
|
||||
#: field:hr.job,department_id:0
|
||||
#: model:ir.model,name:hr.model_hr_department
|
||||
msgid "Department"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,work_email:0
|
||||
msgid "Work Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.employee,image:0
|
||||
msgid ""
|
||||
"This field holds the image used as photo for the employee, limited to "
|
||||
"1024x1024px."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_holidays:0
|
||||
msgid "This installs the module hr_holidays."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.job:0
|
||||
msgid "Jobs"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.job:0
|
||||
msgid "In Recruitment"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.job,message_unread:0
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.department,company_id:0
|
||||
#: view:hr.employee:0
|
||||
#: view:hr.job:0
|
||||
#: field:hr.job,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.job,no_of_recruitment:0
|
||||
msgid "Expected in Recruitment"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:res.users,employee_ids:0
|
||||
msgid "Related employees"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: constraint:hr.employee.category:0
|
||||
msgid "Error! You cannot create recursive Categories."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_recruitment:0
|
||||
msgid "This installs the module hr_recruitment."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Birth"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.open_view_categ_form
|
||||
#: model:ir.ui.menu,name:hr.menu_view_employee_category_form
|
||||
msgid "Employee Tags"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.job:0
|
||||
msgid "Launch Recruitement"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:process.transition,name:hr.process_transition_employeeuser0
|
||||
msgid "Link a user to an employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.department,parent_id:0
|
||||
msgid "Parent Department"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_config
|
||||
msgid "Leaves"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: selection:hr.employee,marital:0
|
||||
msgid "Married"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.job,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Talent Management"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_timesheet_sheet:0
|
||||
msgid "This installs the module hr_timesheet_sheet."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Mobile:"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Position"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.job,message_unread:0
|
||||
msgid "If checked new messages require your attention."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,color:0
|
||||
msgid "Color Index"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:process.transition,note:hr.process_transition_employeeuser0
|
||||
msgid ""
|
||||
"The Related user field on the Employee form allows to link the OpenERP user "
|
||||
"(and her rights) to the employee."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,image_medium:0
|
||||
msgid "Medium-sized photo"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,identification_id:0
|
||||
msgid "Identification No"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: selection:hr.employee,gender:0
|
||||
msgid "Female"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_new_config
|
||||
msgid "Attendance"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,work_phone:0
|
||||
msgid "Work Phone"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee.category,child_ids:0
|
||||
msgid "Child Categories"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.job,description:0
|
||||
#: model:ir.model,name:hr.model_hr_job
|
||||
msgid "Job Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,work_location:0
|
||||
msgid "Office Location"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.job,message_follower_ids:0
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
#: model:ir.model,name:hr.model_hr_employee
|
||||
#: model:process.node,name:hr.process_node_employee0
|
||||
msgid "Employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:process.node,note:hr.process_node_employeecontact0
|
||||
msgid "Other information"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.employee,image_small:0
|
||||
msgid ""
|
||||
"Small-sized photo of the employee. It is automatically resized as a 64x64px "
|
||||
"image, with aspect ratio preserved. Use this field anywhere a small image is "
|
||||
"required."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,birthday:0
|
||||
msgid "Date of Birth"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.job,no_of_recruitment:0
|
||||
msgid "Number of new employees you expect to recruit."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.client,name:hr.action_client_hr_menu
|
||||
msgid "Open HR Menu"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.job,message_summary:0
|
||||
msgid ""
|
||||
"Holds the Chatter summary (number of messages, ...). This summary is "
|
||||
"directly in html format in order to be inserted in kanban views."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_account_analytic_analysis:0
|
||||
msgid ""
|
||||
"This installs the module account_analytic_analysis, which will install sales "
|
||||
"management too."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:board.board:0
|
||||
msgid "Human Resources Dashboard"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
#: field:hr.employee,job_id:0
|
||||
#: view:hr.job:0
|
||||
msgid "Job"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.job,no_of_employee:0
|
||||
msgid "Current Number of Employees"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.department,member_ids:0
|
||||
msgid "Members"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.ui.menu,name:hr.menu_hr_configuration
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:process.node,note:hr.process_node_employee0
|
||||
msgid "Employee form and structure"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_expense:0
|
||||
msgid "Manage employees expenses"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Tel:"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: selection:hr.employee,marital:0
|
||||
msgid "Divorced"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee.category,parent_id:0
|
||||
msgid "Parent Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.department:0
|
||||
#: model:ir.actions.act_window,name:hr.open_module_tree_department
|
||||
#: model:ir.ui.menu,name:hr.menu_hr_department_tree
|
||||
msgid "Departments"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:process.node,name:hr.process_node_employeecontact0
|
||||
msgid "Employee Contact"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,help:hr.action_hr_job
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to define a new job position.\n"
|
||||
" </p><p>\n"
|
||||
" Job Positions are used to define jobs and their "
|
||||
"requirements.\n"
|
||||
" You can keep track of the number of employees you have per "
|
||||
"job\n"
|
||||
" position and follow the evolution according to what you "
|
||||
"planned\n"
|
||||
" for the future.\n"
|
||||
" </p><p>\n"
|
||||
" You can attach a survey to a job position. It will be used "
|
||||
"in\n"
|
||||
" the recruitment process to evaluate the applicants for this "
|
||||
"job\n"
|
||||
" position.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: selection:hr.employee,gender:0
|
||||
msgid "Male"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid ""
|
||||
"$('.oe_employee_picture').load(function() { if($(this).width() > "
|
||||
"$(this).height()) { $(this).addClass('oe_employee_picture_wide') } });"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_evaluation:0
|
||||
msgid "This installs the module hr_evaluation."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: constraint:hr.employee:0
|
||||
msgid "Error! You cannot create recursive hierarchy of Employee(s)."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_attendance:0
|
||||
msgid "This installs the module hr_attendance."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,image_small:0
|
||||
msgid "Smal-sized photo"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee.category:0
|
||||
#: model:ir.model,name:hr.model_hr_employee_category
|
||||
msgid "Employee Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,category_ids:0
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_contract:0
|
||||
msgid "This installs the module hr_contract."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Related User"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee.category,name:0
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.job:0
|
||||
msgid "Stop Recruitment"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_attendance:0
|
||||
msgid "Install attendances feature"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.employee,bank_account_id:0
|
||||
msgid "Employee bank salary account"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.department,note:0
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.open_view_employee_tree
|
||||
msgid "Employees Structure"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Contact Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_holidays:0
|
||||
msgid "Manage holidays, leaves and allocation requests"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.department,child_ids:0
|
||||
msgid "Child Departments"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
#: view:hr.job:0
|
||||
#: field:hr.job,state:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,otherid:0
|
||||
msgid "Other Id"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:process.process,name:hr.process_process_employeecontractprocess0
|
||||
msgid "Employee Contract"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Contracts"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.job,message_ids:0
|
||||
msgid "Messages and communication history"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,ssnid:0
|
||||
msgid "SSN No"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.job,message_is_follower:0
|
||||
msgid "Is a Follower"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_recruitment:0
|
||||
msgid "Manage the recruitment process"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Human Resources Management"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Install your country's payroll"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,bank_account_id:0
|
||||
msgid "Bank Account Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.department:0
|
||||
msgid "Companies"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.job,message_summary:0
|
||||
msgid "Summary"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:process.transition,note:hr.process_transition_contactofemployee0
|
||||
msgid ""
|
||||
"In the Employee form, there are different kind of information like Contact "
|
||||
"information."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,help:hr.open_view_employee_list_my
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to add a new employee.\n"
|
||||
" </p><p>\n"
|
||||
" With just a quick glance on the OpenERP employee screen, "
|
||||
"you\n"
|
||||
" can easily find all the information you need for each "
|
||||
"person;\n"
|
||||
" contact data, job position, availability, etc.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "HR Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Citizenship & Other Info"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: constraint:hr.department:0
|
||||
msgid "Error! You cannot create recursive departments."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,address_id:0
|
||||
msgid "Working Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Public Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,marital:0
|
||||
msgid "Marital Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.model,name:hr.model_ir_actions_act_window
|
||||
msgid "ir.actions.act_window"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,last_login:0
|
||||
msgid "Latest Connection"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,image:0
|
||||
msgid "Photo"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,help:hr.open_module_tree_department
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create a department.\n"
|
||||
" </p><p>\n"
|
||||
" OpenERP's department structure is used to manage all "
|
||||
"documents\n"
|
||||
" related to employees by departments: expenses, timesheets,\n"
|
||||
" leaves and holidays, recruitments, etc.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_timesheet:0
|
||||
msgid "This installs the module hr_timesheet."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.job,expected_employees:0
|
||||
msgid ""
|
||||
"Expected number of employees for this job position after new recruitment."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,help:hr.view_department_form_installer
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to define a new department.\n"
|
||||
" </p><p>\n"
|
||||
" Your departments structure is used to manage all documents\n"
|
||||
" related to employees by departments: expenses and "
|
||||
"timesheets,\n"
|
||||
" leaves and holidays, recruitments, etc.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Personal Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,city:0
|
||||
msgid "City"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,passport_id:0
|
||||
msgid "Passport No"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,mobile_phone:0
|
||||
msgid "Work Mobile"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: selection:hr.job,state:0
|
||||
msgid "Recruitement in Progress"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_account_analytic_analysis:0
|
||||
msgid ""
|
||||
"Allow invoicing based on timesheets (the sale application will be installed)"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee.category:0
|
||||
msgid "Employees Categories"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,address_home_id:0
|
||||
msgid "Home Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_timesheet:0
|
||||
msgid "Manage timesheets"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.open_payroll_modules
|
||||
msgid "Payroll"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: selection:hr.employee,marital:0
|
||||
msgid "Single"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.job,name:0
|
||||
msgid "Job Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.job:0
|
||||
msgid "In Position"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_payroll:0
|
||||
msgid "This installs the module hr_payroll."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_contract:0
|
||||
msgid "Record contracts per employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.department:0
|
||||
msgid "department"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,country_id:0
|
||||
msgid "Nationality"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Additional Features"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,notes:0
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.action2
|
||||
msgid "Subordinate Hierarchy"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,resource_id:0
|
||||
msgid "Resource"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.department,complete_name:0
|
||||
#: field:hr.employee,name_related:0
|
||||
#: field:hr.employee.category,complete_name:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,gender:0
|
||||
msgid "Gender"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
#: field:hr.employee.category,employee_ids:0
|
||||
#: field:hr.job,employee_ids:0
|
||||
#: model:ir.actions.act_window,name:hr.hr_employee_normal_action_tree
|
||||
#: model:ir.actions.act_window,name:hr.open_view_employee_list
|
||||
#: model:ir.actions.act_window,name:hr.open_view_employee_list_my
|
||||
#: model:ir.ui.menu,name:hr.menu_open_view_employee_list_my
|
||||
msgid "Employees"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.employee,sinid:0
|
||||
msgid "Social Insurance Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.department,name:0
|
||||
msgid "Department Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.ui.menu,name:hr.menu_hr_reporting_timesheet
|
||||
msgid "Reports"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_payroll:0
|
||||
msgid "Manage payroll"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
#: model:ir.actions.act_window,name:hr.action_human_resources_configuration
|
||||
msgid "Configure Human Resources"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: selection:hr.job,state:0
|
||||
msgid "No Recruitment"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.employee,ssnid:0
|
||||
msgid "Social Security Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:process.node,note:hr.process_node_openerpuser0
|
||||
msgid "Creation of a OpenERP user"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,login:0
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.job,expected_employees:0
|
||||
msgid "Total Forecasted Employees"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.job,state:0
|
||||
msgid ""
|
||||
"By default 'In position', set it to 'In Recruitment' if recruitment process "
|
||||
"is going on for this job position."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.model,name:hr.model_res_users
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.action_hr_job
|
||||
#: model:ir.ui.menu,name:hr.menu_hr_job
|
||||
msgid "Job Positions"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,help:hr.open_board_hr
|
||||
msgid ""
|
||||
"<div class=\"oe_empty_custom_dashboard\">\n"
|
||||
" <p>\n"
|
||||
" <b>Human Resources dashboard is empty.</b>\n"
|
||||
" </p><p>\n"
|
||||
" To add your first report into this dashboard, go to any\n"
|
||||
" menu, switch to list or graph view, and click <i>'Add "
|
||||
"to\n"
|
||||
" Dashboard'</i> in the extended search options.\n"
|
||||
" </p><p>\n"
|
||||
" You can filter and group data before inserting into the\n"
|
||||
" dashboard using the search options.\n"
|
||||
" </p>\n"
|
||||
" </div>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
#: field:hr.employee,coach_id:0
|
||||
msgid "Coach"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: sql_constraint:hr.job:0
|
||||
msgid "The name of the job position must be unique per company!"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_expense:0
|
||||
msgid "This installs the module hr_expense."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.model,name:hr.model_hr_config_settings
|
||||
msgid "hr.config.settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.department,manager_id:0
|
||||
#: view:hr.employee:0
|
||||
#: field:hr.employee,parent_id:0
|
||||
msgid "Manager"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: selection:hr.employee,marital:0
|
||||
msgid "Widower"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,child_ids:0
|
||||
msgid "Subordinates"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Apply"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,283 @@
|
||||
# Amharic translation for openobject-addons
|
||||
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
|
||||
"PO-Revision-Date: 2014-03-18 08:01+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Amharic <am@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: 2014-03-19 05:52+0000\n"
|
||||
"X-Generator: Launchpad (build 16963)\n"
|
||||
|
||||
#. module: product_margin
|
||||
#: view:product.product:0
|
||||
#: field:product.product,turnover:0
|
||||
msgid "Turnover"
|
||||
msgstr "ተመላሽ"
|
||||
|
||||
#. module: product_margin
|
||||
#: field:product.product,expected_margin_rate:0
|
||||
msgid "Expected Margin (%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: field:product.margin,from_date:0
|
||||
msgid "From"
|
||||
msgstr "ከ"
|
||||
|
||||
#. module: product_margin
|
||||
#: help:product.product,total_cost:0
|
||||
msgid ""
|
||||
"Sum of Multiplication of Invoice price and quantity of Supplier Invoices "
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: field:product.margin,to_date:0
|
||||
msgid "To"
|
||||
msgstr "ለ"
|
||||
|
||||
#. module: product_margin
|
||||
#: help:product.product,total_margin:0
|
||||
msgid "Turnover - Standard price"
|
||||
msgstr "የተመላሽ መደበኛ ዋጋ"
|
||||
|
||||
#. module: product_margin
|
||||
#: field:product.product,total_margin_rate:0
|
||||
msgid "Total Margin Rate(%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: selection:product.margin,invoice_state:0
|
||||
#: selection:product.product,invoice_state:0
|
||||
msgid "Draft, Open and Paid"
|
||||
msgstr "ያልተከፈለና የተከፈለ ደረሰኞች"
|
||||
|
||||
#. module: product_margin
|
||||
#: code:addons/product_margin/wizard/product_margin.py:73
|
||||
#: model:ir.actions.act_window,name:product_margin.product_margin_act_window
|
||||
#: model:ir.ui.menu,name:product_margin.menu_action_product_margin
|
||||
#: view:product.product:0
|
||||
#, python-format
|
||||
msgid "Product Margins"
|
||||
msgstr "የእቃው አይነት በአንድ መጠን ሲጨምር"
|
||||
|
||||
#. module: product_margin
|
||||
#: field:product.product,purchase_avg_price:0
|
||||
#: field:product.product,sale_avg_price:0
|
||||
msgid "Avg. Unit Price"
|
||||
msgstr "የእቃዎች መካከለኛ ዋጋ"
|
||||
|
||||
#. module: product_margin
|
||||
#: field:product.product,sale_num_invoiced:0
|
||||
msgid "# Invoiced in Sale"
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: view:product.product:0
|
||||
msgid "Catalog Price"
|
||||
msgstr "ቅናሽ ዋጋ"
|
||||
|
||||
#. module: product_margin
|
||||
#: selection:product.margin,invoice_state:0
|
||||
#: selection:product.product,invoice_state:0
|
||||
msgid "Paid"
|
||||
msgstr "ተከፈል"
|
||||
|
||||
#. module: product_margin
|
||||
#: view:product.product:0
|
||||
#: field:product.product,sales_gap:0
|
||||
msgid "Sales Gap"
|
||||
msgstr "የሽያጭ ክፍተት"
|
||||
|
||||
#. module: product_margin
|
||||
#: help:product.product,sales_gap:0
|
||||
msgid "Expected Sale - Turn Over"
|
||||
msgstr "ሊሸጥ የሚችል እቃ"
|
||||
|
||||
#. module: product_margin
|
||||
#: field:product.product,sale_expected:0
|
||||
msgid "Expected Sale"
|
||||
msgstr "ሊሸጥ የሚችል እቃ"
|
||||
|
||||
#. module: product_margin
|
||||
#: view:product.product:0
|
||||
msgid "Standard Price"
|
||||
msgstr "የእቃው መደበኛ ዋጋ"
|
||||
|
||||
#. module: product_margin
|
||||
#: help:product.product,purchase_num_invoiced:0
|
||||
msgid "Sum of Quantity in Supplier Invoices"
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: field:product.product,date_to:0
|
||||
msgid "Margin Date To"
|
||||
msgstr "የእቃው መጠን የጨመረበት ቀን"
|
||||
|
||||
#. module: product_margin
|
||||
#: view:product.product:0
|
||||
msgid "Analysis Criteria"
|
||||
msgstr "የመመዘኛ መስፈርት"
|
||||
|
||||
#. module: product_margin
|
||||
#: view:product.product:0
|
||||
#: field:product.product,total_cost:0
|
||||
msgid "Total Cost"
|
||||
msgstr "አጠቃላይ ዋጋ"
|
||||
|
||||
#. module: product_margin
|
||||
#: help:product.product,normal_cost:0
|
||||
msgid "Sum of Multiplication of Cost price and quantity of Supplier Invoices"
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: field:product.product,expected_margin:0
|
||||
msgid "Expected Margin"
|
||||
msgstr "የሚጠበቅ ጭማሪ"
|
||||
|
||||
#. module: product_margin
|
||||
#: view:product.product:0
|
||||
msgid "#Purchased"
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: help:product.product,expected_margin_rate:0
|
||||
msgid "Expected margin * 100 / Expected Sale"
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: help:product.product,sale_avg_price:0
|
||||
msgid "Avg. Price in Customer Invoices."
|
||||
msgstr "የመካከለኛ ዋጋ ለገዢዎች"
|
||||
|
||||
#. module: product_margin
|
||||
#: help:product.product,purchase_avg_price:0
|
||||
msgid "Avg. Price in Supplier Invoices "
|
||||
msgstr "የመካከለኛ ዋጋ አቅራቢዎች "
|
||||
|
||||
#. module: product_margin
|
||||
#: field:product.margin,invoice_state:0
|
||||
#: field:product.product,invoice_state:0
|
||||
msgid "Invoice State"
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: help:product.product,purchase_gap:0
|
||||
msgid "Normal Cost - Total Cost"
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: help:product.product,sale_expected:0
|
||||
msgid ""
|
||||
"Sum of Multiplication of Sale Catalog price and quantity of Customer Invoices"
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: field:product.product,total_margin:0
|
||||
msgid "Total Margin"
|
||||
msgstr "የሁሉም ዋጋ በአንድ መጠን ሲጨምር"
|
||||
|
||||
#. module: product_margin
|
||||
#: field:product.product,date_from:0
|
||||
msgid "Margin Date From"
|
||||
msgstr "እቃው ከጨመረበት ቀን ጀምሮ"
|
||||
|
||||
#. module: product_margin
|
||||
#: help:product.product,turnover:0
|
||||
msgid ""
|
||||
"Sum of Multiplication of Invoice price and quantity of Customer Invoices"
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: field:product.product,normal_cost:0
|
||||
msgid "Normal Cost"
|
||||
msgstr "መደበኛ ዋጋ"
|
||||
|
||||
#. module: product_margin
|
||||
#: view:product.product:0
|
||||
msgid "Purchases"
|
||||
msgstr "ግዢዎች"
|
||||
|
||||
#. module: product_margin
|
||||
#: field:product.product,purchase_num_invoiced:0
|
||||
msgid "# Invoiced in Purchase"
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: help:product.product,expected_margin:0
|
||||
msgid "Expected Sale - Normal Cost"
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: view:product.margin:0
|
||||
msgid "Properties categories"
|
||||
msgstr "በአይነታቸው መከፍፈል"
|
||||
|
||||
#. module: product_margin
|
||||
#: help:product.product,total_margin_rate:0
|
||||
msgid "Total margin * 100 / Turnover"
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: view:product.margin:0
|
||||
msgid "Open Margins"
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: selection:product.margin,invoice_state:0
|
||||
#: selection:product.product,invoice_state:0
|
||||
msgid "Open and Paid"
|
||||
msgstr "የተከፈተና የትከፈል"
|
||||
|
||||
#. module: product_margin
|
||||
#: view:product.product:0
|
||||
msgid "Sales"
|
||||
msgstr "ሽያጭ"
|
||||
|
||||
#. module: product_margin
|
||||
#: model:ir.model,name:product_margin.model_product_product
|
||||
msgid "Product"
|
||||
msgstr "ውጤት"
|
||||
|
||||
#. module: product_margin
|
||||
#: view:product.margin:0
|
||||
msgid "General Information"
|
||||
msgstr "አጠቃላይ መርጃ"
|
||||
|
||||
#. module: product_margin
|
||||
#: field:product.product,purchase_gap:0
|
||||
msgid "Purchase Gap"
|
||||
msgstr "የግዢ ክፍተት"
|
||||
|
||||
#. module: product_margin
|
||||
#: view:product.margin:0
|
||||
msgid "Cancel"
|
||||
msgstr "መሰረዝ"
|
||||
|
||||
#. module: product_margin
|
||||
#: view:product.product:0
|
||||
msgid "Margins"
|
||||
msgstr "በአንድ መጠን ሲጨምር"
|
||||
|
||||
#. module: product_margin
|
||||
#: help:product.product,sale_num_invoiced:0
|
||||
msgid "Sum of Quantity in Customer Invoices"
|
||||
msgstr ""
|
||||
|
||||
#. module: product_margin
|
||||
#: view:product.margin:0
|
||||
msgid "or"
|
||||
msgstr "ወይም"
|
||||
|
||||
#. module: product_margin
|
||||
#: model:ir.model,name:product_margin.model_product_margin
|
||||
msgid "Product Margin"
|
||||
msgstr "የእቃው መጨመር"
|
||||
@@ -26,43 +26,67 @@ from openerp.addons.web.http import request
|
||||
|
||||
class WebsiteMail(http.Controller):
|
||||
|
||||
def _find_or_create_partner(self, email, context=None):
|
||||
# TDE TODO: FIXME: use mail_thread method
|
||||
@http.route(['/website_mail/follow'], type='json', auth="public", website=True)
|
||||
def website_message_subscribe(self, id=0, object=None, message_is_follower="on", email=False, **post):
|
||||
cr, uid, context = request.cr, request.uid, request.context
|
||||
|
||||
partner_obj = request.registry['res.partner']
|
||||
user_obj = request.registry['res.users']
|
||||
partner_ids = []
|
||||
if email and email != u'false': # post contains stringified booleans
|
||||
partner_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("email", "=", email)], context=request.context)
|
||||
if not partner_ids:
|
||||
partner_ids = [partner_obj.name_create(request.cr, SUPERUSER_ID, email, request.context)[0]]
|
||||
else:
|
||||
partner_ids = [user_obj.browse(request.cr, request.uid, request.uid, request.context).partner_id.id]
|
||||
return partner_ids
|
||||
website = request.registry['website']
|
||||
|
||||
@http.route(['/website_mail/follow/'], type='json', auth="public", website=True)
|
||||
def website_message_subscribe(self, id=0, object=None, message_is_follower="on", email=False, **post):
|
||||
_id = int(id)
|
||||
_message_is_follower = message_is_follower == 'on'
|
||||
_object = request.registry[object]
|
||||
partner_ids = self._find_or_create_partner(email, request.context)
|
||||
|
||||
if _message_is_follower:
|
||||
_object.check_access_rule(request.cr, request.uid, [_id], 'read', request.context)
|
||||
_object.message_unsubscribe(request.cr, SUPERUSER_ID, [_id], partner_ids, context=request.context)
|
||||
# search partner_id
|
||||
public_id = website.get_public_user(cr, uid, context)
|
||||
if uid != public_id:
|
||||
partner_ids = [user_obj.browse(cr, uid, uid, context).partner_id.id]
|
||||
else:
|
||||
_object.check_access_rule(request.cr, request.uid, [_id], 'read', request.context)
|
||||
_object.message_subscribe(request.cr, SUPERUSER_ID, [_id], partner_ids, context=request.context)
|
||||
obj = _object.browse(request.cr, request.uid, _id)
|
||||
follower_ids = [p.id for p in obj.message_follower_ids]
|
||||
# mail_thread method
|
||||
partner_ids = _object._find_partner_from_emails(
|
||||
cr, SUPERUSER_ID, _id, [email], context=context, check_followers=True)
|
||||
if not partner_ids or not partner_ids[0]:
|
||||
partner_ids = [partner_obj.create(cr, SUPERUSER_ID, {'name': email, 'email': email}, context=context)]
|
||||
|
||||
return partner_ids[0] in follower_ids and 1 or 0
|
||||
# add or remove follower
|
||||
if _message_is_follower:
|
||||
_object.check_access_rule(cr, uid, [_id], 'read', context)
|
||||
_object.message_unsubscribe(cr, SUPERUSER_ID, [_id], partner_ids, context=context)
|
||||
return False
|
||||
else:
|
||||
_object.check_access_rule(cr, uid, [_id], 'read', context)
|
||||
# add partner to session
|
||||
request.session['partner_id'] = partner_ids[0]
|
||||
_object.message_subscribe(cr, SUPERUSER_ID, [_id], partner_ids, context=context)
|
||||
return True
|
||||
|
||||
@http.route(['/website_mail/is_follower/'], type='json', auth="public", website=True)
|
||||
@http.route(['/website_mail/is_follower'], type='json', auth="public", website=True)
|
||||
def call(self, model, id, **post):
|
||||
email = request.registry['res.users'].browse(request.cr, request.uid, request.uid, request.context).partner_id.email
|
||||
value = request.registry.get(model).read(request.cr, request.uid, [id], ['message_is_follower'], request.context)
|
||||
cr, uid, context = request.cr, request.uid, request.context
|
||||
|
||||
partner_obj = request.registry.get('res.partner')
|
||||
users_obj = request.registry.get('res.users')
|
||||
obj = request.registry.get(model)
|
||||
website = request.registry['website']
|
||||
|
||||
partner_id = None
|
||||
public_id = website.get_public_user(cr, uid, context)
|
||||
if uid != public_id:
|
||||
partner_id = users_obj.browse(cr, SUPERUSER_ID, uid, context).partner_id
|
||||
elif request.session.get('partner_id'):
|
||||
partner_id = partner_obj.browse(cr, SUPERUSER_ID, request.session.get('partner_id'), context)
|
||||
|
||||
email = ""
|
||||
is_follower = False
|
||||
if partner_id:
|
||||
email = partner_id and partner_id.email
|
||||
is_follower = partner_id.id in [
|
||||
fol.id for fol in obj.browse(cr, SUPERUSER_ID, id, context).message_follower_ids]
|
||||
|
||||
return {
|
||||
'email': email,
|
||||
'is_follower': value and value[0]['message_is_follower'] or False
|
||||
'is_user': uid != public_id,
|
||||
'email': email,
|
||||
'is_follower': is_follower
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
.js_follow[data-follow='on'] .js_follow_btn ,
|
||||
.js_follow[data-follow='on'] .js_follow_email,
|
||||
.js_follow[data-follow='off'] .js_unfollow_btn {
|
||||
display: none;
|
||||
}
|
||||
@@ -9,13 +9,14 @@
|
||||
var self = this;
|
||||
|
||||
// set value and display button
|
||||
openerp.jsonRpc('/website_mail/is_follower/', 'call', {
|
||||
self.$target.find("input").removeClass("hidden");
|
||||
openerp.jsonRpc('/website_mail/is_follower', 'call', {
|
||||
model: this.$target.data('object'),
|
||||
id: +this.$target.data('id'),
|
||||
}).always(function (data) {
|
||||
self.$target.find('input.js_follow_email')
|
||||
.val(data.email ? data.email : "")
|
||||
.attr("disabled", data.email.length ? "disabled" : false);
|
||||
.attr("disabled", data.is_follower && data.email.length ? "disabled" : false);
|
||||
self.$target.attr("data-follow", data.is_follower ? 'on' : 'off');
|
||||
self.$target.removeClass("hidden");
|
||||
});
|
||||
@@ -47,8 +48,10 @@
|
||||
'email': $email.length ? $email.val() : false,
|
||||
}).then(function (follow) {
|
||||
if (follow) {
|
||||
self.$target.find(" > *").toggleClass("hidden");
|
||||
self.$target.find(".js_follow_email, .input-group-btn").addClass("hidden");
|
||||
self.$target.find(".alert").removeClass("hidden");
|
||||
}
|
||||
self.$target.find('input.js_follow_email').attr("disabled", follow ? "disabled" : false);
|
||||
self.$target.attr("data-follow", follow ? 'on' : 'off');
|
||||
});
|
||||
},
|
||||
|
||||
@@ -509,8 +509,8 @@
|
||||
class="js_follow_email form-control"
|
||||
placeholder="your email..."/>
|
||||
<span class="input-group-btn">
|
||||
<a href="#" class="btn btn-default js_unfollow_btn">unsubscribe</a>
|
||||
<a href="#" class="btn btn-primary js_follow_btn">subscribe</a>
|
||||
<a href="#" class="btn btn-default js_unfollow_btn">Unsubscribe</a>
|
||||
<a href="#" class="btn btn-primary js_follow_btn">Subscribe</a>
|
||||
</span>
|
||||
<div class="alert alert-success hidden">thanks for your subscription!</div>
|
||||
</div>
|
||||
|
||||
@@ -59,7 +59,7 @@ class MailGroup(http.Controller):
|
||||
domain.append(('parent_id','=',False))
|
||||
thread_count = thread_obj.search_count(cr, uid, domain, context=context)
|
||||
pager = request.website.pager(
|
||||
url='/groups/%s/%s' % (group.id, mode),
|
||||
url='/groups/%s/%s/' % (group.id, mode),
|
||||
total=thread_count,
|
||||
page=page,
|
||||
step=self._thread_per_page,
|
||||
|
||||
@@ -45,13 +45,13 @@
|
||||
<t t-call="website.layout">
|
||||
<section class="container">
|
||||
<div class="row mt8">
|
||||
<div class="col-md-5">
|
||||
<ol class="breadcrumb mb8">
|
||||
<div class="col-md-5 mt16">
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="/groups">Mailing Lists</a></li>
|
||||
<li class="active" t-esc="group.name"/>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<div class="col-md-5 pull-right">
|
||||
<t t-call="website.pager"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user