← Back to team overview

openerp-dev-web team mailing list archive

[Merge] lp:~openerp-dev/openobject-client-web/Improvement_search_m2o into lp:openobject-client-web

 

Jra (Open ERP) has proposed merging lp:~openerp-dev/openobject-client-web/Improvement_search_m2o into lp:openobject-client-web.

Requested reviews:
  OpenERP SA's Web Client R&D (openerp-dev-web)

-- 
https://code.launchpad.net/~openerp-dev/openobject-client-web/Improvement_search_m2o/+merge/40094
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-client-web/Improvement_search_m2o.
=== modified file 'addons/openerp/controllers/openm2o.py'
--- addons/openerp/controllers/openm2o.py	2010-09-20 11:27:34 +0000
+++ addons/openerp/controllers/openm2o.py	2010-11-04 13:54:55 +0000
@@ -103,7 +103,13 @@
         params.view_type = 'form'
 
         params.editable = params.get('_terp_editable', True)
-
+        
+        if not params.id:
+            proxy = rpc.RPCProxy(params.model)
+            id = proxy.create(data, params.context)
+            params.ids = (params.ids or []) + [int(id)]
+            params.id = int(id)
+        
         return self.create(params)
 
 # vim: ts=4 sts=4 sw=4 si et

=== modified file 'addons/openerp/controllers/search.py'
--- addons/openerp/controllers/search.py	2010-10-29 07:21:29 +0000
+++ addons/openerp/controllers/search.py	2010-11-04 13:54:55 +0000
@@ -81,6 +81,7 @@
         params.source = source
         params.selectable = kind
         params.limit = params.limit or 20
+        params.text = text
         ctx = rpc.session.context.copy()
         ctx.update(params.context or {})
         params.ids = []
@@ -95,9 +96,13 @@
                 count = proxy.search_count(params.domain, ctx)
             params.count = count
         if text:
-                params.search_text = True
+            params.search_text = True
+            # When id does not exists for m2o
+            if not ids:
+                params.context.update({'default_name' : text})
         if kw and kw.get('return_to'):
             params['return_to'] = ast.literal_eval(kw['return_to'])
+
         return self.create(params)
 
     @expose('json')

=== modified file 'addons/openerp/controllers/templates/search.mako'
--- addons/openerp/controllers/templates/search.mako	2010-10-19 09:02:53 +0000
+++ addons/openerp/controllers/templates/search.mako	2010-11-04 13:54:55 +0000
@@ -162,6 +162,14 @@
                             	<a class="button-a" href="javascript: void(0)" onclick="search_filter()">${_("Search")}</a>
                            	    <a class="button-a" href="javascript: void(0)" onclick="do_create()">${_("New")}</a>
                             	<a class="button-a" style="margin-left:10px;" href="javascript: void(0)" onclick="window.close()">${_("Close")}</a>
+                            % if params.text and not params.ids:
+                            <div class="no-record-warning">
+                            	${_("The record")} "${params.text}" ${_("does not exists, Do you want to create it ?")}
+	                            <a style="color:#9A0404;" href="javascript: void(0)" onclick="do_create()">${_("Yes")}</a> /
+	                            <a style="color:#9A0404;" href="javascript: void(0)" onclick="window.close()">${_("No")}</a>
+                            	
+                            </div>
+                            % endif
                             </td>
                         </tr>
                     </table>

=== modified file 'addons/openerp/static/css/style.css'
--- addons/openerp/static/css/style.css	2010-11-03 15:47:12 +0000
+++ addons/openerp/static/css/style.css	2010-11-04 13:54:55 +0000
@@ -26,6 +26,12 @@
     margin-top: 6px;
 }
 
+div.no-record-warning {
+	display: inline;
+	color: #9A0404;
+	font-size: 1.3em;
+	font-weight: bold;
+}
 div.wizard_toolbar {
 	float: right;
 }


Follow ups