2 from optparse import make_option
4 from django.core.management.base import BaseCommand, CommandError
5 from django.utils.text import slugify
7 from ...models import User, Emission
10 class Command(BaseCommand):
13 def handle(self, filename, verbosity, **kwargs):
14 self.verbose = (verbosity > 1)
15 for line in csv.reader(file(filename)):
16 email, lastname, firstname = [unicode(x.strip(), 'utf-8') for x in line[:3]]
17 emission_slugs = [x.strip().lower() for x in line[4:9] if x]
18 if not email or not emission_slugs:
20 if firstname and lastname:
21 username = slugify(u'%s-%s' % (firstname, lastname))
22 elif firstname or lastname:
23 username = slugify(firstname or lastname)
25 username = '%s.%s' % (username, slugify(unicode(emission_slugs[0])))
29 username = username[:28]
32 user = User.objects.get(username=username)
33 except User.DoesNotExist:
34 user = User.objects.create_user(username, email)
35 user.set_password('panik')
36 user.first_name = firstname
37 user.last_name = lastname
39 for slug in emission_slugs:
41 emissions.append(Emission.objects.get(slug=slug))
42 except Emission.DoesNotExist:
43 print('E: missing emission:', slug)
44 user.emissions = emissions