def populate_user(row): for k, v in row.items(): if v == '': del row[k] NON_REQUIRED_FIELDS = ['email', 'supervisor', 'phone'] for k, v in row.iteritems(): if v is None and k not in NON_REQUIRED_FIELDS: print '%s is required' % k return try: User.objects.get(username=row['username']) print 'user %s already exists' % row['username'] return except User.DoesNotExist: pass ALLOWED_STATES = ('fct', 'nasawara', 'national') if not row['state'] in ALLOWED_STATES: print 'state must be one of: %s' % ', '.join(ALLOWED_STATES) return ALLOWED_PROGRAMS = ('pbf', 'fadama', 'both') if not row['program'] in ALLOWED_PROGRAMS: print 'program must be one of: %s' % ', '.join(ALLOWED_PROGRAMS) return PROGRAM_PERMS = { 'pbf': 'pbf_view', 'fadama': 'fadama_view', } perms = [] if row['program'] == 'both': perms.extend(PROGRAM_PERMS.values()) else: perms.append(PROGRAM_PERMS[row['program']]) is_supervisor = (row.get('supervisor', '').lower() in ('y', 'yes', 'x')) if is_supervisor: perms.append('supervisor') def add_perm(u, perm_name): u.user_permissions.add(Permission.objects.get(codename=perm_name)) u = User() u.username = row['username'] u.first_name = row['first name'] u.last_name = row['last name'] u.email = row.get('email', '*****@*****.**') u.set_password(row['password']) u.save() for p in perms: add_perm(u, p) u.save() try: contact = Contact.objects.get(user__username=row['username']) return except Contact.DoesNotExist: pass if row['state'] == 'national': loc = Location.objects.get(slug='nigeria') else: loc = Location.objects.get(type__slug='state', slug=row['state']) c = Contact() c.name = '%s %s' % (u.first_name, u.last_name) c.first_name = u.first_name c.last_name = u.last_name c.email = row.get('email', '') c.user = u c.location = loc c.save() backend = Backend.objects.get(name='httptester') if row.get('phone'): conn = Connection() conn.backend = backend conn.identity = row['phone'] conn.contact = c conn.save()
def populate_user(row): for k, v in row.items(): if v == "": del row[k] NON_REQUIRED_FIELDS = ["email", "perm"] for k, v in row.iteritems(): if v is None and k not in NON_REQUIRED_FIELDS: print "%s is required" % k return try: User.objects.get(username=row["username"]) print "user %s already exists" % row["username"] return except User.DoesNotExist: pass ALLOWED_STATES = ("fct", "nasawara", "national") if not row["state"] in ALLOWED_STATES: print "state must be one of: %s" % ", ".join(ALLOWED_STATES) return if "perm" in row and not row["perm"] in ALLOWED_PERMS: print "perm must be one of: %s" % ", ".join(ALLOWED_PERMS) return if "perm" in row: perm = Permission.objects.get(codename=row["perm"]) else: perm = None u = User() u.username = row["username"] u.first_name = row["first name"] u.last_name = row["last name"] u.email = row.get("email", "*****@*****.**") u.set_password(row["password"]) u.save() if perm: u.user_permissions.add(perm) try: contact = Contact.objects.get(user__username=row["username"]) return except Contact.DoesNotExist: pass if row["state"] == "national": loc = Location.objects.get(slug="nigeria") else: loc = Location.objects.get(type__slug="state", slug=row["state"]) c = Contact() c.name = "%s %s" % (u.first_name, u.last_name) c.first_name = u.first_name c.last_name = u.last_name c.email = row.get("email", "") c.user = u c.location = loc c.save()