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])))
30 user = User.objects.get(username=username)
31 except User.DoesNotExist:
32 user = User.objects.create_user(username, email)
33 user.set_password('panik')
34 user.first_name = firstname
35 user.last_name = lastname
37 for slug in emission_slugs:
39 emissions.append(Emission.objects.get(slug=slug))
40 except Emission.DoesNotExist:
41 print 'E: missing emission:', slug
42 user.emissions = emissions