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
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'
|