Commit 59881309 by benjaoming

Sidebar to handle plugins without a form

parent cd60dfde
...@@ -42,6 +42,8 @@ class RevisionForm(forms.ModelForm): ...@@ -42,6 +42,8 @@ class RevisionForm(forms.ModelForm):
kwargs['commit'] = False kwargs['commit'] = False
revision = super(RevisionForm, self).save(*args, **kwargs) revision = super(RevisionForm, self).save(*args, **kwargs)
revision.set_from_request(self.request) revision.set_from_request(self.request)
revision.set_from_request(self.request)
revision.save()
self.image.add_revision(self.instance, save=True) self.image.add_revision(self.instance, save=True)
return revision return revision
return super(SidebarForm, self).save(*args, **kwargs) return super(SidebarForm, self).save(*args, **kwargs)
......
...@@ -224,7 +224,7 @@ class Edit(FormView, ArticleMixin): ...@@ -224,7 +224,7 @@ class Edit(FormView, ArticleMixin):
@method_decorator(get_article(can_write=True)) @method_decorator(get_article(can_write=True))
def dispatch(self, request, article, *args, **kwargs): def dispatch(self, request, article, *args, **kwargs):
self.sidebar_plugins = plugin_registry.get_sidebar() self.sidebar_plugins = plugin_registry.get_sidebar()
self.sidebar_forms = [] self.sidebar = []
return super(Edit, self).dispatch(request, article, *args, **kwargs) return super(Edit, self).dispatch(request, article, *args, **kwargs)
def get_form(self, form_class): def get_form(self, form_class):
...@@ -245,25 +245,25 @@ class Edit(FormView, ArticleMixin): ...@@ -245,25 +245,25 @@ class Edit(FormView, ArticleMixin):
to identify which form is being saved.""" to identify which form is being saved."""
form_classes = {} form_classes = {}
for cnt, plugin in enumerate(self.sidebar_plugins): for cnt, plugin in enumerate(self.sidebar_plugins):
form_classes['form%d' % cnt] = plugin.sidebar.get('form_class', None) form_classes['form%d' % cnt] = (plugin, plugin.sidebar.get('form_class', None))
return form_classes return form_classes
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
# Generate sidebar forms # Generate sidebar forms
self.sidebar_forms = [] self.sidebar_forms = []
for form_id, Form in self.get_sidebar_form_classes().items(): for form_id, (plugin, Form) in self.get_sidebar_form_classes().items():
if Form: if Form:
form = Form(self.article, self.request.user) form = Form(self.article, self.request.user)
setattr(form, 'form_id', form_id) setattr(form, 'form_id', form_id)
else: else:
form = None form = None
self.sidebar_forms.append(form) self.sidebar.append((plugin, form))
return super(Edit, self).get(request, *args, **kwargs) return super(Edit, self).get(request, *args, **kwargs)
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
# Generate sidebar forms # Generate sidebar forms
self.sidebar_forms = [] self.sidebar_forms = []
for form_id, Form in self.get_sidebar_form_classes().items(): for form_id, (plugin, Form) in self.get_sidebar_form_classes().items():
if Form: if Form:
if form_id == self.request.GET.get('f', None): if form_id == self.request.GET.get('f', None):
form = Form(self.article, self.request, data=self.request.POST, files=self.request.FILES) form = Form(self.article, self.request, data=self.request.POST, files=self.request.FILES)
...@@ -282,7 +282,7 @@ class Edit(FormView, ArticleMixin): ...@@ -282,7 +282,7 @@ class Edit(FormView, ArticleMixin):
setattr(form, 'form_id', form_id) setattr(form, 'form_id', form_id)
else: else:
form = None form = None
self.sidebar_forms.append(form) self.sidebar.append((plugin, form))
return super(Edit, self).post(request, *args, **kwargs) return super(Edit, self).post(request, *args, **kwargs)
def form_valid(self, form): def form_valid(self, form):
...@@ -309,7 +309,7 @@ class Edit(FormView, ArticleMixin): ...@@ -309,7 +309,7 @@ class Edit(FormView, ArticleMixin):
kwargs['edit_form'] = kwargs.pop('form', None) kwargs['edit_form'] = kwargs.pop('form', None)
kwargs['editor'] = editors.getEditor() kwargs['editor'] = editors.getEditor()
kwargs['selected_tab'] = 'edit' kwargs['selected_tab'] = 'edit'
kwargs['sidebar'] = zip(self.sidebar_plugins, self.sidebar_forms) kwargs['sidebar'] = self.sidebar
return super(Edit, self).get_context_data(**kwargs) return super(Edit, self).get_context_data(**kwargs)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment