From 8119b1bd55f9cfaed6591a89aedc362589458ccc Mon Sep 17 00:00:00 2001 From: Mukhtar Date: Thu, 2 Jun 2016 20:45:37 +0300 Subject: [PATCH] add project customer and contractor templates --- archilance/settings/base.py | 1 + data.xlsx | Bin 0 -> 62191 bytes projects/forms.py | 4 +- .../migrations/0013_auto_20160602_1203.py | 20 ++ .../migrations/0014_auto_20160602_1559.py | 29 +++ .../migrations/0015_auto_20160602_1606.py | 20 ++ projects/models.py | 9 +- .../templates/projects/project_detail.html | 171 +++++++++++------- projects/views.py | 14 -- .../migrations/0002_auto_20160602_1203.py | 19 ++ templates/base.html | 2 +- test.py | 5 + users/migrations/0009_auto_20160602_1213.py | 27 +++ users/models.py | 1 + users/templates/users/contractor.html | 1 + users/urls.py | 7 +- users/views.py | 48 +++-- worksell/migrations/0001_initial.py | 25 +++ 18 files changed, 301 insertions(+), 102 deletions(-) create mode 100644 data.xlsx create mode 100644 projects/migrations/0013_auto_20160602_1203.py create mode 100644 projects/migrations/0014_auto_20160602_1559.py create mode 100644 projects/migrations/0015_auto_20160602_1606.py create mode 100644 specializations/migrations/0002_auto_20160602_1203.py create mode 100644 test.py create mode 100644 users/migrations/0009_auto_20160602_1213.py create mode 100644 worksell/migrations/0001_initial.py diff --git a/archilance/settings/base.py b/archilance/settings/base.py index a812022..376ea03 100644 --- a/archilance/settings/base.py +++ b/archilance/settings/base.py @@ -25,6 +25,7 @@ DJANGO_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'django.contrib.humanize', ] THIRD_PARTY_APPS = [ diff --git a/data.xlsx b/data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..13dce20e115ee1783b9408926131d0a489b3f7da GIT binary patch literal 62191 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�P9*<@Y#^x?n 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

{{ object }}

  • - 13.0.2016 + {{ object.created }}
  • - Техническое сопровождение + {{ object.type_work }}
+ {% if object.secure_transaction %}
-

Есть допуск СРО

+ +

Есть допуск СРО

+
+ {% endif %}
@@ -66,22 +70,19 @@
  • - Местоположение: Россия, Москва + Местоположение: {{ object.realty.country }},{{ object.realty.city }}
  • - Классификация здания: Коттедж + Классификация здания: {{ object.realty.building_classification }}
  • - Вид строительства: Новое + Вид строительства: {{ object.realty.type_construction }}

- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida - dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar tempor. Cum sociis natoque - penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra - vulputate, felis tellus mollis orci, sed rhoncus sapien nunc eget odio. + {{ object.text }}

@@ -100,28 +101,95 @@
{% if perms.projects.add_answer %} - -

Оставить ответ

-
+ {{ form.errors }} {% csrf_token %} - {% for field in form %} -
-

{{ field.label }}

- {{ field }} -
+
+ +
+
+

{{ form.cost.label }}

+ + +
+
+
+
+

{{ form.cost_type.label }}

+ {{ form.cost_type }} +
+
+ +
+
+
+
+
+

{{ form.term.label }}

+ +
+
+ +
+
+

{{ form.term_type.label }}

+ {{ form.term_type }} +
+
+ +
+
+
+
+
+

{{ form.text.label }}

+ {{ form.project }} +
+
+
+
+
+
+
- {% endfor %} -
{% endif %}
+ + {% if not perms.projects.add_answer %} +
+
+

Исполнители

+
+
+
+ + + +
+
+
+
+
+

Сравнить кандидатов

+
+
+ {% endif %} +
+ {% endfor %} +
diff --git a/test.py b/test.py new file mode 100644 index 0000000..d3f7e44 --- /dev/null +++ b/test.py @@ -0,0 +1,5 @@ +import xlrd +rb = xlrd.open_workbook('data.xlsx') +sheet = rb.sheet_by_index(0) +for rx in range(sheet.nrows): + print(sheet.row(rx)) diff --git a/users/migrations/0009_auto_20160602_1213.py b/users/migrations/0009_auto_20160602_1213.py new file mode 100644 index 0000000..d614b22 --- /dev/null +++ b/users/migrations/0009_auto_20160602_1213.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.6 on 2016-06-02 12:13 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0008_auto_20160525_1527'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='nickname', + field=models.CharField(blank=True, max_length=50, null=True), + ), + migrations.AlterField( + model_name='team', + name='owner', + field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='team', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/users/models.py b/users/models.py index a3e4908..f6fe5ea 100644 --- a/users/models.py +++ b/users/models.py @@ -32,6 +32,7 @@ class CustomerUserManager(models.Manager): class User(AbstractBaseUser, PermissionsMixin): + nickname = models.CharField(max_length=50, blank=True,null=True) first_name = models.CharField(max_length=255, blank=True) last_name = models.CharField(max_length=255, blank=True) email = models.EmailField(max_length=255, unique=True, db_index=True) diff --git a/users/templates/users/contractor.html b/users/templates/users/contractor.html index efad0e5..166f23b 100644 --- a/users/templates/users/contractor.html +++ b/users/templates/users/contractor.html @@ -2,6 +2,7 @@ {% block content %} +

{{ object }}

{{ user }}

{{ user.groups.all }}

diff --git a/users/urls.py b/users/urls.py index 43ef580..21be00a 100755 --- a/users/urls.py +++ b/users/urls.py @@ -1,13 +1,16 @@ from django.conf import urls from django.contrib.auth.views import login, logout -from .views import UserListView, UserDetailView, UserInfoListView, UserView +from .views import UserListView, UserDetailView, UserInfoListView, CustomerView, UserView, ContractorDetailView + +app_name = 'users' urlpatterns = [ urls.url(r'^profile/$', UserDetailView.as_view(), name='user-detail'), # urls.url(r'^login/?$', login, {'template_name': 'users/login.html'}), # urls.url(r'^logout/?$', logout), urls.url(r'^$', UserListView.as_view(), name='users_list'), urls.url(r'^info$', UserInfoListView.as_view(), name='users_info_list'), - urls.url(r'^contractor/(?P\d+)$$', UserView.as_view(), name='user_view'), + urls.url(r'^contractor/(?P\d+)$$', ContractorDetailView.as_view(), name='contactor_view'), + urls.url(r'^customer/(?P\d+)$$', CustomerView.as_view(), name='customer_view'), urls.url(r'^(?P\d+)$', UserView.as_view(), name='user_view'), ] diff --git a/users/views.py b/users/views.py index da84eff..0430440 100644 --- a/users/views.py +++ b/users/views.py @@ -27,29 +27,41 @@ class UserDetailView(DetailView): class UserView(View): - template_name = 'users/contractor.html' + pass + # template_name = 'users/contractor.html' + # + # def get(self, request, pk): + # user = User.objects.get(pk=pk) + # user_group = user.groups.all().first() + # if 'Заказчики' in user_group.name: + # self.template_name = 'users/customer.html' + # + # return render(request, self.template_name, {'user': user}) + # # import code; code.interact(local=dict(globals(), **locals())) - def get(self, request, pk): - user = User.objects.get(pk=pk) - user_group = user.groups.all().first() - if 'Заказчики' in user_group.name: - self.template_name = 'users/customer.html' - return render(request, self.template_name, {'user': user}) - # import code; code.interact(local=dict(globals(), **locals())) +class UserUpdateView(UpdateView): + model = User +from django.http import Http404 +from django.shortcuts import redirect -class UserUpdateView(UpdateView): +class ContractorDetailView(DetailView): model = User + template_name = 'users/contractor.html' -# class ContractorDetailView(DetailView): -# model = User -# template_name = 'users/contractor.html' -# -# def get_queryset(self): -# qs = super().get_queryset() -# return User.contractor_objects.get(self.pk) + def get_object(self, queryset=None): + object = super().get_object() + user_group = object.groups.all().first() + if 'Исполнители' not in user_group.name: + return redirect('/projects/') + return object + + +class CustomerView(View): + template_name = 'users/customer.html' + + def get(self, request, *args, **kwargs): + return render(request, self.template_name) -class CustomerDetailView(DetailView): - model = User diff --git a/worksell/migrations/0001_initial.py b/worksell/migrations/0001_initial.py new file mode 100644 index 0000000..44b56cc --- /dev/null +++ b/worksell/migrations/0001_initial.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.6 on 2016-06-02 12:03 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='WorkSell', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ('description', models.TextField(blank=True)), + ('img', models.ImageField(upload_to='worksell/worksell')), + ], + ), + ]