parent
e0547daaac
commit
9dccdd1a73
34 changed files with 1379 additions and 291 deletions
@ -1,4 +1,7 @@ |
|||||||
*.pyc |
*.pyc |
||||||
.idea/ |
.idea/ |
||||||
env/ |
env/ |
||||||
|
.ar/ |
||||||
|
ar/ |
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@ |
|||||||
from .base import * |
from .base import * |
||||||
|
|
||||||
# INSTALLED_APPS += ['debug_toolbar'] |
INSTALLED_APPS += ['debug_toolbar'] |
||||||
|
|
||||||
AUTH_PASSWORD_VALIDATORS = [] |
AUTH_PASSWORD_VALIDATORS = [] |
||||||
|
|||||||
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 36 KiB |
@ -1,8 +1,20 @@ |
|||||||
from django.contrib import admin |
from django.contrib import admin |
||||||
|
|
||||||
from .models import Project, Portfolio, PortfolioPhoto, Answer |
from .models import Project, Portfolio, PortfolioPhoto, Answer, Realty, Candidate, Order |
||||||
|
|
||||||
|
|
||||||
|
# class UserAdmin(admin.ModelAdmin): |
||||||
|
# readonly_fields = ('pk',) |
||||||
|
# list_display = ('email','is_active',) |
||||||
|
# |
||||||
|
# def get_groups(self, obj): |
||||||
|
# return ', '.join(g.name for g in obj.groups.all()) |
||||||
|
|
||||||
|
|
||||||
admin.site.register(Project) |
admin.site.register(Project) |
||||||
admin.site.register(Answer) |
admin.site.register(Answer) |
||||||
admin.site.register(Portfolio) |
admin.site.register(Portfolio) |
||||||
admin.site.register(PortfolioPhoto) |
admin.site.register(PortfolioPhoto) |
||||||
|
admin.site.register(Realty) |
||||||
|
admin.site.register(Order) |
||||||
|
admin.site.register(Candidate) |
||||||
|
|||||||
@ -0,0 +1,21 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.6 on 2016-05-25 09:48 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
import datetime |
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('projects', '0006_auto_20160524_1208'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AlterField( |
||||||
|
model_name='answer', |
||||||
|
name='created', |
||||||
|
field=models.DateTimeField(default=datetime.datetime(2016, 5, 25, 9, 48, 35, 275911)), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,41 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.6 on 2016-05-25 10:44 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
import datetime |
||||||
|
from django.conf import settings |
||||||
|
from django.db import migrations, models |
||||||
|
import django.db.models.deletion |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
||||||
|
('projects', '0007_auto_20160525_0948'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.CreateModel( |
||||||
|
name='Realty', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('name', models.CharField(max_length=255)), |
||||||
|
('building_classification', models.CharField(max_length=50)), |
||||||
|
('type_construction', models.CharField(max_length=50)), |
||||||
|
('country', models.CharField(max_length=50)), |
||||||
|
('city', models.CharField(max_length=50)), |
||||||
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='realty', to=settings.AUTH_USER_MODEL)), |
||||||
|
], |
||||||
|
), |
||||||
|
migrations.AlterField( |
||||||
|
model_name='answer', |
||||||
|
name='created', |
||||||
|
field=models.DateTimeField(default=datetime.datetime(2016, 5, 25, 10, 44, 29, 360210)), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='project', |
||||||
|
name='realty', |
||||||
|
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='projects', to='projects.Realty'), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,41 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.6 on 2016-05-25 15:24 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
import datetime |
||||||
|
from django.conf import settings |
||||||
|
from django.db import migrations, models |
||||||
|
import django.db.models.deletion |
||||||
|
import django.utils.timezone |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
||||||
|
('projects', '0008_auto_20160525_1044'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.CreateModel( |
||||||
|
name='Order', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('cost', models.DecimalField(decimal_places=2, max_digits=10)), |
||||||
|
('term', models.IntegerField(default=1)), |
||||||
|
('created', models.DateTimeField(default=django.utils.timezone.now, editable=False)), |
||||||
|
('status', models.BooleanField(default=False)), |
||||||
|
('contractor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), |
||||||
|
('project', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='order', to='projects.Project')), |
||||||
|
], |
||||||
|
), |
||||||
|
migrations.AlterModelOptions( |
||||||
|
name='realty', |
||||||
|
options={'verbose_name': 'Объект', 'verbose_name_plural': 'Объекты'}, |
||||||
|
), |
||||||
|
migrations.AlterField( |
||||||
|
model_name='answer', |
||||||
|
name='created', |
||||||
|
field=models.DateTimeField(default=datetime.datetime(2016, 5, 25, 15, 24, 2, 462642)), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,22 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.6 on 2016-05-25 15:25 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
import datetime |
||||||
|
from django.db import migrations, models |
||||||
|
from django.utils.timezone import utc |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('projects', '0009_auto_20160525_1524'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AlterField( |
||||||
|
model_name='answer', |
||||||
|
name='created', |
||||||
|
field=models.DateTimeField(default=datetime.datetime(2016, 5, 25, 15, 25, 42, 489763, tzinfo=utc)), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,21 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.6 on 2016-05-25 15:26 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
import django.utils.timezone |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('projects', '0010_auto_20160525_1525'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AlterField( |
||||||
|
model_name='answer', |
||||||
|
name='created', |
||||||
|
field=models.DateTimeField(default=django.utils.timezone.now), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,7 @@ |
|||||||
|
<h1>Test page</h1> |
||||||
|
<form action="" method="post">{% csrf_token %} |
||||||
|
{{ form.as_p }} |
||||||
|
{{ realty_form.errors}} |
||||||
|
{{ realty_form.as_p }} |
||||||
|
<input type="submit" value="Send message" /> |
||||||
|
</form> |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
<form method="post" action="">{% csrf_token %} |
||||||
|
{{ form.as_p }} |
||||||
|
|
||||||
|
<fieldset> |
||||||
|
<legend>Photos</legend> |
||||||
|
{{ portfolio_photo_form.management_form }} |
||||||
|
{{ portfolio_photo_form.non_form_errors }} |
||||||
|
{% for form in portfolio_photo_form %} |
||||||
|
{{ form.id }} |
||||||
|
<div class="inline {{ portfolio_photo_form.prefix }}"> |
||||||
|
{{ form.img.errors }} |
||||||
|
{{ form.img.label_tag }} |
||||||
|
{{ form.img }} |
||||||
|
</div> |
||||||
|
{% endfor %} |
||||||
|
</fieldset> |
||||||
|
<input type="submit" value="Add portfolio" class="submit" /> |
||||||
|
</form> |
||||||
@ -1,13 +1,17 @@ |
|||||||
from django.conf import urls |
from django.conf import urls |
||||||
# from django.contrib.auth.views import login, logout |
# from django.contrib.auth.views import login, logout |
||||||
|
|
||||||
from .views import ProjectListView, ProjectDetailView, ProjectCreateView , PortfolioCreateView |
from .views import ProjectListView, ProjectDetailView, \ |
||||||
|
ProjectCreateView, PortfolioCreateView,\ |
||||||
|
TestProjectView, manage_articles |
||||||
|
|
||||||
app_name = 'projects' |
app_name = 'projects' |
||||||
|
|
||||||
urlpatterns = [ |
urlpatterns = [ |
||||||
urls.url(r'^$', ProjectListView.as_view(), name='list'), |
urls.url(r'^$', ProjectListView.as_view(), name='list'), |
||||||
|
urls.url(r'^porttest/$', manage_articles, name='portfolio'), |
||||||
urls.url(r'^create/$', ProjectCreateView.as_view(), name='project-create'), |
urls.url(r'^create/$', ProjectCreateView.as_view(), name='project-create'), |
||||||
|
urls.url(r'^test/$', TestProjectView.as_view(), name='project-test'), |
||||||
urls.url(r'^portfolio/create/$', PortfolioCreateView.as_view(), name='portfolio-create'), |
urls.url(r'^portfolio/create/$', PortfolioCreateView.as_view(), name='portfolio-create'), |
||||||
urls.url(r'(?P<pk>\d+)$', ProjectDetailView.as_view(), name='detail'), |
urls.url(r'(?P<pk>\d+)$', ProjectDetailView.as_view(), name='detail'), |
||||||
] |
] |
||||||
|
|||||||
@ -1,30 +0,0 @@ |
|||||||
{% extends "base.html" %} |
|
||||||
{% block content %} |
|
||||||
<h1>Специализации</h1> |
|
||||||
{% load mptt_tags %} |
|
||||||
{# {% for spec in object_list %}#} |
|
||||||
{# <h4>{{ spec }}</h4>#} |
|
||||||
{# {% endfor %}#} |
|
||||||
{##} |
|
||||||
{# {% load mptt_tags %}#} |
|
||||||
{#<ul>#} |
|
||||||
{# {% recursetree object_list %}#} |
|
||||||
{# <li>#} |
|
||||||
{# {{ node.name }}#} |
|
||||||
{# {% if not node.is_leaf_node %}#} |
|
||||||
{# <ul class="children">#} |
|
||||||
{# {{ children }}#} |
|
||||||
{# </ul>#} |
|
||||||
{# {% endif %}#} |
|
||||||
{# </li>#} |
|
||||||
{# {% endrecursetree %}#} |
|
||||||
{#</ul>#} |
|
||||||
{{ root }} |
|
||||||
{% for ch in children %} |
|
||||||
<h3>{{ ch }}</h3> |
|
||||||
{% for ch1 in ch.get_children %} |
|
||||||
{{ ch1 }} |
|
||||||
{% endfor %} |
|
||||||
{% endfor %} |
|
||||||
{% endblock %} |
|
||||||
|
|
||||||
@ -0,0 +1,4 @@ |
|||||||
|
{% extends "base.html" %} |
||||||
|
{% block content %} |
||||||
|
{{ object }} |
||||||
|
{% endblock %} |
||||||
@ -0,0 +1,67 @@ |
|||||||
|
{% extends "base.html" %} |
||||||
|
{% block content %} |
||||||
|
<h1>Специализации</h1> |
||||||
|
{% load mptt_tags %} |
||||||
|
{# {% for spec in object_list %}#} |
||||||
|
{# <h4>{{ spec }}</h4>#} |
||||||
|
{# {% endfor %}#} |
||||||
|
{##} |
||||||
|
{% load mptt_tags %} |
||||||
|
{#<ul>#} |
||||||
|
{# {% recursetree object_list %}#} |
||||||
|
{# <li>#} |
||||||
|
{# {{ node.name }}#} |
||||||
|
{# {% if not node.is_leaf_node %}#} |
||||||
|
{# <ul class="children">#} |
||||||
|
{# {{ children }}#} |
||||||
|
{# </ul>#} |
||||||
|
{# {% endif %}#} |
||||||
|
{# </li>#} |
||||||
|
{# {% endrecursetree %}#} |
||||||
|
{#</ul>#} |
||||||
|
{% for ch in children %} |
||||||
|
<p class="spec_list" data-id="{{ ch.id }}"> {{ ch }} </p> |
||||||
|
{% for ch1 in ch.get_children %} |
||||||
|
{# {{ ch1 }}#} |
||||||
|
{% endfor %} |
||||||
|
{% endfor %} |
||||||
|
{% block js_block %} |
||||||
|
<script type="text/javascript"> |
||||||
|
|
||||||
|
$(function () { |
||||||
|
|
||||||
|
function getCookie(name) { |
||||||
|
var cookieValue = null; |
||||||
|
if (document.cookie && document.cookie != '') { |
||||||
|
var cookies = document.cookie.split(';'); |
||||||
|
for (var i = 0; i < cookies.length; i++) { |
||||||
|
var cookie = jQuery.trim(cookies[i]); |
||||||
|
if (cookie.substring(0, name.length + 1) == (name + '=')) { |
||||||
|
cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
return cookieValue; |
||||||
|
} |
||||||
|
|
||||||
|
$('p.spec_list').on('click', function (e) { |
||||||
|
e.preventDefault(); |
||||||
|
var csrftoken = getCookie('csrftoken'); |
||||||
|
var spec_id = $(this).attr('data-id'); |
||||||
|
$.ajax({ |
||||||
|
url:'/specializations/test/', |
||||||
|
type:'POST', |
||||||
|
data:{csrfmiddlewaretoken : csrftoken, spec_id: spec_id}, |
||||||
|
dataType:'json', |
||||||
|
success:function(json){ |
||||||
|
alert(json.hello); |
||||||
|
console.log(json); |
||||||
|
} |
||||||
|
}); |
||||||
|
}); |
||||||
|
}); |
||||||
|
</script> |
||||||
|
{% endblock %} |
||||||
|
{% endblock %} |
||||||
|
|
||||||
@ -1,8 +1,12 @@ |
|||||||
from django.conf import urls |
from django.conf import urls |
||||||
# from django.contrib.auth.views import login, logout |
# from django.contrib.auth.views import login, logout |
||||||
|
|
||||||
from .views import SpecListView |
from .views import SpecListView, SpecChildrenDetailView, test_page, test_spec |
||||||
|
|
||||||
urlpatterns = [ |
urlpatterns = [ |
||||||
urls.url(r'^$', SpecListView.as_view(), name='spec-list'), |
urls.url(r'^$', SpecListView.as_view(), name='spec-list'), |
||||||
|
urls.url(r'^test/$', test_page), |
||||||
|
urls.url(r'^spectest/$', test_spec), |
||||||
|
urls.url(r'^children/(?P<pk>\d+)$', SpecChildrenDetailView.as_view(), name='spec-children'), |
||||||
|
|
||||||
] |
] |
||||||
@ -0,0 +1,21 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.6 on 2016-05-25 09:48 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
import datetime |
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('users', '0005_auto_20160524_1054'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AlterField( |
||||||
|
model_name='user', |
||||||
|
name='created', |
||||||
|
field=models.DateTimeField(default=datetime.datetime(2016, 5, 25, 9, 48, 35, 257077)), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,21 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.6 on 2016-05-25 15:26 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
import datetime |
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('users', '0006_auto_20160525_0948'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AlterField( |
||||||
|
model_name='user', |
||||||
|
name='created', |
||||||
|
field=models.DateTimeField(default=datetime.datetime(2016, 5, 25, 15, 26, 33, 142994)), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,21 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.6 on 2016-05-25 15:27 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
import django.utils.timezone |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('users', '0007_auto_20160525_1526'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AlterField( |
||||||
|
model_name='user', |
||||||
|
name='created', |
||||||
|
field=models.DateTimeField(default=django.utils.timezone.now), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,577 @@ |
|||||||
|
{% extends "base.html" %} |
||||||
|
|
||||||
|
|
||||||
|
{% block content %} |
||||||
|
<h1>{{ user }}</h1> |
||||||
|
<h2>{{ user.groups.all }}</h2> |
||||||
|
|
||||||
|
<div class="container mainScore mainBlock2"> |
||||||
|
<div class="row"> |
||||||
|
<div class="col-lg-12"> |
||||||
|
<div class="col-lg-3 divCol3"> |
||||||
|
<div class="avatar"> |
||||||
|
<div class="avatarInset"> |
||||||
|
<img src="img/profile.jpg" alt="profile-image"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="menuUser disTab"> |
||||||
|
<ul> |
||||||
|
<li class="icon_um1"> |
||||||
|
<a href="javascript:void(0)"> |
||||||
|
редактировать профиль |
||||||
|
</a> |
||||||
|
<span></span> |
||||||
|
</li> |
||||||
|
<li class="icon_um2"> |
||||||
|
<a href="javascript:void(0)"> |
||||||
|
пригласить в группу |
||||||
|
</a> |
||||||
|
<span></span> |
||||||
|
</li> |
||||||
|
<li class="icon_um3"> |
||||||
|
<a href="javascript:void(0)"> |
||||||
|
написать сообщение |
||||||
|
</a> |
||||||
|
<span></span> |
||||||
|
</li> |
||||||
|
<li class="icon_um4"> |
||||||
|
<a href="javascript:void(0)"> |
||||||
|
предложить заказ |
||||||
|
</a> |
||||||
|
<span></span> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-9 divCol9"> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<p class="nameUser"> |
||||||
|
Иванов Петр Иванович [ivanov_petr] |
||||||
|
</p> |
||||||
|
<p class="cityUser">Россия, Москва</p> |
||||||
|
<p class="navv">На сайте 8 лет и 3 месяца</p> |
||||||
|
<div class="statusUser">Свободен</div> |
||||||
|
<a href="javascript:void(0)" class="showCon">показать контакты</a> |
||||||
|
</div> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="dashedCol4"> |
||||||
|
<p class="specUser"> |
||||||
|
Специализации: |
||||||
|
</p> |
||||||
|
<div class="insetSpec"> |
||||||
|
<span>Интерьеры</span> |
||||||
|
<span>2-й</span> |
||||||
|
</div> |
||||||
|
<div class="insetSpec"> |
||||||
|
<span>Визуализация/3D</span> |
||||||
|
<span>45-й</span> |
||||||
|
</div> |
||||||
|
<div class="insetSpec"> |
||||||
|
<span>Экстерьеры</span> |
||||||
|
<span>10-й</span> |
||||||
|
</div> |
||||||
|
<div class="insetSpec"> |
||||||
|
<span>Архитектура</span> |
||||||
|
<span>3-й</span> |
||||||
|
</div> |
||||||
|
<div class="insetSpec"> |
||||||
|
<span>3D Моделирование</span> |
||||||
|
<span>100-й</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<ul class="rettList"> |
||||||
|
<li><a href="javascript:void(0)">Рейтинг: <span> 1245</span></a></li> |
||||||
|
<li><a href="javascript:void(0)">Безопасные сделки: <span> 5</span></a></li> |
||||||
|
<li> |
||||||
|
<a href="javascript:void(0)"> |
||||||
|
Отзывы: |
||||||
|
<span> + 385</span> |
||||||
|
<small> 0</small> |
||||||
|
<mark> - 0</mark> |
||||||
|
</a> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
<div class="sroUser"> |
||||||
|
<div class="iconSRO"></div> |
||||||
|
<p>Есть допуск СРО</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-9"> |
||||||
|
<div class="profileTabs2"> |
||||||
|
<ul class="nav nav-tabs nav-justified"> |
||||||
|
<li role="presentation" class="active"> |
||||||
|
<a href="#tab11" data-toggle="tab">Портфолио</a> |
||||||
|
</li> |
||||||
|
<li role="presentation"> |
||||||
|
<a href="#tab12" data-toggle="tab">Готовые проекты</a> |
||||||
|
</li> |
||||||
|
<li role="presentation"> |
||||||
|
<a href="#tab13" data-toggle="tab">Резюме / Квалификация</a> |
||||||
|
</li> |
||||||
|
<li role="presentation"> |
||||||
|
<a href="#tab14" data-toggle="tab">Отзывы</a> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="tab-content"> |
||||||
|
<div id="tab11" class="tab-pane fade in active"> |
||||||
|
<div class="col-lg-9"> |
||||||
|
<p class="addWork"> |
||||||
|
<a href="#">Добавить работу</a> |
||||||
|
</p> |
||||||
|
</div> |
||||||
|
<div class="galleryWork2 disTab"> |
||||||
|
{% for p in user.portfolio.all %} |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="insetCol box-sizing disTab"> |
||||||
|
<div class="imgGal"> |
||||||
|
<div class="imgFigure"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="insetCol2 box-sizing disTab"> |
||||||
|
<p>{{ p.name }}</p> |
||||||
|
<div class="buttonsImg" disTab> |
||||||
|
<div class="insetBI insetBI1"> |
||||||
|
<i class="fa fa-pencil"></i> |
||||||
|
</div> |
||||||
|
<div class="insetBI insetBI2"> |
||||||
|
<i class="fa fa-times"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
{% endfor %} |
||||||
|
</div> |
||||||
|
<div class="col-lg-9 col-lg-offset-3"> |
||||||
|
<div class="linkElse"> |
||||||
|
<a href="javascript:void(0)" class="showElse">показать еще</a> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div id="tab12" class="tab-pane fade"> |
||||||
|
<div class="col-lg-9"> |
||||||
|
<p class="addWork"> |
||||||
|
<a href="#">Добавить проект</a> |
||||||
|
</p> |
||||||
|
</div> |
||||||
|
<div class="galleryWork2 disTab"> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="insetCol box-sizing disTab"> |
||||||
|
<div class="imgGal"> |
||||||
|
<div class="imgFigure"></div> |
||||||
|
</div> |
||||||
|
<div class="cenaImg box-sizing"> |
||||||
|
<div class="cenaImgInset"> |
||||||
|
35 000 <i class="fa fa-rub"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="insetCol2 box-sizing disTab"> |
||||||
|
<p> |
||||||
|
Визуализация |
||||||
|
загородного |
||||||
|
дома 1500m2 |
||||||
|
</p> |
||||||
|
<div class="buttonsImg" disTab> |
||||||
|
<div class="insetBI insetBI1"> |
||||||
|
<i class="fa fa-pencil"></i> |
||||||
|
</div> |
||||||
|
<div class="insetBI insetBI2"> |
||||||
|
<i class="fa fa-times"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="insetCol box-sizing disTab"> |
||||||
|
<div class="imgGal"> |
||||||
|
<div class="imgFigure"></div> |
||||||
|
</div> |
||||||
|
<div class="cenaImg box-sizing"> |
||||||
|
<div class="cenaImgInset"> |
||||||
|
35 000 <i class="fa fa-rub"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="insetCol2 box-sizing disTab"> |
||||||
|
<p> |
||||||
|
Визуализация |
||||||
|
загородного |
||||||
|
дома 1500m2 |
||||||
|
</p> |
||||||
|
<div class="buttonsImg" disTab> |
||||||
|
<div class="insetBI insetBI1"> |
||||||
|
<i class="fa fa-pencil"></i> |
||||||
|
</div> |
||||||
|
<div class="insetBI insetBI2"> |
||||||
|
<i class="fa fa-times"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="insetCol box-sizing disTab"> |
||||||
|
<div class="imgGal"> |
||||||
|
<div class="imgFigure"></div> |
||||||
|
</div> |
||||||
|
<div class="cenaImg box-sizing"> |
||||||
|
<div class="cenaImgInset"> |
||||||
|
35 000 <i class="fa fa-rub"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="insetCol2 box-sizing disTab"> |
||||||
|
<p> |
||||||
|
Визуализация |
||||||
|
загородного |
||||||
|
дома 1500m2 |
||||||
|
</p> |
||||||
|
<div class="buttonsImg" disTab> |
||||||
|
<div class="insetBI insetBI1"> |
||||||
|
<i class="fa fa-pencil"></i> |
||||||
|
</div> |
||||||
|
<div class="insetBI insetBI2"> |
||||||
|
<i class="fa fa-times"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-9 col-lg-offset-3"> |
||||||
|
<div class="linkElse"> |
||||||
|
<a href="javascript:void(0)" class="showElse">показать еще</a> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div id="tab13" class="tab-pane fade"> |
||||||
|
<div class="col-lg-9 resume"> |
||||||
|
<div class="upload2 up-l1"> |
||||||
|
<input type="file" name="upload"> |
||||||
|
<p>Загрузить резюме</p> |
||||||
|
</div> |
||||||
|
<div class="upload2 up-l2"> |
||||||
|
<input type="file" name="upload"> |
||||||
|
<p>Загрузить файл</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-9 resume-block"> |
||||||
|
<div class="block-is box-sizing"> |
||||||
|
<div class="block-i"> |
||||||
|
<img src="img/profile.jpg" alt="profile-image"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-9"> |
||||||
|
<div class="top-summary"> |
||||||
|
<p class="name-summ">Иванов Петр Сергеевич</p> |
||||||
|
<a href="javascript:void(0)" class="download-summ">скачать резюме</a> |
||||||
|
<p class="who-summ"> |
||||||
|
Мужчина, 24 года, 14 февраля 1991 |
||||||
|
</p> |
||||||
|
<div class="list-summ-block"> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<ul class="list-summ"> |
||||||
|
<li>brilliantov.me</li> |
||||||
|
<li>alex@brilliantov.me</li> |
||||||
|
<li>+7 968 009 19 99</li> |
||||||
|
<li>Россия, Москва</li> |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
<div class="col-lg-6 col-lg-offset-2"> |
||||||
|
<div class="dashedCol4"> |
||||||
|
<p class="specUser"> |
||||||
|
Специализации: |
||||||
|
</p> |
||||||
|
<div class="insetSpec"> |
||||||
|
<span>Интерьеры</span> |
||||||
|
<span>2-й</span> |
||||||
|
</div> |
||||||
|
<div class="insetSpec"> |
||||||
|
<span>Визуализация/3D</span> |
||||||
|
<span>45-й</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-12 wr-inset-pluss"> |
||||||
|
<div class="pluss-block"> |
||||||
|
<div class="pluss"> |
||||||
|
<p>Что я умею?</p> |
||||||
|
<span> |
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aut perspiciatis ducimus ullam saepe sed! Architecto sit, repellendus illo ut odio amet facilis distinctio veniam nulla consequatur a sequi deleniti aperiam! |
||||||
|
</span> |
||||||
|
</div> |
||||||
|
<div class="pluss"> |
||||||
|
<p>Что я умею?</p> |
||||||
|
<span> |
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aut perspiciatis ducimus ullam saepe sed! Architecto sit, repellendus illo ut odio amet facilis distinctio veniam nulla consequatur a sequi deleniti aperiam! |
||||||
|
</span> |
||||||
|
</div> |
||||||
|
<div class="pluss"> |
||||||
|
<p>Что я умею?</p> |
||||||
|
<span> |
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aut perspiciatis ducimus ullam saepe sed! Architecto sit, repellendus illo ut odio amet facilis distinctio veniam nulla consequatur a sequi deleniti aperiam! |
||||||
|
</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="gal-pluss"> |
||||||
|
<div class="inset-gp"> |
||||||
|
<p class="title-gp">Дипломы / Сертификаты</p> |
||||||
|
<div class="upload2 up-l3"> |
||||||
|
<input type="file" name="upload"> |
||||||
|
<p>Загрузить файл</p> |
||||||
|
</div> |
||||||
|
<div class="galleryWork2 gal-iss disTab"> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="insetCol box-sizing disTab"> |
||||||
|
<div class="imgGal"> |
||||||
|
<div class="imgFigure"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="insetCol2 box-sizing disTab"> |
||||||
|
<p> |
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. |
||||||
|
</p> |
||||||
|
<div class="buttonsImg" distab=""> |
||||||
|
<div class="insetBI insetBI2"> |
||||||
|
<i class="fa fa-times"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="insetCol box-sizing disTab"> |
||||||
|
<div class="imgGal"> |
||||||
|
<div class="imgFigure"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="insetCol2 box-sizing disTab"> |
||||||
|
<p> |
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. |
||||||
|
</p> |
||||||
|
<div class="buttonsImg" distab=""> |
||||||
|
<div class="insetBI insetBI2"> |
||||||
|
<i class="fa fa-times"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="insetCol box-sizing disTab"> |
||||||
|
<div class="imgGal"> |
||||||
|
<div class="imgFigure"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="insetCol2 box-sizing disTab"> |
||||||
|
<p> |
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. |
||||||
|
</p> |
||||||
|
<div class="buttonsImg" distab=""> |
||||||
|
<div class="insetBI insetBI2"> |
||||||
|
<i class="fa fa-times"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="insetCol box-sizing disTab"> |
||||||
|
<div class="imgGal"> |
||||||
|
<div class="imgFigure"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="insetCol2 box-sizing disTab"> |
||||||
|
<p> |
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. |
||||||
|
</p> |
||||||
|
<div class="buttonsImg" distab=""> |
||||||
|
<div class="insetBI insetBI2"> |
||||||
|
<i class="fa fa-times"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="insetCol box-sizing disTab"> |
||||||
|
<div class="imgGal"> |
||||||
|
<div class="imgFigure"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="insetCol2 box-sizing disTab"> |
||||||
|
<p> |
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. |
||||||
|
</p> |
||||||
|
<div class="buttonsImg" distab=""> |
||||||
|
<div class="insetBI insetBI2"> |
||||||
|
<i class="fa fa-times"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="insetCol box-sizing disTab"> |
||||||
|
<div class="imgGal"> |
||||||
|
<div class="imgFigure"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="insetCol2 box-sizing disTab"> |
||||||
|
<p> |
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. |
||||||
|
</p> |
||||||
|
<div class="buttonsImg" distab=""> |
||||||
|
<div class="insetBI insetBI2"> |
||||||
|
<i class="fa fa-times"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="inset-gp"> |
||||||
|
<p class="title-gp">Допуск СРО</p> |
||||||
|
<div class="upload2 up-l3"> |
||||||
|
<input type="file" name="upload"> |
||||||
|
<p>Загрузить файл</p> |
||||||
|
</div> |
||||||
|
<div class="galleryWork2 gal-iss disTab"> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="insetCol box-sizing disTab"> |
||||||
|
<div class="imgGal"> |
||||||
|
<div class="imgFigure"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="insetCol2 box-sizing disTab"> |
||||||
|
<p> |
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. |
||||||
|
</p> |
||||||
|
<div class="buttonsImg" distab=""> |
||||||
|
<div class="insetBI insetBI2"> |
||||||
|
<i class="fa fa-times"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="insetCol box-sizing disTab"> |
||||||
|
<div class="imgGal"> |
||||||
|
<div class="imgFigure"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="insetCol2 box-sizing disTab"> |
||||||
|
<p> |
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. |
||||||
|
</p> |
||||||
|
<div class="buttonsImg" distab=""> |
||||||
|
<div class="insetBI insetBI2"> |
||||||
|
<i class="fa fa-times"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="insetCol box-sizing disTab"> |
||||||
|
<div class="imgGal"> |
||||||
|
<div class="imgFigure"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="insetCol2 box-sizing disTab"> |
||||||
|
<p> |
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. |
||||||
|
</p> |
||||||
|
<div class="buttonsImg" distab=""> |
||||||
|
<div class="insetBI insetBI2"> |
||||||
|
<i class="fa fa-times"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="insetCol box-sizing disTab"> |
||||||
|
<div class="imgGal"> |
||||||
|
<div class="imgFigure"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="insetCol2 box-sizing disTab"> |
||||||
|
<p> |
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. |
||||||
|
</p> |
||||||
|
<div class="buttonsImg" distab=""> |
||||||
|
<div class="insetBI insetBI2"> |
||||||
|
<i class="fa fa-times"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="insetCol box-sizing disTab"> |
||||||
|
<div class="imgGal"> |
||||||
|
<div class="imgFigure"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="insetCol2 box-sizing disTab"> |
||||||
|
<p> |
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. |
||||||
|
</p> |
||||||
|
<div class="buttonsImg" distab=""> |
||||||
|
<div class="insetBI insetBI2"> |
||||||
|
<i class="fa fa-times"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<div class="insetCol box-sizing disTab"> |
||||||
|
<div class="imgGal"> |
||||||
|
<div class="imgFigure"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="insetCol2 box-sizing disTab"> |
||||||
|
<p> |
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. |
||||||
|
</p> |
||||||
|
<div class="buttonsImg" distab=""> |
||||||
|
<div class="insetBI insetBI2"> |
||||||
|
<i class="fa fa-times"></i> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div id="tab14" class="tab-pane fade"> |
||||||
|
<div class="new-comm-44"> |
||||||
|
<div class="col-lg-12"> |
||||||
|
<p class="nameComm"> |
||||||
|
<a href="#">Иванов Петр Иванович</a> |
||||||
|
</p> |
||||||
|
<span class="dateComm44"> |
||||||
|
Безопасная сделка |
||||||
|
</span> |
||||||
|
<div class="stars box-sizing"> |
||||||
|
<span class="glyphicon glyphicon-star starAct" aria-hidden="true"></span> |
||||||
|
<span class="glyphicon glyphicon-star starAct" aria-hidden="true"></span> |
||||||
|
<span class="glyphicon glyphicon-star starAct" aria-hidden="true"></span> |
||||||
|
<span class="glyphicon glyphicon-star" aria-hidden="true"></span> |
||||||
|
<span class="glyphicon glyphicon-star" aria-hidden="true"></span> |
||||||
|
<a href="#">положительный отзыв</a> |
||||||
|
</div> |
||||||
|
<p class="textComm44"> |
||||||
|
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. |
||||||
|
</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div> |
||||||
|
|
||||||
|
</div> |
||||||
|
</div> |
||||||
|
{% endblock %} |
||||||
@ -0,0 +1,4 @@ |
|||||||
|
{% extends 'base.html' %} |
||||||
|
{% block content %} |
||||||
|
<h1>Заказчик</h1> |
||||||
|
{% endblock %} |
||||||
@ -1,12 +1,13 @@ |
|||||||
from django.conf import urls |
from django.conf import urls |
||||||
from django.contrib.auth.views import login, logout |
from django.contrib.auth.views import login, logout |
||||||
|
|
||||||
from .views import UserListView, UserDetailView, UserInfoListView |
from .views import UserListView, UserDetailView, UserInfoListView, UserView |
||||||
|
|
||||||
urlpatterns = [ |
urlpatterns = [ |
||||||
urls.url(r'^profile/$', UserDetailView.as_view(), name='user-detail'), |
urls.url(r'^profile/$', UserDetailView.as_view(), name='user-detail'), |
||||||
# urls.url(r'^login/?$', login, {'template_name': 'users/login.html'}), |
# urls.url(r'^login/?$', login, {'template_name': 'users/login.html'}), |
||||||
# urls.url(r'^logout/?$', logout), |
# urls.url(r'^logout/?$', logout), |
||||||
urls.url(r'^$', UserListView.as_view(), name='users_list'), |
urls.url(r'^$', UserListView.as_view(), name='users_list'), |
||||||
urls.url(r'^info$', UserInfoListView.as_view(), name='users_info_list'), |
urls.url(r'^info$', UserInfoListView.as_view(), name='users_info_list'), |
||||||
|
urls.url(r'^contractor/(?P<pk>\d+)$$', UserView.as_view(), name='user_view'), |
||||||
|
urls.url(r'^(?P<pk>\d+)$', UserView.as_view(), name='user_view'), |
||||||
] |
] |
||||||
|
|||||||
Loading…
Reference in new issue