예제 #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
예제 #2
0
파일: forms.py 프로젝트: alejo8591/maker
 def save(self, request, contact_type=None):
     "Process form and create DB objects as required"
     if self.instance:
         contact = self.instance
     else:
         contact = Contact()
         contact.contact_type = contact_type
     
     contact.name = unicode(self.cleaned_data['name'])
     
     if 'parent' in self.cleaned_data:
         contact.parent = self.cleaned_data['parent']
     
     if 'related_user' in self.cleaned_data:
         contact.related_user = self.cleaned_data['related_user']
     
     contact.save()
     
     if self.instance:
         contact.contactvalue_set.all().delete()
     for field in contact.contact_type.fields.all():
         for form_name in self.cleaned_data:
             if re.match(str("^"+field.name+"___\d+$"), form_name):
                 if isinstance(self.fields[form_name], forms.FileField):
                     value = ContactValue(field=field, contact=contact,
                                          value=self._handle_uploaded_file(form_name))
                     if isinstance(self.fields[form_name], forms.ImageField):
                         self._image_resize(value.value)
                 else:
                     if field.field_type == 'picture' and isinstance(self.fields[form_name],
                                                                     forms.ChoiceField):
                         if self.cleaned_data[form_name] != 'delete':
                             value = ContactValue(field=field, contact=contact,
                                                  value=self.cleaned_data[form_name])
                     else:
                         value = ContactValue(field=field, contact=contact,
                                              value=self.cleaned_data[form_name])
                 value.save()       
     return contact