[IMP] Added all fields in custom filters.
bzr revid: nicolas.vanhoren@openerp.com-20110519151249-fgangasrt2ule5kr
This commit is contained in:
parent
0406a85198
commit
604434f322
|
@ -670,6 +670,12 @@ class SearchView(View):
|
|||
def load(self, req, model, view_id):
|
||||
fields_view = self.fields_view_get(req, model, view_id, 'search')
|
||||
return {'fields_view': fields_view}
|
||||
|
||||
@openerpweb.jsonrequest
|
||||
def fields_get(self, req, model):
|
||||
Model = req.session.model(model)
|
||||
fields = Model.fields_get()
|
||||
return {'fields': fields}
|
||||
|
||||
class Action(openerpweb.Controller):
|
||||
_cp_path = "/base/action"
|
||||
|
|
|
@ -112,7 +112,7 @@ openerp.base.SearchView = openerp.base.Controller.extend({
|
|||
data.fields_view.fields);
|
||||
|
||||
// for extended search view
|
||||
var ext = new openerp.base.search.ExtendedSearch(null, data.fields_view.fields);
|
||||
var ext = new openerp.base.search.ExtendedSearch(null, this.session, this.model);
|
||||
lines.push([ext]);
|
||||
this.inputs.push(ext);
|
||||
|
||||
|
@ -390,77 +390,6 @@ openerp.base.search.Group = openerp.base.search.Widget.extend({
|
|||
}
|
||||
});
|
||||
|
||||
openerp.base.search.ExtendedSearch = openerp.base.BaseWidget.extend({
|
||||
template: 'SearchView.extended_search',
|
||||
identifier_prefix: 'extended-search',
|
||||
init: function (parent, fields) {
|
||||
this._super(parent);
|
||||
this.fields = fields;
|
||||
},
|
||||
add_group: function() {
|
||||
var group = new openerp.base.search.ExtendedSearchGroup(this, this.fields);
|
||||
var render = group.render({});
|
||||
this.$element.find('.searchview_extended_groups_list').append(render);
|
||||
group.start();
|
||||
},
|
||||
start: function () {
|
||||
this._super();
|
||||
var _this = this;
|
||||
openerp.base.search.add_expand_listener(this.$element);
|
||||
this.add_group();
|
||||
this.$element.find('.searchview_extended_add_group').click(function (e) {
|
||||
_this.add_group();
|
||||
});
|
||||
},
|
||||
get_context: function() {
|
||||
return null;
|
||||
},
|
||||
get_domain: function() {
|
||||
if(this.$element.hasClass("folded")) {
|
||||
return null;
|
||||
}
|
||||
return _.reduce(this.children,
|
||||
function(mem, x) { return mem.concat(x.get_domain());}, []);
|
||||
}
|
||||
});
|
||||
|
||||
openerp.base.search.ExtendedSearchGroup = openerp.base.BaseWidget.extend({
|
||||
template: 'SearchView.extended_search.group',
|
||||
identifier_prefix: 'extended-search-group',
|
||||
init: function (parent, fields) {
|
||||
this._super(parent);
|
||||
this.fields = fields;
|
||||
},
|
||||
add_prop: function() {
|
||||
var prop = new openerp.base.search.ExtendedSearchProposition(this, this.fields);
|
||||
var render = prop.render({});
|
||||
this.$element.find('.searchview_extended_propositions_list').append(render);
|
||||
prop.start();
|
||||
},
|
||||
start: function () {
|
||||
this._super();
|
||||
var _this = this;
|
||||
this.add_prop();
|
||||
this.$element.find('.searchview_extended_add_proposition').click(function (e) {
|
||||
_this.add_prop();
|
||||
});
|
||||
var delete_btn = this.$element.find('.searchview_extended_delete_group');
|
||||
delete_btn.click(function (e) {
|
||||
_this.stop();
|
||||
});
|
||||
},
|
||||
get_domain: function() {
|
||||
var props = _(this.children).chain().map(function(x) {
|
||||
return x.get_proposition();
|
||||
}).compact().value();
|
||||
var choice = this.$element.find(".searchview_extended_group_choice").val();
|
||||
var op = choice == "all" ? "&" : "|";
|
||||
return [].concat(choice == "none" ? ['!'] : [],
|
||||
_.map(_.range(_.max([0,props.length - 1])), function() { return op; }),
|
||||
props);
|
||||
}
|
||||
});
|
||||
|
||||
openerp.base.search.Input = openerp.base.search.Widget.extend(
|
||||
/** @lends openerp.base.search.Input# */{
|
||||
/**
|
||||
|
@ -772,6 +701,81 @@ openerp.base.search.custom_filters = new openerp.base.Registry({
|
|||
'datetime': 'openerp.base.search.ExtendedSearchProposition.DateTime'
|
||||
});
|
||||
|
||||
openerp.base.search.ExtendedSearch = openerp.base.BaseWidget.extend({
|
||||
template: 'SearchView.extended_search',
|
||||
identifier_prefix: 'extended-search',
|
||||
init: function (parent, session, model) {
|
||||
this._super(parent, session);
|
||||
this.model = model;
|
||||
},
|
||||
add_group: function() {
|
||||
var group = new openerp.base.search.ExtendedSearchGroup(this, this.fields);
|
||||
var render = group.render({});
|
||||
this.$element.find('.searchview_extended_groups_list').append(render);
|
||||
group.start();
|
||||
},
|
||||
start: function () {
|
||||
this._super();
|
||||
var self = this;
|
||||
this.rpc("/base/searchview/fields_get",
|
||||
{"model": this.model}, function(data) {
|
||||
self.fields = data.fields;
|
||||
openerp.base.search.add_expand_listener(self.$element);
|
||||
self.add_group();
|
||||
self.$element.find('.searchview_extended_add_group').click(function (e) {
|
||||
self.add_group();
|
||||
});
|
||||
});
|
||||
},
|
||||
get_context: function() {
|
||||
return null;
|
||||
},
|
||||
get_domain: function() {
|
||||
if(this.$element.hasClass("folded")) {
|
||||
return null;
|
||||
}
|
||||
return _.reduce(this.children,
|
||||
function(mem, x) { return mem.concat(x.get_domain());}, []);
|
||||
}
|
||||
});
|
||||
|
||||
openerp.base.search.ExtendedSearchGroup = openerp.base.BaseWidget.extend({
|
||||
template: 'SearchView.extended_search.group',
|
||||
identifier_prefix: 'extended-search-group',
|
||||
init: function (parent, fields) {
|
||||
this._super(parent);
|
||||
this.fields = fields;
|
||||
},
|
||||
add_prop: function() {
|
||||
var prop = new openerp.base.search.ExtendedSearchProposition(this, this.fields);
|
||||
var render = prop.render({});
|
||||
this.$element.find('.searchview_extended_propositions_list').append(render);
|
||||
prop.start();
|
||||
},
|
||||
start: function () {
|
||||
this._super();
|
||||
var _this = this;
|
||||
this.add_prop();
|
||||
this.$element.find('.searchview_extended_add_proposition').click(function (e) {
|
||||
_this.add_prop();
|
||||
});
|
||||
var delete_btn = this.$element.find('.searchview_extended_delete_group');
|
||||
delete_btn.click(function (e) {
|
||||
_this.stop();
|
||||
});
|
||||
},
|
||||
get_domain: function() {
|
||||
var props = _(this.children).chain().map(function(x) {
|
||||
return x.get_proposition();
|
||||
}).compact().value();
|
||||
var choice = this.$element.find(".searchview_extended_group_choice").val();
|
||||
var op = choice == "all" ? "&" : "|";
|
||||
return [].concat(choice == "none" ? ['!'] : [],
|
||||
_.map(_.range(_.max([0,props.length - 1])), function() { return op; }),
|
||||
props);
|
||||
}
|
||||
});
|
||||
|
||||
openerp.base.search.ExtendedSearchProposition = openerp.base.BaseWidget.extend({
|
||||
template: 'SearchView.extended_search.proposition',
|
||||
identifier_prefix: 'extended-search-proposition',
|
||||
|
@ -880,7 +884,16 @@ openerp.base.search.ExtendedSearchProposition.DateTime = openerp.base.BaseWidget
|
|||
{value: "<=", text: "less or equal than"}
|
||||
],
|
||||
get_value: function() {
|
||||
return this.$element.val();
|
||||
var val = this.$element.val();
|
||||
debugger;
|
||||
return val;
|
||||
},
|
||||
render: function(add) {
|
||||
this._super(add);
|
||||
this.$element.find('input').datetimepicker({
|
||||
dateFormat: 'yy-mm-dd',
|
||||
timeFormat: 'hh:mm:ss'
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -575,6 +575,11 @@
|
|||
<t t-name="SearchView.extended_search.proposition.char">
|
||||
<input t-att-id="element_id"/>
|
||||
</t>
|
||||
<t t-name="SearchView.extended_search.proposition.datetime">
|
||||
<input type="text"
|
||||
t-att-id="element_id"
|
||||
/>
|
||||
</t>
|
||||
<t t-name="ViewManager.sidebar">
|
||||
<div t-att-id="element_id" class="sidebar-main-div closed-sidebar">
|
||||
|
||||
|
|
Loading…
Reference in New Issue