/
fedotoff
/
servit_prev
Обзор
Документация
Войти
/
fedotoff
/
servit_prev
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
sd/init_db.py
277 строк
13 KB
fedotoff
init Gitverse repo
20 окт 2025, 12:59
20 окт 2025, 12:59
06f2e8a
Код
Авторство
О чём код?
from sd.models import * from sd.apps.uac.views import * class init_db(View): def get(self, request): #init_flds = True init_flds = False #init_status = True init_status = False #init_entts = True init_entts = False #init_links = True init_links = False #init_cats = True init_cats = False #init_mnfr = True init_mnfr = False #init_uacs = True init_uacs = False #init_agr = True init_agr = False #init_tg = True init_tg = False entty_names = ['лента', 'модель', 'профиль', 'категория', 'производитель', 'место', 'уе', 'сообщение', 'задача', 'обращение', 'пользователь', ] fld_names = ['со слов клиента', 'результат', 'гарантия', 'состояние', 'комплект', 'цена', 'rec_info_card', 'rec_info_line', 'дом', 'офис', 'улица', 'город', 'карта', 'логин', 'e-mail', 'id сц', 'imei', 'серийный номер', 'описание', 'номер', 'телефон', 'имя', 'наименование', 'содержание', 'dj_user', 'дата', 'деньги', 'затраты', 'лог', 'оповещён', ] link_names = ['уровень', 'инфо', 'доступ'] cats = ['оргтехника', 'тв', 'пк', 'мобильная', 'бытовая', 'фото-видео', 'ноутбуки', 'картридж', 'видеоадаптер', 'аккустика', 'джойстики', 'консоли', 'другое' ] mnfrrs = ['hp', 'kyocera', 'samsung', 'canon', 'ricoh', 'brother', 'epson', 'lg', 'horizont', 'philips', 'sony', 'bbk', 'sharp', 'htc', 'meizu', 'xiaomi', 'asus', 'lenovo', 'oukitel', 'apple', ] statuses = ['новое', 'работа', 'контроль', 'ожидает', '+завершено', '-завершено', 'архив', 'запас', 'сбой', 'в сц', '*->СЦ', '*<-СЦ', 'ДНР' ] tg_name = ['ПЗ', 'КНД', 'Рома', 'Витя', 'ОРГТ', 'ВЫЕЗД', 'ЗАКУПКА', 'СВЯЗ.', 'ЧС', 'С.АДМ', 'СБ', 'ФИН', 'ПОВТОР', 'Дима', 'Поставка', 'РГЛ', ] if init_flds: for n in fld_names: nm = FIELDNAME(name=n) nm.save() if init_links: for n in link_names: nm = LINKNAME(name=n) nm.save() if init_entts: for n in entty_names: nm = ENTITYNAME(name=n) nm.save() if init_status: for n in statuses: nm = STATUS(caption=n) nm.save() if init_tg: for n in tg_name: nm = TAG(name=n) nm.save() if init_uacs: rec_fields = [ (('логин', '79020111222'), ('имя', 'Петя'), ('телефон', '88153221133'), ('телефон', '3-20-25')), (('логин', '79021112229'), ('имя', 'Вася'), ('телефон', '88155521122'), ('e-mail', 'mail@mm.mru')), (('логин', '79211557788'), ('имя', 'Сеня'), ('телефон', '881521122')), ] REC_name = ENTITYNAME.objects.get(name__exact='пользователь') #sf_user = REC(name=REC_name, creator=None) sf_user = User.objects.get(username__exact='admin') sf_uac = REC(name=REC_name, creator=None) sf_uac.save() field_name = FIELDNAME.objects.get(name__exact='dj_user') dju_link = FieldDec.objects.new_field(sf_uac, field_name, 1) for test_user in rec_fields: # print( test_user[0][1] ) usr = get_uac_by_login_name( test_user[0][1] ) FieldChf.objects.add_fields_by_list( usr.id, test_user) if init_agr: agroups = [('ADM', 'Admin'), ('PBL', 'Public'), ('CST', 'Customer'), ('AP-M', 'Apatity'), ('AP-W', 'Apatity w'), ('PZ-M', 'PZ'), ('KND-M', 'KND')] for group in agroups: new_group = AGROUP(caption=group[0], description=group[1]) new_group.save() if init_cats: REC_name = ENTITYNAME.objects.get(name__exact='категория') for cat in cats: new_cat = REC(name=REC_name, caption=cat, creator=None) new_cat.save() if init_mnfr: REC_name = ENTITYNAME.objects.get(name__exact='производитель') for mnf in mnfrrs: new_mnf = REC(name=REC_name, caption=mnf, creator=None) new_mnf.save() # Статусы сущностей def set_status(ents, status): for e in ents: ent_type = ENTITYNAME.objects.get(name=e) ent_type_q = REC.objects.filter(name__name=ent_type) for i in ent_type_q: status_set(0, i, status) set_status(['категория', 'производитель', 'пользователь'], 'работа') # ИНициализация какие статусы могут быть у объектов def add_statuses_to_entity(ent, statuses): ent = ENTITYNAME.objects.get(name=ent) for st in statuses: sts = STATUS.objects.get(caption=st) ent.statuses.add(sts) ent.save() # add_statuses_to_entity('', ['новое', 'работа', 'контроль', 'ожидает', '+завершено', '-завершено', 'архив', 'запас', 'сбой', 'сервис']) #add_statuses_to_entity('пользователь', ['новое','работа','контроль','архив']) #add_statuses_to_entity('обращение', ['новое', 'работа', 'контроль', 'ожидает', '+завершено', '-завершено', 'архив']) #add_statuses_to_entity('задача', ['новое', 'работа', 'контроль', 'ожидает', '+завершено', '-завершено', 'архив', 'запас', 'сбой', 'сервис']) #add_statuses_to_entity('сообщение', ['работа', 'архив']) #add_statuses_to_entity('уе', ['новое', 'работа', 'контроль', 'ожидает', 'архив', 'запас', 'сбой', 'сервис']) add_statuses_to_entity('место', ['новое', 'работа', 'контроль', 'архив']) add_statuses_to_entity('производитель', ['новое', 'работа', 'контроль', 'архив']) add_statuses_to_entity('категория', ['новое', 'работа', 'контроль', 'архив']) add_statuses_to_entity('модель', ['новое', 'работа', 'контроль', 'архив']) # ИНициализация какие детки можно создавать у сущности def add_create_childs(ent, childs): # К чему добавлять детей ent = ENTITYNAME.objects.get(name=ent) # Дети, которых можно добавлять к текущей сущности for ch in childs: ent_ch = ENTITYNAME.objects.get(name=ch) ent.create_child.add(ent_ch) ent.save() # 'лента', 'модель', 'профиль', 'категория', 'производитель', 'место', 'уе', 'сообщение', 'задача', 'обращение', 'пользователь' add_create_childs('лента',['задача']) add_create_childs('модель',['сообщение']) # add_create_childs('профиль',[]) add_create_childs('категория',['сообщение']) add_create_childs('производитель',['сообщение']) add_create_childs('место',['лента','задача']) add_create_childs('уе',['лента','сообщение','задача','обращение']) # add_create_childs('сообщение',[]) add_create_childs('задача',['сообщение','задача']) add_create_childs('обращение',['сообщение','задача']) add_create_childs('пользователь',['место','уе','сообщение','задача','обращение']) def set_fields(ent, chf,dec,txt): # К чему добавлять поля ent = ENTITYNAME.objects.get(name=ent) # Привязка поля к сущности for fld in chf: ent_fld = FIELDNAME.objects.get(name=fld) ent.fields_chf.add(ent_fld) for fld in dec: ent_fld = FIELDNAME.objects.get(name=fld) ent.fields_dec.add(ent_fld) for fld in txt: ent_fld = FIELDNAME.objects.get(name=fld) ent.fields_txt.add(ent_fld) ent.save() set_fields('лента', chf=[], dec=[], txt=['содержание']) set_fields('модель', chf=[], dec=[], txt=['описание']) # set_fields('профиль', chf=[], dec=[], txt=[]) set_fields('категория', chf=[], dec=[], txt=['описание']) set_fields('производитель', chf=[], dec=[], txt=['описание']) set_fields('место', chf=['город','улица','офис','дом'], dec=[], txt=['описание']) set_fields('уе', chf=['серийный номер','imei'], dec=['цена'], txt=['описание']) set_fields('сообщение', chf=[], dec=[], txt=['содержание']) set_fields('задача', chf=[], dec=[], txt=['результат','описание']) set_fields('обращение', chf=['комплект'], dec=['гарантия'], txt=['результат','состояние','со слов клиента']) set_fields('пользователь', chf=['имя','телефон','описание','e-mail','карта'], dec=[], txt=[]) def add_tags(ent, tags_avail): ent = ENTITYNAME.objects.get(name=ent) for tgs in tags_avail: ent_tgs = TAG.objects.get(name=tgs) ent.tags_avail.add(ent_tgs) ent.save() #add_tags('лента', []) #add_tags('модель', []) #add_tags('профиль', []) #add_tags('категории', []) #add_tags('производитель', []) #add_tags('место', []) #add_tags('уе', []) #add_tags('сообщение', []) add_tags('задача', ['ПЗ', 'КНД', 'Рома', 'Витя', 'ФИН', 'Дима']) add_tags('обращение', ['ПЗ', 'КНД', 'Рома', 'Витя', 'ОРГТ', 'ВЫЕЗД', 'С.АДМ', 'СБ', 'ПОВТОР', 'Дима', 'Поставка']) add_tags('пользователь', ['ПЗ', 'КНД', 'ЧС']) pass