def com_modf_quest(cls, arg_head, arg_jsstruct=None, new_pswd=False) -> dict: """ Обобщенная процедура обработки quest верификация/изменение pswcl and logincl --------------------------- arg_head используется для загрузки pswcl and logincl as default arg_user для загрузки js_struct arg_user==None создается js_struct else loadFrom advuser_advuser.js_struct return js_struct """ js_struct = dict() if arg_jsstruct: js_struct = arg_jsstruct if new_pswd: js_struct['pswcl'] = getPassword_cl() js_struct['logincl'] = getLogin_cl() else: user_head = getUser(arg_head) if Res_proc.FN_get_val_dict(js_struct, 'pswcl') is None: js_struct_head = Com_proc_advuser.get_js_struct(user_head) js_struct['pswcl'] = js_struct_head['pswcl'] if Res_proc.FN_get_val_dict(js_struct, 'logincl') is None: js_struct['logincl'] = getLogin_cl() return js_struct
def _verify_user(self): try: type_statusUser = type_status_user(self.user) if not type_statusUser: raise ErrorRun_impl('{0} Нет данных Type_status_user'.format( self.s_err)) if type_statusUser.levelperm > 39: return advData = AdvUser.get_advData(self.user) if advData is None: raise ErrorRun_impl( '{0} нет данных advData for self.user'.format(self.s_err)) logincl = Res_proc.FN_get_val_dict(advData, 'logincl') pswcl = Res_proc.FN_get_val_dict(advData, 'pswcl') # Обновление по значениям, полученным из гостВхода if logincl != self.logincl or pswcl != self.pswcl: _dict = dict(logincl=self.logincl, pswcl=self.pswcl) self._upd_quest(self.user.advuser, _dict, True) except Exception as ex: self._init_err(ex, self.s_err_serv)
def test_res_proc(): from app import Res_proc from app import ErrorRun_impl try: res = [] res_proc = Res_proc() s_empty = res_proc.PR_empty res_proc.any_str = s_empty res_proc.res_dict = dict(par=1) res_proc.res_list = [1,2] val_dict = res_proc.FN_get_val_dict(dict(par='anyDataDict'), 'par') res.append(val_dict + '; ') s_proc = '{0} {1} {2}'.format(res_proc.FN_empty(), res_proc.FN_exist(), res_proc.PR_notRecord ) res.append('## ' + s_proc) res_proc.error = ErrorRun_impl('ValueError##Пробное исключение') s_res = str(res_proc) res.append(s_res) return res except Exception as ex: return str(ex)
def _ver_exists_quest(self): try: row_cl = AdvUser.objects.filter(parentuser=self.user.username, status__levelperm=10) if row_cl.exists(): row_cl = row_cl.last() self.logincl = row_cl.user.username advuser = row_cl.user.advuser advData = json.loads(advuser.advData) _pswcl = Res_proc.FN_get_val_dict(advData, 'pswcl') if _pswcl is None: res_pswcl = get_pswcl_fromHead(self.user) if res_pswcl: _pswcl = res_pswcl.any_str self._upd_quest(row_cl, dict(pswcl=_pswcl)) else: raise ErrorRun_impl( '{0} pswcl не определен из get_pswcl_fromHead'. format(self.s_err)) else: self.pswcl = _pswcl else: self._add_quest(self.user) except Exception as ex: self._init_err(ex, self.s_err_serv)
def _initData_quest(self): try: row_cl = AdvUser.objects.filter(user=self.user_quest) if row_cl.exists(): row_cl = row_cl.first() advuser = row_cl.user.advuser advData = json.loads(advuser.advData) _pswcl = Res_proc.FN_get_val_dict(advData, 'pswcl') if _pswcl is None: _pswcl = generate_pswcl() if _pswcl: self._upd_quest(row_cl, dict(pswcl=_pswcl)) else: raise ErrorRun_impl( '{0} pswcl не определен из advuser.forms.Base_profilForm.generate_pswcl' .format(self.s_err)) else: self.pswcl = _pswcl else: self._add_quest(self.user_quest) except Exception as ex: self._init_err(ex, self.s_err_serv)
def _upd_quest(self, row_cl, arg_dict, updUser=None): try: FM_init_advData(row_cl, arg_dict) row_cl.save() advData = AdvUser.get_advData(row_cl.user) if advData is None: raise ErrorRun_impl( '{0}._upd_quest advData не определено'.format(self.s_err)) if updUser: self.logincl_user = Res_proc.FN_get_val_dict( advData, 'logincl') self.pswcl_user = Res_proc.FN_get_val_dict(advData, 'pswcl') else: self.logincl = Res_proc.FN_get_val_dict(advData, 'username') self.pswcl = Res_proc.FN_get_val_dict(advData, 'pswcl') except Exception as ex: self._init_err(ex, self.s_err_serv)
def modf_dict_by_setting_def(arg_dict: dict): dc_attr = Struct_default_AdvUser.dc_attr dc_procConv = Struct_default_AdvUser.dc_procConv dev_val = dc_attr['def_val'] lst_key = arg_dict.keys() for key in lst_key: val = Res_proc.FN_get_val_dict(arg_dict, key) if val is None: if dc_attr.get(key): arg_dict[key] = dc_attr[key] else: arg_dict[key] = dev_val else: if dc_procConv.get(key): s_proc = dc_procConv[key] proc = getattr(Struct_default_AdvUser, s_proc) conv_data = proc(val) # процедура конвертирования arg_dict[key] = conv_data
def get_list_prof_memb(arg_user, arg_list=None, num_rows=5, sel_page=1): """ Создание списка данных для отображения в шаблоне prof_table_format Предназначено для руководителей групп Загрузка данных из БД arg_list формат '30,49,70' строка levelperm num_rows кол-во записей в одной странице sel_page номер извлекаемой страницы full_show Использование максимальной ширины данных """ from .serv_advuser import Struct_default_AdvUser as Struct_def from app.com_serv_dbase.serv_modf_profil import serv_get_data_prof import json def run_raise(s_arg, showMes=None): s_err = 'ValError##advuser.modify_models.get_list_prof_memb' if showMes: raise ErrorRun_impl('verify##{0}'.format(s_arg)) else: raise ErrorRun_impl('{0}: {1}'.format(s_err, s_arg)) #--------------------------------------------------------- res_proc = Res_proc() res_list = [] if arg_list is None: arg_list = '30,40,70' try: user = getUser(arg_user) if user is None: run_raise('Пользователь не определен', True) res_data = serv_get_data_prof(user, arg_list, num_rows, sel_page, num_count=0) res_page = {} for item in res_data.res_list: _dict = json.loads(item['advData']) levelperm = item['levelperm'] if levelperm == 0: res_page = _dict else: _dict['levelperm'] = levelperm _dict['status'] = Struct_def.conv_status_into_str( _dict.get('status_id')) _dict['idcomp'] = res_proc.FN_get_val_dict( _dict, 'idcomp') or Struct_def.idcomp _dict['email'] = res_proc.FN_get_val_dict( _dict, 'email') or Struct_def.email _dict['phone'] = res_proc.FN_get_val_dict( _dict, 'phone') or Struct_def.phone _dict['pol'] = Struct_def.conv_pol(_dict.get('pol')) _dict['sendMes'] = Struct_def.conv_send_mes( _dict.get('sendMes')) _dict['ageGroup'] = res_proc.FN_get_val_dict( _dict, 'ageGroup') or Struct_def.ageGroup _dict['post'] = res_proc.FN_get_val_dict(_dict, 'post') or 'Нет' _dict['logincl'] = res_proc.FN_get_val_dict(_dict, 'logincl') or 'Нет' if levelperm > 30: _dict[ 'status_perm'] = f'Мендж:{_dict.get("limitcon") or 0} ' if levelperm == 70: _dict[ 'status_perm'] = f'Мендж:{_dict.get("limitcon") or 0} РукГр:{_dict.get("limitcon40") or 0} РукГрРасш:{_dict.get("limitcon70") or 0}' else: _dict['status_perm'] = 'Не назначено' res_list.append(_dict) res_proc.res_dict = res_page # сведения пагинатора res_proc.res_list = res_list res_proc.res = True except Exception as ex: res_proc.error = ex return res_proc