コード例 #1
0
ファイル: forms.py プロジェクト: alejo8591/maker
 def save(self, *args, **kwargs):
     "Form processor"
     
     profile = None
     
     if self.invitation:
         # Create DjangoUser
         django_user = django_auth.User(username=self.cleaned_data['username'], password='')
         django_user.set_password(self.cleaned_data['password'])
         django_user.save()
         
         # Crate profile
         try:
             profile = django_user.get_profile()
         except:
             profile = User()
             profile.user = django_user
         
         profile.name = django_user.username
         profile.default_group = self.invitation.default_group
         profile.save()
         
         # Create contact
         try:    
             contact_type = ContactType.objects.get(Q(name='Person') | Q(slug='person'))
         except:
             contact_type = ContactType.objects.all()[0]
         
         try:
             # Check if contact has already been created (e.g. by a signals
             contact = profile.get_contact()
             if not contact:
                 contact = Contact()
         except:
             contact = Contact()
             
         contact.name         = self.cleaned_data['name']
         contact.contact_type = contact_type
         contact.related_user = profile
         contact.save()
         
         # Set email
         try:
             emailfield = contact_type.fields.filter(field_type='email')[0]
             email = ContactValue(value=self.invitation.email, field=emailfield, contact=contact)
             email.save()
         except:
             pass
         
         # Add quick start widget
         widget = Widget(user=profile,
                         perspective=profile.get_perspective(),
                         module_name='maker.core',
                         widget_name='widget_welcome')
         widget.save()
     
     return profile