parent
8119b1bd55
commit
4573742355
17 changed files with 582 additions and 282 deletions
@ -0,0 +1,26 @@ |
||||
# -*- coding: utf-8 -*- |
||||
# Generated by Django 1.9.6 on 2016-06-03 11:40 |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import migrations, models |
||||
import django.db.models.deletion |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
dependencies = [ |
||||
('projects', '0015_auto_20160602_1606'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.RemoveField( |
||||
model_name='candidate', |
||||
name='user', |
||||
), |
||||
migrations.AddField( |
||||
model_name='candidate', |
||||
name='answer', |
||||
field=models.ForeignKey(default='', on_delete=django.db.models.deletion.CASCADE, related_name='candidates', to='projects.Answer'), |
||||
preserve_default=False, |
||||
), |
||||
] |
||||
@ -0,0 +1,66 @@ |
||||
{% extends "base.html" %} |
||||
{% load staticfiles %} |
||||
{% block content %} |
||||
<div class="col-lg-12"> |
||||
<p class="titleScore">Сравнение кандидатов по проекту</p> |
||||
</div> |
||||
<div class="titleBlockComparison disTab"> |
||||
<div class="triangle1"></div> |
||||
<p>{{ object }}</p> |
||||
<table class="compTable"> |
||||
<tr> |
||||
<th>№</th> |
||||
<th>Кандидат</th> |
||||
<th>Цена</th> |
||||
<th>Срок</th> |
||||
<th>Описание</th> |
||||
<th>Рейтинги/отзывы</th> |
||||
<th>Безопасные сделки</th> |
||||
<th>Решение</th> |
||||
</tr> |
||||
{% for cand in object.candidates.all %} |
||||
<tr> |
||||
<td>1</td> |
||||
<td> |
||||
|
||||
{{ cand.answer.user.get_full_name }} |
||||
</td> |
||||
<td>{{ cand.answer.cost }} <i class="fa fa-rub"></i></td> |
||||
<td> |
||||
{{ cand.answer.term }}<br> <span>недели</span> |
||||
</td> |
||||
<td> |
||||
<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span> |
||||
</td> |
||||
<td> |
||||
<ul> |
||||
<li><span>23 560</span></li> |
||||
<li> |
||||
<span>+385</span> |
||||
0 |
||||
<small> - 0</small> |
||||
</li> |
||||
<li> |
||||
СРО |
||||
</li> |
||||
</ul> |
||||
</td> |
||||
<td> |
||||
<span>5</span><br> |
||||
Готов работать по безопасной сделке |
||||
</td> |
||||
<td> |
||||
<div class="tableButtons disTab"> |
||||
<div class="btnTab btnTab1"></div> |
||||
<div class="btnTab btnTab2"></div> |
||||
<div class="btnTab btnTab3"></div> |
||||
<div class="btnTab btnTab4"></div> |
||||
</div> |
||||
</td> |
||||
</tr> |
||||
|
||||
{% endfor %} |
||||
|
||||
</table> |
||||
</div> |
||||
{% endblock %} |
||||
@ -0,0 +1,8 @@ |
||||
from django.utils import timezone |
||||
|
||||
class LastAccessMixin(object): |
||||
def dispatch(self, request, *args, **kwargs): |
||||
if request.user.is_authenticated(): |
||||
request.user.last_time_visit = timezone.now() |
||||
request.user.save(update_fields=['last_time_visit']) |
||||
return super().dispatch(request, *args, **kwargs) |
||||
@ -0,0 +1,21 @@ |
||||
# -*- coding: utf-8 -*- |
||||
# Generated by Django 1.9.6 on 2016-06-03 12:15 |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import migrations, models |
||||
import django.utils.timezone |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
dependencies = [ |
||||
('users', '0009_auto_20160602_1213'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.AddField( |
||||
model_name='user', |
||||
name='last_time_visit', |
||||
field=models.DateTimeField(default=django.utils.timezone.now), |
||||
), |
||||
] |
||||
@ -0,0 +1,7 @@ |
||||
{% extends "base.html" %} |
||||
|
||||
|
||||
{% block content %} |
||||
<h1>Исполнители</h1> |
||||
|
||||
{% endblock %} |
||||
@ -1,4 +1,138 @@ |
||||
{% extends 'base.html' %} |
||||
{% block content %} |
||||
<h1>Заказчик</h1> |
||||
<div class="col-lg-12"> |
||||
<div class="col-lg-3 divCol3"> |
||||
<div class="avatar new-mar"> |
||||
<div class="avatarInset"> |
||||
<img src="img/profile.jpg" alt="profile-image"> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
<div class="col-lg-9 divCol9"> |
||||
<div class="col-lg-4"> |
||||
<p class="nameUser"> |
||||
{{ object.get_full_name }} [ivanov_petr] |
||||
</p> |
||||
<p class="cityUser">Россия, Москва</p> |
||||
<p class="navv">На сайте {{ object.created }}</p> |
||||
</div> |
||||
<div class="col-lg-4 new-er"> |
||||
<ul class="rettList"> |
||||
<li><a href="javascript:void(0)">Рейтинг: <span> 0</span></a></li> |
||||
<li><a href="javascript:void(0)">Безопасные сделки: <span> 0</span></a></li> |
||||
<li> |
||||
<a href="javascript:void(0)"> |
||||
Отзывы: |
||||
<span> + 0</span> |
||||
<small> 0</small> |
||||
<mark> - 0</mark> |
||||
</a> |
||||
</li> |
||||
</ul> |
||||
</div> |
||||
<div class="col-lg-4"> |
||||
<a href="javascript:void(0)" class="new-prop new-prop1">показать контакты</a> |
||||
<a href="javascript:void(0)" class="new-prop new-prop2">написать сообщение</a> |
||||
<a href="javascript:void(0)" class="new-red">редактировать профиль</a> |
||||
</div> |
||||
</div> |
||||
<div class="col-lg-9 divCol9 new-mar2"> |
||||
<div class="profileTabs2 tabs-new"> |
||||
<ul class="nav nav-tabs nav-justified"> |
||||
<li role="presentation" class="active"> |
||||
<a href="#">Открытые проекты</a> |
||||
</li> |
||||
<li role="presentation"> |
||||
<a href="#">Текущие проекты</a> |
||||
<div class="roundsCount"> |
||||
<div class="countR">0</div> |
||||
<div class="countG">0</div> |
||||
</div> |
||||
</li> |
||||
<li role="presentation"> |
||||
<a href="#">Отзывы</a> |
||||
<div class="roundsCount"> |
||||
<div class="countG">0</div> |
||||
</div> |
||||
</li> |
||||
</ul> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
<div class="buttonGP disTab"> |
||||
<div class="btn-group valProject2" role="group" aria-label="..."> |
||||
<button type="button" class="btn btn-default"> |
||||
Открытые проекты |
||||
<span><mark>2</mark> / <span>35</span></span> |
||||
</button> |
||||
<button type="button" class="btn btn-default"> |
||||
Корзина |
||||
<span><mark></mark><span>7</span></span> |
||||
</button> |
||||
</div> |
||||
<div class="polsF1 disTab polsSearch"> |
||||
<div class="col-lg-3"> |
||||
<select class="selectpicker"> |
||||
<option>Mustard</option> |
||||
<option>Ketchup</option> |
||||
<option>Relish</option> |
||||
</select> |
||||
</div> |
||||
</div> |
||||
<div class="col-lg-3 col-lg-offset-1"> |
||||
<p class="addWork add-work-new">Разместить заказ</p> |
||||
</div> |
||||
</div> |
||||
<div class="projectsBlock new-pro-block disTab"> |
||||
{% for proj in object.projects.all %} |
||||
<div class="projectPro clearfix"> |
||||
<div class="col-lg-9 leftPro"> |
||||
<p class="titlePro"> |
||||
<a href="{% url 'projects:detail' proj.id %}">{{ proj.name }}</a> |
||||
</p> |
||||
<ul class="desPro"> |
||||
<li> |
||||
Объект "{{ proj.realty.name }}" |
||||
</li> |
||||
<li> |
||||
<span>0</span> ответ от имени группы |
||||
</li> |
||||
</ul> |
||||
<ul class="color-menu"> |
||||
<li> |
||||
<a href="#">Новые: 0</a> |
||||
</li> |
||||
<li> |
||||
<a href="#">Кандидаты: 0</a> |
||||
</li> |
||||
<li> |
||||
<a href="#">Отказал: 0</a> |
||||
</li> |
||||
</ul> |
||||
<p class="textPro"> |
||||
{{ proj.text }} |
||||
</p> |
||||
<ul class="listPro"> |
||||
<li>{{ proj.created}}</li> |
||||
<li>0</li> |
||||
<li>0</li> |
||||
<li>{{ object.get_full_name }}</li> |
||||
</ul> |
||||
</div> |
||||
<div class="col-lg-3 rightPro right-pro-red"> |
||||
<p class="cenaPro"> |
||||
{{ proj.price }} <i class="fa fa-rub"></i> |
||||
</p> |
||||
<ul> |
||||
<li> |
||||
Редактировать |
||||
</li> |
||||
<li> |
||||
Переместить в корзину |
||||
</li> |
||||
</ul> |
||||
</div> |
||||
</div> |
||||
{% endfor %} |
||||
</div> |
||||
{% endblock %} |
||||
|
||||
@ -1,16 +1,16 @@ |
||||
from django.conf import urls |
||||
from django.contrib.auth.views import login, logout |
||||
|
||||
from .views import UserListView, UserDetailView, UserInfoListView, CustomerView, UserView, ContractorDetailView |
||||
from .views import UserListView, UserDetailView, UserInfoListView, CustomerView,\ |
||||
UserView, ContractorDetailView, ContractorListView |
||||
|
||||
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<pk>\d+)$$', ContractorDetailView.as_view(), name='contactor_view'), |
||||
urls.url(r'^customer/(?P<pk>\d+)$$', CustomerView.as_view(), name='customer_view'), |
||||
urls.url(r'contractors/$', ContractorListView.as_view(), name='contractor-list' ), |
||||
urls.url(r'^contractor/(?P<pk>\d+)$', ContractorDetailView.as_view(), name='contractor-view'), |
||||
urls.url(r'^customer/(?P<pk>\d+)$', CustomerView.as_view(), name='customer-view'), |
||||
urls.url(r'^(?P<pk>\d+)$', UserView.as_view(), name='user_view'), |
||||
] |
||||
|
||||
Loading…
Reference in new issue