Пример #1
0
    def get_head_user(cls, user) -> Res_proc:
        """ Get head user or None """
        from .serv_typestatus import type_status_user

        res_proc = Res_proc()
        userHead = None

        try:
            user = getUser(user)
            if user is None:
                cls._run_raise('get_head_user: нет данных для арг. user')

            if user.is_superuser:
                userHead = cls.get_user_head()
                res_proc.res_model = userHead
                return res_proc

            obj_typeStatus = type_status_user(user)
            if not obj_typeStatus:
                cls._run_raise(
                    'get_head_user: ошибка вызваемой процедуры type_status_user(user)'
                )

            levelperm = obj_typeStatus.levelperm
            if levelperm in (40, 70, 100):
                userHead = user

            else:

                level = levelperm
                user_next = cls.get_user_cons(user)

                # Подъем на следующий уровень, пока не будет достигнут level >= 40
                while level < 40:
                    obj_typeStatus = type_status_user(user_next)
                    if not obj_typeStatus:
                        cls._run_raise(
                            'get_head_user: ошибка вызваемой процедуры type_status_user(user)'
                        )

                    level = obj_typeStatus.levelperm
                    if level > 39:
                        break

                    user_next = cls.get_user_cons(user_next)

                userHead = user_next

            if userHead:
                res_proc.res_model = userHead
                res_proc.res = True

        except Exception as ex:
            res_proc.error = ex

        return res_proc
Пример #2
0
    def update_user(cls, user, arg_dict, commit=True):
        from app.models import spr_fields_models

        res = Res_proc(res=False)

        # Блок заполнения полей User для существующего пользователя
        if not isinstance(user, User):
            user = getUser(user)
            if user is None:
                res.error = 'ValueError##modify_models.Modify_user.update_user user Нет данных для логина стр.213'
                return res

        # Заполнение списка полей, используемых для этой модели
        arg_dict['list_fieldsModel'] = spr_fields_models.get_list_fields(
            'user', onlyKeys=True)
        init_user = Init_model(user, arg_dict)

        res.res_model = user
        if commit:
            try:

                user.save(force_update=True)
                res.mes = 'Выполнено обновление модели User'
                res.res = True

            except Exception as ex:
                res.error = ex
                return res
        else:
            res.mes = 'Заполнены данные для модели User'
            res.res = True

        return res
Пример #3
0
    def add_user(cls, arg_dict: dict):

        if not isinstance(arg_dict, dict):
            raise ValueError('arg_dict не соответствие типа')

        res = Res_proc()
        ext_dict = Ext_dict(arg_dict)

        tmp_dict = spr_fields_models.get_list_fields('user')
        ext_dict.modifyExtDict_bySelf_dict(tmp_dict)

        tmp_dict.update(dict(password=ext_dict.get_val('password')))
        user = CreateUser_ext.create_user(
            username=tmp_dict['username'],
            email=tmp_dict['email'] if tmp_dict['email'] != 'empty' else None,
            password=tmp_dict['password'])
        user.first_name = tmp_dict['first_name']
        user.last_name = tmp_dict['last_name']

        res.res_model = user

        try:
            user.save()
            res.mes = 'Создан профиль участника проекта'
            res.res = True

            return res

        except Exception as ex:
            res.error = ex
            return res
Пример #4
0
    def add_advuser(user, arg_dict, commit=True):
        res = Res_proc(res=False)

        if not isinstance(user, User):
            raise ValueError('Отсутствует аргумент User')

        advuser = None
        advData = None

        advuser = AdvUser()
        advuser.user = user

        # Заполнение списка полей, используемых для этой модели
        arg_dict['list_fieldsModel'] = spr_fields_models.get_list_fields(
            'advuser', onlyKeys=True, exclude='advData')
        init_advUser = Init_model(advuser, arg_dict)
        res.res_model = advuser

        if commit:
            try:
                advuser.save()
                res.mes = 'Создана модель AdvUser'
                res.res = True

                return res

            except Exception as ex:
                res.error = ex
                return res

        else:
            res.mes = 'Заполнены данные для профиля'
            res.res = True
            return res
Пример #5
0
    def update_advuser(user, arg_dict, commit=True):

        res = Res_proc(res=False)
        advuser = None
        advData = None

        advuser = AdvUser.get_advUser(user)
        if advuser is None:
            res.error = 'ValueError##modify_models.Modify_advuser.update_advuser: Нет данных в AdvUser стр.150'
            return res

        # Заполнение списка полей, используемых для этой модели
        arg_dict['list_fieldsModel'] = spr_fields_models.get_list_fields(
            'advuser', onlyKeys=True, exclude='advData')

        for key, val in arg_dict.items():
            if val == res.PR_empty:
                arg_dict[key] = None

        init_advUser = Init_model(advuser, arg_dict)

        res.res_model = advuser
        if commit:
            try:
                advuser.save()
                res.mes = 'Выполнено обновление модели AdvUser'
                res.res = True

            except Exception as ex:
                res.error = ex
                return res
        else:
            res.mes = 'Заполнены данные для профиля'
            res.res = True

        return res
Пример #6
0
def servAdvUser_get_advUser(arg_user):
    from .models import AdvUser

    def _run_raise(s_arg, showMes=None):
        _s_err = 'SyntaxError##advuser.serv_advuser.servAdvUser_get_advUser'

        if showMes:
            raise ErrorRun_impl('verify##{0}'.format(s_arg))
        else:
            s_mes = '{0} {1}'.format(_s_err, s_arg)
            TypeError_system(
                ErrorRun_impl(s_mes))  # запись в файл app/loggin/*.log

            raise ErrorRun_impl(s_mes)

    #-----------------------------------------------------------------

    res_proc = Res_proc()

    try:
        _user = getUser(arg_user)
        if _user is None:
            _run_raise(s_arg='Пользователь не определен User')

        row = AdvUser.objects.filter(user=_user)
        if row.exists():
            res_proc.res_model = row.first()
            res_proc.res = True

        else:
            _run_raise(s_arg='Нет данных AdvUser')

    except Exception as ex:
        res_proc.error = ex

    return res_proc