from django.contrib import messages
from django.db.transaction import atomic
from django.http import HttpResponseRedirect
from django.urls import reverse_lazy
from django.utils.encoding import force_str
from django.utils.translation import gettext_lazy as _
from django.views.generic import DetailView
from shuup.admin.form_part import FormPartsViewMixin, SaveFormPartsMixin
from shuup.admin.toolbar import get_default_edit_toolbar
from shuup.admin.utils.views import CreateOrUpdateView
from shuup.core.models import Attribute
[docs]
class AttributeEditView(SaveFormPartsMixin, FormPartsViewMixin, CreateOrUpdateView):
model = Attribute
template_name = "shuup/admin/attributes/edit.jinja"
context_object_name = "attribute"
base_form_part_classes = []
form_part_class_provide_key = "admin_attribute_form_part"
add_form_errors_as_messages = True
[docs]
class AttributeDeleteView(DetailView):
model = Attribute
[docs]
def post(self, request, *args, **kwargs):
attribute = self.get_object()
attribute_name = force_str(attribute)
attribute.delete()
messages.success(request, _("%s has been deleted.") % attribute_name)
return HttpResponseRedirect(reverse_lazy("shuup_admin:attribute.list"))