def create_widgets(self): for i in range(0, self.widget_count): test_widget = Widget() test_widget.widget_class = "TestWidget" test_widget.page = self.page test_widget.user_id = 1 test_widget.widgetslot = self.slot test_widget.status = CONTENT_STATUS_DRAFT test_widget.save() self.test_widgets.append(test_widget) self.test_widgets[self.widget_count-1].status = CONTENT_STATUS_PUBLISHED self.test_widgets[self.widget_count-1].save()
def create_widgets(self): for i in range(0, self.widget_count): test_widget = Widget() test_widget.widget_class = "TestWidget" test_widget.page = self.page test_widget.user_id = 1 test_widget.widgetslot = self.slot test_widget.status = CONTENT_STATUS_DRAFT test_widget.save() self.test_widgets.append(test_widget) self.test_widgets[self.widget_count - 1].status = CONTENT_STATUS_PUBLISHED self.test_widgets[self.widget_count - 1].save()
def test_widget_renderer(self): # create page with widget slots page = RichTextPage.objects.create(title="testpage", status=CONTENT_STATUS_DRAFT) # create widget slot slot = "slot" # create test widget test_widget = Widget() test_widget.widget_class = "TestWidget" test_widget.page = page test_widget.user_id = 1 test_widget.slot = slot test_widget.save() context = {} context["page"] = page context["request"] = {"user": self._user} # render widget, there should be only one widget i.e test_widget widgets = render_widgets_for_slot(slot, context) self.assertEqual(widgets[0]["widget"], test_widget) # check if rendered content is correct self.assertEqual(widgets[0]["content"], "Test Widget Rendered")
def create_widget(request, **kwargs): """ Renders widget options based on supplied widget class or displays a select screen """ data = {} if not is_editable(Widget(), request): response = _("Permission denied") data = { 'error': {"_all_": [response]}, 'permission': False } else: if request.POST: widget_class = request.POST["widget_class"] slot = request.POST["widgetslot"] try: page_obj = Page.objects.published(request.user)\ .get(id=request.POST["page"]) options_form = WidgetOptionsForm(widget_class, request.POST) if options_form.is_valid(): try: "update widget if it exists" widget = Widget.objects.get(id=request.POST["widget"]) except Exception: widget = Widget(widgetslot=slot, page=page_obj, widget_class=widget_class, user=request.user) widget.save() if options_form.save(widget=widget): data = {'valid': True, 'form': 'saved'} elif options_form.errors: data = ajaxerror(options_form) except Exception, e: data = {"valid": "false", "error": { "_all_": ["Something went wrong, please refresh the page"],}}
def create_widget(request, **kwargs): """ Renders widget options based on supplied widget class or displays a select screen """ data = {} widget_class = request.POST["widget_class"] widget_class_obj = get_widget(widget_class) containsModel = hasModel(widget_class_obj) slot = request.POST["widgetslot"] try: page = Page.objects.get(id=request.POST["page"]) ### HANDLE OPTIONS FORM #### options_form = WidgetOptionsForm(widget_class, request.POST, request.FILES) widget = None if options_form.is_valid(): try: "update widget if it exists" widget = Widget.objects.get(id=request.POST["widget"]) except Exception: widget = Widget(widgetslot=slot, widget_class=widget_class, user=request.user, page=page) widget.save() if options_form.save(widget=widget): data = {'valid': True, 'form': 'saved'} elif options_form.errors: data = ajaxerror(options_form) if widget is None and not options_form.hasOptions and containsModel: try: "update widget if it exists" widget = Widget.objects.get(id=request.POST["widget"]) except Exception: widget = Widget(widgetslot=slot, widget_class=widget_class, user=request.user, page=page) widget.save() model_widget = None if widget: model_widget = widget model_form = get_model_form_for_widget(widget_class_obj, {"POST": request.POST, "FILES": request.FILES}, widget=model_widget ) if model_form: try: if model_form.is_valid(): saved_obj = model_form.save() data.update({"obj": saved_obj.id}) elif model_form.errors: model_data = ajaxerror(model_form) errors = dict(data.get("errors", {}), **model_data["errors"]) data = {'valid': False, "errors": errors} except Exception: raise except Exception, e: data = {"valid": False, \ "errors": {"_all_": ["Something went wrong, please refresh the page"], "exception": e.message}}
def create_widget(request, **kwargs): """ Renders widget options based on supplied widget class or displays a select screen """ data = {} widget_class = request.POST["widget_class"] widget_class_obj = get_widget(widget_class) containsModel = hasModel(widget_class_obj) slot = request.POST["widgetslot"] try: page = Page.objects.get(id=request.POST["page"]) ### HANDLE OPTIONS FORM #### options_form = WidgetOptionsForm(widget_class, request.POST, request.FILES) widget = None if options_form.is_valid(): try: "update widget if it exists" widget = Widget.objects.get(id=request.POST["widget"]) except Exception: widget = Widget(widgetslot=slot, widget_class=widget_class, user=request.user, page=page) widget.save() if options_form.save(widget=widget): data = {'valid': True, 'form': 'saved'} elif options_form.errors: data = ajaxerror(options_form) if widget is None and not options_form.hasOptions and containsModel: try: "update widget if it exists" widget = Widget.objects.get(id=request.POST["widget"]) except Exception: widget = Widget(widgetslot=slot, widget_class=widget_class, user=request.user, page=page) widget.save() model_widget = None if widget: model_widget = widget model_form = get_model_form_for_widget(widget_class_obj, {"POST": request.POST, "FILES": request.FILES}, widget=model_widget ) if model_form: try: if model_form.is_valid(): saved_obj = model_form.save() data.update({"obj": saved_obj.id}) elif model_form.errors: model_data = ajaxerror(model_form) errors = dict(data.get("errors", {}), **model_data["errors"]) data = {'valid': False, "errors": errors} except Exception: raise except Exception, e: data = {"valid": False, "errors": {"_all_": ["Something went wrong, please refresh the page"], "exception": e.message}}