From aff0c4e16130d15019f5f3528d0619853d508c6d Mon Sep 17 00:00:00 2001 From: Dmitry Novikov Date: Sat, 22 Jun 2019 01:04:29 +0300 Subject: [PATCH] make detal page --- new_customers/forms.py | 3 ++ new_customers/migrations/0001_initial.py | 38 ------------- new_customers/models.py | 1 + .../potentialsubscriber_detail.html | 54 +++++++++++++++++++ .../potentialsubscriber_list.html | 28 ++++++++-- new_customers/views.py | 14 +++++ 6 files changed, 95 insertions(+), 43 deletions(-) delete mode 100644 new_customers/migrations/0001_initial.py create mode 100644 new_customers/templates/new_customers/potentialsubscriber_detail.html diff --git a/new_customers/forms.py b/new_customers/forms.py index 2d00eea..59b66b9 100644 --- a/new_customers/forms.py +++ b/new_customers/forms.py @@ -6,3 +6,6 @@ class CustomerModelForm(forms.ModelForm): class Meta: model = PotentialSubscriber exclude = ('make_data',) + widgets = { + 'deadline': forms.DateInput(attrs={'type': 'date'}) + } diff --git a/new_customers/migrations/0001_initial.py b/new_customers/migrations/0001_initial.py deleted file mode 100644 index dbf8fbe..0000000 --- a/new_customers/migrations/0001_initial.py +++ /dev/null @@ -1,38 +0,0 @@ -# Generated by Django 2.0 on 2019-06-17 00:17 - -import django.core.validators -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ('group_app', '0003_auto_20180808_1236'), - ] - - operations = [ - migrations.CreateModel( - name='PotentialSubscriber', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('fio', models.CharField(max_length=256, verbose_name='fio')), - ('telephone', models.CharField(blank=True, max_length=16, validators=[django.core.validators.RegexValidator('^(\\+[7,8,9,3]\\d{10,11})?$')], verbose_name='Telephone')), - ('town', models.CharField(blank=True, max_length=127, null=True, verbose_name='Town')), - ('street', models.CharField(blank=True, max_length=127, null=True, verbose_name='Street')), - ('house', models.CharField(blank=True, max_length=12, null=True, verbose_name='House')), - ('description', models.TextField(blank=True, null=True, verbose_name='Comment')), - ('make_data', models.DateTimeField(auto_now_add=True, verbose_name='Create date')), - ('deadline', models.DateField(blank=True, null=True, verbose_name='Deadline connection')), - ('group', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='group_app.Group', verbose_name='User group')), - ], - options={ - 'verbose_name': 'Potential customer', - 'verbose_name_plural': 'Potential customers', - 'db_table': 'new_customers', - 'ordering': ('-id',), - }, - ), - ] diff --git a/new_customers/models.py b/new_customers/models.py index 9cdc761..d0c97e7 100644 --- a/new_customers/models.py +++ b/new_customers/models.py @@ -13,6 +13,7 @@ class PotentialSubscriber(models.Model): max_length=16, verbose_name=_('Telephone'), blank=True, + null=True, validators=(RegexValidator( getattr(settings, 'TELEPHONE_REGEXP', r'^(\+[7893]\d{10,11})?$') ),) diff --git a/new_customers/templates/new_customers/potentialsubscriber_detail.html b/new_customers/templates/new_customers/potentialsubscriber_detail.html new file mode 100644 index 0000000..99f714c --- /dev/null +++ b/new_customers/templates/new_customers/potentialsubscriber_detail.html @@ -0,0 +1,54 @@ +{% extends request.is_ajax|yesno:'bajax.html,base.html' %} +{% load i18n bootstrap3 %} + +{% block breadcrumb %} + +{% endblock %} + +{% block page-header %} + {{ object.fio|default:_('Not assigned') }} +{% endblock %} + +{% block main %} + +
+
+

{% trans 'Potential subscriber' %}

+
+
+ +
+ + {% for model_field in model_fields %} +
{{ model_field.verbose_name }}
+
{{ model_field.value }}
+ {% endfor %} + +
+ +
{% csrf_token %} + {% bootstrap_form form %} + + +
+ +
+
+ +{% endblock %} diff --git a/new_customers/templates/new_customers/potentialsubscriber_list.html b/new_customers/templates/new_customers/potentialsubscriber_list.html index 4b74f69..7cf48f9 100644 --- a/new_customers/templates/new_customers/potentialsubscriber_list.html +++ b/new_customers/templates/new_customers/potentialsubscriber_list.html @@ -23,16 +23,34 @@
{% for new_user in object_list %} + {% with user_group=new_user.group %} - {% if user_group.deadline %} -
- {{ user_group.deadline|date:'d M, H:i:s' }} -
+ +
+ {{ new_user.make_data|date:'d M, H:i:s' }} + {% if user_group.deadline %} + {{ new_user.deadline|date:'d M, H:i:s' }} + {% endif %} +
+ +

{{ new_user.fio }} {{ new_user.telephone }}

+ + {% if user_group %} + {{ user_group.title }} + {% else %} + {{ town|default_if_none:'' }} {% endif %} -

{{ new_user.fio }}

+ + {{ new_user.street }}, {{ new_user.house }} + + {% if new_user.description %} +

{{ new_user.description }}

+ {% endif %} +
{% endwith %} + {% empty %}

{% trans 'Not have new subscribers' %}

diff --git a/new_customers/views.py b/new_customers/views.py index efe1afb..9d68f91 100644 --- a/new_customers/views.py +++ b/new_customers/views.py @@ -16,6 +16,20 @@ class CustomerDetail(LoginAdminPermissionMixin, DetailView): 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