diff --git a/djing/utils/save_from_nodeny.py b/djing/utils/save_from_nodeny.py index 4cf6914..f7c18a2 100755 --- a/djing/utils/save_from_nodeny.py +++ b/djing/utils/save_from_nodeny.py @@ -4,35 +4,58 @@ import os from json import load import django -#from django.db.utils import IntegrityError if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djing.settings") django.setup() - from abonapp.models import Abon, AbonGroup + from abonapp.models import Abon, AbonGroup, AbonTariff + from ip_pool.models import IpPoolItem + from tariff_app.models import Tariff + from accounts_app.models import UserProfile - with open('../../dump.json', 'r') as f: + with open('dump_pshen.json', 'r') as f: dat = load(f) - for dt in dat['groups']: - try: - grp = AbonGroup.objects.get(title=dt['gname']) - except AbonGroup.DoesNotExist: - grp = AbonGroup(title=dt['gname']) - grp.save() - dt['obj'] = grp + #for dt in dat['groups']: + # try: + # grp = AbonGroup.objects.get(title=dt['gname']) + # except AbonGroup.DoesNotExist: + # grp = AbonGroup(title=dt['gname']) + # grp.save() + # dt['obj'] = grp + grp = AbonGroup.objects.get(id=43) + pshn_trf = Tariff.objects.get(id=3) + print(pshn_trf) + iam = UserProfile.objects.get(id=1) for dt in dat['users']: - grp = [gr for gr in dat['groups'] if dt['grp']==gr['gid']] - grp = grp[0]['obj'] if len(grp)>0 else None + #grp = [gr for gr in dat['groups'] if dt['grp']==gr['gid']] + #grp = grp[0]['obj'] if len(grp)>0 else None try: abon = Abon.objects.get(username=dt['name']) except Abon.DoesNotExist: abon = Abon(username=dt['name']) + try: + ip_addr = IpPoolItem.objects.get(ip=dt['ip']) + except IpPoolItem.DoesNotExist: + ip_addr = None abon.fio = dt['fio'] abon.telephone=dt['tel'] - abon.address=dt['addr'] + abon.house=dt['addr'] abon.group=grp + abon.ballance=dt['balance'] + abon.ip_address=ip_addr abon.save() - print((abon.username, abon.fio, abon.group)) + + abtrfs = AbonTariff.objects.filter(abon=abon) + if abtrfs.count() > 0: + abtrf = abtrfs[0] + else: + abtrf = AbonTariff() + abtrf.abon = abon + abtrf.tariff = pshn_trf + abtrf.save() + abtrf.activate(iam) + print(abon.username, abon.fio, abon.group, ip_addr) +