diff --git a/addons/account/report/account_invoice_report_view.xml b/addons/account/report/account_invoice_report_view.xml index 24723d7fb12..eebc95ae0e2 100644 --- a/addons/account/report/account_invoice_report_view.xml +++ b/addons/account/report/account_invoice_report_view.xml @@ -25,7 +25,7 @@ - + diff --git a/addons/hr/i18n/am.po b/addons/hr/i18n/am.po new file mode 100644 index 00000000000..3b86e0a2a06 --- /dev/null +++ b/addons/hr/i18n/am.po @@ -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 , 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \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 \n" +"Language-Team: Amharic \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 "" +"

\n" +" Click to define a new job position.\n" +"

\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" +"

\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" +"

\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 "" +"

\n" +" Click to add a new employee.\n" +"

\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" +"

\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 "" +"

\n" +" Click to create a department.\n" +"

\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" +"

\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 "" +"

\n" +" Click to define a new department.\n" +"

\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" +"

\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 "" +"
\n" +"

\n" +" Human Resources dashboard is empty.\n" +"

\n" +" To add your first report into this dashboard, go to any\n" +" menu, switch to list or graph view, and click 'Add " +"to\n" +" Dashboard' in the extended search options.\n" +"

\n" +" You can filter and group data before inserting into the\n" +" dashboard using the search options.\n" +"

\n" +"
\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 "" diff --git a/addons/product_margin/i18n/am.po b/addons/product_margin/i18n/am.po new file mode 100644 index 00000000000..c9eea96959e --- /dev/null +++ b/addons/product_margin/i18n/am.po @@ -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 , 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \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 \n" +"Language-Team: Amharic \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 "የእቃው መጨመር" diff --git a/addons/website_mail/controllers/main.py b/addons/website_mail/controllers/main.py index 601e1387f0a..a6b400ec4a1 100644 --- a/addons/website_mail/controllers/main.py +++ b/addons/website_mail/controllers/main.py @@ -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 } diff --git a/addons/website_mail/static/src/css/website_mail.css b/addons/website_mail/static/src/css/website_mail.css index 25d88ebf191..5678442416c 100644 --- a/addons/website_mail/static/src/css/website_mail.css +++ b/addons/website_mail/static/src/css/website_mail.css @@ -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; } \ No newline at end of file diff --git a/addons/website_mail/static/src/js/website_mail.js b/addons/website_mail/static/src/js/website_mail.js index 672a21324a8..bd34b526ddd 100644 --- a/addons/website_mail/static/src/js/website_mail.js +++ b/addons/website_mail/static/src/js/website_mail.js @@ -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'); }); }, diff --git a/addons/website_mail/views/snippets.xml b/addons/website_mail/views/snippets.xml index 196ad39dac8..a930f2852a1 100644 --- a/addons/website_mail/views/snippets.xml +++ b/addons/website_mail/views/snippets.xml @@ -509,8 +509,8 @@ class="js_follow_email form-control" placeholder="your email..."/> - unsubscribe - subscribe + Unsubscribe + Subscribe diff --git a/addons/website_mail_group/controllers/main.py b/addons/website_mail_group/controllers/main.py index a6f3adcd522..fe133434abc 100644 --- a/addons/website_mail_group/controllers/main.py +++ b/addons/website_mail_group/controllers/main.py @@ -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, diff --git a/addons/website_mail_group/views/website_mail_group.xml b/addons/website_mail_group/views/website_mail_group.xml index 9e4b41329b4..fb18ee9f3fd 100644 --- a/addons/website_mail_group/views/website_mail_group.xml +++ b/addons/website_mail_group/views/website_mail_group.xml @@ -45,13 +45,13 @@
-
-