Browse Source

make detal page

devel
Dmitry Novikov 7 years ago
parent
commit
aff0c4e161
  1. 3
      new_customers/forms.py
  2. 38
      new_customers/migrations/0001_initial.py
  3. 1
      new_customers/models.py
  4. 54
      new_customers/templates/new_customers/potentialsubscriber_detail.html
  5. 24
      new_customers/templates/new_customers/potentialsubscriber_list.html
  6. 14
      new_customers/views.py

3
new_customers/forms.py

@ -6,3 +6,6 @@ class CustomerModelForm(forms.ModelForm):
class Meta: class Meta:
model = PotentialSubscriber model = PotentialSubscriber
exclude = ('make_data',) exclude = ('make_data',)
widgets = {
'deadline': forms.DateInput(attrs={'type': 'date'})
}

38
new_customers/migrations/0001_initial.py

@ -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',),
},
),
]

1
new_customers/models.py

@ -13,6 +13,7 @@ class PotentialSubscriber(models.Model):
max_length=16, max_length=16,
verbose_name=_('Telephone'), verbose_name=_('Telephone'),
blank=True, blank=True,
null=True,
validators=(RegexValidator( validators=(RegexValidator(
getattr(settings, 'TELEPHONE_REGEXP', r'^(\+[7893]\d{10,11})?$') getattr(settings, 'TELEPHONE_REGEXP', r'^(\+[7893]\d{10,11})?$')
),) ),)

54
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 %}
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'new_customers:customers_list' %}">{% trans 'Potential subscribers' %}</a></li>
<li class="active">{{ object.fio }}</li>
</ol>
{% endblock %}
{% block page-header %}
{{ object.fio|default:_('Not assigned') }}
{% endblock %}
{% block main %}
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">{% trans 'Potential subscriber' %}</h3>
</div>
<div class="panel-body">
<dl class="dl-horizontal">
{% for model_field in model_fields %}
<dt>{{ model_field.verbose_name }}</dt>
<dd>{{ model_field.value }}</dd>
{% endfor %}
</dl>
<form role="form" action="{% url 'new_customers:new_user' %}" method="post">{% csrf_token %}
{% bootstrap_form form %}
<div class="btn-group btn-group-sm">
<a href="#" class="btn btn-primary">
<span class="glyphicon glyphicon-save"></span> {% trans 'Save' %}
</a>
<a href="#" class="btn btn-success">
<span class="glyphicon glyphicon-fire"></span> {% trans 'Make client' %}
</a>
<a href="#" class="btn btn-default">
<span class="glyphicon glyphicon-remove-circle"></span> {% trans 'Cancel' %}
</a>
</div>
</form>
</div>
</div>
{% endblock %}

24
new_customers/templates/new_customers/potentialsubscriber_list.html

@ -23,16 +23,34 @@
</div> </div>
<div class="list-group"> <div class="list-group">
{% for new_user in object_list %} {% for new_user in object_list %}
{% with user_group=new_user.group %} {% with user_group=new_user.group %}
<a href="{{ new_user.get_absolute_url }}" class="list-group-item"> <a href="{{ new_user.get_absolute_url }}" class="list-group-item">
{% if user_group.deadline %}
<div class="pull-right"> <div class="pull-right">
<small>{{ user_group.deadline|date:'d M, H:i:s' }}</small>
<small>{{ new_user.make_data|date:'d M, H:i:s' }}</small>
{% if user_group.deadline %}
<small>{{ new_user.deadline|date:'d M, H:i:s' }}</small>
{% endif %}
</div> </div>
<h4>{{ new_user.fio }} <small>{{ new_user.telephone }}</small></h4>
{% if user_group %}
{{ user_group.title }}
{% else %}
{{ town|default_if_none:'' }}
{% endif %}
{{ new_user.street }}, {{ new_user.house }}
{% if new_user.description %}
<p>{{ new_user.description }}</p>
{% endif %} {% endif %}
<h4>{{ new_user.fio }}</h4>
</a> </a>
{% endwith %} {% endwith %}
{% empty %} {% empty %}
<a href="#" class="list-group-item"> <a href="#" class="list-group-item">
<p class="list-group-item-text">{% trans 'Not have new subscribers' %}</p> <p class="list-group-item-text">{% trans 'Not have new subscribers' %}</p>

14
new_customers/views.py

@ -16,6 +16,20 @@ class CustomerDetail(LoginAdminPermissionMixin, DetailView):
pk_url_kwarg = 'uid' pk_url_kwarg = 'uid'
permission_required = 'new_customers.view_potentialsubscriber' 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): class CustomerNew(LoginAdminMixin, PermissionRequiredMixin, CreateView):
model = PotentialSubscriber model = PotentialSubscriber

Loading…
Cancel
Save