@@ -145,7 +145,7 @@
-
+
diff --git a/addons/mail/__init__.py b/addons/mail/__init__.py
index 92e882ae6d8..abf714ad534 100644
--- a/addons/mail/__init__.py
+++ b/addons/mail/__init__.py
@@ -33,6 +33,7 @@ import report
import wizard
import res_config
import mail_group_menu
+import update
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mail/data/mail_data.xml b/addons/mail/data/mail_data.xml
index 5fe1ee45b1d..522cbe8c7a7 100644
--- a/addons/mail/data/mail_data.xml
+++ b/addons/mail/data/mail_data.xml
@@ -13,6 +13,20 @@
+
+ Update Notification
+
+
+ 1
+ weeks
+ -1
+
+
+
+
+ 1000
+
+
comment
diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py
index bbf68509277..9c873a31097 100644
--- a/addons/mail/mail_message.py
+++ b/addons/mail/mail_message.py
@@ -504,7 +504,7 @@ class mail_message(osv.Model):
if not values.get('message_id') and values.get('res_id') and values.get('model'):
values['message_id'] = tools.generate_tracking_message_id('%(model)s-%(res_id)s' % values)
newid = super(mail_message, self).create(cr, uid, values, context)
- self._notify(cr, 1, newid, context=context)
+ self._notify(cr, SUPERUSER_ID, newid, context=context)
return newid
def read(self, cr, uid, ids, fields=None, context=None, load='_classic_read'):
diff --git a/addons/mail/static/src/js/mail_followers.js b/addons/mail/static/src/js/mail_followers.js
index 953b8cd9fc8..6c016c6c679 100644
--- a/addons/mail/static/src/js/mail_followers.js
+++ b/addons/mail/static/src/js/mail_followers.js
@@ -149,7 +149,6 @@ openerp_mail_followers = function(session, mail) {
var self = this;
var node_user_list = this.$('ul.oe_mail_followers_display').empty();
this.$('div.oe_mail_recthread_followers h4').html(this.options.title + (records.length>=5 ? ' (' + records.length + ')' : '') );
- console.log(records);
for(var i=0; i=", limit_date_str)], count=True)
+ nbr_share_users = False
+ nbr_active_share_users = False
+ if "share" in pool.get("res.users")._all_columns:
+ nbr_share_users = pool.get("res.users").search(cr, uid, [("share", "=", True)], count=True)
+ nbr_active_share_users = pool.get("res.users").search(cr, uid, [("share", "=", True), ("date", ">=", limit_date_str)], count=True)
+ user = pool.get("res.users").browse(cr, uid, uid)
+ msg = {
+ "dbuuid": dbuuid,
+ "nbr_users": nbr_users,
+ "nbr_active_users": nbr_active_users,
+ "nbr_share_users": nbr_share_users,
+ "nbr_active_share_users": nbr_active_share_users,
+ "dbname": cr.dbname,
+ "db_create_date": db_create_date,
+ "version": release.version,
+ "language": user.lang,
+ }
+ msg.update(pool.get("res.company").read(cr,uid,[1],["name","email","phone"])[0])
+
+ add_arg = {"timeout":30} if sys.version_info >= (2,6) else {}
+ arguments = {'arg0': msg, "action": "update",}
+ arguments_raw = urllib.urlencode(arguments)
+
+ url = config.get("publisher_warranty_url")
+ uo = urllib2.urlopen(url, arguments_raw, **add_arg)
+ result = {}
+ try:
+ submit_result = uo.read()
+ result = safe_eval(submit_result)
+ finally:
+ uo.close()
+ return result
+
+class publisher_warranty_contract(osv.osv):
+ _name = "publisher_warranty.contract"
+
+ def update_notification(self, cr, uid, ids, cron_mode=True, context=None):
+ """
+ Send a message to OpenERP's publisher warranty server to check the
+ validity of the contracts, get notifications, etc...
+
+ @param cron_mode: If true, catch all exceptions (appropriate for usage in a cron).
+ @type cron_mode: boolean
+ """
+ try:
+ try:
+ result = get_sys_logs(cr, uid)
+ except Exception:
+ if cron_mode: # we don't want to see any stack trace in cron
+ return False
+ _logger.debug("Exception while sending a get logs messages", exc_info=1)
+ raise osv.except_osv(_("Error"), _("Error during communication with the publisher warranty server."))
+ limit_date = (datetime.datetime.now() - _PREVIOUS_LOG_CHECK).strftime(misc.DEFAULT_SERVER_DATETIME_FORMAT)
+ # old behavior based on res.log; now on mail.message, that is not necessarily installed
+ proxy = self.pool.get('mail.message')
+
+ model, res_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'mail', 'group_all_employees')
+
+ for message in result["messages"]:
+ values = {
+ 'body' : message,
+ 'model' : 'mail.group',
+ 'res_id' : res_id,
+ 'user_id' : False,
+ }
+ proxy.create(cr, uid, values, context=context)
+ except Exception:
+ if cron_mode:
+ return False # we don't want to see any stack trace in cron
+ else:
+ raise
+ return True
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/marketing_campaign/i18n/ar.po b/addons/marketing_campaign/i18n/ar.po
index 141a567ac52..7f7ee498416 100644
--- a/addons/marketing_campaign/i18n/ar.po
+++ b/addons/marketing_campaign/i18n/ar.po
@@ -8,19 +8,19 @@ 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-01-12 05:49+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2012-10-08 15:06+0000\n"
+"Last-Translator: kifcaliph \n"
"Language-Team: Arabic \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 06:38+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-10-09 04:51+0000\n"
+"X-Generator: Launchpad (build 16112)\n"
#. module: marketing_campaign
#: view:marketing.campaign:0
msgid "Manual Mode"
-msgstr ""
+msgstr "النمط اليدوي"
#. module: marketing_campaign
#: field:marketing.campaign.transition,activity_from_id:0
@@ -31,12 +31,12 @@ msgstr "النشاط السابق"
#: code:addons/marketing_campaign/marketing_campaign.py:818
#, python-format
msgid "The current step for this item has no email or report to preview."
-msgstr ""
+msgstr "الخطوة الحالية لهذا الصنف لا تملك بريد إلكتروني أو تقرير للمعاينة"
#. module: marketing_campaign
#: constraint:marketing.campaign.transition:0
msgid "The To/From Activity of transition must be of the same Campaign "
-msgstr ""
+msgstr "الإنتقال من / إلى النشاط يجب أن يكون من نفس الحملة "
#. module: marketing_campaign
#: selection:marketing.campaign.transition,trigger:0
@@ -46,7 +46,7 @@ msgstr "الوقت"
#. module: marketing_campaign
#: selection:marketing.campaign.activity,type:0
msgid "Custom Action"
-msgstr ""
+msgstr "تخصيص إجراء"
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -63,11 +63,13 @@ msgid ""
"reached this point has generated a certain revenue. You can get revenue "
"statistics in the Reporting section"
msgstr ""
+"تعيين الإيرادات المتوقعة إذا كنت ترى أن كل بند من بنود الحملة وصلت الى تلك "
+"النقطة وولدت عائد معين. يمكنك الحصول على إحصاءات الإيرادات في قسم التقارير"
#. module: marketing_campaign
#: field:marketing.campaign.transition,trigger:0
msgid "Trigger"
-msgstr ""
+msgstr "زر"
#. module: marketing_campaign
#: field:campaign.analysis,count:0
@@ -77,7 +79,7 @@ msgstr ""
#. module: marketing_campaign
#: view:marketing.campaign:0
msgid "Campaign Editor"
-msgstr ""
+msgstr "محرر الحملة"
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -106,13 +108,13 @@ msgstr "كائن"
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
msgid "Sync mode: only records created after last sync"
-msgstr ""
+msgstr "نمط المزامنة: السجلات فقط التي تم إنشاؤها بعد آخر المزامنة"
#. module: marketing_campaign
#: model:email.template,body_text:marketing_campaign.email_template_2
msgid ""
"Hello, We are happy to announce that you now become our Silver Partner."
-msgstr ""
+msgstr "مرحبا، ونحن سعداء أن نعلن أنك أصبحت الآن شريكاً فضياً لدينا."
#. module: marketing_campaign
#: view:marketing.campaign:0
@@ -123,7 +125,7 @@ msgstr "حفظ كمسودة"
#. module: marketing_campaign
#: field:marketing.campaign.activity,to_ids:0
msgid "Next Activities"
-msgstr ""
+msgstr "النشاطات التالية"
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
@@ -133,7 +135,7 @@ msgstr "مزامنة"
#. module: marketing_campaign
#: sql_constraint:marketing.campaign.transition:0
msgid "The interval must be positive or zero"
-msgstr ""
+msgstr "الفترة يجب أن تكون إيجابية أو صفر"
#. module: marketing_campaign
#: code:addons/marketing_campaign/marketing_campaign.py:818
@@ -145,7 +147,7 @@ msgstr "لا معاينة"
#: view:marketing.campaign.segment:0
#: field:marketing.campaign.segment,date_run:0
msgid "Launch Date"
-msgstr ""
+msgstr "تاريخ الإنشاء"
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -156,7 +158,7 @@ msgstr "يوم"
#. module: marketing_campaign
#: view:marketing.campaign.activity:0
msgid "Outgoing Transitions"
-msgstr ""
+msgstr "التنقلات الصادرة"
#. module: marketing_campaign
#: view:marketing.campaign.workitem:0
@@ -166,18 +168,18 @@ msgstr "إستعادة"
#. module: marketing_campaign
#: help:marketing.campaign,object_id:0
msgid "Choose the resource on which you want this campaign to be run"
-msgstr ""
+msgstr "اختيار المورد الذي تريده ليتم تشغيله لهذه الحملة"
#. module: marketing_campaign
#: field:marketing.campaign.segment,sync_last_date:0
msgid "Last Synchronization"
-msgstr ""
+msgstr "التزامن الأخير"
#. module: marketing_campaign
#: code:addons/marketing_campaign/marketing_campaign.py:214
#, python-format
msgid "You can not duplicate a campaign, it's not supported yet."
-msgstr ""
+msgstr "لا يمكنك تكرار الحملة، انها غير مدعومة حتى الآن."
#. module: marketing_campaign
#: selection:marketing.campaign.transition,interval_type:0
@@ -189,7 +191,7 @@ msgstr "سنة/سنين"
msgid ""
"Date on which this segment was synchronized last time (automatically or "
"manually)"
-msgstr ""
+msgstr "التاريخ الذي تزامن هذا القطاع آخر مرة (آليا أو يدويا)"
#. module: marketing_campaign
#: selection:campaign.analysis,state:0
@@ -216,11 +218,19 @@ msgid ""
"Normal - the campaign runs normally and automatically sends all emails and "
"reports (be very careful with this mode, you're live!)"
msgstr ""
+"اختبار - وهو يخلق ويعالج كافة الأنشطة مباشرة (دون انتظار تأخير على التحولات) "
+"ولكن لا يرسل رسائل البريد الإلكتروني أو يعد التقارير.\n"
+" اختبار في الوقت الحقيقي - وهو يخلق ويعالج جميع الأنشطة بشكل مباشر ولكن لا "
+"يرسل رسائل البريد الإلكتروني أو يعد التقارير.\n"
+" مع التأكيد اليدوي - يعمل الحملات عادة، ولكن المستخدم لديه للتحقق من صحة كل "
+"بنود العمل يدويا.\n"
+" طبيعي - يعمل الحملة بشكل طبيعي يرسل تلقائيا جميع رسائل البريد الإلكتروني "
+"والتقارير (نكون حذرين للغاية مع هذا الوضع، أنت على الهواء!)"
#. module: marketing_campaign
#: help:marketing.campaign.segment,date_run:0
msgid "Initial start date of this segment."
-msgstr ""
+msgstr "تاريخ بدء الأولي لهذا القطاع."
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -237,7 +247,7 @@ msgstr "حملة"
#. module: marketing_campaign
#: model:email.template,subject:marketing_campaign.email_template_3
msgid "Congratulation! You become our Gold Partner."
-msgstr ""
+msgstr "تهنئة! لقد أصبحت شريكاً ذهبياً الآن."
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -251,7 +261,7 @@ msgstr "قطعة"
#. module: marketing_campaign
#: view:marketing.campaign.activity:0
msgid "Cost / Revenue"
-msgstr ""
+msgstr "التكلفة/العائد"
#. module: marketing_campaign
#: help:marketing.campaign.activity,type:0
@@ -313,7 +323,7 @@ msgstr ""
#. module: marketing_campaign
#: view:campaign.analysis:0
msgid "Marketing Reports"
-msgstr ""
+msgstr "تقارير التسويق"
#. module: marketing_campaign
#: selection:marketing.campaign,state:0
@@ -342,7 +352,7 @@ msgstr ""
#. module: marketing_campaign
#: field:marketing.campaign.segment,sync_mode:0
msgid "Synchronization mode"
-msgstr ""
+msgstr "نمط التزامن"
#. module: marketing_campaign
#: view:marketing.campaign:0
@@ -353,7 +363,7 @@ msgstr ""
#. module: marketing_campaign
#: field:marketing.campaign.activity,from_ids:0
msgid "Previous Activities"
-msgstr ""
+msgstr "النشاطات السابقة"
#. module: marketing_campaign
#: help:marketing.campaign.segment,date_done:0
@@ -363,7 +373,7 @@ msgstr ""
#. module: marketing_campaign
#: view:marketing.campaign.workitem:0
msgid "Marketing Campaign Activities"
-msgstr ""
+msgstr "نشاطات حملة التسويق"
#. module: marketing_campaign
#: view:marketing.campaign.workitem:0
@@ -427,7 +437,7 @@ msgstr ""
#. module: marketing_campaign
#: model:ir.model,name:marketing_campaign.model_marketing_campaign_segment
msgid "Campaign Segment"
-msgstr ""
+msgstr "حملة القطاع"
#. module: marketing_campaign
#: view:marketing.campaign:0
@@ -456,7 +466,7 @@ msgstr ""
#. module: marketing_campaign
#: field:marketing.campaign,fixed_cost:0
msgid "Fixed Cost"
-msgstr ""
+msgstr "التكلفة الثابتة"
#. module: marketing_campaign
#: model:email.template,subject:marketing_campaign.email_template_2
@@ -466,12 +476,12 @@ msgstr ""
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
msgid "Newly Modified"
-msgstr ""
+msgstr "تم التعديل حديثاً"
#. module: marketing_campaign
#: field:marketing.campaign.transition,interval_nbr:0
msgid "Interval Value"
-msgstr ""
+msgstr "قيمة الفترة"
#. module: marketing_campaign
#: field:campaign.analysis,revenue:0
@@ -512,22 +522,22 @@ msgstr ""
#. module: marketing_campaign
#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_followup
msgid "Campaign Follow-up"
-msgstr ""
+msgstr "متابعة الحملة"
#. module: marketing_campaign
#: help:marketing.campaign.activity,email_template_id:0
msgid "The e-mail to send when this activity is activated"
-msgstr ""
+msgstr "بريد إلكتروني للإرسال عندما يتم تنشيط المنشط"
#. module: marketing_campaign
#: view:marketing.campaign:0
msgid "Test Mode"
-msgstr ""
+msgstr "نمط الإختبار"
#. module: marketing_campaign
#: selection:marketing.campaign.segment,sync_mode:0
msgid "Only records modified after last sync (no duplicates)"
-msgstr ""
+msgstr "فقط السجلات المعدلة بعد آخر مزامنة (بدون تكرار)"
#. module: marketing_campaign
#: model:ir.model,name:marketing_campaign.model_ir_actions_report_xml
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index cf203a60c7f..ecac11f856a 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -910,12 +910,11 @@ class mrp_production(osv.osv):
# Internal shipment is created for Stockable and Consumer Products
if production_line.product_id.type not in ('product', 'consu'):
return False
- move_name = _('PROD: %s') % production.name
source_location_id = production.location_src_id.id
if not destination_location_id:
destination_location_id = source_location_id
return stock_move.create(cr, uid, {
- 'name': move_name,
+ 'name': production.name,
'picking_id': shipment_id,
'product_id': production_line.product_id.id,
'product_qty': production_line.product_qty,
@@ -965,9 +964,8 @@ class mrp_production(osv.osv):
stock_move = self.pool.get('stock.move')
source_location_id = production.product_id.product_tmpl_id.property_stock_production.id
destination_location_id = production.location_dest_id.id
- move_name = _('PROD: %s') + production.name
data = {
- 'name': move_name,
+ 'name': production.name,
'date': production.date_planned,
'product_id': production.product_id.id,
'product_qty': production.product_qty,
@@ -990,12 +988,11 @@ class mrp_production(osv.osv):
# Internal shipment is created for Stockable and Consumer Products
if production_line.product_id.type not in ('product', 'consu'):
return False
- move_name = _('PROD: %s') % production.name
destination_location_id = production.product_id.product_tmpl_id.property_stock_production.id
if not source_location_id:
source_location_id = production.location_src_id.id
move_id = stock_move.create(cr, uid, {
- 'name': move_name,
+ 'name': production.name,
'date': production.date_planned,
'product_id': production_line.product_id.id,
'product_qty': production_line.product_qty,
diff --git a/addons/process/static/src/js/process.js b/addons/process/static/src/js/process.js
index 57c6f196012..c593c1569fc 100644
--- a/addons/process/static/src/js/process.js
+++ b/addons/process/static/src/js/process.js
@@ -6,7 +6,6 @@ instance.web.ViewManager.include({
var self = this;
var _super = this._super();
this.process_help = this.action ? this.action.help : '';
- self.process_help = $(this.process_help).text();
if(this.action) {
this.process_model = this.action.res_model;
} else {
@@ -240,9 +239,7 @@ instance.web.ViewManager.include({
title: _t('Process')
});
var form_controller = pop.view_form;
- pop.on_write_completed.add_last(function() {
- self.initialize_process_view();
- });
+ pop.on('on_write_complete', self, self.initialize_process_view);
}
});
};
diff --git a/addons/purchase/i18n/ar.po b/addons/purchase/i18n/ar.po
index 378d405db66..f839347add1 100644
--- a/addons/purchase/i18n/ar.po
+++ b/addons/purchase/i18n/ar.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
-"PO-Revision-Date: 2012-02-08 02:55+0000\n"
+"PO-Revision-Date: 2012-10-08 16:00+0000\n"
"Last-Translator: kifcaliph \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-09-07 04:56+0000\n"
-"X-Generator: Launchpad (build 15914)\n"
+"X-Launchpad-Export-Date: 2012-10-09 04:51+0000\n"
+"X-Generator: Launchpad (build 16112)\n"
#. module: purchase
#: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder0
@@ -45,7 +45,7 @@ msgstr "المقصد"
#: code:addons/purchase/purchase.py:236
#, python-format
msgid "In order to delete a purchase order, it must be cancelled first!"
-msgstr ""
+msgstr "من أجل حذف أمر الشراء، يجب الإلغاء أولاً!"
#. module: purchase
#: help:purchase.report,date:0
@@ -87,7 +87,7 @@ msgstr ""
#. module: purchase
#: view:purchase.order:0
msgid "Approved purchase order"
-msgstr ""
+msgstr "الموافقة على أمر الشراء"
#. module: purchase
#: view:purchase.order:0 field:purchase.order,partner_id:0
@@ -149,7 +149,7 @@ msgstr "لا يوجد قائمة اسعار !"
#. module: purchase
#: model:ir.model,name:purchase.model_purchase_config_wizard
msgid "purchase.config.wizard"
-msgstr ""
+msgstr "شراء.ضبط.صندوق حوار"
#. module: purchase
#: view:board.board:0 model:ir.actions.act_window,name:purchase.purchase_draft
@@ -249,7 +249,7 @@ msgstr "يوم"
#. module: purchase
#: selection:purchase.order,invoice_method:0
msgid "Based on generated draft invoice"
-msgstr ""
+msgstr "على أساس توليد مسودة فاتورة"
#. module: purchase
#: view:purchase.report:0
@@ -259,7 +259,7 @@ msgstr "ترتيب اليوم"
#. module: purchase
#: view:board.board:0
msgid "Monthly Purchases by Category"
-msgstr ""
+msgstr "مشتريات شهرية حسب الفئة"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.action_purchase_line_product_tree
@@ -269,7 +269,7 @@ msgstr "المشتريات"
#. module: purchase
#: view:purchase.order:0
msgid "Purchase order which are in draft state"
-msgstr ""
+msgstr "أمر الشراء التي هي في حالة مسودة"
#. module: purchase
#: view:purchase.order:0
@@ -392,7 +392,7 @@ msgstr "حركة مخزن"
#: code:addons/purchase/purchase.py:419
#, python-format
msgid "You must first cancel all invoices related to this purchase order."
-msgstr ""
+msgstr "يجب عليك أولا إلغاء جميع الفواتير المتعلقة بهذا أمر الشراء."
#. module: purchase
#: field:purchase.report,dest_address_id:0
@@ -436,13 +436,13 @@ msgstr "تم التحقق من الصلاحية عن طريق"
#. module: purchase
#: view:purchase.report:0
msgid "Order in last month"
-msgstr ""
+msgstr "طلب في الشهر الماضي"
#. module: purchase
#: code:addons/purchase/purchase.py:412
#, python-format
msgid "You must first cancel all receptions related to this purchase order."
-msgstr ""
+msgstr "يجب عليك أولا إلغاء جميع حفلات الاستقبال المتعلقة بهذا أمر الشراء."
#. module: purchase
#: selection:purchase.order.line,state:0
@@ -467,7 +467,7 @@ msgstr "توضح انه قد تم عمل الاختيار"
#. module: purchase
#: view:purchase.order:0
msgid "Purchase orders which are in exception state"
-msgstr ""
+msgstr "أوامر الشراء التي هي في حالة الاستثناء"
#. module: purchase
#: report:purchase.order:0 field:purchase.report,validator:0
@@ -506,7 +506,7 @@ msgstr "تأكيد"
#: model:ir.ui.menu,name:purchase.menu_action_picking_tree4_picking_to_invoice
#: selection:purchase.order,invoice_method:0
msgid "Based on receptions"
-msgstr ""
+msgstr "استناداً على ما تم استقباله"
#. module: purchase
#: constraint:res.company:0
@@ -541,7 +541,7 @@ msgstr ""
#. module: purchase
#: view:purchase.order:0
msgid "Purchase order which are in the exception state"
-msgstr ""
+msgstr "أمر الشراء التي هي في حالة استثناء"
#. module: purchase
#: model:ir.actions.act_window,help:purchase.action_stock_move_report_po
@@ -597,7 +597,7 @@ msgstr "السعر الإجمالي"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.action_import_create_supplier_installer
msgid "Create or Import Suppliers"
-msgstr ""
+msgstr "إنشاء أو استيراد الموردون"
#. module: purchase
#: view:stock.picking:0
@@ -662,7 +662,7 @@ msgstr ""
#. module: purchase
#: report:purchase.order:0
msgid "Purchase Order Confirmation N°"
-msgstr ""
+msgstr "تأكيد أمر الشراء ن°"
#. module: purchase
#: model:ir.actions.act_window,help:purchase.action_purchase_order_report_all
@@ -748,7 +748,7 @@ msgstr "الاستقبالات"
#: code:addons/purchase/purchase.py:285
#, python-format
msgid "You cannot confirm a purchase order without any lines."
-msgstr ""
+msgstr "لا يمكنك تأكيد أمر الشراء دون أية أسطر."
#. module: purchase
#: model:ir.actions.act_window,help:purchase.action_invoice_pending
@@ -784,7 +784,7 @@ msgstr "يناير"
#. module: purchase
#: model:ir.actions.server,name:purchase.ir_actions_server_edi_purchase
msgid "Auto-email confirmed purchase orders"
-msgstr ""
+msgstr "البريد التلقائي لتأكيد طلبات الشراء"
#. module: purchase
#: model:process.transition,name:purchase.process_transition_approvingpurchaseorder0
@@ -840,7 +840,7 @@ msgstr "دمج امر الشراء"
#. module: purchase
#: view:purchase.report:0
msgid "Order in current month"
-msgstr ""
+msgstr "طلب في الشهر الحالي"
#. module: purchase
#: view:purchase.report:0 field:purchase.report,delay_pass:0
@@ -881,7 +881,7 @@ msgstr "خطوط الاوامر الكلية للمستخدم لكل شهر"
#. module: purchase
#: view:purchase.order:0
msgid "Approved purchase orders"
-msgstr ""
+msgstr "تأكيد أوامر الشراء"
#. module: purchase
#: view:purchase.report:0 field:purchase.report,month:0
@@ -891,7 +891,7 @@ msgstr "شهر"
#. module: purchase
#: model:email.template,subject:purchase.email_template_edi_purchase
msgid "${object.company_id.name} Order (Ref ${object.name or 'n/a' })"
-msgstr ""
+msgstr "${object.company_id.name} أمر (Ref ${object.name or 'n/a' })"
#. module: purchase
#: report:purchase.quotation:0
@@ -932,7 +932,7 @@ msgstr "ـكون هذه القائمة المختارة التي تم جمعها
#. module: purchase
#: view:stock.picking:0
msgid "Is a Back Order"
-msgstr ""
+msgstr "طلب عودة"
#. module: purchase
#: model:process.node,note:purchase.process_node_invoiceafterpacking0
@@ -984,7 +984,7 @@ msgstr ""
#. module: purchase
#: selection:purchase.config.wizard,default_method:0
msgid "Pre-Generate Draft Invoices based on Purchase Orders"
-msgstr ""
+msgstr "قبل انشاء مسودة فاتورة على طلبات الشراء"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.action_view_purchase_line_invoice
@@ -1010,7 +1010,7 @@ msgstr "عرض النتيجة"
#. module: purchase
#: selection:purchase.config.wizard,default_method:0
msgid "Based on Purchase Order Lines"
-msgstr ""
+msgstr "اعتماداً على سطور طلب الشراء"
#. module: purchase
#: help:purchase.order,amount_untaxed:0
@@ -1130,7 +1130,7 @@ msgstr "مرشحات مفصلة..."
#. module: purchase
#: view:purchase.config.wizard:0
msgid "Invoicing Control on Purchases"
-msgstr ""
+msgstr "التحكم في الفاتورة عند الشراء"
#. module: purchase
#: code:addons/purchase/wizard/purchase_order_group.py:48
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index c47bf1357c8..ed7a2835425 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -50,6 +50,16 @@ class sale_order(osv.osv):
_inherit = ['mail.thread', 'ir.needaction_mixin']
_description = "Sales Order"
+ def onchange_shop_id(self, cr, uid, ids, shop_id, context=None):
+ v = {}
+ if shop_id:
+ shop = self.pool.get('sale.shop').browse(cr, uid, shop_id, context=context)
+ if shop.project_id.id:
+ v['project_id'] = shop.project_id.id
+ if shop.pricelist_id.id:
+ v['pricelist_id'] = shop.pricelist_id.id
+ return {'value': v}
+
def copy(self, cr, uid, id, default=None, context=None):
if not default:
default = {}
@@ -783,6 +793,7 @@ class sale_order_line(osv.osv):
_('There is no Fiscal Position defined or Income category account defined for default properties of Product categories.'))
res = {
'name': line.name,
+ 'sequence': line.sequence,
'origin': line.order_id.name,
'account_id': account_id,
'price_unit': pu,
@@ -900,7 +911,6 @@ class sale_order_line(osv.osv):
fpos = fiscal_position and self.pool.get('account.fiscal.position').browse(cr, uid, fiscal_position) or False
if update_tax: #The quantity only have changed
result['tax_id'] = self.pool.get('account.fiscal.position').map_tax(cr, uid, fpos, product_obj.taxes_id)
- result.update({'type': product_obj.procure_method})
if not flag:
result['name'] = self.pool.get('product.product').name_get(cr, uid, [product_obj.id], context=context_partner)[0][1]
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index d97c9924036..5505a6a88b5 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -181,7 +181,7 @@
-
+
@@ -200,7 +200,7 @@
+ on_change="product_id_change(parent.pricelist_id, product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.partner_id, False, True, parent.date_order, False, parent.fiscal_position, False, context)"/>
-
+
sale.shop.inherit.formsale.shop
@@ -13,7 +13,7 @@
-
+
sale.shop.sale.stocksale.shop
@@ -41,7 +41,8 @@
+ attrs="{'invisible': ['|','|','|',('picking_ids','=',False),('picking_ids','=',[]), ('state', 'not in', ('progress','manual')),('shipped','=',True)]}"/>
+
diff --git a/addons/sale_stock/test/sale_order_onchange.yml b/addons/sale_stock/test/sale_order_onchange.yml
new file mode 100644
index 00000000000..1026e5627c3
--- /dev/null
+++ b/addons/sale_stock/test/sale_order_onchange.yml
@@ -0,0 +1,22 @@
+-
+ In order to test the onchange of the Sale Order, I create a product
+-
+ !record {model: product.product, id: product_onchange1}:
+ name: 'Devil Worship Book'
+ list_price: 66.6
+ procure_method: 'make_to_order'
+-
+ Now i create a sale order that uses my new product
+-
+ !record {model: sale.order, id: sale_order_onchange1}:
+ partner_id: base.res_partner_2
+ order_line:
+ - product_id: sale_stock.product_onchange1
+ product_uom_qty: 10
+-
+ I verify that the onchange of product on sale order line was correctly triggered
+-
+ !assert {model: sale.order, id: sale_order_onchange1, string: The onchange function of product was not correctly triggered}:
+ - order_line[0].name == u'Devil Worship Book'
+ - order_line[0].price_unit == 66.6
+ - order_line[0].type == 'make_to_order'
diff --git a/addons/share/i18n/ar.po b/addons/share/i18n/ar.po
index 28215c8d748..c6fba54885c 100644
--- a/addons/share/i18n/ar.po
+++ b/addons/share/i18n/ar.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
-"PO-Revision-Date: 2012-01-13 21:14+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2012-10-08 15:06+0000\n"
+"Last-Translator: almodhesh \n"
"Language-Team: Arabic \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 06:34+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-10-09 04:51+0000\n"
+"X-Generator: Launchpad (build 16112)\n"
#. module: share
#: field:share.wizard,embed_option_title:0
@@ -25,7 +25,7 @@ msgstr "عرض العنوان"
#. module: share
#: view:share.wizard:0
msgid "Access granted!"
-msgstr ""
+msgstr "منح الوصول!"
#. module: share
#: field:share.wizard,user_type:0
@@ -50,13 +50,15 @@ msgstr "مشاركة"
#. module: share
#: field:share.wizard,share_root_url:0
msgid "Share Access URL"
-msgstr ""
+msgstr "مشاركة الوصول URL"
#. module: share
#: code:addons/share/wizard/share_wizard.py:782
#, python-format
msgid "You may use your current login (%s) and password to view them.\n"
msgstr ""
+"يمكنك استخدام معلومات تسجيل الدخول الخاصة بك الحالية(%s) وكلمة المرور "
+"لعرضها.\n"
#. module: share
#: code:addons/share/wizard/share_wizard.py:601
@@ -83,24 +85,25 @@ msgstr ""
#. module: share
#: field:share.wizard,embed_url:0 field:share.wizard.result.line,share_url:0
msgid "Share URL"
-msgstr ""
+msgstr "مشاركة URL"
#. module: share
#: code:addons/share/wizard/share_wizard.py:776
#, python-format
msgid "These are your credentials to access this protected area:\n"
-msgstr ""
+msgstr "هذا هو اعتمادك للوصول إلى هذه المناطق المحمية\n"
#. module: share
#: code:addons/share/wizard/share_wizard.py:643
#, python-format
msgid "You must be a member of the Share/User group to use the share wizard"
msgstr ""
+"يجب أن تكون عضوا في المجموعة مشاركة / المستخدم لاستخدام مشاركة صندوق الحوار"
#. module: share
#: view:share.wizard:0
msgid "Access info"
-msgstr ""
+msgstr "معلومات الولوج"
#. module: share
#: view:share.wizard:0
@@ -111,12 +114,12 @@ msgstr "حصة"
#: code:addons/share/wizard/share_wizard.py:551
#, python-format
msgid "(Duplicated for modified sharing permissions)"
-msgstr ""
+msgstr "(تكرار للحصول على أذونات مشاركة تعديل)"
#. module: share
#: help:share.wizard,domain:0
msgid "Optional domain for further data filtering"
-msgstr ""
+msgstr "المجال اختياري لمزيد من بيانات التصفية"
#. module: share
#: sql_constraint:res.users:0
@@ -159,7 +162,7 @@ msgstr "إغلاق"
#: code:addons/share/wizard/share_wizard.py:640
#, python-format
msgid "Action and Access Mode are required to create a shared access"
-msgstr ""
+msgstr "نمط الإجراء والوصول لإنشاء مشاركة الوصول"
#. module: share
#: view:share.wizard:0
@@ -167,6 +170,7 @@ msgid ""
"Please select the action that opens the screen containing the data you want "
"to share."
msgstr ""
+"الرجاء اختيار الإجراء الذي يفتح شاشة تحتوي على البيانات التي تريد مشاركتها."
#. module: share
#: code:addons/share/wizard/share_wizard.py:781
@@ -174,7 +178,7 @@ msgstr ""
msgid ""
"The documents have been automatically added to your current OpenERP "
"documents.\n"
-msgstr ""
+msgstr "المستندات تمت إضافتها بشكل تلقائي لمستندات اوبن اي ار بي الخاصة بك\n"
#. module: share
#: view:share.wizard:0
@@ -184,7 +188,7 @@ msgstr "إلغاء"
#. module: share
#: field:res.groups,share:0
msgid "Share Group"
-msgstr ""
+msgstr "مشاركة المجموعة"
#. module: share
#: code:addons/share/wizard/share_wizard.py:763
@@ -197,12 +201,12 @@ msgstr "لا بدّ من ذكر عنوان بريد إلكتروني"
msgid ""
"Optionally, you may specify an additional domain restriction that will be "
"applied to the shared data."
-msgstr ""
+msgstr "اختيارياً، اختيار محدودية مجال لتطبيقها على المعلومات المشاركة."
#. module: share
#: help:share.wizard,name:0
msgid "Title for the share (displayed to users as menu and shortcut name)"
-msgstr ""
+msgstr "عنوان المشاركة (تعرض للمستخدمين كقائمة واسم مختصر)"
#. module: share
#: view:share.wizard:0
@@ -212,7 +216,7 @@ msgstr "خيارات"
#. module: share
#: view:res.groups:0
msgid "Regular groups only (no share groups"
-msgstr ""
+msgstr "المجموعات المنتظمة فقط( لا مجموعات مشاركة)"
#. module: share
#: code:addons/share/wizard/share_wizard.py:787
@@ -222,27 +226,32 @@ msgid ""
"Sales, HR, etc.)\n"
"It is open source and can be found on http://www.openerp.com."
msgstr ""
+"OpenERP هي قوية ومجموعة من تطبيقات الأعمال سهل الاستعمال(إدارة علاقات "
+"العملاء,المبيعات, موارد بشرية, الخ.)\n"
+"هي مفتوحة المصدر ويمكنك الوصول إليها عن طريق هذا الرابط "
+"http://www.openerp.com."
#. module: share
#: field:share.wizard,action_id:0
msgid "Action to share"
-msgstr ""
+msgstr "إجراء للمشاركة"
#. module: share
#: view:share.wizard:0
msgid "Optional: include a personal message"
-msgstr ""
+msgstr "اختياري: تضمين رسالة خاصة"
#. module: share
#: field:res.users,share:0
msgid "Share User"
-msgstr ""
+msgstr "مشاركة المستخدم"
#. module: share
#: code:addons/share/wizard/share_wizard.py:647
#, python-format
msgid "Please indicate the emails of the persons to share with, one per line"
msgstr ""
+"يرجى الإشارة إلى رسائل البريد الإلكتروني للأشخاص للمشاركة معه، واحد في كل سطر"
#. module: share
#: field:share.wizard,embed_code:0 field:share.wizard.result.line,user_id:0
@@ -252,13 +261,13 @@ msgstr "مجهول"
#. module: share
#: help:res.groups,share:0
msgid "Group created to set access rights for sharing data with some users."
-msgstr ""
+msgstr "إنشاء مجموعة لتعيين حقوق الوصول لتبادل البيانات مع بعض المستخدمين."
#. module: share
#: help:share.wizard,action_id:0
msgid ""
"The action that opens the screen containing the data you wish to share."
-msgstr ""
+msgstr "الإجراء الذي يفتح شاشة تحتوي على البيانات التي ترغب في مشاركتها."
#. module: share
#: constraint:res.users:0
@@ -270,12 +279,12 @@ msgstr ""
#: code:addons/share/wizard/share_wizard.py:526
#, python-format
msgid "(Copy for sharing)"
-msgstr ""
+msgstr "(نسخة من المشاركة)"
#. module: share
#: field:share.wizard.result.line,newly_created:0
msgid "Newly created"
-msgstr ""
+msgstr "منشأة حديثاً"
#. module: share
#: code:addons/share/wizard/share_wizard.py:616
@@ -292,7 +301,7 @@ msgstr ""
#. module: share
#: help:share.wizard,share_root_url:0
msgid "Main access page for users that are granted shared access"
-msgstr ""
+msgstr "صفحة الوصول الرئيسية للمستخدمين لضمان مشاركة الوصول"
#. module: share
#: sql_constraint:res.groups:0
@@ -343,12 +352,12 @@ msgstr "ملخّص"
#: code:addons/share/wizard/share_wizard.py:493
#, python-format
msgid "Copied access for sharing"
-msgstr ""
+msgstr "نسخ الوصول للمشاركة"
#. module: share
#: model:ir.actions.act_window,name:share.action_share_wizard_step1
msgid "Share your documents"
-msgstr ""
+msgstr "مشاركة المستندات الخاصة بك"
#. module: share
#: view:share.wizard:0
@@ -370,22 +379,22 @@ msgstr "share.wizard.result.line"
#. module: share
#: help:share.wizard,user_type:0
msgid "Select the type of user(s) you would like to share data with."
-msgstr ""
+msgstr "استخدم نوع المستخدم الذي تود مشاركة المعلومات معه"
#. module: share
#: field:share.wizard,view_type:0
msgid "Current View Type"
-msgstr ""
+msgstr "نوع عرض الحالي"
#. module: share
#: selection:share.wizard,access_mode:0
msgid "Can view"
-msgstr ""
+msgstr "امكانية المشاهدة"
#. module: share
#: selection:share.wizard,access_mode:0
msgid "Can edit"
-msgstr ""
+msgstr "امكانية التعديل"
#. module: share
#: help:share.wizard,message:0
@@ -528,3 +537,10 @@ msgstr "مشاركة مع..."
#~ msgid "Share with these people (one e-mail per line)"
#~ msgstr "المشاركة مع هؤلاء الناس (بريد إلكتروني واحد في كل سطر)"
+
+#~ msgid ""
+#~ "An optional personal message, to be included in the e-mail notification."
+#~ msgstr "رسالة اختيارية شخصية، ليتم تضمينها في اخطار البريد الإلكتروني."
+
+#~ msgid "Use this link"
+#~ msgstr "استخدم هذا الرابط"
diff --git a/addons/survey/survey_view.xml b/addons/survey/survey_view.xml
index 01d6098df55..0247a205700 100644
--- a/addons/survey/survey_view.xml
+++ b/addons/survey/survey_view.xml
@@ -1125,7 +1125,8 @@
-
+
+
@@ -1139,6 +1140,7 @@
+