You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

37 lines
1.5 KiB

from django.contrib.auth.mixins import PermissionRequiredMixin
from django.views.generic import ListView, DetailView, CreateView
from djing.global_base_views import OrderingMixin
from djing.lib.mixins import LoginAdminMixin, LoginAdminPermissionMixin
from new_customers.forms import CustomerModelForm
from new_customers.models import PotentialSubscriber
class CustomersList(LoginAdminMixin, OrderingMixin, ListView):
model = PotentialSubscriber
class CustomerDetail(LoginAdminPermissionMixin, DetailView):
model = PotentialSubscriber
pk_url_kwarg = 'uid'
permission_required = 'new_customers.view_potentialsubscriber'
def get_context_data(self, **kwargs):
model_fields = filter(lambda x: hasattr(self.object, x.name), self.object._meta.fields)
model_fields = filter(lambda x: getattr(self.object, x.name), model_fields)
model_fields = filter(lambda x: x.name != 'id', model_fields)
context = {
'form': CustomerModelForm(instance=self.object),
'model_fields': map(lambda f: {
'verbose_name': f.verbose_name,
'value': getattr(self.object, f.name)
}, model_fields)
}
context.update(kwargs)
return super().get_context_data(**context)
class CustomerNew(LoginAdminMixin, PermissionRequiredMixin, CreateView):
model = PotentialSubscriber
form_class = CustomerModelForm
permission_required = 'new_customers.add_potentialsubscriber'