You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1068 lines
55 KiB

{% extends 'partials/base.html' %}
{% load specializtions_tags %}
{% load thumbnail %}
{% block head_css %}
<link rel='stylesheet' href='{% static "lib/summernote/summernote.css" %}'>
{% endblock %}
{% block content %}
{% include 'partials/header.html' %}
<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">
{% if contractor.avatar %}
{% thumbnail contractor.avatar "235x224" crop="center" as im %}
<img src="{{ im.url }}" alt="profile-image">
{% endthumbnail %}
{% else %}
<img src="{% static 'img/profile.jpg' %}" alt="profile-image">
{% endif %}
</div>
</div>
<div class="menuUser disTab">
<ul>
{% if contractor.pk == user.pk %}
<li class="icon_um1">
<a href="{% url 'users:user-profile-edit' pk=contractor.pk %}">
редактировать профиль
</a>
<span></span>
</li>
{% endif %}
{% if contractor.pk != request.user.pk and request.user.is_contractor %}
<li class="icon_um2">
<a href="javascript:void(0)">
пригласить в группу
</a>
<span></span>
</li>
{% endif %}
{% if contractor.pk != request.user.pk %}
<li class="icon_um3">
<a href="{% url 'chat:chat-user' %}?user_id={{ contractor.pk }}">
написать сообщение
</a>
<span></span>
</li>
{% endif %}
{% if request.user.is_customer %}
<li class="icon_um4">
<a href="javascript:void(0)">
предложить заказ
</a>
<span></span>
</li>
{% endif %}
</ul>
</div>
</div>
<div class="col-lg-9 divCol9">
<div class="col-lg-4">
<p class="nameUser">
{{ contractor.get_full_name }} [{{ contractor.username }}]
</p>
<p class="cityUser">{{ contractor.get_location }}</p>
<p class="navv">На сайте c {{ contractor.created|date:"d M Y"}}</p>
{% if contractor.contractor_status == 'free' %}
<div class="statusUser">Свободен</div>
{% else %}
<div class="statusUser busy">Занят</div>
{% endif %}
<a href="#" data-toggle="modal" data-target="#contact-contactor-modal" class="showCon">показать контакты</a>
</div>
<div class="col-lg-4">
{% specialization_widget contractor.pk %}
</div>
<div class="col-lg-4">
{% ratings_widget contractor.pk %}
{% if contractor.cro %}
<div class="sroUser">
<div class="iconSRO"></div>
<p>Есть допуск СРО</p>
</div>
{% endif %}
</div>
</div>
<div id="contact-contactor-modal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title">Контакты владельца </h4>
</div>
<div class="modal-body">
<div class="row" style="height: 100px;">
<div class="col-lg-8 col-lg-offset-1">
<ul class="list-summ">
{% if contractor.website %}
<li>{{ contractor.website }}</li>
{% endif %}
<li>{{ contractor.email }}</li>
{% if contractor.phone %}
<li>{{ contractor.phone }}</li>
{% endif %}
</ul>
</div>
</div>
</div>
</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">
{% if contractor.pk == request.user.pk %}
<div class="col-lg-9">
<p class="addWork">
<a href="#" data-toggle="modal" data-target="#portfolio-modal">Добавить работу</a>
</p>
</div>
<div id="portfolio-modal" class="modal fade">
<div class="modal-dialog" style="width:900px;">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title">Добавить портфолио</h4>
</div>
{% include 'portfolio_create_form.html' %}
</div>
</div>
</div>
{% endif %}
<div class="galleryWork2 disTab -portfolios-container">
{% if False %}
{% for p in contractor.portfolios.all %}
<div class="col-lg-4">
<div class="insetCol box-sizing disTab">
{% thumbnail p.get_cover "224x224" crop="center" as im %}
<div class="imgGal" style="background:rgba(0, 0, 0, 0) url('{{ im.url }}') no-repeat scroll center center / cover ;">
<a class="open-modal-image" href="{{ p.get_cover.url }}"><div class="imgFigure"></div></a>
</div>
{% endthumbnail %}
</div>
<div class="insetCol2 box-sizing disTab">
<a href="{% url 'projects:contractor-portfolio-detail' p.pk %}">{{ p }}</a>
{% if request.user.pk == contractor.pk %}
<div class="buttonsImg" disTab>
<a href="{% url 'projects:contractor-portfolio-edit' p.pk %}">
<div class="insetBI insetBI1">
<i class="fa fa-pencil"></i>
</div>
</a>
<div class="insetBI insetBI2">
<form action="{% url 'projects:contractor-portfolio-trash' pk=p.pk %}" method="POST" novalidate>
{% csrf_token %}
<input type="hidden" name="next" value="{{ request.path }}">
<a href="#" onclick="$(this).closest('form').submit(); return false"><i class="fa fa-times"></i></a>
</form>
</div>
</div>
{% endif %}
</div>
</div>
{% empty %}
<div class="col-lg-4">
<p style="text-align: center;">Работ в портфолио пока нет</p>
</div>
{% endfor %}
{% endif %}
<script type="text/template" class="-portfolio-item-templ">
<div class="col-lg-4">
<div class="insetCol box-sizing disTab">
<div class="imgGal" style="background:rgba(0, 0, 0, 0) url('<%- portfolio.photos[0].img %>') no-repeat scroll center center / cover">
<a class="open-modal-image" href="<%- portfolio.photos[0].img %>"><div class="imgFigure"></div></a>
</div>
</div>
<div class="insetCol2 box-sizing disTab">
<a href="<%- portfAbsUrl %>"><%- trunc({length: 50}, portfolio.name) %></a>
<% if (authedContractorId === contractorId) { %>
<div class="buttonsImg" disTab>
<a href="<%- portfEditUrl %>">
<div class="insetBI insetBI1">
<i class="fa fa-pencil"></i>
</div>
</a>
<div class="insetBI insetBI2">
<form action="<%- portfTrashUrl %>" method="POST" novalidate>
{% csrf_token %}
<input type="hidden" name="next" value="{{ request.path }}">
<a href="#" onclick="$(this).closest('form').submit(); return false"><i class="fa fa-times"></i></a>
</form>
</div>
</div>
<% } %>
</div>
</div>
</script>
</div>
<div class="col-lg-9 col-lg-offset-3">
<div class="linkElse">
<a href="#" onclick="loadMorePortfolios(); return false" class="showElse">показать еще</a>
</div>
</div>
</div>
<div id="tab12" class="tab-pane fade">
{% if contractor.pk == request.user.pk %}
<div class="col-lg-9">
<p class="addWork">
<a href="#" data-toggle="modal" data-target="#worksell-modal">Добавить проект</a>
</p>
</div>
<div id="worksell-modal" class="modal fade">
<div class="modal-dialog" style="width: 900px;">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title">Добавить готовую работу</h4>
</div>
{% include 'worksell_create_form.html' %}
</div>
</div>
</div>
{% endif %}
<div class="galleryWork2 disTab -work-sells-container">
{% if False %}
{% for ws in contractor.work_sell.all %}
<div class="col-lg-4">
<div class="insetCol box-sizing disTab">
<a href="{% url 'work_sell:detail' ws.pk %}">
{% thumbnail ws.get_cover "224x224" crop="center" as im %}
<div class="imgGal"
style="background:rgba(0, 0, 0, 0) url('{{ im.url }}') no-repeat scroll center center / cover ;">
<a class="open-modal-image" href="{{ ws.get_cover.url }}"><div class="imgFigure"></div></a>
</div>
{% endthumbnail %}
</a>
<div class="cenaImg box-sizing">
<div class="cenaImgInset">
{{ ws.budget }} <i class="{% fa_currency_classes ws.currency %}"></i>
</div>
</div>
</div>
<div class="insetCol2 box-sizing disTab">
<a href="{% url 'work_sell:detail' ws.pk %}">{{ ws }}</a>
{% if request.user.pk == contractor.pk %}
<div class="buttonsImg" disTab>
<div class="insetBI insetBI1">
<a href="{% url 'work_sell:edit' ws.pk %}">
<i class="fa fa-pencil"></i>
</a>
</div>
<div class="insetBI insetBI2">
<form action="{% url 'work_sell:contractor-worksell-trash' pk=ws.pk %}" method="POST" novalidate>
{% csrf_token %}
<input type="hidden" name="next" value="{{ request.path }}">
<a href="#" onclick="$(this).closest('form').submit(); return false"><i class="fa fa-times"></i></a>
</form>
</div>
</div>
{% endif %}
</div>
</div>
{% endfor %}
{% endif %}
<script type="text/template" class="-work-sell-item-templ">
<div class="col-lg-4">
<div class="insetCol box-sizing disTab">
{# <a href="{% url 'work_sell:detail' ws.pk %}">#}
<a href="#">
<div class="imgGal" style="background:rgba(0, 0, 0, 0) url('<%- workSell.photos[0].img %>') no-repeat scroll center center / cover">
<a class="open-modal-image" href="<%- workSell.photos[0].img %>"><div class="imgFigure"></div></a>
</div>
</a>
<div class="cenaImg box-sizing">
<div class="cenaImgInset">
<%- workSell.budget %> <i class="fa fa-rub"></i>
</div>
</div>
</div>
<div class="insetCol2 box-sizing disTab">
<a href="<%- workSellAbsUrl %>"><%- trunc({length: 50}, workSell.name) %></a>
<% if (authedContractorId === contractorId) { %>
<div class="buttonsImg" disTab>
<div class="insetBI insetBI1">
<a href="<%- workSellEditUrl %>">
<i class="fa fa-pencil"></i>
</a>
</div>
<div class="insetBI insetBI2">
<form action="<%- workSellTrashUrl %>" method="POST" novalidate>
{% csrf_token %}
<input type="hidden" name="next" value="{{ request.path }}">
<a href="#" onclick="$(this).closest('form').submit(); return false"><i class="fa fa-times"></i></a>
</form>
</div>
</div>
<% } %>
</div>
</div>
</script>
</div>
<div class="col-lg-9 col-lg-offset-3">
<div class="linkElse">
<a href="#" onclick="loadMoreWorkSells(); return false" class="showElse">показать еще</a>
</div>
</div>
</div>
<div id="tab13" class="tab-pane fade">
<div class="col-lg-9">
<div class="col-lg-12 resume">
<form enctype="multipart/form-data">
<input type="hidden" name="text" value="Hello">
<div class="upload2 up-l1">
<input type="file" name="upload" id="upload-resume">
<p>Загрузить резюме</p>
</div>
</form>
</div>
<div class="col-lg-12 resume-block">
<div class="block-is box-sizing">
<div class="block-i">
{% thumbnail contractor.avatar "176x160" crop="center" as im %}
<img src="{{ im.url }}" alt="profile-image">
{% endthumbnail %}
</div>
</div>
<div class="col-lg-9">
<div class="top-summary">
<p class="name-summ">{{ contractor.get_full_name }}</p>
<div id="resume-success"></div>
{% if contractor.contractor_resume.resume_file %}
<a
style="display: {% if contractor.contractor_resume.resume_file %}block{% else %}none{% endif %};"
href="{% if contractor.contractor_resume.resume_file %}{{ contractor.contractor_resume.resume_file.url }}{% endif %}"
class="download-summ">
скачать резюме
</a>
{% endif %}
<p class="who-summ">
{{ contractor.summary }}
</p>
<div class="list-summ-block">
<div class="col-lg-4">
<ul class="list-summ">
{% if contractor.website %}
<li>{{ contractor.website }}</li>
{% endif %}
<li>{{ contractor.email }}</li>
{% if contractor.phone %}
<li>{{ contractor.phone }}</li>
{% endif %}
</ul>
</div>
<div class="col-lg-6 col-lg-offset-2">
{% specialization_widget contractor.pk %}
</div>
</div>
</div>
</div>
<div class="col-lg-12 wr-inset-pluss">
<div class="pluss-block" id="resume-text-out">
{{ contractor.contractor_resume.text|safe }}
</div>
<a href="#" data-toggle="modal" data-target="#resume-text-edit">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
</a>
<!-- Редактирование текста резюме (модальное окно)-->
<div id="resume-text-edit" class="modal fade">
<div class="modal-dialog" style="width:900px;">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title">Редактировать текст резюме</h4>
</div>
<div class="modal-body">
<div style="height: 180px;">
<form id="resume-edit-form">
<div class="textAreaBlock2 text-nn box-sizing disTab">
<textarea name="text" id="text-new" class="-summernote">{{ contractor.contractor_resume.text }}</textarea>
</div>
<div class="searchF1 polsF1 polsFF links-filter">
<input class="btn-submit-link" type="submit" value="Сохранить">
</div>
</form>
</div>
</div>
<div class="modal-footer"></div>
</div>
</div>
</div>
<!-- Конец блока (resume-modal)-->
<div class="gal-pluss" id="diplom-cro-gallery">
<div class="inset-gp">
<p class="title-gp">Дипломы / Сертификаты</p>
<div class="upload2 up-l3">
<input type="file" name="file" id="diplom-upload" multiple>
<p>Загрузить файл</p>
</div>
<div class="galleryWork2 gal-iss disTab" id="diplom-gallery">
{% for diplom in resume_diploms %}
<div class="col-lg-4">
<div class="insetCol box-sizing disTab">
{% thumbnail diplom.img "210x334" crop="center" as im %}
<div class="imgGal"
style="background: url('{{ im.url }}') no-repeat center;">
<a href="{{ im.url }}" class='open-modal-image'>
<div class="imgFigure"></div>
</a>
</div>
{% endthumbnail %}
</div>
<div class="insetCol2 box-sizing disTab">
<p>
{{ diplom.title }}
</p>
<div class="buttonsImg" distab="">
<div class="insetBI insetBI2 delete-resume-file" data-id="{{ diplom.pk }}">
<i class="fa fa-times"></i>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
<div class="inset-gp">
<p class="title-gp">Допуск СРО</p>
<div class="upload2 up-l3">
<input type="file" name="file" id="cro-upload">
<p>Загрузить файл</p>
</div>
<div class="galleryWork2 gal-iss disTab" id="cro-gallery">
{% for cro in resume_cro %}
<div class="col-lg-4">
<div class="insetCol box-sizing disTab">
{% thumbnail cro.img "210x334" crop="center" as im %}
<div class="imgGal"
style="background: url('{{ im.url }}') no-repeat center;">
<a href="{{ im.url }}" class='open-modal-image'>
<div class="imgFigure"></div>
</a>
</div>
{% endthumbnail %}
</div>
<div class="insetCol2 box-sizing disTab">
<p>
{{ cro.title }}
</p>
<div class="buttonsImg" distab="">
<div class="insetBI insetBI2 delete-resume-file" data-id="{{ cro.pk }}">
<i class="fa fa-times"></i>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="tab14" class="tab-pane fade">
{% for review in contractor.reviews_by_contractor.all %}
<div class="new-comm-44">
<div class="col-lg-12">
<p class="nameComm">
<a href="">{{ review.get_sender }}</a>
</p>
{% if review.project.deal_type == 'secure_deal' %}
<span class="dateComm44">
Безопасная сделка
</span>
{% endif %}
<div class="stars box-sizing">
<a href="#">положительный отзыв</a>
</div>
<p class="textComm44">
{{ review.text|safe }}
</p>
</div>
</div>
{% empty %}
<div class="new-comm-44">
<p style="text-align: center;">Отзывов пока нет</p>
</div>
{% endfor %}
</div>
</div>
<div>
{% include 'partials/footer.html' %}
</div>
</div>
</div>
</div>
{% endblock %}
{% block js_block %}
<script src='{% static "lib/summernote/summernote.js" %}'></script>
<script type="text/javascript">
(function() {
// Pagination ---------------------------------------------------
var $portfoliosContainer = $('.-portfolios-container').first()
var portfolioItemTempl = _.template($portfoliosContainer.find('.-portfolio-item-templ').first().html())
var $morePortfBtn = $('.-more-portfolios-btn').first()
var portfAbsUrl = '/projects/portfolio/%id%/' // "%id%" will be replaced
var portfEditUrl = '/projects/portfolio/%id%/edit/'
var portfTrashUrl = '/projects/portfolio/%id%/trash/'
var $workSellsContainer = $('.-work-sells-container').first()
var workSellItemTempl = _.template($workSellsContainer.find('.-work-sell-item-templ').first().html())
var $moreWorkSellsfBtn = $('.-more-work-sells-btn').first()
var workSellAbsUrl = '/work_sell/%id%/'
var workSellEditUrl = '/work_sell/%id%/edit/'
var workSellTrashUrl = '/work_sell/%id%/trash/'
var contractorId = {{ contractor.pk }}
var authedContractorId{% if request.user.is_authenticated %} = {{ request.user.pk }}{% endif %}
var portfUrl = new URI('/api/portfolios/')
var workSellUrl = new URI('/api/work-sells/')
var pageSize = 3
function loadMorePortfolios() {
var query = portfUrl.query(true)
portfUrl.setQuery('user__id', contractorId)
portfUrl.setQuery('page_size', pageSize)
portfUrl.setQuery('page', query.page ? Number(query.page) + 1 : 2)
$.get(portfUrl.href())
.then(function(res) {
_.each(function(portfolio) {
$portfoliosContainer.append(portfolioItemTempl({
portfolio: portfolio,
portfAbsUrl: _.replace('%id%', portfolio.id, portfAbsUrl),
portfEditUrl: _.replace('%id%', portfolio.id, portfEditUrl),
portfTrashUrl: _.replace('%id%', portfolio.id, portfTrashUrl),
contractorId: contractorId,
authedContractorId: authedContractorId,
trunc: _.truncate,
}))
}, res.results)
if (!res.next)
$morePortfBtn.css('display', 'none')
})
.then(function() {
$('.open-modal-image').magnificPopup({type: 'image'})
})
}
function loadMoreWorkSells() {
var query = workSellUrl.query(true)
workSellUrl.setQuery('contractor__id', contractorId)
workSellUrl.setQuery('page_size', pageSize)
workSellUrl.setQuery('page', query.page ? Number(query.page) + 1 : 2)
$.get(workSellUrl.href())
.then(function(res) {
_.each(function(ws) {
$workSellsContainer.append(workSellItemTempl({
workSell: ws,
workSellAbsUrl: _.replace('%id%', ws.id, workSellAbsUrl),
workSellEditUrl: _.replace('%id%', ws.id, workSellEditUrl),
workSellTrashUrl: _.replace('%id%', ws.id, workSellTrashUrl),
contractorId: contractorId,
authedContractorId: authedContractorId,
trunc: _.truncate,
}))
}, res.results)
if (!res.next)
$moreWorkSellsfBtn.css('display', 'none')
})
.then(function() {
$('.open-modal-image').magnificPopup({type: 'image'})
})
}
window.loadMorePortfolios = loadMorePortfolios
window.loadMoreWorkSells = loadMoreWorkSells
loadMorePortfolios()
loadMoreWorkSells()
// Persistent Bootstrap tabs --------------------------------------
$('a[data-toggle="tab"][href="' + window.location.hash + '"]').tab('show')
$('a[data-toggle="tab"]').on('click', function($evt) { // Better handle "shown.bs.tab" event?
window.location.hash = $(this).attr('href')
})
// Summernote wysiwyg editor -------------------------------------
var summernote = $('textarea.-summernote').first().summernote({
height: 400,
})
//-----------------------------------------------------------------
var userId = '{{ contractor.pk }}';
var hash = window.location.hash;
if (hash == '#open-contact'){
$("#contact-contactor-modal").modal();
}
$('#resume-edit-form').on('submit', function (e) {
e.preventDefault();
var resumeEditUrl = "{% url 'users:contractor-resume-update' contractor.contractor_resume.pk %}";
var dataSerializer = $(this).serialize();
$.ajax({
url: resumeEditUrl,
method: 'POST',
beforeSend: function (xhr) {
xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'))
},
data: dataSerializer,
dataType: 'json',
success: function (data) {
console.log(data);
if (data.status == 'ok') {
$("#resume-text-out").html(data.text);
$("#resume-text-edit").modal('hide');
}
},
error: function (jqXHR, exception) {
console.log(jqXHR);
console.log(exception);
console.log(jqXHR.statusCode);
}
});
});
$("#diplom-cro-gallery").on('click', '.delete-resume-file',function(e){
e.preventDefault();
var _this = $(this);
var deleteResumeUrl = '/api/contractorresumefiles/' + $(this).attr('data-id') + '/';
$.ajax({
url:deleteResumeUrl,
type: 'DELETE',
beforeSend: function (xhr) {
xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'))
},
success: function(json){
_this.parent().parent().parent().remove();
console.log(json);
},
error: function(jqXHR, e){
console.log(jqXHR.statusCode);
}
});
});
$('#worksell-add-form').on('submit', function (e) {
e.preventDefault();
var dataSerializer = $(this).serialize();
$.ajax({
url: '/work_sell/create/',
method: 'POST',
data: dataSerializer,
dataType: 'json',
success: function (data) {
if (data.status == 'ok') {
location.reload();
}
},
error: function (jqXHR, exception) {
console.log(jqXHR.statusCode);
console.log(jqXHR);
}
})
});
$('#portfolio-add-form').on('submit', function (e) {
e.preventDefault();
var dataSerializer = $(this).serialize();
$.ajax({
url: '/projects/portfolio/create/',
method: 'POST',
data: dataSerializer,
dataType: 'json',
success: function (data) {
if (data.status == 'ok') {
$('#portfolio-add-form').each(function () {
this.reset();
});
location.reload();
} else if (data.status == 'no') {
$.each(data.form_errors, function (k, v) {
$('.error-' + k).html(v).show();
});
}
},
error: function (jqXHR, exception) {
console.log(jqXHR.statusCode);
}
});
});
var url = '/work_sell/basic/';
var csrftoken = $.cookie('csrftoken');
$("#upload-resume").on('change',function(e){
$("#resume-success").html("");
var formData = new FormData($(this).closest("form"));
formData.append('resume_file', e.target.files[0]);
console.log(formData);
console.log(e.target.files[0]);
$.ajax({
url:'/api/contractorresume/{{ contractor.contractor_resume.pk }}/',
method:'PUT',
beforeSend: function (xhr) {
xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
},
data: formData,
cache: false,
dataType: 'json',
processData: false,
contentType: false,
success: function(data){
$("#resume-success").html("Файл для резюме успешно загружен!");
$(".download-summ").css('display','block').attr('href',data.resume_file);
console.log(data);
},
error: function(jqXHR){
console.log(jqXHR);
}
});
});
$('#fileupload').fileupload({
url: url,
crossDomain: false,
beforeSend: function (xhr, settings) {
$('#progress-portfolio .progress-bar').css(
'width',
'0%'
);
if (!csrfSafeMethod(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
},
dataType: 'json',
done: function (e, data) {
console.log(data);
$.each(data.result.files, function (index, file) {
var img = $('<img style="width:200px;height:200px;margin:10px;">').attr('src', file.url).appendTo("#files");
console.log(file);
var currentValue = $("#upload-files-pk").val();
currentValue += file.id + ';';
$("#upload-files-pk").val(currentValue);
});
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
console.log(progress);
$('#progress-portfolio .progress-bar').css(
'width',
progress + '%'
);
}
}).prop('disabled', !$.support.fileInput)
.parent().addClass($.support.fileInput ? undefined : 'disabled');
$('#fileupload-worksell').fileupload({
url: url,
crossDomain: false,
beforeSend: function (xhr, settings) {
$('#progress-worksell .progress-bar').css(
'width',
'0%'
);
if (!csrfSafeMethod(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
},
dataType: 'json',
done: function (e, data) {
console.log(data);
$.each(data.result.files, function (index, file) {
var img = $('<img style="width:200px;height:200px;margin:10px;">').attr('src', file.url).appendTo("#files-worksell");
console.log(file);
var currentValue = $("#upload-files-worksell-pk").val();
currentValue += file.id + ';';
$("#upload-files-worksell-pk").val(currentValue);
});
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
console.log(progress);
$('#progress-worksell .progress-bar').css(
'width',
progress + '%'
);
}
}).prop('disabled', !$.support.fileInput)
.parent().addClass($.support.fileInput ? undefined : 'disabled');
function add_resume_file(resumeType, imgUrl,imgPk, galleryId){
$.ajax({
url: '/users/contractorsresumefiles/create/',
method: 'POST',
beforeSend: function (xhr) {
xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'))
},
data: 'type='+ resumeType+'&img_id=' + imgPk + '&resume={{ contractor.contractor_resume.pk }}',
dataType: 'json',
success: function (data) {
if (data.status == 'ok') {
var htmlImg = '<div class="col-lg-4"><div class="insetCol box-sizing disTab"><div class="imgGal" style="background: url(' + imgUrl +') no-repeat center;"><div class="imgFigure"></div></div></div> ' +
'<div class="insetCol2 box-sizing disTab"><div class="buttonsImg" distab="">' +
'<div class="insetBI insetBI2 delete-resume-file" data-id="' + data.pk +'"><i class="fa fa-times"></i></div></div></div></div>';
var img = $(htmlImg).appendTo(galleryId);
} else if (data.status == 'no') {
$.each(data.form_errors, function (k, v) {
$('.error-' + k).html(v).show();
});
}
},
error: function (jqXHR, exception) {
console.log(jqXHR);
console.log(jqXHR.statusCode);
}
});
}
$('#diplom-upload').fileupload({
url: url,
crossDomain: false,
beforeSend: function (xhr, settings) {
$('#progress .progress-bar').css(
'width',
'0%'
);
if (!csrfSafeMethod(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
},
dataType: 'json',
done: function (e, data) {
$.each(data.result.files, function (index, file) {
add_resume_file('diplom', file.url,file.id, '#diplom-gallery');
});
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .progress-bar').css(
'width',
progress + '%'
);
}
}).prop('disabled', !$.support.fileInput)
.parent().addClass($.support.fileInput ? undefined : 'disabled');
$('#cro-upload').fileupload({
url: url,
crossDomain: false,
beforeSend: function (xhr, settings) {
$('#progress .progress-bar').css(
'width',
'0%'
);
if (!csrfSafeMethod(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
},
dataType: 'json',
done: function (e, data) {
$.each(data.result.files, function (index, file) {
add_resume_file('cro', file.url, file.id,'#cro-gallery');
});
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .progress-bar').css(
'width',
progress + '%'
);
}
}).prop('disabled', !$.support.fileInput)
.parent().addClass($.support.fileInput ? undefined : 'disabled');
function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
}())
</script>
{% endblock %}