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.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='anaf.core', widget_name='widget_welcome') widget.save() return profile
def main(data): action = data.get("action", "read") input_data = data.get("data", {}) result = {} if action == "create": widget = Widget() widget.fill_from_json(input_data) widget.save(b64source=input_data.get("b64source", None)) result[widget.guid] = widget.to_json() elif action == "read": for wid_guid in input_data: widget = Widget.get(guid=wid_guid) result[wid_guid] = widget.to_json( include=["b64source"]) if widget else None elif action == "update": for widget_guid in input_data: widget = Widget.get(guid=widget_guid) wid_json = input_data[widget_guid] if widget: widget.fill_from_json(wid_json) widget.save(b64source=input_data.get("b64source", None)) result[widget_guid] = widget.to_json(include=["b64source"]) elif action == "delete": for widget_guid in input_data: widget = Widget.get(guid=widget_guid) if widget: widget.delete() result[widget_guid] = "deleted" else: result[widget_guid] = "not_found" write_response(result)
workspace = Workspace.get(guid=workspace_id) if not workspace: self.action('goTo', ['/main']) elif command in ['delete', 'update']: if 'widget_id' not in request.arguments: raise Exception(u'Widget ID is not provided') widget_id = request.arguments['widget_id'] widget = Widget.get(guid=widget_id, workspace_id=workspace.guid) if widget: if command == 'delete': widget.delete() else: title = request.arguments['title'] if title: widget.name = title widget.save() self.dialog_update.action('hide', ['0']) elif command == 'create': title = request.arguments['title'] if title: widget = Widget() widget.workspace_id = workspace.guid widget.name = title widget.save()