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"]
|
||||
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}
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
|
|
|||
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