commit
3e0d7c8bef
28 changed files with 2609 additions and 253 deletions
@ -1,3 +1,8 @@ |
||||
{ |
||||
"presets": ["es2015"] |
||||
} |
||||
"presets": [ |
||||
"es2015" |
||||
], |
||||
"plugins": [ |
||||
"transform-decorators-legacy" |
||||
] |
||||
} |
||||
|
After Width: | Height: | Size: 47 KiB |
@ -0,0 +1,15 @@ |
||||
// jQuery Mask Plugin v1.14.0
|
||||
// github.com/igorescobar/jQuery-Mask-Plugin
|
||||
(function(b){"function"===typeof define&&define.amd?define(["jquery"],b):"object"===typeof exports?module.exports=b(require("jquery")):b(jQuery||Zepto)})(function(b){var y=function(a,e,d){var c={invalid:[],getCaret:function(){try{var r,b=0,e=a.get(0),d=document.selection,f=e.selectionStart;if(d&&-1===navigator.appVersion.indexOf("MSIE 10"))r=d.createRange(),r.moveStart("character",-c.val().length),b=r.text.length;else if(f||"0"===f)b=f;return b}catch(g){}},setCaret:function(r){try{if(a.is(":focus")){var c, |
||||
b=a.get(0);b.setSelectionRange?(b.focus(),b.setSelectionRange(r,r)):(c=b.createTextRange(),c.collapse(!0),c.moveEnd("character",r),c.moveStart("character",r),c.select())}}catch(e){}},events:function(){a.on("keydown.mask",function(c){a.data("mask-keycode",c.keyCode||c.which)}).on(b.jMaskGlobals.useInput?"input.mask":"keyup.mask",c.behaviour).on("paste.mask drop.mask",function(){setTimeout(function(){a.keydown().keyup()},100)}).on("change.mask",function(){a.data("changed",!0)}).on("blur.mask",function(){n=== |
||||
c.val()||a.data("changed")||a.trigger("change");a.data("changed",!1)}).on("blur.mask",function(){n=c.val()}).on("focus.mask",function(a){!0===d.selectOnFocus&&b(a.target).select()}).on("focusout.mask",function(){d.clearIfNotMatch&&!p.test(c.val())&&c.val("")})},getRegexMask:function(){for(var a=[],c,b,d,f,l=0;l<e.length;l++)(c=g.translation[e.charAt(l)])?(b=c.pattern.toString().replace(/.{1}$|^.{1}/g,""),d=c.optional,(c=c.recursive)?(a.push(e.charAt(l)),f={digit:e.charAt(l),pattern:b}):a.push(d|| |
||||
c?b+"?":b)):a.push(e.charAt(l).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"));a=a.join("");f&&(a=a.replace(new RegExp("("+f.digit+"(.*"+f.digit+")?)"),"($1)?").replace(new RegExp(f.digit,"g"),f.pattern));return new RegExp(a)},destroyEvents:function(){a.off("input keydown keyup paste drop blur focusout ".split(" ").join(".mask "))},val:function(c){var b=a.is("input")?"val":"text";if(0<arguments.length){if(a[b]()!==c)a[b](c);b=a}else b=a[b]();return b},getMCharsBeforeCount:function(a,c){for(var b=0,d=0, |
||||
f=e.length;d<f&&d<a;d++)g.translation[e.charAt(d)]||(a=c?a+1:a,b++);return b},caretPos:function(a,b,d,h){return g.translation[e.charAt(Math.min(a-1,e.length-1))]?Math.min(a+d-b-h,d):c.caretPos(a+1,b,d,h)},behaviour:function(d){d=d||window.event;c.invalid=[];var e=a.data("mask-keycode");if(-1===b.inArray(e,g.byPassKeys)){var m=c.getCaret(),h=c.val().length,f=c.getMasked(),l=f.length,k=c.getMCharsBeforeCount(l-1)-c.getMCharsBeforeCount(h-1),n=m<h;c.val(f);n&&(8!==e&&46!==e&&(m=c.caretPos(m,h,l,k)), |
||||
c.setCaret(m));return c.callbacks(d)}},getMasked:function(a,b){var m=[],h=void 0===b?c.val():b+"",f=0,l=e.length,k=0,n=h.length,q=1,p="push",u=-1,t,w;d.reverse?(p="unshift",q=-1,t=0,f=l-1,k=n-1,w=function(){return-1<f&&-1<k}):(t=l-1,w=function(){return f<l&&k<n});for(;w();){var x=e.charAt(f),v=h.charAt(k),s=g.translation[x];if(s)v.match(s.pattern)?(m[p](v),s.recursive&&(-1===u?u=f:f===t&&(f=u-q),t===u&&(f-=q)),f+=q):s.optional?(f+=q,k-=q):s.fallback?(m[p](s.fallback),f+=q,k-=q):c.invalid.push({p:k, |
||||
v:v,e:s.pattern}),k+=q;else{if(!a)m[p](x);v===x&&(k+=q);f+=q}}h=e.charAt(t);l!==n+1||g.translation[h]||m.push(h);return m.join("")},callbacks:function(b){var g=c.val(),m=g!==n,h=[g,b,a,d],f=function(a,b,c){"function"===typeof d[a]&&b&&d[a].apply(this,c)};f("onChange",!0===m,h);f("onKeyPress",!0===m,h);f("onComplete",g.length===e.length,h);f("onInvalid",0<c.invalid.length,[g,b,a,c.invalid,d])}};a=b(a);var g=this,n=c.val(),p;e="function"===typeof e?e(c.val(),void 0,a,d):e;g.mask=e;g.options=d;g.remove= |
||||
function(){var b=c.getCaret();c.destroyEvents();c.val(g.getCleanVal());c.setCaret(b-c.getMCharsBeforeCount(b));return a};g.getCleanVal=function(){return c.getMasked(!0)};g.getMaskedVal=function(a){return c.getMasked(!1,a)};g.init=function(e){e=e||!1;d=d||{};g.clearIfNotMatch=b.jMaskGlobals.clearIfNotMatch;g.byPassKeys=b.jMaskGlobals.byPassKeys;g.translation=b.extend({},b.jMaskGlobals.translation,d.translation);g=b.extend(!0,{},g,d);p=c.getRegexMask();!1===e?(d.placeholder&&a.attr("placeholder",d.placeholder), |
||||
a.data("mask")&&a.attr("autocomplete","off"),c.destroyEvents(),c.events(),e=c.getCaret(),c.val(c.getMasked()),c.setCaret(e+c.getMCharsBeforeCount(e,!0))):(c.events(),c.val(c.getMasked()))};g.init(!a.is("input"))};b.maskWatchers={};var A=function(){var a=b(this),e={},d=a.attr("data-mask");a.attr("data-mask-reverse")&&(e.reverse=!0);a.attr("data-mask-clearifnotmatch")&&(e.clearIfNotMatch=!0);"true"===a.attr("data-mask-selectonfocus")&&(e.selectOnFocus=!0);if(z(a,d,e))return a.data("mask",new y(this, |
||||
d,e))},z=function(a,e,d){d=d||{};var c=b(a).data("mask"),g=JSON.stringify;a=b(a).val()||b(a).text();try{return"function"===typeof e&&(e=e(a)),"object"!==typeof c||g(c.options)!==g(d)||c.mask!==e}catch(n){}};b.fn.mask=function(a,e){e=e||{};var d=this.selector,c=b.jMaskGlobals,g=c.watchInterval,c=e.watchInputs||c.watchInputs,n=function(){if(z(this,a,e))return b(this).data("mask",new y(this,a,e))};b(this).each(n);d&&""!==d&&c&&(clearInterval(b.maskWatchers[d]),b.maskWatchers[d]=setInterval(function(){b(document).find(d).each(n)}, |
||||
g));return this};b.fn.masked=function(a){return this.data("mask").getMaskedVal(a)};b.fn.unmask=function(){clearInterval(b.maskWatchers[this.selector]);delete b.maskWatchers[this.selector];return this.each(function(){var a=b(this).data("mask");a&&a.remove().removeData("mask")})};b.fn.cleanVal=function(){return this.data("mask").getCleanVal()};b.applyDataMask=function(a){a=a||b.jMaskGlobals.maskElements;(a instanceof b?a:b(a)).filter(b.jMaskGlobals.dataMaskAttr).each(A)};var p={maskElements:"input,td,span,div", |
||||
dataMaskAttr:"*[data-mask]",dataMask:!0,watchInterval:300,watchInputs:!0,useInput:function(a){var b=document.createElement("div"),d;a="on"+a;d=a in b;d||(b.setAttribute(a,"return;"),d="function"===typeof b[a]);return d}("input"),watchDataMask:!1,byPassKeys:[9,16,17,18,36,37,38,39,40,91],translation:{0:{pattern:/\d/},9:{pattern:/\d/,optional:!0},"#":{pattern:/\d/,recursive:!0},A:{pattern:/[a-zA-Z0-9]/},S:{pattern:/[a-zA-Z]/}}};b.jMaskGlobals=b.jMaskGlobals||{};p=b.jMaskGlobals=b.extend(!0,{},p,b.jMaskGlobals); |
||||
p.dataMask&&b.applyDataMask();setInterval(function(){b.jMaskGlobals.watchDataMask&&b.applyDataMask()},p.watchInterval)}); |
||||
@ -0,0 +1,7 @@ |
||||
#!/usr/bin/env bash |
||||
echo "run browserify" |
||||
cd .. |
||||
source ~/venv/proekton/bin/activate |
||||
browserify ./js/src/init.js -o ./js/build/init.js -t babelify |
||||
browserify ./js/src/init_user_profile.js -o ./js/build/init_user_profile.js -t babelify |
||||
#watchify ./js/src/init.js -t babelify -o ./js/build/init.js |
||||
@ -1,5 +0,0 @@ |
||||
#!/usr/bin/env bash |
||||
echo "run watchify" |
||||
cd .. |
||||
source ~/venv/proekton/bin/activate |
||||
watchify ./js/src/init.js -t babelify -o ./js/build/init.js |
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,24 @@ |
||||
export default function onBind(target, name, descriptor) { |
||||
const method = descriptor.value; |
||||
|
||||
descriptor.value = function (...args) { |
||||
let binds = []; |
||||
args = Array.from(args); |
||||
for (let arg of args.slice()) { |
||||
// console.log("onBind -->", typeof arg, "arg = ", arg);
|
||||
// console.log("arg.func -->", typeof arg.originalEvent);
|
||||
// typeof arg === 'object' && !(arg.originalEvent)
|
||||
if (arg.bindFunc) { |
||||
binds.push(arg); |
||||
args.splice(args.indexOf(arg), 1); |
||||
} |
||||
} |
||||
method.apply(this, args); |
||||
for (let bind of binds) { |
||||
bind.func.bind(this)(); |
||||
} |
||||
return this; |
||||
} |
||||
} |
||||
|
||||
// export {onBind};
|
||||
@ -0,0 +1,90 @@ |
||||
import SelectedContainer from './SelectedContainer'; |
||||
import NoTreeSelect from './NoTreeSelect'; |
||||
import TreeSelect from './TreeSelect'; |
||||
|
||||
$(function () { |
||||
function createFilterSpecs(url) { |
||||
// SPECIALIZATIONS FILTER
|
||||
let sb_main = new TreeSelect($('#select-box-1'), {url, hasEditableContainer: true}); |
||||
sb_main.setHeader("Специализации"); |
||||
let select_container = new SelectedContainer($('#selected-spec'), {obj: sb_main}); |
||||
sb_main.connectSelectedContainer(select_container); |
||||
let sb_1 = new TreeSelect($('#select-box-2'), {obj: sb_main}); |
||||
let sb_2 = new TreeSelect($('#select-box-3'), {obj: sb_main}); |
||||
let sb_3 = new TreeSelect($('#select-box-4'), {obj: sb_main}); |
||||
let sb_4 = new TreeSelect($('#select-box-5'), {obj: sb_main}); |
||||
|
||||
sb_main.setNearbySelectBox(sb_1); |
||||
sb_1.setNearbySelectBox(sb_2, sb_main); |
||||
sb_2.setNearbySelectBox(sb_3, sb_1); |
||||
sb_3.setNearbySelectBox(sb_4, sb_2); |
||||
sb_4.setNearbySelectBox("", sb_3); |
||||
|
||||
} |
||||
|
||||
function createFilterBuildingClass(url) { |
||||
// BUILDING-CLASSIFICATION FILTER
|
||||
let sb_build_main = new TreeSelect($('#sb-building-classification'), {url, visible:true}); |
||||
sb_build_main.setHeader("Классификация здания"); |
||||
|
||||
let sb_build_1 = new TreeSelect($('#sb-building-sub-classification'), {obj: sb_build_main}); |
||||
|
||||
let select_build_container = new SelectedContainer($('#selected-building-classification'), {obj: sb_build_main}); |
||||
sb_build_main.connectSelectedContainer(select_build_container); |
||||
|
||||
sb_build_main.setNearbySelectBox(sb_build_1); |
||||
sb_build_1.setNearbySelectBox("", sb_build_main); |
||||
} |
||||
|
||||
function createFilterConstructionType(url) { |
||||
let sb_constr_main = new NoTreeSelect($('#sb-construction-type'), {url, visible:true}); |
||||
sb_constr_main.setHeader("Вид строительства"); |
||||
let select_constr_type = new SelectedContainer($('#selected-construction-type'), {obj:sb_constr_main, noTree: true}); |
||||
sb_constr_main.connectSelectedContainer(select_constr_type); |
||||
} |
||||
|
||||
function createFilerLocations(url) { |
||||
let sb_loc_main = new TreeSelect($('#sb-location-1'), {url, visible:true}); |
||||
sb_loc_main.setHeader("Местоположение"); |
||||
let select_loc = new SelectedContainer($('#selected-location'), {obj: sb_loc_main, onlyOne: true}); |
||||
sb_loc_main.connectSelectedContainer(select_loc); |
||||
let sb_loc_1 = new TreeSelect($('#sb-location-2'), {obj: sb_loc_main}); |
||||
let sb_loc_2 = new TreeSelect($('#sb-location-3'), {obj: sb_loc_main}); |
||||
|
||||
// Убираем кнопки add-options, блокирем поиск, меняем подсказки
|
||||
sb_loc_main.dataPromise.then(()=>{ |
||||
sb_loc_1.$buttonAddOptions.remove(); |
||||
sb_loc_main.$buttonAddOptions.remove(); |
||||
sb_loc_main.$searchInput.prop("readonly", true); |
||||
sb_loc_1.$searchInput.prop("readonly", true); |
||||
sb_loc_2.$searchInput.prop("readonly", true); |
||||
sb_loc_main.$searchInput.prop("placeholder", "Выберите"); |
||||
sb_loc_1.$searchInput.prop("placeholder", "Выберите"); |
||||
sb_loc_2.$searchInput.prop("placeholder", "Выберите"); |
||||
}); |
||||
|
||||
|
||||
sb_loc_main.setNearbySelectBox(sb_loc_1); |
||||
sb_loc_1.setNearbySelectBox(sb_loc_2, sb_loc_main); |
||||
sb_loc_2.setNearbySelectBox("", sb_loc_1); |
||||
blockNonEmpty(sb_loc_main, select_loc); |
||||
} |
||||
|
||||
function blockNonEmpty(select, container) { |
||||
container.on("add", () => { |
||||
select.$searchInput.parent().append("<div class='simple-select fill'>Местоположение выбрано</div>"); |
||||
select.$searchInput.hide(); |
||||
}); |
||||
container.on("remove", () => { |
||||
select.$searchInput.siblings('div.simple-select').remove(); |
||||
select.$searchInput.show(); |
||||
}); |
||||
} |
||||
|
||||
createFilterSpecs('/api/specializations_flat'); |
||||
createFilterBuildingClass('/api/building_classifications'); |
||||
createFilterConstructionType('/api/construction_type'); |
||||
createFilerLocations('/api/locations_flat'); |
||||
|
||||
|
||||
}); |
||||
@ -0,0 +1,41 @@ |
||||
.rad { |
||||
cursor: pointer; |
||||
user-select: none; |
||||
-webkit-user-select: none; |
||||
-webkit-touch-callout: none; |
||||
} |
||||
|
||||
.rad > input { /* HIDE ORG RADIO & CHECKBOX */ |
||||
visibility: hidden; |
||||
position: absolute; |
||||
} |
||||
|
||||
/* RADIO & CHECKBOX STYLES */ |
||||
.rad > i { /* DEFAULT <i> STYLE */ |
||||
display: inline-block; |
||||
vertical-align: middle; |
||||
width: 24px; |
||||
height: 24px; |
||||
border-radius: 50%; |
||||
transition: 0.2s; |
||||
box-shadow: inset 0 0 0 16px #fff; |
||||
border: 1px solid #cccccc; |
||||
background: #cccccc; |
||||
margin-right: 5px; |
||||
} |
||||
|
||||
/* CHECKBOX OVERWRITE STYLES */ |
||||
.rad:hover > i { /* HOVER <i> STYLE */ |
||||
box-shadow: inset 0 0 0 3px #fff; |
||||
background: #cccccc; |
||||
} |
||||
|
||||
.rad > input:checked + i { /* (RADIO CHECKED) <i> STYLE */ |
||||
box-shadow: inset 0 0 0 3px #fff; |
||||
background: #cccccc; |
||||
} |
||||
|
||||
label.rad { |
||||
font-style: italic; |
||||
color: #606060; |
||||
} |
||||
@ -0,0 +1,144 @@ |
||||
.mainContent { |
||||
padding: 43px 25px 40px 25px; |
||||
} |
||||
|
||||
.avatarInset { |
||||
width: 200px; |
||||
height: 200px; |
||||
} |
||||
|
||||
.avatar { |
||||
width: 220px; |
||||
height: 220px; |
||||
padding: 10px; |
||||
|
||||
} |
||||
|
||||
.simple-input, .simple-select { |
||||
height: 51px; |
||||
width: 100%; |
||||
border: 1px solid #cccccc; |
||||
outline: none; |
||||
padding: 5px 40px 5px 20px; |
||||
background-color: white; |
||||
margin-bottom: -1px; |
||||
} |
||||
|
||||
.simple-select select { |
||||
background-color: darkgray; |
||||
} |
||||
|
||||
.simple-select { |
||||
display: flex; |
||||
align-items: center; |
||||
text-align: center; |
||||
} |
||||
|
||||
.simple-select.fill{ |
||||
background-color: #F2F2F2; |
||||
} |
||||
|
||||
.simple-select .text{ |
||||
color: #a3a3a3; |
||||
} |
||||
|
||||
.toggle .btn { |
||||
padding: 14px 20px; |
||||
border-radius: 40px; |
||||
} |
||||
|
||||
.bottom-line { |
||||
padding-bottom: 10px; |
||||
border-bottom: 1px solid #cccccc; |
||||
} |
||||
|
||||
.top-line { |
||||
/*padding-bottom: 10px;*/ |
||||
border-top: 1px solid #cccccc; |
||||
} |
||||
|
||||
/* СУПЕР-костыльная кнопка. Не прикасаться!*/ |
||||
.upload-new { |
||||
width: 60%; |
||||
height: 30px; |
||||
overflow: hidden; |
||||
cursor: pointer; |
||||
border-radius: 40px; |
||||
border: 1px solid #FF0029; |
||||
} |
||||
|
||||
.upload-new:hover, .btn-simple:hover { |
||||
box-shadow: 0 0 15px rgba(0, 0, 0, 0.2); |
||||
-webkit-transform: scale(1.04); |
||||
-moz-transform: scale(1.04); |
||||
transform: scale(1.04); |
||||
} |
||||
|
||||
.upload-new, .btn-simple { |
||||
transition: all 0.3s; |
||||
cursor: pointer; |
||||
} |
||||
|
||||
.upload-new input { |
||||
display: block !important; |
||||
width: 100% !important; |
||||
height: 30px !important; |
||||
opacity: 0 !important; |
||||
cursor: pointer; |
||||
} |
||||
|
||||
.upload-new p { |
||||
line-height: 30px; |
||||
text-transform: uppercase; |
||||
margin: -30px 0 0 0; |
||||
/*padding: 0 5px 0 5px;*/ |
||||
font-size: 10px; |
||||
text-align: center; |
||||
font-family: Miriad; |
||||
} |
||||
|
||||
/** Конец супер-костыля**/ |
||||
|
||||
.row-eq-height { |
||||
display: -webkit-box; |
||||
display: -webkit-flex; |
||||
display: -ms-flexbox; |
||||
display: flex; |
||||
} |
||||
|
||||
.info { |
||||
background-color: #F2F2F2; |
||||
padding: 50px 40px; |
||||
margin-top: 20px; |
||||
} |
||||
|
||||
.btn-simple { |
||||
border-radius: 40px; |
||||
padding: 10px 15px; |
||||
border: 1px solid #FF0029; |
||||
color: black; |
||||
background: none; |
||||
font-family: Miriad; |
||||
} |
||||
|
||||
/*.btn-simple:hover {*/ |
||||
/*box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);*/ |
||||
/*-webkit-transform: scale(1.04);*/ |
||||
/*-moz-transform: scale(1.04);*/ |
||||
/*transform: scale(1.04);*/ |
||||
/*}*/ |
||||
|
||||
.no-margin .selected-element { |
||||
margin: 0; |
||||
} |
||||
|
||||
.-live-image-avatar-upload-container .-position-relative-parent { |
||||
position: relative |
||||
} |
||||
|
||||
.-live-image-avatar-upload-container .-live-image-delete { |
||||
position: absolute; |
||||
top: 0; |
||||
right: 0; |
||||
background-color: white; |
||||
} |
||||
@ -1,220 +1,317 @@ |
||||
{% extends 'partials/base.html' %} |
||||
|
||||
{% load staticfiles %} |
||||
{% load thumbnail %} |
||||
|
||||
|
||||
{% block head_css %} |
||||
<style> |
||||
.-live-image-avatar-upload-container .-position-relative-parent {position: relative} |
||||
|
||||
.-live-image-avatar-upload-container .-live-image-delete { |
||||
position: absolute; |
||||
top: 0; |
||||
right: 0; |
||||
background-color: white; |
||||
} |
||||
</style> |
||||
<link rel='stylesheet' href='{% static "lib/proekton-components/css/fonts.css" %}'> |
||||
<link rel='stylesheet' href='{% static "lib/proekton-components/css/selected-container.css" %}'> |
||||
<link rel='stylesheet' href='{% static "lib/proekton-components/css/editable-container.css" %}'> |
||||
<link rel='stylesheet' href='{% static "lib/proekton-components/css/select-box.css" %}'> |
||||
<link rel='stylesheet' href='{% static "css/project_filter.css" %}'>{# other #} |
||||
<link rel='stylesheet' href='{% static "css/font-awesome.min.css" %}'> |
||||
<link rel='stylesheet' href='{% static "css/user_profile_edit.css" %}'> |
||||
<link rel='stylesheet' href='{% static "css/custom-checkboxes.css" %}'> |
||||
{% endblock %} |
||||
|
||||
{% block content %} |
||||
{% include 'partials/header.html' %} |
||||
|
||||
{# {% if request.user.is_customer %}#} |
||||
{# <input type="hidden" name="next"#} |
||||
{# value="{% url 'users:customer-profile-open-projects' pk=pk %}">#} |
||||
{# {% elif request.user.is_contractor %}#} |
||||
{# <input type="hidden" name="next" value="{% url 'users:contractor-profile' pk=pk %}">#} |
||||
{# {% endif %}#} |
||||
|
||||
<div class="container mainScore"> |
||||
<div class="row"> |
||||
|
||||
<div class="row mainContent"> |
||||
<form method="POST" enctype="multipart/form-data" novalidate> |
||||
{% csrf_token %} |
||||
|
||||
{% if request.user.is_customer %} |
||||
<input type="hidden" name="next" value="{% url 'users:customer-profile-open-projects' pk=pk %}"> |
||||
{% elif request.user.is_contractor %} |
||||
<input type="hidden" name="next" value="{% url 'users:contractor-profile' pk=pk %}"> |
||||
{% endif %} |
||||
|
||||
<div class="projectsBlock disTab"> |
||||
<div class="col-lg-12"> |
||||
<div class="col-lg-3 divCol3 -live-image-avatar-upload-container"> |
||||
<div class="avatar"> |
||||
<input type="hidden" name="next" value="{% url 'users:contractor-profile' pk=pk %}"> |
||||
<div class="col-lg-12"> |
||||
<div class="row row-eq-height"> |
||||
<div class="col-lg-3 -live-image-avatar-upload-container"> |
||||
<div class="avatar" style="float: none"> |
||||
<div class="avatarInset -position-relative-parent"> |
||||
<a href="#" onclick="return false" class="btn close -live-image-delete" style="display: none">×</a> |
||||
|
||||
<a href="#" onclick="return false" class="btn close -live-image-delete" |
||||
style="display: none">×</a> |
||||
|
||||
{% if request.user.avatar %} |
||||
{% thumbnail request.user.avatar "235x224" crop="center" as avatar %} |
||||
<img src="{{ avatar.url }}" alt="profile-image" class="-avatar-image"> |
||||
{% endthumbnail %} |
||||
{% else %} |
||||
<img src="{% static 'img/profile.jpg' %}" alt="profile-image" class="-avatar-image"> |
||||
<img src="{% static 'img/profile.jpg' %}" alt="profile-image" |
||||
class="-avatar-image"> |
||||
{% endif %} |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="menuUser upload-img disTab"> |
||||
<div class="upload2 up-l1"> |
||||
<div style="margin-top: 15px"> |
||||
<div class="upload-new"> |
||||
{# <div class="upload2 up-l1">#} |
||||
<input type="file" name="image" class="-live-image-upload"> |
||||
|
||||
|
||||
<p>Загрузить фотографию</p> |
||||
{# </div>#} |
||||
</div> |
||||
</div> |
||||
|
||||
<div {% if not TESTING %}style="display: none"{% endif %}> |
||||
<input type="text" name="live_image" class="-live-image-id"> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="col-lg-9 divCol9"> |
||||
<div class="col-lg-4"> |
||||
<p class="name-edit-p">ФИО</p> |
||||
|
||||
<input type="text" value="{{ form.last_name.value }}" name="{{ form.last_name.html_name }}" class="box-sizing inp-edit"> |
||||
<input type="text" value="{{ form.first_name.value }}" name="{{ form.first_name.html_name }}" class="box-sizing inp-edit"> |
||||
<input type="text" value="{{ form.patronym.value }}" name="{{ form.patronym.html_name }}" class="box-sizing inp-edit"> |
||||
</div> |
||||
|
||||
{% if request.user.is_contractor %} |
||||
<div class="col-lg-4"> |
||||
<p class="name-edit-p">Специализации</p> |
||||
|
||||
<div id="simpleSpecContainer"> |
||||
<div class="polsF1 pols-edit disTab -simple-spec-widget" style="display: none"> |
||||
<input type="hidden" class="-simple-spec-select" style="width: 100%"> |
||||
<input type="hidden" class="-chosen-simple-spec-id" name="{{ form.contractor_specializations.html_name }}"> |
||||
</div> |
||||
|
||||
{% for spec_id in form.contractor_specializations.value %} |
||||
<div class="polsF1 pols-edit disTab -simple-spec-widget"> |
||||
<input type="hidden" class="-simple-spec-select" style="width: 100%"> |
||||
<input type="hidden" class="-chosen-simple-spec-id" name="{{ form.contractor_specializations.html_name }}" value="{{ spec_id }}"> |
||||
</div> |
||||
{% endfor %} |
||||
</div> |
||||
|
||||
<a href="#" onclick="return false" class="add-edit" id="addSpec"> |
||||
Добавить еще |
||||
</a> |
||||
</div> |
||||
{% endif %} |
||||
|
||||
<div class="col-lg-4"> |
||||
<p class="name-edit-p">Местоположение</p> |
||||
|
||||
<div class="polsF1 pols-edit disTab"> |
||||
<div><input type="hidden" class="-location-select -location-select-country" style="width: 100%"></div> |
||||
<div><input type="hidden" class="-location-select -location-select-region" style="width: 100%"></div> |
||||
<div><input type="hidden" class="-location-select -location-select-city" style="width: 100%"></div> |
||||
|
||||
<input type="hidden" id="chosenLocationId" name="{{ form.location.html_name }}" value="{{ form.location.value }}"> |
||||
<div class="col-lg-9"> |
||||
<div class="row"> |
||||
<div class="col-lg-12"> |
||||
<div class="bottom-line"> |
||||
<span class="header"> |
||||
Параметры заполнения прифиля влияют на фильтр поиска специалистов, ранжирования в списке |
||||
<i class="fa fa-question-circle-o" aria-hidden="true" title=""></i> |
||||
</span> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="buttonGP btn-edit disTab"> |
||||
<div class="btn-group valProject valProject2" role="group"> |
||||
<a href="{% url 'users:user-profile-edit' pk=pk %}" |
||||
class="btn btn-default {% if not request.experience_edit %}active{% endif %}">Общая информация</a> |
||||
<a href="{% url 'users:user-financial-info-edit' pk=pk %}" class="btn btn-default">Финансовая информация</a> |
||||
{% if request.user.is_contractor %} |
||||
<a href="{% url 'users:user-experience-edit' pk=pk %}" |
||||
class="btn btn-default {% if request.experience_edit %}active{% endif %}">Опыт</a> |
||||
{% endif %} |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="col-lg-12 col12 new-filter"> |
||||
<div class="filter clearfix"> |
||||
{% if request.experience_edit %} |
||||
<div class="titleF1 disTab"> |
||||
<div class="col-lg-6">Классификация зданий</div> |
||||
<div class="col-lg-6">Виды строительства</div> |
||||
<div class="row"> |
||||
<div class="col-lg-12" style="padding-bottom: 10px"> |
||||
<span class="header block-header"> |
||||
Личная информация <i class="fa fa-question-circle-o" aria-hidden="true" |
||||
title=""></i> |
||||
</span> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="polsF1 disTab new-doubt"> |
||||
<div class="col-lg-6 profile-building-classifications"> |
||||
{{ form.contractor_building_classifications }} |
||||
<div class="row"> |
||||
<div class="col-lg-4"> |
||||
<input value="{{ form.last_name.value }}" name="{{ form.last_name.html_name }}" |
||||
class="simple-input" placeholder="Фамилия"> |
||||
</div> |
||||
|
||||
<div class="col-lg-6 profile-construction-types"> |
||||
{{ form.contractor_construction_types }} |
||||
<div class="col-lg-4"> |
||||
<input value="{{ form.first_name.value }}" name="{{ form.first_name.html_name }}" |
||||
class="simple-input" placeholder="Имя"> |
||||
</div> |
||||
<div class="col-lg-4"> |
||||
<input value="{{ form.patronym.value }}" name="{{ form.patronym.html_name }}" |
||||
class="simple-input" placeholder="Отчество"> |
||||
</div> |
||||
<div class="col-lg-4"> |
||||
<div class="vertical-child" id="sb-location-1"> |
||||
</div> |
||||
</div> |
||||
<div class="col-lg-4"> |
||||
<div class="vertical-child" id="sb-location-2"> |
||||
</div> |
||||
</div> |
||||
<div class="col-lg-4"> |
||||
<div class="vertical-child" id="sb-location-3"> |
||||
</div> |
||||
</div> |
||||
<div class="col-lg-8"> |
||||
<div class="selected-container horizontal vertical-child no-margin" |
||||
id="selected-location"> |
||||
<div class="header"> </div> |
||||
<input type="hidden" name="location" |
||||
value="{{ form.location.value }}"> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> <!-- top --> |
||||
|
||||
<div class="searchF1 polsF1 polsFF links-filter"> |
||||
<input class="btn-submit-link" type="submit" value="Сохранить"> |
||||
<div class="row"> |
||||
<div style="padding-bottom: 10px" class="col-lg-12"> |
||||
<div class="row"> |
||||
<div class="col-lg-offset-3 col-lg-9"> |
||||
<div class="top-line"> |
||||
<span class="header block-header"> |
||||
Мой опыт работы в проектировании / дизайне / сопровождении проектной документации |
||||
<i class="fa fa-question-circle-o" aria-hidden="true" title=""></i> |
||||
</span> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
{% else %} |
||||
<div class="titleF1 disTab"> |
||||
<div class="col-lg-3">Дата рождения</div> |
||||
<div class="col-lg-3">Пол</div> |
||||
<div class="col-lg-3">Статус</div> |
||||
<div class="row"> |
||||
<div class="col-lg-12"> |
||||
<div class="" id="select-box-1"> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="polsF1 disTab"> |
||||
<div class="col-lg-3 birth_edit_dat"> |
||||
{{ form.date_of_birth }} |
||||
<div class="row"> |
||||
<div class="col-lg-3"> |
||||
<div class="vertical-child" id="select-box-2"> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="col-lg-3 dog-new ed-new"> |
||||
{% for id, text in form.gender.field.choices %} |
||||
<label> |
||||
<input |
||||
type="radio" |
||||
name="{{ form.gender.html_name }}" |
||||
value="{{ id }}" |
||||
{% if form.gender.value == id %}checked{% endif %}> |
||||
|
||||
<span></span> |
||||
</label> |
||||
|
||||
<p>{{ text }} </p> |
||||
{% endfor %} |
||||
<div class="col-lg-3"> |
||||
<div class="vertical-child" id="select-box-3"> |
||||
</div> |
||||
</div> |
||||
<div class="col-lg-3"> |
||||
<div class="vertical-child" id="select-box-4"> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="col-lg-3"> |
||||
{{ form.contractor_status }} |
||||
<div class="vertical-child" id="select-box-5"> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="titleF1 titleF2 disTab"> |
||||
<div class="col-lg-3">Сайт</div> |
||||
<div class="col-lg-3">Skype</div> |
||||
<div class="col-lg-3">Телефон</div> |
||||
<div class="col-lg-3">Второй телефон</div> |
||||
<div class="row"> |
||||
<div class="col-lg-12"> |
||||
<div class="selected-container horizontal" id="selected-spec"> |
||||
<input type="hidden" name="{{ form.contractor_specializations.html_name }}" |
||||
value="{{ form.contractor_specializations.value }}"> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="searchF1 polsF1 polsFF polsF3"> |
||||
<div class="row"> |
||||
<div class="col-lg-3"> |
||||
<input type="text" name="{{ form.website.html_name }}" value="{{ form.website.value }}" class="box-sizing surr surr2" placeholder="beeg.com"> |
||||
<div class="vertical-child" id="sb-building-classification"> |
||||
</div> |
||||
<div class="vertical-child" id="sb-building-sub-classification"> |
||||
</div> |
||||
<div class="selected-container" id="selected-building-classification"> |
||||
<input type="hidden" |
||||
name="{{ form.contractor_building_classifications.html_name }}" |
||||
value="{{ form.contractor_building_classifications.value }}"> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="col-lg-3"> |
||||
<input type="text" name="{{ form.skype.html_name }}" value="{{ form.skype.value }}" class="box-sizing surr surr2" placeholder="nokia770"> |
||||
<div class="vertical-child" id="sb-construction-type"> |
||||
</div> |
||||
<div class="selected-container" id="selected-construction-type"> |
||||
<input type="hidden" name="{{ form.contractor_construction_types.html_name }}" |
||||
value="{{ form.contractor_construction_types.value }}"> |
||||
</div> |
||||
</div> |
||||
<div class="col-lg-3"> |
||||
<div class="select-box-header vertical-child"> |
||||
<span style="width: 180px" class="header">Требуется допуск (СРО)</span> |
||||
<i class="fa fa-question-circle-o" aria-hidden="true" |
||||
title="bla-bla-bla..."></i> |
||||
</div> |
||||
|
||||
<div class="custom-check"> |
||||
<div class="checked"></div> |
||||
<div style="display: none" class="not-checked"></div> |
||||
<input name="{{ form.cro.html_name }}" type="checkbox" hidden |
||||
{% if form.cro.value %} checked{% endif %}> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> <!-- center --> |
||||
<div class="row"> |
||||
<div class="col-lg-12"> |
||||
<div class="row"> |
||||
<div class="col-lg-12"> |
||||
<div class="top-line" style="padding-top: 15px"> |
||||
<div class="btn-group toggle" role="group" aria-label="..."> |
||||
<a style="z-index: 0" href="#" |
||||
{# <a style="z-index: 0" href="{% url 'users:user-profile-edit' pk=pk %}"#} |
||||
role="button" |
||||
class="btn btn-default active">Общая информация</a> |
||||
<a href="#" |
||||
class="btn btn-default" role="button">Финансовая информация</a> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
<div class="row info"> |
||||
<div class="col-lg-3"> |
||||
<input type="text" name="{{ form.phone.html_name }}" value="{{ form.phone.value }}" class="box-sizing surr surr2" placeholder="+7 999 999 44 02"> |
||||
<div class="header"> Дата рождения</div> |
||||
<div class="birth_edit_dat"> |
||||
{{ form.date_of_birth }} |
||||
</div> |
||||
</div> |
||||
<div class="col-lg-3"> |
||||
<div style="position: relative" class="select-box-container custom-select" |
||||
id="gender"> |
||||
<div class="select-box-header"> |
||||
<div class="header">Пол</div> |
||||
</div> |
||||
<input class="simple-select" placeholder="Выберите" |
||||
value="{{ form.get_gender_display }}" readonly> |
||||
<input type="hidden" name="{{ form.gender.html_name }}" value="{{ form.gender.value }}"> |
||||
<div class="select-box-options" style="width: 100%; display: none"> |
||||
<div style="min-width: inherit" class="box-wrapper"> |
||||
<ul> |
||||
{% for id, text in form.gender.field.choices %} |
||||
<li data-id="{{ id }}">{{ text }}</li> |
||||
{% endfor %} |
||||
</ul> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
</div> |
||||
<div class="col-lg-3"> |
||||
<input type="text" name="{{ form.phone2.html_name }}" value="{{ form.phone2.value }}" class="box-sizing surr surr2" placeholder="+7 999 999 44 02"> |
||||
<div style="position: relative" class="select-box-container custom-select" |
||||
id="gender"> |
||||
<div class="select-box-header"> |
||||
<div class="header">Статус</div> |
||||
</div> |
||||
<input class="simple-select" placeholder="Выберите" |
||||
value="{{ form.get_status_display }}" readonly> |
||||
<input type="hidden" name="{{ form.contractor_status.html_name }}" value="{{ form.contractor_status.value }}"> |
||||
<div class="select-box-options" style="width: 100%; display: none"> |
||||
<div style="min-width: inherit" class="box-wrapper"> |
||||
<ul> |
||||
{% for id, text in form.contractor_status.field.choices %} |
||||
<li data-id="{{ id }}">{{ text }}</li> |
||||
{% endfor %} |
||||
</ul> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="col-lg-12"> |
||||
<div class="col-lg-12 make-new make-eed"> |
||||
<label>{{ form.cro }}<span></span></label> |
||||
<p>Есть допуск СРО</p> |
||||
<div class="col-lg-3"> |
||||
<div class="header">Skype</div> |
||||
<input name="{{ form.skype.html_name }}" class="simple-input" placeholder="skype id" |
||||
value="{{ form.skype.value }}"> |
||||
</div> |
||||
<div class="clearfix visible-lg"></div> |
||||
<div class="col-lg-3 vertical-child"> |
||||
<div class="header">Сайт</div> |
||||
<input name="{{ form.website.html_name }}" class="simple-input" |
||||
placeholder="example.com" |
||||
value="{{ form.website.value }}"> |
||||
</div> |
||||
<div class="col-lg-3 vertical-child"> |
||||
<div class="header">Телефон</div> |
||||
<input name="{{ form.phone.html_name }}" class="simple-input phone" |
||||
placeholder="+7 909 999 00 00" |
||||
value="{{ form.phone.value }}" |
||||
type="tel"> |
||||
</div> |
||||
<div class="col-lg-3 vertical-child"> |
||||
<div class="header">Второй телефон</div> |
||||
<input name="{{ form.phone2.html_name }}" class="simple-input phone" |
||||
placeholder="+7 909 999 00 00" |
||||
value="{{ form.phone2.value }}" |
||||
type="tel"> |
||||
</div> |
||||
<div class="col-lg-3 vertical-child" style="text-align: center"> |
||||
<div class="header"> </div> |
||||
<input type="submit" class="btn btn-simple" value="СОХРАНИТЬ"> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="searchF1 polsF1 polsFF links-filter"> |
||||
<input class="btn-submit-link" type="submit" value="Сохранить"> |
||||
</div> |
||||
{% endif %} |
||||
</div> |
||||
</div> |
||||
</div> <!-- bottom --> |
||||
</div> |
||||
</form> |
||||
|
||||
</div> |
||||
<div class="row"> |
||||
{% include 'partials/footer.html' %} |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
{% endblock %} |
||||
{% block js_block %} |
||||
{{ block.super }} |
||||
<script src='{% static "lib/proekton-components/js/build/init_user_profile.js" %}'></script> |
||||
<script src='{% static "projects-filter.js" %}'></script> |
||||
<script src='{% static "js/jquery.mask.min.js" %}'></script> |
||||
<script> |
||||
$(function () { |
||||
$('.phone').mask('+7(000)000-00-00'); |
||||
}) |
||||
</script> |
||||
{% endblock %} |
||||
|
||||
@ -0,0 +1,220 @@ |
||||
{% extends 'partials/base.html' %} |
||||
|
||||
{% load thumbnail %} |
||||
|
||||
|
||||
{% block head_css %} |
||||
<style> |
||||
.-live-image-avatar-upload-container .-position-relative-parent {position: relative} |
||||
|
||||
.-live-image-avatar-upload-container .-live-image-delete { |
||||
position: absolute; |
||||
top: 0; |
||||
right: 0; |
||||
background-color: white; |
||||
} |
||||
</style> |
||||
{% endblock %} |
||||
|
||||
{% block content %} |
||||
{% include 'partials/header.html' %} |
||||
|
||||
<div class="container mainScore"> |
||||
<div class="row"> |
||||
<form method="POST" enctype="multipart/form-data" novalidate> |
||||
{% csrf_token %} |
||||
|
||||
{% if request.user.is_customer %} |
||||
<input type="hidden" name="next" value="{% url 'users:customer-profile-open-projects' pk=pk %}"> |
||||
{% elif request.user.is_contractor %} |
||||
<input type="hidden" name="next" value="{% url 'users:contractor-profile' pk=pk %}"> |
||||
{% endif %} |
||||
|
||||
<div class="projectsBlock disTab"> |
||||
<div class="col-lg-12"> |
||||
<div class="col-lg-3 divCol3 -live-image-avatar-upload-container"> |
||||
<div class="avatar"> |
||||
<div class="avatarInset -position-relative-parent"> |
||||
<a href="#" onclick="return false" class="btn close -live-image-delete" style="display: none">×</a> |
||||
|
||||
{% if request.user.avatar %} |
||||
{% thumbnail request.user.avatar "235x224" crop="center" as avatar %} |
||||
<img src="{{ avatar.url }}" alt="profile-image" class="-avatar-image"> |
||||
{% endthumbnail %} |
||||
{% else %} |
||||
<img src="{% static 'img/profile.jpg' %}" alt="profile-image" class="-avatar-image"> |
||||
{% endif %} |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="menuUser upload-img disTab"> |
||||
<div class="upload2 up-l1"> |
||||
<input type="file" name="image" class="-live-image-upload"> |
||||
|
||||
<p>Загрузить фотографию</p> |
||||
</div> |
||||
</div> |
||||
|
||||
<div {% if not TESTING %}style="display: none"{% endif %}> |
||||
<input type="text" name="live_image" class="-live-image-id"> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="col-lg-9 divCol9"> |
||||
<div class="col-lg-4"> |
||||
<p class="name-edit-p">ФИО</p> |
||||
|
||||
<input type="text" value="{{ form.last_name.value }}" name="{{ form.last_name.html_name }}" class="box-sizing inp-edit"> |
||||
<input type="text" value="{{ form.first_name.value }}" name="{{ form.first_name.html_name }}" class="box-sizing inp-edit"> |
||||
<input type="text" value="{{ form.patronym.value }}" name="{{ form.patronym.html_name }}" class="box-sizing inp-edit"> |
||||
</div> |
||||
|
||||
{% if request.user.is_contractor %} |
||||
<div class="col-lg-4"> |
||||
<p class="name-edit-p">Специализации</p> |
||||
|
||||
<div id="simpleSpecContainer"> |
||||
<div class="polsF1 pols-edit disTab -simple-spec-widget" style="display: none"> |
||||
<input type="hidden" class="-simple-spec-select" style="width: 100%"> |
||||
<input type="hidden" class="-chosen-simple-spec-id" name="{{ form.contractor_specializations.html_name }}"> |
||||
</div> |
||||
|
||||
{% for spec_id in form.contractor_specializations.value %} |
||||
<div class="polsF1 pols-edit disTab -simple-spec-widget"> |
||||
<input type="hidden" class="-simple-spec-select" style="width: 100%"> |
||||
<input type="hidden" class="-chosen-simple-spec-id" name="{{ form.contractor_specializations.html_name }}" value="{{ spec_id }}"> |
||||
</div> |
||||
{% endfor %} |
||||
</div> |
||||
|
||||
<a href="#" onclick="return false" class="add-edit" id="addSpec"> |
||||
Добавить еще |
||||
</a> |
||||
</div> |
||||
{% endif %} |
||||
|
||||
<div class="col-lg-4"> |
||||
<p class="name-edit-p">Местоположение</p> |
||||
|
||||
<div class="polsF1 pols-edit disTab"> |
||||
<div><input type="hidden" class="-location-select -location-select-country" style="width: 100%"></div> |
||||
<div><input type="hidden" class="-location-select -location-select-region" style="width: 100%"></div> |
||||
<div><input type="hidden" class="-location-select -location-select-city" style="width: 100%"></div> |
||||
|
||||
<input type="hidden" id="chosenLocationId" name="{{ form.location.html_name }}" value="{{ form.location.value }}"> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="buttonGP btn-edit disTab"> |
||||
<div class="btn-group valProject valProject2" role="group"> |
||||
<a href="{% url 'users:user-profile-edit' pk=pk %}" |
||||
class="btn btn-default {% if not request.experience_edit %}active{% endif %}">Общая информация</a> |
||||
<a href="{% url 'users:user-financial-info-edit' pk=pk %}" class="btn btn-default">Финансовая информация</a> |
||||
{% if request.user.is_contractor %} |
||||
<a href="{% url 'users:user-experience-edit' pk=pk %}" |
||||
class="btn btn-default {% if request.experience_edit %}active{% endif %}">Опыт</a> |
||||
{% endif %} |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="col-lg-12 col12 new-filter"> |
||||
<div class="filter clearfix"> |
||||
{% if request.experience_edit %} |
||||
<div class="titleF1 disTab"> |
||||
<div class="col-lg-6">Классификация зданий</div> |
||||
<div class="col-lg-6">Виды строительства</div> |
||||
</div> |
||||
|
||||
<div class="polsF1 disTab new-doubt"> |
||||
<div class="col-lg-6 profile-building-classifications"> |
||||
{{ form.contractor_building_classifications }} |
||||
</div> |
||||
|
||||
<div class="col-lg-6 profile-construction-types"> |
||||
{{ form.contractor_construction_types }} |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="searchF1 polsF1 polsFF links-filter"> |
||||
<input class="btn-submit-link" type="submit" value="Сохранить"> |
||||
</div> |
||||
{% else %} |
||||
<div class="titleF1 disTab"> |
||||
<div class="col-lg-3">Дата рождения</div> |
||||
<div class="col-lg-3">Пол</div> |
||||
<div class="col-lg-3">Статус</div> |
||||
</div> |
||||
|
||||
<div class="polsF1 disTab"> |
||||
<div class="col-lg-3 birth_edit_dat"> |
||||
{{ form.date_of_birth }} |
||||
</div> |
||||
|
||||
<div class="col-lg-3 dog-new ed-new"> |
||||
{% for id, text in form.gender.field.choices %} |
||||
<label> |
||||
<input |
||||
type="radio" |
||||
name="{{ form.gender.html_name }}" |
||||
value="{{ id }}" |
||||
{% if form.gender.value == id %}checked{% endif %}> |
||||
|
||||
<span></span> |
||||
</label> |
||||
|
||||
<p>{{ text }} </p> |
||||
{% endfor %} |
||||
</div> |
||||
|
||||
<div class="col-lg-3"> |
||||
{{ form.contractor_status }} |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="titleF1 titleF2 disTab"> |
||||
<div class="col-lg-3">Сайт</div> |
||||
<div class="col-lg-3">Skype</div> |
||||
<div class="col-lg-3">Телефон</div> |
||||
<div class="col-lg-3">Второй телефон</div> |
||||
</div> |
||||
|
||||
<div class="searchF1 polsF1 polsFF polsF3"> |
||||
<div class="col-lg-3"> |
||||
<input type="text" name="{{ form.website.html_name }}" value="{{ form.website.value }}" class="box-sizing surr surr2" placeholder="beeg.com"> |
||||
</div> |
||||
|
||||
<div class="col-lg-3"> |
||||
<input type="text" name="{{ form.skype.html_name }}" value="{{ form.skype.value }}" class="box-sizing surr surr2" placeholder="nokia770"> |
||||
</div> |
||||
|
||||
<div class="col-lg-3"> |
||||
<input type="text" name="{{ form.phone.html_name }}" value="{{ form.phone.value }}" class="box-sizing surr surr2" placeholder="+7 999 999 44 02"> |
||||
</div> |
||||
|
||||
<div class="col-lg-3"> |
||||
<input type="text" name="{{ form.phone2.html_name }}" value="{{ form.phone2.value }}" class="box-sizing surr surr2" placeholder="+7 999 999 44 02"> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="col-lg-12"> |
||||
<div class="col-lg-12 make-new make-eed"> |
||||
<label>{{ form.cro }}<span></span></label> |
||||
<p>Есть допуск СРО</p> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="searchF1 polsF1 polsFF links-filter"> |
||||
<input class="btn-submit-link" type="submit" value="Сохранить"> |
||||
</div> |
||||
{% endif %} |
||||
</div> |
||||
</div> |
||||
</form> |
||||
|
||||
{% include 'partials/footer.html' %} |
||||
</div> |
||||
</div> |
||||
{% endblock %} |
||||
Loading…
Reference in new issue