@@ -129,7 +129,7 @@
Delete
-
Remove from Wall
+
Hide
- Attachment
- Attachments ()
+ 1 Attachment
+ Attachments
diff --git a/addons/marketing_campaign/marketing_campaign_demo.xml b/addons/marketing_campaign/marketing_campaign_demo.xml
index aaf5a98c6bc..54897cd111a 100644
--- a/addons/marketing_campaign/marketing_campaign_demo.xml
+++ b/addons/marketing_campaign/marketing_campaign_demo.xml
@@ -4,7 +4,7 @@
Template for New Partner
- info@tinyerp.com
+ info@openerp.com
Welcome in OpenERP Partner Channel!
${object.email or ''}
@@ -12,7 +12,7 @@
Template for Silver Partner
- info@tinyerp.com
+ info@openerp.com
Congratulation! You become now our Silver Partner.
${object.email or ''}
@@ -21,7 +21,7 @@
Template for Gold Partner
- info@tinyerp.com
+ info@openerp.com
Congratulation! You become our Gold Partner.
${object.email or ''}
diff --git a/addons/marketing_campaign/marketing_campaign_view.xml b/addons/marketing_campaign/marketing_campaign_view.xml
index 6a06cb33f1d..d0823b93ab1 100644
--- a/addons/marketing_campaign/marketing_campaign_view.xml
+++ b/addons/marketing_campaign/marketing_campaign_view.xml
@@ -4,19 +4,14 @@
-
+
+ context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"/>
+ view_type="form"/>
marketing.campaign.form
@@ -43,10 +38,10 @@
+ string="Follow-Up"/>
+ string="Segments"/>
@@ -61,10 +56,10 @@
-
+
-
+
@@ -114,19 +109,15 @@
-
+
-
-
-
-
@@ -146,14 +137,9 @@
-
-
-
+
+
marketing.campaign.segment.form
marketing.campaign.segment
@@ -202,7 +188,7 @@
-
+
@@ -214,23 +200,18 @@
-
-
+
-
-
-
-
@@ -248,16 +229,12 @@
{'group_by': []}
-
+
-
marketing.campaign.activity.form
marketing.campaign.activity
@@ -285,7 +262,7 @@
+ context="{'default_model_id':object_id}"/>
@@ -344,12 +321,7 @@
-
-
+
marketing.campaign.workitem.tree
marketing.campaign.workitem
@@ -358,10 +330,10 @@
-
+
-
+
@@ -414,31 +386,22 @@
search
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
@@ -464,8 +427,7 @@
view_type="form"
view_mode="tree,form"
id="act_marketing_campaing_segment_opened"
- context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"
- />
+ context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"/>
+ view_type="form"/>
+ view_type="form"/>
diff --git a/addons/marketing_campaign/marketing_campaign_workflow.xml b/addons/marketing_campaign/marketing_campaign_workflow.xml
index 4db60dbfa27..ad3fb0ddcca 100644
--- a/addons/marketing_campaign/marketing_campaign_workflow.xml
+++ b/addons/marketing_campaign/marketing_campaign_workflow.xml
@@ -1,16 +1,15 @@
-
-
-
+
+
marketing.campaign.basic
marketing.campaign
True
-
+
True
@@ -32,7 +31,7 @@
function
state_done_set()
-
+
cancel
@@ -41,19 +40,19 @@
state_cancel_set()
-
+
state_running_set
-
+
state_done_set
-
+
@@ -72,15 +71,14 @@
state_draft_set
-
-
+
marketing.campaign.segment.basic
marketing.campaign.segment
True
-
+
True
@@ -102,7 +100,7 @@
function
state_done_set()
-
+
cancel
@@ -111,19 +109,19 @@
-
+
state_running_set
-
+
state_done_set
-
+
@@ -141,5 +139,6 @@
state_draft_set
+
diff --git a/addons/marketing_campaign/report/campaign_analysis_view.xml b/addons/marketing_campaign/report/campaign_analysis_view.xml
index 7b3d848cc8b..30913f1b532 100644
--- a/addons/marketing_campaign/report/campaign_analysis_view.xml
+++ b/addons/marketing_campaign/report/campaign_analysis_view.xml
@@ -31,35 +31,22 @@
search
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
diff --git a/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml b/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml
index 989d11e6ffd..0946ff6e129 100644
--- a/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml
+++ b/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml
@@ -35,7 +35,7 @@
Thanks for showing interest in OpenERP
- info@tinyerp.com
+ info@openerp.com
@@ -45,7 +45,7 @@
Propose to subscribe to the OpenERP Discovery Day on May 2010
- info@tinyerp.com
+ info@openerp.com
@@ -60,7 +60,7 @@
Thanks for subscribing to the OpenERP Discovery Day
- info@tinyerp.com
+ info@openerp.com
@@ -74,7 +74,7 @@
Thanks for buying the OpenERP book
- info@tinyerp.com
+ info@openerp.com
@@ -88,7 +88,7 @@
Propose a free technical training to Gold partners
- info@tinyerp.com
+ info@openerp.com
@@ -102,7 +102,7 @@
Propose paid training to Silver partners
- info@tinyerp.com
+ info@openerp.com
@@ -117,7 +117,7 @@
Propose gold partnership to silver partners
- info@tinyerp.com
+ info@openerp.com
@@ -132,7 +132,7 @@
Thanks for subscribing to technical training
- info@tinyerp.com
+ info@openerp.com
diff --git a/addons/membership/membership.py b/addons/membership/membership.py
index 06b84ec80c5..b75a813f285 100644
--- a/addons/membership/membership.py
+++ b/addons/membership/membership.py
@@ -146,7 +146,7 @@ class membership_line(osv.osv):
'date_to': fields.date('To', readonly=True),
'date_cancel': fields.date('Cancel date'),
'date': fields.date('Join Date', help="Date on which member has joined the membership"),
- 'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Sale Price'), required=True, help='Amount for the membership'),
+ 'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Sale Price'), required=True, help='Amount for the membership'),
'account_invoice_line': fields.many2one('account.invoice.line', 'Account Invoice line', readonly=True),
'account_invoice_id': fields.related('account_invoice_line', 'invoice_id', type='many2one', relation='account.invoice', string='Invoice', readonly=True),
'state': fields.function(_state,
diff --git a/addons/membership/membership_view.xml b/addons/membership/membership_view.xml
index 5eea7170367..a06bcfcce5e 100644
--- a/addons/membership/membership_view.xml
+++ b/addons/membership/membership_view.xml
@@ -13,15 +13,11 @@
-
-
-
-
+
-
-
-
+
+
@@ -171,17 +167,16 @@
-
+
+
-
+
-
-
@@ -288,7 +283,7 @@
-
+
diff --git a/addons/membership/report/report_membership_view.xml b/addons/membership/report/report_membership_view.xml
index 51e1f2499b7..71e1c6f7876 100644
--- a/addons/membership/report/report_membership_view.xml
+++ b/addons/membership/report/report_membership_view.xml
@@ -35,31 +35,23 @@
search
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
search
-
-
-
-
-
-
-
-
+
+
+
+
@@ -206,20 +202,14 @@
search
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
+
+
@@ -311,9 +301,7 @@
-
-
@@ -419,20 +407,14 @@
search
-
-
-
-
-
-
-
+
+
+
-
-
@@ -686,8 +668,8 @@
-
-
+
+
@@ -837,32 +819,22 @@
search
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
diff --git a/addons/mrp/report/mrp_report_view.xml b/addons/mrp/report/mrp_report_view.xml
index eef6c89f702..99571903dde 100644
--- a/addons/mrp/report/mrp_report_view.xml
+++ b/addons/mrp/report/mrp_report_view.xml
@@ -37,8 +37,7 @@
-
-
+
diff --git a/addons/mrp_operations/mrp_operations_view.xml b/addons/mrp_operations/mrp_operations_view.xml
index 2dccc92a51e..4e77100bb95 100644
--- a/addons/mrp_operations/mrp_operations_view.xml
+++ b/addons/mrp_operations/mrp_operations_view.xml
@@ -118,41 +118,30 @@
- mrp.production.workcenter.line.select
- mrp.production.workcenter.line
- search
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ mrp.production.workcenter.line.select
+ mrp.production.workcenter.line
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/mrp_operations/mrp_operations_workflow.xml b/addons/mrp_operations/mrp_operations_workflow.xml
index a728ee6f3a4..8d022558cf9 100644
--- a/addons/mrp_operations/mrp_operations_workflow.xml
+++ b/addons/mrp_operations/mrp_operations_workflow.xml
@@ -1,112 +1,106 @@
- # -----------------------------------------------------------
- # Activities
- # -----------------------------------------------------------
+
mrp.production.workcenter.line.basic
mrp.production.workcenter.line
True
-
-
- True
- draft
- function
- action_draft()
-
-
-
- startworking
- function
- action_start_working()
-
-
-
- cancel
- function
- action_cancel()
-
-
-
- pause
- function
- action_pause()
-
-
-
- resume
- function
- action_resume()
-
-
-
- done
- function
- True
- action_done()
-
+
+
+ True
+ draft
+ function
+ action_draft()
+
+
+
+ startworking
+ function
+ action_start_working()
+
+
+
+ cancel
+ function
+ action_cancel()
+
+
+
+ pause
+ function
+ action_pause()
+
+
+
+ resume
+ function
+ action_resume()
+
+
+
+ done
+ function
+ True
+ action_done()
+
- # -----------------------------------------------------------
- # Transition
- # -----------------------------------------------------------
+
+
+
+
+ button_start_working
+
+
+
+
+ button_done
+
+
+
+
+ button_cancel
+
+
+
+
+ button_draft
+
+
+
+
+ button_cancel
+
+
+
+
+ button_pause
+
-
-
-
- button_start_working
-
-
-
-
- button_done
-
-
-
-
- button_cancel
-
-
-
-
- button_draft
-
-
-
-
- button_cancel
-
-
-
-
- button_pause
-
-
-
-
-
- button_resume
-
-
-
-
-
- button_pause
-
-
-
-
- button_cancel
-
-
-
-
- button_done
-
+
+
+
+ button_resume
+
+
+
+
+ button_pause
+
+
+
+
+ button_cancel
+
+
+
+
+ button_done
+
diff --git a/addons/mrp_operations/report/mrp_workorder_analysis_view.xml b/addons/mrp_operations/report/mrp_workorder_analysis_view.xml
index c84de780ee0..0c9ee4c6726 100644
--- a/addons/mrp_operations/report/mrp_workorder_analysis_view.xml
+++ b/addons/mrp_operations/report/mrp_workorder_analysis_view.xml
@@ -46,32 +46,22 @@
search
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
diff --git a/addons/mrp_repair/i18n/mn.po b/addons/mrp_repair/i18n/mn.po
new file mode 100644
index 00000000000..18991cfec3e
--- /dev/null
+++ b/addons/mrp_repair/i18n/mn.po
@@ -0,0 +1,819 @@
+# Mongolian 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-07-31 11:41+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Mongolian \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-01 04:44+0000\n"
+"X-Generator: Launchpad (build 15719)\n"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Fees Line"
+msgstr "Ажлын хөлсний мөр"
+
+#. module: mrp_repair
+#: help:mrp.repair,state:0
+msgid ""
+" * The 'Draft' state is used when a user is encoding a new and unconfirmed "
+"repair order. \n"
+"* The 'Confirmed' state is used when a user confirms the repair order. "
+" \n"
+"* The 'Ready to Repair' state is used to start to repairing, user can start "
+"repairing only after repair order is confirmed. \n"
+"* The 'To be Invoiced' state is used to generate the invoice before or after "
+"repairing done. \n"
+"* The 'Done' state is set when repairing is completed. \n"
+"* The 'Cancelled' state is used when user cancel repair order."
+msgstr ""
+" * Засварын захиалгыг шинээр оруулж батлаагүй байх үед 'Ноорог' төлөвтэй "
+"байдаг. \n"
+"* Хэрэглэгч засварын захиалгыг батлахад төлөв 'Батлагдсан' болдог.\n"
+"* Засах ажлыг эхлүүлснээр 'Засахад бэлэн' төлөвтэй болдог. Хэрэглэгч зөвхөн "
+"засварын захиалга батлагдсан дараа эхлүүлэх боломжтой. \n"
+"* Засварын өмнө эсвэл хойно нэхэмжлэхээс хамааран 'Нэхэмжлэх' гэсэн төлөв "
+"хэрэглэгддэг. \n"
+"* Засвар дууссан дараа 'Хийгдсэн' төлөвтэй болдог. \n"
+"* Засварын захиалга цуцлагдсан тохиолдолд 'Цуцлагдсан' төлөвтэй болдог."
+
+#. module: mrp_repair
+#: field:mrp.repair.line,move_id:0
+msgid "Inventory Move"
+msgstr "Барааны хөдөлгөөн"
+
+#. module: mrp_repair
+#: model:ir.actions.act_window,help:mrp_repair.action_repair_order_tree
+msgid ""
+"Repair orders allow you to organize your product repairs. In a repair order, "
+"you can detail the components you remove, add or replace and record the time "
+"you spent on the different operations. The repair order uses the warranty "
+"date on the production lot in order to know if whether the repair should be "
+"invoiced to the customer or not."
+msgstr ""
+"Засварын захиалга нь барааны засварыг зохион байгуулах боломжийг олгодог. "
+"Засварын захиалгад хасах, нэмэх, солих бүрэлдхүүнийг хөтлөх, мөн ажиллагааг "
+"хийхэд зарцуулсан цагийг хөтлөх боломжтой. Засварын захиалга нь "
+"үйлдвэрлэлийн цувралын баталгааны хугацааг ашиглан захиалагчийг нэхэмжлэх "
+"эсэхиээ шийддэг."
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Group By..."
+msgstr "Бүлэглэх..."
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Recreate Invoice"
+msgstr "Дахин нэхэмжлэл үүсгэх"
+
+#. module: mrp_repair
+#: help:mrp.repair,deliver_bool:0
+msgid ""
+"Check this box if you want to manage the delivery once the product is "
+"repaired. If cheked, it will create a picking with selected product. Note "
+"that you can select the locations in the Info tab, if you have the extended "
+"view."
+msgstr ""
+"Бараа засагдсан дараа хүргэлтийг менеж хийхээр бол үүнийг тэмдэглэнэ. Хэрэв "
+"тэмдгэлэгдсэн бол сонгосон барааны бэлтгэлт үүсгэгдэнэ."
+
+#. module: mrp_repair
+#: model:ir.actions.act_window,name:mrp_repair.action_cancel_repair
+#: view:mrp.repair.cancel:0
+msgid "Cancel Repair Order"
+msgstr "Засварын захиалгыг цуцлах"
+
+#. module: mrp_repair
+#: field:mrp.repair.fee,to_invoice:0
+#: field:mrp.repair.line,to_invoice:0
+msgid "To Invoice"
+msgstr "Нэхэмжлэх"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Printing Date"
+msgstr "Хэвлэх огноо"
+
+#. module: mrp_repair
+#: field:mrp.repair.make_invoice,group:0
+msgid "Group by partner invoice address"
+msgstr "Захиалагчийн нэхэмжлэх хаягаар бүлэглэх"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:435
+#, python-format
+msgid "No product defined on Fees!"
+msgstr "Ажлын хөлс дээр бараа тодорхойлогдоогүй байна!"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+#: field:mrp.repair,company_id:0
+msgid "Company"
+msgstr "Компани"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Set to Draft"
+msgstr "Ноороглох"
+
+#. module: mrp_repair
+#: selection:mrp.repair,state:0
+msgid "Invoice Exception"
+msgstr "Нэхэмжлэлийн сондгойрол"
+
+#. module: mrp_repair
+#: field:mrp.repair,address_id:0
+msgid "Delivery Address"
+msgstr "Хургэх Хаяг"
+
+#. module: mrp_repair
+#: model:ir.actions.act_window,name:mrp_repair.act_mrp_repair_invoice
+#: model:ir.model,name:mrp_repair.model_mrp_repair_make_invoice
+#: view:mrp.repair:0
+msgid "Make Invoice"
+msgstr "Нэхэмжлэл үүсгэх"
+
+#. module: mrp_repair
+#: field:mrp.repair.fee,price_subtotal:0
+#: field:mrp.repair.line,price_subtotal:0
+msgid "Subtotal"
+msgstr "Дэд дүн"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Invoice address :"
+msgstr "Нэхэмжлэх хаяг :"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+#: field:mrp.repair,guarantee_limit:0
+msgid "Guarantee limit"
+msgstr "Баталгааны хязгаар"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Notes"
+msgstr "Тэмдэглэл"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+#: field:mrp.repair,amount_tax:0
+#: field:mrp.repair.fee,tax_id:0
+#: field:mrp.repair.line,tax_id:0
+msgid "Taxes"
+msgstr "Татвар"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Net Total :"
+msgstr "Цэвэр дүн :"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:435
+#, python-format
+msgid "Warning !"
+msgstr "Анхааруулга !"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Tax"
+msgstr ""
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Operations"
+msgstr "Ажиллагаанууд"
+
+#. module: mrp_repair
+#: field:mrp.repair,move_id:0
+msgid "Move"
+msgstr "Хөдөлгөөн"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:370
+#, python-format
+msgid "You have to select a Partner Invoice Address in the repair form !"
+msgstr "Засварын маягтад харилцагчийн нэхэмжлэх хаягийг сонгох хэрэгтэй !"
+
+#. module: mrp_repair
+#: model:ir.actions.act_window,name:mrp_repair.action_repair_order_tree
+#: model:ir.ui.menu,name:mrp_repair.menu_repair_order
+msgid "Repair Orders"
+msgstr "Засварын захиалгууд"
+
+#. module: mrp_repair
+#: model:ir.actions.report.xml,name:mrp_repair.report_mrp_repair
+msgid "Quotation / Order"
+msgstr "Үнийн санал / Захиалга"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:337
+#, python-format
+msgid "Warning"
+msgstr "Анхааруулга"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Extra Info"
+msgstr "Нэмэлт мэдээлэл"
+
+#. module: mrp_repair
+#: field:mrp.repair.fee,repair_id:0
+#: field:mrp.repair.line,repair_id:0
+msgid "Repair Order Reference"
+msgstr "Засварын Захиалгын Код"
+
+#. module: mrp_repair
+#: selection:mrp.repair.line,state:0
+msgid "Draft"
+msgstr "Ноорог"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:384
+#, python-format
+msgid "No account defined for partner \"%s\"."
+msgstr "\"%s\" харилцагчид данс тодорхойлогдоогүй байна."
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+#: selection:mrp.repair,state:0
+#: selection:mrp.repair.line,state:0
+msgid "Confirmed"
+msgstr "Батлагдсан"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Repairs order"
+msgstr "Засварын захиалга"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Repair Order N° :"
+msgstr "Засварын Захиалга № :"
+
+#. module: mrp_repair
+#: field:mrp.repair,prodlot_id:0
+#: field:mrp.repair.line,prodlot_id:0
+#: report:repair.order:0
+msgid "Lot Number"
+msgstr "Цувралын Дугаар"
+
+#. module: mrp_repair
+#: field:mrp.repair,fees_lines:0
+msgid "Fees Lines"
+msgstr "Ажлын хөлсний мөрүүд"
+
+#. module: mrp_repair
+#: field:mrp.repair.line,type:0
+msgid "Type"
+msgstr "Төрөл"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Fees Line(s)"
+msgstr "Ажлын хөлсний мөрүүд"
+
+#. module: mrp_repair
+#: selection:mrp.repair,state:0
+msgid "To be Invoiced"
+msgstr "Нэхэмжлэх"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Shipping address :"
+msgstr "Хүргэх хаяг :"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:334
+#: code:addons/mrp_repair/mrp_repair.py:384
+#: code:addons/mrp_repair/mrp_repair.py:413
+#: code:addons/mrp_repair/mrp_repair.py:442
+#, python-format
+msgid "Error !"
+msgstr "Алдаа !"
+
+#. module: mrp_repair
+#: field:mrp.repair.line,product_uom_qty:0
+msgid "Quantity (UoM)"
+msgstr "Тоо хэмжээ (х.н)"
+
+#. module: mrp_repair
+#: help:mrp.repair.line,state:0
+msgid ""
+" * The 'Draft' state is set automatically as draft when repair order in "
+"draft state. \n"
+"* The 'Confirmed' state is set automatically as confirm when repair order in "
+"confirm state. \n"
+"* The 'Done' state is set automatically when repair order is completed. "
+" \n"
+"* The 'Cancelled' state is set automatically when user cancel repair order."
+msgstr ""
+" * Засварын захиалгын 'Ноорог' төлөв автоматаар олгогддог. "
+" \n"
+"* Засварын захиалга батлагдахад төлөв 'Батлагдсан' болдог. "
+" \n"
+"* Засварын захиалга дуусахад 'Хийгдсэн' төлөвтэй болдог. "
+" \n"
+"* Хэрэглэгч засварын захиалгыг цуцлахад 'Цуцлагдсан' төлөвтэй болдог."
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Total :"
+msgstr "Нийт :"
+
+#. module: mrp_repair
+#: view:mrp.repair.cancel:0
+msgid ""
+"This operation will cancel the Repair process, but will not cancel it's "
+"Invoice. Do you want to continue?"
+msgstr ""
+"Энэ үйлдэл нь засварын захиалгыг цуцлах боловч үүний нэхэмжлэлийг нь "
+"цуцлахгүй. Та үргэлжлүүлэхийг хүсч байна уу?"
+
+#. module: mrp_repair
+#: field:mrp.repair,pricelist_id:0
+msgid "Pricelist"
+msgstr "Үнийн жагсаалт"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+#: field:mrp.repair,quotation_notes:0
+msgid "Quotation Notes"
+msgstr "Үнийн саналын тэмдэглэл"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/wizard/cancel_repair.py:49
+#, python-format
+msgid "Warning!"
+msgstr "Анхааруулга!"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Search Reair Orders"
+msgstr "Засварын захиалгыг хайх"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "(Add)"
+msgstr "(Нэмэх)"
+
+#. module: mrp_repair
+#: model:ir.model,name:mrp_repair.model_mrp_repair_line
+#: view:mrp.repair:0
+msgid "Repair Line"
+msgstr "Засварын мөр"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+#: field:mrp.repair,partner_id:0
+msgid "Partner"
+msgstr "Харилцагч"
+
+#. module: mrp_repair
+#: field:mrp.repair,invoice_method:0
+msgid "Invoice Method"
+msgstr "Нэхэмжлэх арга"
+
+#. module: mrp_repair
+#: field:mrp.repair,repaired:0
+msgid "Repaired"
+msgstr "Засагдсан"
+
+#. module: mrp_repair
+#: field:mrp.repair.fee,invoice_line_id:0
+#: field:mrp.repair.line,invoice_line_id:0
+msgid "Invoice Line"
+msgstr "Нэхэмжлэлийн мөр"
+
+#. module: mrp_repair
+#: selection:mrp.repair.line,state:0
+msgid "Canceled"
+msgstr "Цуцлагдсан"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:337
+#, python-format
+msgid "Production lot is required for opration line with product '%s'"
+msgstr "'%s' бараатай ажиллагааны үйлдвэрлэлийн цуврал шаардлагатай"
+
+#. module: mrp_repair
+#: selection:mrp.repair,invoice_method:0
+msgid "Before Repair"
+msgstr "Засварын өмнө"
+
+#. module: mrp_repair
+#: field:mrp.repair,location_id:0
+msgid "Current Location"
+msgstr "Одоогийн байрлал"
+
+#. module: mrp_repair
+#: view:mrp.repair.cancel:0
+msgid "Yes"
+msgstr "Тийм"
+
+#. module: mrp_repair
+#: field:mrp.repair,invoiced:0
+#: field:mrp.repair.fee,invoiced:0
+#: field:mrp.repair.line,invoiced:0
+msgid "Invoiced"
+msgstr "Нэхэмжилсэн"
+
+#. module: mrp_repair
+#: view:mrp.repair.cancel:0
+msgid "No"
+msgstr "Үгүй"
+
+#. module: mrp_repair
+#: view:mrp.repair.make_invoice:0
+msgid "Create invoices"
+msgstr "Нэхэмжлэлүүд үүсгэх"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "(Remove)"
+msgstr "(Устгах)"
+
+#. module: mrp_repair
+#: selection:mrp.repair.line,type:0
+msgid "Add"
+msgstr "Нэмэх"
+
+#. module: mrp_repair
+#: view:mrp.repair.make_invoice:0
+msgid "Do you really want to create the invoice(s)?"
+msgstr ""
+
+#. module: mrp_repair
+#: field:mrp.repair,name:0
+msgid "Repair Reference"
+msgstr "Засварын Код"
+
+#. module: mrp_repair
+#: model:ir.model,name:mrp_repair.model_mrp_repair
+msgid "Repair Order"
+msgstr "Засварын Захиалга"
+
+#. module: mrp_repair
+#: selection:mrp.repair,state:0
+msgid "Under Repair"
+msgstr "Засагдаж буй"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Ready To Repair"
+msgstr "Засахад Бэлэн"
+
+#. module: mrp_repair
+#: field:mrp.repair,amount_untaxed:0
+msgid "Untaxed Amount"
+msgstr "Татвар татахгүй дүн"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Guarantee Limit"
+msgstr "Баталгааны Хязгаар"
+
+#. module: mrp_repair
+#: field:mrp.repair,default_address_id:0
+msgid "unknown"
+msgstr "үл мэдэгдэх"
+
+#. module: mrp_repair
+#: field:mrp.repair,product_id:0
+#: report:repair.order:0
+msgid "Product to Repair"
+msgstr "Засах бараа"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "N° :"
+msgstr "№ :"
+
+#. module: mrp_repair
+#: help:mrp.repair,pricelist_id:0
+msgid "The pricelist comes from the selected partner, by default."
+msgstr "Үнийн жасгаалт сонгосон харилцагчаас анхны утгаараа ирнэ."
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Date"
+msgstr "Огноо"
+
+#. module: mrp_repair
+#: model:ir.model,name:mrp_repair.model_mrp_repair_fee
+msgid "Repair Fees Line"
+msgstr "Засварын Ажлын Хөлсний Мөр"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:334
+#, python-format
+msgid "You cannot confirm a repair order which has no line."
+msgstr "Мөр байхгүй засварын захиалгыг батлаж чадахгүй."
+
+#. module: mrp_repair
+#: selection:mrp.repair,state:0
+msgid "Quotation"
+msgstr "Үнийн санал"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Compute"
+msgstr "Тооцоолох"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Confirm Repair"
+msgstr "Засварыг Батлах"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Repair Quotation"
+msgstr "Засварын Үнийн Санал"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "End Repair"
+msgstr "Засварыг Төгсгөх"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:413
+#: code:addons/mrp_repair/mrp_repair.py:442
+#, python-format
+msgid "No account defined for product \"%s\"."
+msgstr "\"%s\" бараанд данс тодорхойлогдоогүй байна."
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Quotations"
+msgstr "Үнийн санал"
+
+#. module: mrp_repair
+#: field:mrp.repair.fee,product_uom_qty:0
+#: report:repair.order:0
+msgid "Quantity"
+msgstr "Тоо хэмжээ"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Start Repair"
+msgstr "Засварыг эхлүүлэх"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+#: field:mrp.repair,state:0
+#: field:mrp.repair.line,state:0
+msgid "State"
+msgstr "Төлөв"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Qty"
+msgstr "Тоо хэмжээ"
+
+#. module: mrp_repair
+#: field:mrp.repair.fee,price_unit:0
+#: field:mrp.repair.line,price_unit:0
+#: report:repair.order:0
+msgid "Unit Price"
+msgstr "Нэгж үнэ"
+
+#. module: mrp_repair
+#: selection:mrp.repair,state:0
+#: selection:mrp.repair.line,state:0
+msgid "Done"
+msgstr "Хийгдсэн"
+
+#. module: mrp_repair
+#: help:mrp.repair,guarantee_limit:0
+msgid ""
+"The guarantee limit is computed as: last move date + warranty defined on "
+"selected product. If the current date is below the guarantee limit, each "
+"operation and fee you will add will be set as 'not to invoiced' by default. "
+"Note that you can change manually afterwards."
+msgstr ""
+"Баталгааны хязгаар дараах байдлаар тооцоологддог: сүүлийн хөдөлгөөний огноо "
+"+ сонгосон бараанд тодорхойлогдсон баталгаа. Хэрэв одоогийн огноо нь "
+"баталгааны хязгаараас бага бол бүх ажиллагаа болон ажлын хөлсүүд нь "
+"'нэхэмжлэгдэхгүй' төлөвтэй болно. Гэхдээ эдгээрийг дараа нь гараараа өөрчлөх "
+"боломжтой."
+
+#. module: mrp_repair
+#: field:mrp.repair,invoice_id:0
+msgid "Invoice"
+msgstr "Нэхэмжлэл"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Fees"
+msgstr "Ажлын хөлс"
+
+#. module: mrp_repair
+#: selection:mrp.repair,state:0
+#: view:mrp.repair.make_invoice:0
+msgid "Cancel"
+msgstr "Цуцлах"
+
+#. module: mrp_repair
+#: field:mrp.repair.line,location_dest_id:0
+msgid "Dest. Location"
+msgstr "Хүрэх байршил"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Operation Line(s)"
+msgstr "Ажиллагааны Мөрүүд"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "History"
+msgstr "Түүх"
+
+#. module: mrp_repair
+#: field:mrp.repair,location_dest_id:0
+msgid "Delivery Location"
+msgstr "Хүргэх Байрлал"
+
+#. module: mrp_repair
+#: help:mrp.repair,invoice_method:0
+msgid ""
+"This field allow you to change the workflow of the repair order. If value "
+"selected is different from 'No Invoice', it also allow you to select the "
+"pricelist and invoicing address."
+msgstr ""
+"Энэ талбар нь засварын захиалгын ажлын урсгалыг өөрчлөх боломжийг олгодог. "
+"Хэрэв сонгосон утга нь 'Нэхэмжлэл үгүй'-с ялгаатай бол үнийн жагсаалт болон "
+"нэхэмжлэх хаягийг сонгох боломжийг мөн олгоно."
+
+#. module: mrp_repair
+#: view:mrp.repair.make_invoice:0
+msgid "Create Invoice"
+msgstr "Нэхэмжлэл үүсгэх"
+
+#. module: mrp_repair
+#: field:mrp.repair.fee,name:0
+#: field:mrp.repair.line,name:0
+#: report:repair.order:0
+msgid "Description"
+msgstr "Тайлбар"
+
+#. module: mrp_repair
+#: field:mrp.repair,operations:0
+msgid "Operation Lines"
+msgstr "Ажиллагааны мөрүүд"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "invoiced"
+msgstr "нэхэмжилсэн"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+#: field:mrp.repair.fee,product_id:0
+#: field:mrp.repair.line,product_id:0
+msgid "Product"
+msgstr "Бараа"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Invoice Corrected"
+msgstr "Нэхэмжлэлийг Зөв Болгосон"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Price"
+msgstr "Үнэ"
+
+#. module: mrp_repair
+#: field:mrp.repair,deliver_bool:0
+msgid "Deliver"
+msgstr "Хүргэлт"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+#: field:mrp.repair,internal_notes:0
+msgid "Internal Notes"
+msgstr "Дотоод тэмдэглэл"
+
+#. module: mrp_repair
+#: report:repair.order:0
+msgid "Taxes:"
+msgstr "Татвар:"
+
+#. module: mrp_repair
+#: field:mrp.repair,picking_id:0
+msgid "Picking"
+msgstr "Бэлтгэл"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Untaxed amount"
+msgstr "Татваргүй дүн"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/wizard/cancel_repair.py:41
+#, python-format
+msgid "Active ID is not Found"
+msgstr "Идэвхтэй ID олдсонгүй"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/wizard/cancel_repair.py:49
+#, python-format
+msgid "Repair order is not invoiced."
+msgstr "Засварын захиалга нэхэмлэгдээгүй."
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Total amount"
+msgstr "Нийт дүн"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "UoM"
+msgstr "Х.Н"
+
+#. module: mrp_repair
+#: selection:mrp.repair.line,type:0
+msgid "Remove"
+msgstr "Хасах"
+
+#. module: mrp_repair
+#: field:mrp.repair.fee,product_uom:0
+#: field:mrp.repair.line,product_uom:0
+msgid "Product UoM"
+msgstr "Барааны х.н"
+
+#. module: mrp_repair
+#: field:mrp.repair,partner_invoice_id:0
+msgid "Invoicing Address"
+msgstr "Нэхэмжлэх Хаяг"
+
+#. module: mrp_repair
+#: selection:mrp.repair,invoice_method:0
+msgid "After Repair"
+msgstr "Засварын Дараа"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "Invoicing"
+msgstr "Нэхэмжлэл"
+
+#. module: mrp_repair
+#: field:mrp.repair.line,location_id:0
+msgid "Source Location"
+msgstr "Эх байрлал"
+
+#. module: mrp_repair
+#: model:ir.model,name:mrp_repair.model_mrp_repair_cancel
+#: view:mrp.repair:0
+msgid "Cancel Repair"
+msgstr "Засвар Цуцлах"
+
+#. module: mrp_repair
+#: selection:mrp.repair,invoice_method:0
+msgid "No Invoice"
+msgstr "Нэхэмлэл үгүй"
+
+#. module: mrp_repair
+#: view:mrp.repair:0
+msgid "States"
+msgstr "Төлөв"
+
+#. module: mrp_repair
+#: help:mrp.repair,partner_id:0
+msgid ""
+"This field allow you to choose the parner that will be invoiced and delivered"
+msgstr ""
+"Энэ талбар нь нэхэмжлэгдэх болон хүргэлт хийгдэх харилцагчийг сонгох "
+"боломжийг олгоно"
+
+#. module: mrp_repair
+#: field:mrp.repair,amount_total:0
+msgid "Total"
+msgstr "Нийт"
+
+#. module: mrp_repair
+#: selection:mrp.repair,state:0
+msgid "Ready to Repair"
+msgstr "Засахад Бэлэн"
+
+#. module: mrp_repair
+#: code:addons/mrp_repair/mrp_repair.py:370
+#, python-format
+msgid "No partner !"
+msgstr "Харилцагч алга !"
+
+#~ msgid "VAT"
+#~ msgstr "НӨАТ"
+
+#~ msgid "Do you really want to create the invoice(s) ?"
+#~ msgstr "Та үнэхээр нэхэмжлэл үүсгэхийг хүсч байна уу ?"
diff --git a/addons/mrp_repair/mrp_repair_view.xml b/addons/mrp_repair/mrp_repair_view.xml
index 34d3ec0482b..24c8a0db2b2 100644
--- a/addons/mrp_repair/mrp_repair_view.xml
+++ b/addons/mrp_repair/mrp_repair_view.xml
@@ -189,30 +189,23 @@
search
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
+
diff --git a/addons/multi_company/res_company_view.xml b/addons/multi_company/res_company_view.xml
index 169f42d640e..5ea323175e6 100644
--- a/addons/multi_company/res_company_view.xml
+++ b/addons/multi_company/res_company_view.xml
@@ -51,9 +51,8 @@
-
-
-
+
+
diff --git a/addons/point_of_sale/__openerp__.py b/addons/point_of_sale/__openerp__.py
index 9a39871f0c0..9d985d40408 100644
--- a/addons/point_of_sale/__openerp__.py
+++ b/addons/point_of_sale/__openerp__.py
@@ -25,7 +25,7 @@
'version': '1.0.1',
'category': 'Point Of Sale',
"sequence": 6,
- "summary": "Touchscreen to Manage your Shop",
+ "summary": "Touchscreen Interface for Shops",
'description': """
This module provides a quick and easy sale process.
===================================================
diff --git a/addons/point_of_sale/account_statement_view.xml b/addons/point_of_sale/account_statement_view.xml
index 3b3542bb777..8568c8d60d9 100644
--- a/addons/point_of_sale/account_statement_view.xml
+++ b/addons/point_of_sale/account_statement_view.xml
@@ -27,21 +27,13 @@
search
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
@@ -54,22 +46,14 @@
search
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
diff --git a/addons/point_of_sale/point_of_sale_view.xml b/addons/point_of_sale/point_of_sale_view.xml
index f088270f8bf..071a1c91b97 100644
--- a/addons/point_of_sale/point_of_sale_view.xml
+++ b/addons/point_of_sale/point_of_sale_view.xml
@@ -139,24 +139,19 @@
-
-
-
-
-
-
+
@@ -835,12 +830,10 @@
search
+
-
-
-
@@ -985,15 +978,12 @@
search
-
-
-
-
-
+
+
+
+
-
-
@@ -1032,27 +1022,22 @@
search
+
+
-
-
-
-
-
-
-
-
+
diff --git a/addons/point_of_sale/report/pos_order_report_view.xml b/addons/point_of_sale/report/pos_order_report_view.xml
index 00e0eb91f2f..e103fe4e6c0 100644
--- a/addons/point_of_sale/report/pos_order_report_view.xml
+++ b/addons/point_of_sale/report/pos_order_report_view.xml
@@ -34,41 +34,24 @@
search
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
diff --git a/addons/point_of_sale/security/point_of_sale_security.xml b/addons/point_of_sale/security/point_of_sale_security.xml
index 7f2e91f1b48..6e38321cbe2 100644
--- a/addons/point_of_sale/security/point_of_sale_security.xml
+++ b/addons/point_of_sale/security/point_of_sale_security.xml
@@ -13,5 +13,11 @@
+
+ Point Of Sale Order
+
+
+ [('company_id', '=', user.company_id.id)]
+
diff --git a/addons/portal/__openerp__.py b/addons/portal/__openerp__.py
index 70791995958..6dd22a46ca2 100644
--- a/addons/portal/__openerp__.py
+++ b/addons/portal/__openerp__.py
@@ -22,18 +22,20 @@
{
'name' : "Portal",
'version' : "1.0",
- 'depends' : ["base", "share"],
+ 'depends' : ["base", "share", "anonymous"],
'author' : "OpenERP SA",
'category': 'Portal',
'description': """
-This module defines 'portals' to customize the access to your OpenERP database for external users.
-==================================================================================================
+Customize access to your OpenERP database to external users by creating portals.
-A portal defines customized user menu and access rights for a group of users
-(the ones associated to that portal). It also associates user groups to the
-portal users (adding a group in the portal automatically adds it to the portal
-users). That feature is very handy when used in combination with the
-module 'share'.
+A portal defines a specific user menu and access rights for its members. This
+menu can ben seen by portal members, anonymous users and any other user that
+have the access to technical features (e.g. the administrator).
+Also, each portal member is linked to a specific partner.
+
+The module also associates user groups to the portal users (adding a group in
+the portal automatically adds it to the portal users, etc). That feature is
+very handy when used in combination with the module 'share'.
""",
'website': 'http://www.openerp.com',
'data': [
diff --git a/addons/portal/portal.py b/addons/portal/portal.py
index 399377e8ccc..2c8b2db587d 100644
--- a/addons/portal/portal.py
+++ b/addons/portal/portal.py
@@ -32,7 +32,7 @@ class portal(osv.osv):
_name = 'res.portal'
_description = 'Portal'
_inherits = {'res.groups': 'group_id'}
-
+
_columns = {
'group_id': fields.many2one('res.groups', required=True, ondelete='cascade',
string='Group',
@@ -53,40 +53,40 @@ class portal(osv.osv):
string='Widgets',
help='Widgets assigned to portal users'),
}
-
+
def copy(self, cr, uid, id, values, context=None):
""" override copy(): menu_action_id must be different """
values['menu_action_id'] = None
return super(portal, self).copy(cr, uid, id, values, context)
-
+
def create(self, cr, uid, values, context=None):
""" extend create() to assign the portal menu to users """
if context is None:
context = {}
-
+
# create portal (admin should not be included)
context['noadmin'] = True
portal_id = super(portal, self).create(cr, uid, values, context)
-
+
# assign menu action and widgets to users
if values.get('users') or values.get('menu_action_id'):
self._assign_menu(cr, uid, [portal_id], context)
if values.get('users') or values.get('widget_ids'):
self._assign_widgets(cr, uid, [portal_id], context)
-
+
return portal_id
-
+
def write(self, cr, uid, ids, values, context=None):
""" extend write() to reflect changes on users """
# first apply portal changes
super(portal, self).write(cr, uid, ids, values, context)
-
+
# assign menu action and widgets to users
if values.get('users') or values.get('menu_action_id'):
self._assign_menu(cr, uid, ids, context)
if values.get('users') or values.get('widget_ids'):
self._assign_widgets(cr, uid, ids, context)
-
+
# if parent_menu_id has changed, apply the change on menu_action_id
if 'parent_menu_id' in values:
act_window_obj = self.pool.get('ir.actions.act_window')
@@ -95,7 +95,7 @@ class portal(osv.osv):
if action_ids:
action_values = {'domain': [('parent_id', '=', values['parent_menu_id'])]}
act_window_obj.write(cr, uid, action_ids, action_values, context)
-
+
return True
def _assign_menu(self, cr, uid, ids, context=None):
@@ -131,26 +131,26 @@ portal()
class portal_override_menu(osv.osv):
"""
- extend res.portal with a boolean field 'Override Users Menu', that
+ Extend res.portal with a boolean field 'Override Users Menu', that
triggers the creation or removal of menu_action_id
"""
_name = 'res.portal'
_inherit = 'res.portal'
-
+
def _get_override_menu(self, cr, uid, ids, field_name, arg, context=None):
assert field_name == 'override_menu'
result = {}
for p in self.browse(cr, uid, ids, context):
result[p.id] = bool(p.menu_action_id)
return result
-
+
def _set_override_menu(self, cr, uid, id, field_name, field_value, arg, context=None):
assert field_name == 'override_menu'
if field_value:
self.create_menu_action(cr, uid, id, context)
else:
self.write(cr, uid, [id], {'menu_action_id': False}, context)
-
+
def create_menu_action(self, cr, uid, id, context=None):
""" create, if necessary, a menu action that opens the menu items below
parent_menu_id """
@@ -169,7 +169,7 @@ class portal_override_menu(osv.osv):
}
action_id = actions_obj.create(cr, uid, action_values, context)
self.write(cr, uid, [id], {'menu_action_id': action_id}, context)
-
+
_columns = {
'override_menu': fields.function(
_get_override_menu, fnct_inv=_set_override_menu,
diff --git a/addons/portal/portal_data.xml b/addons/portal/portal_data.xml
index 2cba3a1945a..74e08bc5343 100644
--- a/addons/portal/portal_data.xml
+++ b/addons/portal/portal_data.xml
@@ -1,13 +1,42 @@
-
+
Portal
-
-
+
+
+
+ Company's news feed
+
+
+
+ News
+ mail.group
+
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/portal/portal_demo.xml b/addons/portal/portal_demo.xml
index 1776493eb32..e5b5ea2fe70 100644
--- a/addons/portal/portal_demo.xml
+++ b/addons/portal/portal_demo.xml
@@ -2,18 +2,58 @@
-
+
+
Demo Portal User
portal
portal
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ODdBREI1PC94bXBNTTpJbnN0YW5jZUlEPgogIDx4bXBNTTpEb2N1bWVudElEIHJkZjpyZXNvdXJjZT0neG1wLmRpZDoyMTUxMUFDRjU4NzBFMDExQjE4OEJBMDcwREM1NDg5MicgLz4KICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6MjE1MTFBQ0Y1ODcwRTAxMUIxODhCQTA3MERDNTQ4OTI8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICA8eG1wTU06SGlzdG9yeT4KICAgPHJkZjpTZXE+CiAgIDwvcmRmOlNlcT4KICA8L3htcE1NOkhpc3Rvcnk+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOmRjPSdodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyc+CiAgPGRjOmZvcm1hdD5pbWFnZS9qcGVnPC9kYzpmb3JtYXQ+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOnBob3Rvc2hvcD0naHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyc+CiAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiB4bWxuczp0aWZmPSdodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyc+CiAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgPHRpZmY6TmF0aXZlRGlnZXN0PjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgzLDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyO0Q1MDVBNEM2MDlBQzIyNUVGMzcwM0UwMTE0NkQ4RTYzPC90aWZmOk5hdGl2ZURpZ2VzdD4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24geG1sbnM6ZXhpZj0naHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8nPgogIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zNzA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogIDxleGlmOk5hdGl2ZURpZ2VzdD4zNjg2NCw0MDk2MCw0MDk2MSwzNzEyMSwzNzEyMiw0MDk2Miw0MDk2MywzNzUxMCw0MDk2NCwzNjg2NywzNjg2OCwzMzQzNCwzMzQzNywzNDg1MCwzNDg1MiwzNDg1NSwzNDg1NiwzNzM3NywzNzM3OCwzNzM3OSwzNzM4MCwzNzM4MSwzNzM4MiwzNzM4MywzNzM4NCwzNzM4NSwzNzM4NiwzNzM5Niw0MTQ4Myw0MTQ4NCw0MTQ4Niw0MTQ4Nyw0MTQ4OCw0MTQ5Miw0MTQ5Myw0MTQ5NSw0MTcyOCw0MTcyOSw0MTczMCw0MTk4NSw0MTk4Niw0MTk4Nyw0MTk4OCw0MTk4OSw0MTk5MCw0MTk5MSw0MTk5Miw0MTk5Myw0MTk5NCw0MTk5NSw0MTk5Niw0MjAxNiwwLDIsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMjAsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMzA7MTM3NUU3MDc1MjVBMTE0RjBBRkNBNzg4RTM2QzAyN0I8L2V4aWY6TmF0aXZlRGlnZXN0PgogPC9yZGY6RGVzY3JpcHRpb24+Cgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSdyJz8+Cv/iDFhJQ0NfUFJPRklM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
-
+
+
-
+
+
+
+
+
+ Our first company's blogpost !
+ mail.group
+
+ html
+ sit amet, consectetur adipiscing elit. Pellentesque et quam sapien, in sagittis tellus.
+Praesent vel massa sed massa consequat egestas in tristique orci. Praesent iaculis libero et neque vehicula iaculis. Vivamus placerat tincidunt orci ac ornare. Proin ut dolor fringilla velit ultricies consequat. Maecenas sit amet ipsum non leo interdum imperdiet. Donec sapien mi.
+
+Fusce tempus elit volutpat mi auctor adipiscing. Nam congue luctus suscipit. Sed tellus libero, venenatis ut mollis ut, luctus quis dui. Sed rhoncus pulvinar orci in consectetur.
+
+Nulla turpis leo, rhoncus ut egestas sit amet, consectetur vitae urna. Mauris in dolor in sapien tempus vehicula.]]>
+ comment
+
+
+
+
+
+
diff --git a/addons/portal/portal_view.xml b/addons/portal/portal_view.xml
index 794c8ed788b..c8db077edc7 100644
--- a/addons/portal/portal_view.xml
+++ b/addons/portal/portal_view.xml
@@ -2,21 +2,6 @@
-
-
- Portals
- res.portal
- form
- tree,form
-
- {'form_view_ref': 'portal.portal_form_view'}
-
-A portal helps defining specific views and rules for a group of users (the
-portal group). A portal menu, widgets and specific groups may be assigned to
-the portal's users.
-
-
-
Portal List
@@ -28,7 +13,6 @@ the portal's users.
-
Portal Form
@@ -63,42 +47,23 @@ the portal's users.
-
-
- Company's news feed
+
+
+ Portals
+ res.portal
+ form
+ tree,form
+
+ {'form_view_ref': 'portal.portal_form_view'}
+
+A portal helps defining specific views and rules for a group of users (the
+portal group). A portal menu, widgets and specific groups may be assigned to
+the portal's users.
+
-
-
- News
- mail.group
-
- form
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/portal/res_user.py b/addons/portal/res_user.py
index 127c3079b29..9ed95a8a740 100644
--- a/addons/portal/res_user.py
+++ b/addons/portal/res_user.py
@@ -30,7 +30,5 @@ class res_users(osv.osv):
string='Related Partner'),
}
-res_users()
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/portal/res_user_view.xml b/addons/portal/res_user_view.xml
index 492c2ec5559..d481b865b79 100644
--- a/addons/portal/res_user_view.xml
+++ b/addons/portal/res_user_view.xml
@@ -1,6 +1,7 @@
+
res.portal.users.form
@@ -13,5 +14,6 @@
+
diff --git a/addons/portal/security/portal_security.xml b/addons/portal/security/portal_security.xml
index 37e94581d77..4a493204d67 100644
--- a/addons/portal/security/portal_security.xml
+++ b/addons/portal/security/portal_security.xml
@@ -1,11 +1,11 @@
-
+
-
+
Portal Member
- Portal members can access information provided by the portal menu and the others module it's linked with. Also, portal members are chrooted in a specific menu.
+ Portal members can access information through the portal menu. Also, they are chrooted in this specific menu.
diff --git a/addons/portal_claim/__openerp__.py b/addons/portal_claim/__openerp__.py
index 9fba57ba9ac..197227cc45f 100644
--- a/addons/portal_claim/__openerp__.py
+++ b/addons/portal_claim/__openerp__.py
@@ -26,15 +26,15 @@
'category': 'Tools',
'complexity': "easy",
'description': """
-This module adds claim menu and features to your portal if claim and portal are
+This module adds claim menu and features to your portal if claim and portal are
installed.
""",
'author': 'OpenERP SA',
'depends': ['crm_claim','portal'],
'data': [
- 'security/portal_security.xml',
'portal_claim_view.xml',
- "security/ir.model.access.csv",
+ 'security/ir.model.access.csv',
+ 'security/portal_security.xml',
],
'installable': True,
'auto_install':True,
diff --git a/addons/portal_claim/security/portal_security.xml b/addons/portal_claim/security/portal_security.xml
index feff94ed43c..e902bd043ad 100644
--- a/addons/portal_claim/security/portal_security.xml
+++ b/addons/portal_claim/security/portal_security.xml
@@ -3,7 +3,7 @@
- Personal Claims
+ Portal Personal Claims
[('partner_id','child_of',user.partner_id.id)]
diff --git a/addons/portal_crm/__openerp__.py b/addons/portal_crm/__openerp__.py
index 044f3280ce3..4fe023ccb48 100644
--- a/addons/portal_crm/__openerp__.py
+++ b/addons/portal_crm/__openerp__.py
@@ -26,18 +26,20 @@
'category': 'Tools',
'complexity': "easy",
'description': """
-This module adds crm menu and features (contact form) to your portal if crm and
-portal are installed.
+This module adds a contact page (with a contact form creating a lead when
+submitted) to your portal if crm and portal are installed.
""",
'author': 'OpenERP SA',
'depends': ['crm','portal'],
'data': [
- 'security/ir.model.access.csv',
'wizard/contact_view.xml',
],
- 'installable': True,
- 'auto_install':True,
+ 'installable': True
+, 'auto_install':True,
'category':'Hidden',
+ 'css': [
+ 'static/src/css/portal_crm.css',
+ ],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/portal_crm/security/ir.model.access.csv b/addons/portal_crm/security/ir.model.access.csv
deleted file mode 100644
index 08145a00f54..00000000000
--- a/addons/portal_crm/security/ir.model.access.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-
diff --git a/addons/portal_crm/static/src/css/portal_crm.css b/addons/portal_crm/static/src/css/portal_crm.css
new file mode 100644
index 00000000000..0589eb92e71
--- /dev/null
+++ b/addons/portal_crm/static/src/css/portal_crm.css
@@ -0,0 +1,42 @@
+ /* Root container */
+.openerp .oe_portal_crm_contact {
+ width: 800px;
+ margin: auto;
+ padding: 8px 0 0 0;
+}
+
+/* Contact form section */
+.openerp .oe_portal_crm_contact .oe_portal_crm_contact_form {
+ margin-right: 10px;
+}
+.openerp .oe_portal_crm_contact .oe_portal_crm_contact_form input[type="text"] {
+ width: 40%;
+}
+
+/* Offices list section */
+.openerp .oe_portal_crm_contact .oe_portal_crm_office {
+ background: #DDD;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
+ -o-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
+ -box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
+}
+.openerp .oe_portal_crm_contact .oe_portal_crm_office * {
+ background: transparent !important;
+}
+.openerp .oe_portal_crm_contact .oe_portal_crm_office .oe_fold_column.oe_kanban_record {
+ float: none;
+ display: block;
+ width: 100%;
+ margin-bottom: 5px;
+ padding: 5px;
+}
+.openerp .oe_portal_crm_contact .oe_portal_crm_office li:last-child {
+ margin-bottom: 1em;
+}
+.openerp .oe_portal_crm_contact .oe_portal_crm_office ul:last-child li:last-child {
+ margin-bottom: 0;
+}
diff --git a/addons/portal_crm/wizard/contact.py b/addons/portal_crm/wizard/contact.py
index be21decafa9..505bb62bb16 100644
--- a/addons/portal_crm/wizard/contact.py
+++ b/addons/portal_crm/wizard/contact.py
@@ -1,33 +1,90 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2011 OpenERP S.A ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
from openerp.osv import osv, fields
+from openerp import SUPERUSER_ID
class crm_contact_us(osv.TransientModel):
""" Create new leads through the "contact us" form """
_name = 'portal_crm.crm_contact_us'
_description = 'Contact form for the portal'
_inherit = 'crm.lead'
+ _columns = {
+ 'company_ids' : fields.many2many('res.company', string='Companies', readonly=True),
+ }
+
+ def _get_companies(self, cr, uid, context=None):
+ """
+ Fetch companies in order to display them in the wizard view
+
+ @return a list of ids of the companies
+ """
+ r = self.pool.get('res.company').search(cr, uid, [], context=context)
+ return r
+
+ def _get_current_user_email(self, cr, uid, context=None):
+ """
+ If the user is logged in (i.e. not anonymous), get the user's email to
+ pre-fill the email_from field.
+
+ @return current user's email if the user isn't "anonymous", None otherwise
+ """
+ user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+
+ if (user.login != 'anonymous'):
+ return user.user_email
+ else:
+ return None
+
+ _defaults = {
+ 'email_from' : _get_current_user_email,
+ 'company_ids' : _get_companies,
+ }
def create(self, cr, uid, values, context=None):
- """
- Since they potentially sensitive, we don't want any user to be able to
- read datas generated through this module. That's why we'll write those
- information in the crm.lead table and leave blank entries in the
- portal_crm.crm_contact_us table. This is why the create() method is
- overridden.
+ """
+ Since they potentially sensitive, we don't want any user to be able to
+ read datas generated through this module. That's why we'll write those
+ information in the crm.lead table and leave blank entries in the
+ portal_crm.crm_contact_us table. This is why the create() method is
+ overwritten.
"""
crm_lead = self.pool.get('crm.lead')
-
- """
- Because of the complex inheritance of the crm.lead model and the other
- models implied (like mail.thread, among others, that performs a read
- when its create() method is called (in method message_get_subscribers()),
- it is quite complicated to set proper rights for this object.
- Therefore, user #1 will perform the creation until a better workaround
- is figured out.
- """
- crm_lead.create(cr, 1, dict(values,user_id=False), context)
- """ Create an empty record in the portal_crm.crm_contact_us table """
- return super(crm_contact_us, self).create(cr, uid, {})
+ """
+ Because of the complex inheritance of the crm.lead model and the other
+ models implied (like mail.thread, among others, that performs a read
+ when its create() method is called (in method message_get_subscribers()),
+ it is quite complicated to set proper rights for this object.
+ Therefore, user SUPERUSER_ID will perform the creation until a better
+ workaround is figured out.
+ """
+ values['contact_name'] = values['name']
+ crm_lead.create(cr, SUPERUSER_ID, dict(values,user_id=False), context)
+
+ """
+ Create an empty record in the portal_crm.crm_contact_us table.
+ Since the 'name' field is mandatory, give an empty string to avoid an integrity error.
+ """
+ return super(crm_contact_us, self).create(cr, uid, {'name': ' '})
def submit(self, cr, uid, ids, context=None):
""" When the form is submitted, redirect the user to a "Thanks" message """
@@ -36,5 +93,6 @@ class crm_contact_us(osv.TransientModel):
'view_type': 'form',
'res_model': self._name,
'res_id': ids[0],
- 'view_id': self.pool.get('ir.model.data').get_object_reference(cr, uid, 'portal_crm', 'wizard_contact_form_view_thanks')[1]
+ 'view_id': self.pool.get('ir.model.data').get_object_reference(cr, uid, 'portal_crm', 'wizard_contact_form_view_thanks')[1],
+ 'target': 'inline'
}
diff --git a/addons/portal_crm/wizard/contact_view.xml b/addons/portal_crm/wizard/contact_view.xml
index 904326ea409..96d55722752 100644
--- a/addons/portal_crm/wizard/contact_view.xml
+++ b/addons/portal_crm/wizard/contact_view.xml
@@ -8,16 +8,70 @@
portal_crm.crm_contact_us
form
-
@@ -31,9 +85,9 @@
99
@@ -633,37 +637,28 @@