Source code for shoop.admin.modules.products.views.edit_parent
# -*- coding: utf-8 -*-
# This file is part of Shoop.
#
# Copyright (c) 2012-2016, Shoop Ltd. All rights reserved.
#
# This source code is licensed under the AGPLv3 license found in the
# LICENSE file in the root directory of this source tree.
from django import forms
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.views.generic import UpdateView
from shoop.admin.base import MenuEntry
from shoop.admin.form_part import (
FormPart, FormPartsViewMixin, TemplatedFormDef
)
from shoop.admin.toolbar import get_default_edit_toolbar, Toolbar
from shoop.admin.utils.urls import get_model_url
from shoop.core.models import Product
[docs]class ProductParentBaseView(FormPartsViewMixin, UpdateView):
model = Product
context_object_name = "product"
form_class = forms.Form
form_part_classes = []
toolbar_class = None
[docs] def dispatch(self, request, *args, **kwargs):
self.object = self.get_object()
parent = self.object.get_all_package_parents().first()
if parent:
# By default, redirect to the first parent
return HttpResponseRedirect(
reverse("shoop_admin:product.edit_package", kwargs={"pk": parent.id})
)
return super(ProductParentBaseView, self).dispatch(request, *args, **kwargs)
[docs] def get_breadcrumb_parents(self):
return [
MenuEntry(
text=self.object,
url=get_model_url(self.object)
)
]
[docs] def post(self, request, *args, **kwargs):
command = request.POST.get("command")
if command:
return self.dispatch_command(request, command)
return super(ProductParentBaseView, self).post(request, *args, **kwargs)
[docs] def get_context_data(self, **kwargs):
context = super(ProductParentBaseView, self).get_context_data(**kwargs)
if self.toolbar_class:
context["toolbar"] = self.toolbar_class(self)
return context
[docs] def get_success_url(self):
return self.request.path
[docs] def dispatch_command(self, request, command):
pass