Added simple list function and jsutils
This commit is contained in:
parent
3a4aa06c1c
commit
314683661f
3 changed files with 129 additions and 2 deletions
2
.gitmodules
vendored
2
.gitmodules
vendored
|
|
@ -1,3 +1,3 @@
|
||||||
[submodule "cuchulu/modules/admin/media/js/jsutils"]
|
[submodule "cuchulu/modules/admin/media/js/jsutils"]
|
||||||
path = cuchulu/modules/admin/media/js/jsutils
|
path = cuchulu/modules/admin/media/js/jsutils
|
||||||
url = https://git.cuchulu.com/paramecio/jsutils.git
|
url = ssh://git@git.cuchulu.com/paramecio/jsutils.git
|
||||||
|
|
|
||||||
|
|
@ -445,7 +445,133 @@ class AjaxList(SimpleList):
|
||||||
return {'fields': self.fields, 'rows': rows, 'html_pages': html_pages}
|
return {'fields': self.fields, 'rows': rows, 'html_pages': html_pages}
|
||||||
|
|
||||||
|
|
||||||
class SimpleAjaxList():
|
def simple_ajax_list(model, fields_searched, fields_selected, func_options=None):
|
||||||
|
|
||||||
|
error=1
|
||||||
|
message=''
|
||||||
|
items=[]
|
||||||
|
|
||||||
|
total_num_items=model.select_count(model.name_field_id)
|
||||||
|
|
||||||
|
try:
|
||||||
|
|
||||||
|
begin_page=int(request.query.get('begin_page')) if int(request.query.get('begin_page')>=0) else 0
|
||||||
|
|
||||||
|
except:
|
||||||
|
|
||||||
|
begin_page=0
|
||||||
|
|
||||||
|
try:
|
||||||
|
|
||||||
|
num_elements=int(request.query.get('num_elements')) if int(request.query.get('num_elements')>0) else 0
|
||||||
|
|
||||||
|
except:
|
||||||
|
|
||||||
|
num_elements=20
|
||||||
|
|
||||||
|
arr_order=['ASC', 'DESC']
|
||||||
|
|
||||||
|
try:
|
||||||
|
|
||||||
|
order=int(request.query.get('order', '0'))
|
||||||
|
|
||||||
|
except:
|
||||||
|
|
||||||
|
order=0
|
||||||
|
|
||||||
|
if order<0 or order>1:
|
||||||
|
order=0
|
||||||
|
|
||||||
|
get_order_field=str(request.query.get('order_field', ''))
|
||||||
|
|
||||||
|
if get_order_field in model.fields and get_order_field!='':
|
||||||
|
order_field=get_order_field
|
||||||
|
|
||||||
|
else:
|
||||||
|
order_field=fields_selected[0]
|
||||||
|
|
||||||
|
search_values=[]
|
||||||
|
|
||||||
|
sql_search_text='WHERE 1=1'
|
||||||
|
|
||||||
|
search_all_text=str(request.query.get('search_all_text', ''))
|
||||||
|
|
||||||
|
if search_all_text!='':
|
||||||
|
|
||||||
|
arr_fields=[]
|
||||||
|
arr_values=[]
|
||||||
|
|
||||||
|
for field in fields_searched:
|
||||||
|
arr_fields.append(f'`{field}` LIKE %s')
|
||||||
|
arr_values.append(search_all_text+'%')
|
||||||
|
|
||||||
|
search_values=arr_values+search_values
|
||||||
|
sql_search_text+=f' AND ({' OR '.join(arr_fields)})'
|
||||||
|
#print(order_field)
|
||||||
|
#print(search_values)
|
||||||
|
#print(sql_search_text)
|
||||||
|
|
||||||
|
#print({order_field: order})
|
||||||
|
|
||||||
|
with model.set_conditions(sql_search_text, search_values).set_order({order_field: order}).select(fields_selected, raw_query=True) as cursor:
|
||||||
|
|
||||||
|
for v in cursor:
|
||||||
|
items.append(v)
|
||||||
|
|
||||||
|
if func_options:
|
||||||
|
|
||||||
|
items[len(items)-1]['options']=func_options(v)
|
||||||
|
|
||||||
|
pass
|
||||||
|
|
||||||
|
if len(items)>0:
|
||||||
|
error=0
|
||||||
|
|
||||||
|
return {'items': items, 'total_num_items': total_num_items, 'error': error, 'message': message}
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
settype($_GET['search_all_text'], 'string');
|
||||||
|
|
||||||
|
$search_all_text=trim($_GET['search_all_text']);
|
||||||
|
|
||||||
|
if($search_all_text!='') {
|
||||||
|
|
||||||
|
$arr_fields=[];
|
||||||
|
$arr_values=[];
|
||||||
|
|
||||||
|
//$arr_values_sql=array_fill(0, count($this->fields_list), '?');
|
||||||
|
foreach(array_keys($this->fields_list) as $field) {
|
||||||
|
|
||||||
|
$arr_fields[]='`'.$field.'` LIKE ?';
|
||||||
|
$arr_values[]=$search_all_text.'%';
|
||||||
|
}
|
||||||
|
|
||||||
|
$search_values=array_merge($arr_values, $search_values);
|
||||||
|
$sql_search_text=$sql_search_text.' AND ('.implode(' OR ', $arr_fields).')';
|
||||||
|
//$search_all_text='WHERE ';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->select($this->table, array_keys($this->fields_list), $sql_search_text.' order by ? ? limit '.$begin_page.','.$num_elements, $search_values);
|
||||||
|
|
||||||
|
|
||||||
|
foreach($this->db->get_result() as $v) {
|
||||||
|
|
||||||
|
$items[]=$v;
|
||||||
|
|
||||||
|
$items[count($items)-1]['options']='<a href="">'._('Edit').'</a><br /><a href="">'._('Delete').'</a>';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if($items) {
|
||||||
|
|
||||||
|
$error=0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return ['items' =>$items, 'total_num_items' => $total_num_items, 'error' => $error, 'message' => $message];
|
||||||
|
"""
|
||||||
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
|
||||||
1
cuchulu/modules/admin/media/js/jsutils
Submodule
1
cuchulu/modules/admin/media/js/jsutils
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit ff69d57ca5224ddf528ab283f4e628b296ea4886
|
||||||
Loading…
Add table
Add a link
Reference in a new issue