Esempio n. 1
0
 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
Esempio n. 2
0
def _create_widget_object(request, module_name, widget_name):
    "Create a Widget object if one is available for the current user Perspective"
    
    user = request.user.get_profile()
    perspective = user.get_perspective()
    modules = perspective.get_modules()
        
    obj = None
    
    current_module = modules.filter(name=module_name)
    widget = None
    if current_module:
        current_module = current_module[0]
        widget = _get_widget(request, current_module, widget_name)
    if widget:
        obj = Widget(user=user, perspective=perspective)
        obj.module_name = widget['module_name']
        obj.widget_name = widget_name
        obj.save()
        
    #except Exception:
    #    pass
    
    return obj