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.
572 lines
28 KiB
572 lines
28 KiB
{% extends 'base.html' %}
|
|
{% load static %}
|
|
{% load thumbnail %}
|
|
|
|
{% block select2 %}
|
|
<link href="{% static 'js/select2-4.0.3/css/select2.min.css' %}" rel="stylesheet"/>
|
|
<script src="{% static 'js/select2-4.0.3/js/select2.full.min.js' %}"></script>
|
|
|
|
<script>
|
|
var select4 = $.fn.select2;
|
|
delete $.fn.select2;
|
|
$.fn.select4 = select4;
|
|
</script>
|
|
{% endblock select2 %}
|
|
|
|
{% block styles %}
|
|
.hover{
|
|
display:none;
|
|
margin-bottom:10px;
|
|
|
|
}
|
|
.photo:hover .hover {
|
|
display: block;
|
|
}
|
|
{% endblock %}
|
|
|
|
{# Displays exposition form and file form in modal window #}
|
|
|
|
{% block scripts %}
|
|
|
|
<script src="{% static 'ckeditor/ckeditor/ckeditor.js' %}"></script>
|
|
<script src="{% static 'tiny_mce/tiny_mce.js' %}"></script>
|
|
{# selects #}
|
|
<link href="{% static 'js/select/select2.css' %}" rel="stylesheet"/>
|
|
<script src="{% static 'js/select/select2.js' %}"></script>
|
|
{# datepicker #}
|
|
|
|
<link href="{% static 'js/datepicker/css/datepicker.css' %}" rel="stylesheet"/>
|
|
<script src="{% static 'js/datepicker/js/bootstrap-datepicker.js' %}"></script>
|
|
|
|
|
|
|
|
<script src="{% static 'custom_js/formset_add.js' %}"></script>
|
|
<!--
|
|
{# ajax #}
|
|
|
|
|
|
<script src="{% static 'custom_js/timetable_post.js' %}"></script>
|
|
<script src="{% static 'custom_js/place_city_ajax.js' %}"></script>
|
|
<script src="{% static 'custom_js/select_tag.js' %}"></script>
|
|
-->
|
|
|
|
{# datetimepicker #}
|
|
<link href="{% static 'js/datetimepicker/css/datetimepicker.css' %}" rel="stylesheet"/>
|
|
<script src="{% static 'js/datetimepicker/js/bootstrap-datetimepicker.js' %}"></script>
|
|
<script type="text/javascript">
|
|
$(document).ready(function(){
|
|
$('#id_data_begin').datetimepicker({
|
|
todayHighlight: true,
|
|
format : 'dd.mm.yyyy',
|
|
minView:2
|
|
});
|
|
$('#id_data_end').datetimepicker({
|
|
todayHighlight: true,
|
|
format : 'dd.mm.yyyy',
|
|
minView:2
|
|
});
|
|
$('#id_end').datetimepicker({
|
|
todayHighlight: true,
|
|
format : 'dd.mm.yyyy hh:ii'
|
|
|
|
});
|
|
$('#id_begin').datetimepicker({
|
|
todayHighlight: true,
|
|
format : 'dd.mm.yyyy hh:ii'
|
|
|
|
});
|
|
|
|
$('#id_application_deadline').datetimepicker({
|
|
todayHighlight: true,
|
|
format : 'dd.mm.yyyy',
|
|
minView:2
|
|
});
|
|
|
|
$('#id_audience').select4({
|
|
tags: false,
|
|
multiple: true,
|
|
ajax: {
|
|
url: '{% url 'admin:events_targetaudience_searchajax' %}',
|
|
width: '550px',
|
|
dataType: "json",
|
|
quietMillis: 200,
|
|
|
|
data: function(params){
|
|
return {term: params.term,
|
|
page: params.page};
|
|
},
|
|
|
|
processResults: function (data) {
|
|
return {results: $.map(data, function(obj) {
|
|
obj.text = obj.label;
|
|
return obj
|
|
})};
|
|
},
|
|
|
|
},
|
|
|
|
{# createTag: function(params) {#}
|
|
{# return undefined;#}
|
|
{# },#}
|
|
});
|
|
{##}
|
|
{# $('#id_tag, #id_theme, #id_city, #id_country, #id_place_conference').on('select2-open', function () {#}
|
|
{# $('#id_audience').prop("disabled", true);#}
|
|
{# });#}
|
|
{# $('#id_tag, #id_theme, #id_city, #id_country, #id_place_conference').on('select2-close', function () {#}
|
|
{# $('#id_audience').prop("disabled", false);#}
|
|
{# });#}
|
|
});
|
|
</script>
|
|
|
|
{% endblock %}
|
|
|
|
{% block body %}
|
|
<form method="post" class="form-horizontal" enctype="multipart/form-data" name="form1" id="form1"> {% csrf_token %}
|
|
<fieldset>
|
|
<legend><i class="icon-edit"></i>{% if object %} Изменить {% else %} Добавить {% endif %}конференцию{% if object %}(<a target="_blank" href="{{ object.get_permanent_url }}">на сайте</a>){% endif %}</legend>
|
|
|
|
<div class="box span8" >
|
|
<div class="box-header well">
|
|
<h2><i class="icon-pencil"></i> Основная информация</h2>
|
|
</div>
|
|
<div class="box-content">
|
|
{# Hidden inputs uses for comparing with TmpFile objects #}
|
|
{{ form.key }}
|
|
{# Hidden input uses in clean method for checking url #}
|
|
{{ form.exposition_id }}
|
|
{# name #}
|
|
{% with field='name' form=form languages=languages %}
|
|
{% include 'c_admin/forms/multilang.html' %}
|
|
{% endwith %}
|
|
{# main_title #}
|
|
{% with field='main_title' form=form languages=languages %}
|
|
{% include 'c_admin/forms/multilang.html' %}
|
|
{% endwith %}
|
|
{# data_begin #}
|
|
<div class="control-group {% if form.data_begin.errors %}error{% endif %}">
|
|
<label class="control-label"><b>{{ form.data_begin.label }}:</b></label>
|
|
<div class="controls">{{ form.data_begin }}
|
|
<span class="help-inline">{{ form.data_begin.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# data_end #}
|
|
<div class="control-group {% if form.data_end.errors %}error{% endif %}">
|
|
<label class="control-label"><b>{{ form.data_end.label }}:</b></label>
|
|
<div class="controls">{{ form.data_end }}
|
|
<span class="help-inline">{{ form.data_end.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# audience #}
|
|
<div class="control-group {% if form.audience.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.audience.label }}:</label>
|
|
<div class="controls">{{ form.audience }}
|
|
<span class="help-inline">{{ form.audience.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# country #}
|
|
<div class="control-group {% if form.country.errors %}error{% endif %}">
|
|
<label class="control-label"><b>{{ form.country.label }}:</b></label>
|
|
<div class="controls">{{ form.country }}
|
|
<span class="help-inline">{{ form.country.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# city #}
|
|
<div class="control-group {% if form.city.errors %}error{% endif %}">
|
|
<label class="control-label"><b>{{ form.city.label }}:</b></label>
|
|
<div class="controls">{{ form.city }}
|
|
<span class="help-inline">{{ form.city.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# place #}
|
|
<div class="control-group {% if form.place.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.place.label }}:</label>
|
|
<div class="controls">{{ form.place }}
|
|
<span class="help-inline">{{ form.place.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# place_alt #}
|
|
<div class="control-group {% if form.place_alt.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.place_alt.label }}:</label>
|
|
<div class="controls">{{ form.place_alt }}
|
|
<span class="help-inline">{{ form.place_alt.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# theme #}
|
|
<div class="control-group {% if form.theme.errors %}error{% endif %}">
|
|
<label class="control-label"><b>{{ form.theme.label }}:</b></label>
|
|
<div class="controls">{{ form.theme }}
|
|
<span class="help-inline">{{ form.theme.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# tag #}
|
|
<div class="control-group {% if form.tag.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.tag.label }}:</label>
|
|
<div class="controls">{{ form.tag }}
|
|
<span class="help-inline">{{ form.tag.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# speakers #}
|
|
<div class="control-group {% if form.speakers.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.speakers.label }}:</label>
|
|
<div class="controls">{{ form.speakers }}
|
|
<span class="help-inline">{{ form.speakers.errors }}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{# logo #}
|
|
<div class="control-group {% if form.logo.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.logo.label }}:</label>
|
|
<div class="controls">{{ form.logo }}
|
|
<span class="help-inline">{{ form.logo.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# members_fc #}
|
|
<div class="control-group {% if form.members_fc.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.members_fc.label }}:</label>
|
|
<div class="controls">{{ form.members_fc }}
|
|
<span class="help-inline">{{ form.members_fc.errors }}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="box span8" >
|
|
<div class="box-header well">
|
|
<h2><i class="icon-pencil"></i> Дополнительная информация</h2>
|
|
</div>
|
|
<div class="box-content">
|
|
{# description #}
|
|
{% with field='description' form=form languages=languages %}
|
|
{% include 'c_admin/forms/multilang.html' %}
|
|
{% endwith %}
|
|
{# periodic_once #}
|
|
<div class="control-group {% if form.periodic_once.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.periodic_once.label }}:</label>
|
|
<div class="controls">{{ form.periodic_once }}
|
|
<span class="help-inline">{{ form.periodic_once.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# periodic #}
|
|
<div class="control-group {% if form.periodic.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.periodic.label }}:</label>
|
|
<div class="controls">{{ form.periodic }}
|
|
<span class="help-inline">{{ form.periodic.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# programm_link #}
|
|
<div class="control-group {% if form.programm_link.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.programm_link.label }}:</label>
|
|
<div class="controls">{{ form.programm_link }}
|
|
<span class="help-inline">{{ form.programm_link.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# web_page #}
|
|
<div class="control-group {% if form.web_page.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.web_page.label }}:</label>
|
|
<div class="controls">{{ form.web_page }}
|
|
<span class="help-inline">{{ form.web_page.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# organiser #}
|
|
<div class="control-group {% if form.org.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.org.label }}:</label>
|
|
<div class="controls">{{ form.org }}
|
|
<span class="help-inline">{{ form.org.errors }}</span>
|
|
</div>
|
|
</div>
|
|
|
|
{# link #}
|
|
<div class="control-group {% if form.link.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.link.label }}:</label>
|
|
<div class="controls">{{ form.link }}
|
|
<span class="help-inline">{{ form.link.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# main_themes #}
|
|
{% with field='main_themes' form=form languages=languages %}
|
|
{% include 'c_admin/forms/multilang.html' %}
|
|
{% endwith %}
|
|
{# time #}
|
|
{% with field='time' form=form languages=languages %}
|
|
{% include 'c_admin/forms/multilang.html' %}
|
|
{% endwith %}
|
|
{# foundation_year #}
|
|
<div class="control-group {% if form.foundation_year.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.foundation_year.label }}:</label>
|
|
<div class="controls">{{ form.foundation_year }}
|
|
<span class="help-inline">{{ form.foundation_year.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# quality_label #}
|
|
<div class="control-group {% if form.quality_label.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.quality_label.label }}:</label>
|
|
<div class="controls">{{ form.quality_label }}
|
|
<span class="help-inline">{{ form.quality_label.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# canceled #}
|
|
<div class="control-group {% if form.canceled.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.canceled.label }}:</label>
|
|
<div class="controls">{{ form.canceled }}
|
|
<span class="help-inline">{{ form.canceled.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# moved #}
|
|
<div class="control-group {% if form.moved.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.moved.label }}:</label>
|
|
<div class="controls">{{ form.moved }}
|
|
<span class="help-inline">{{ form.moved.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# expohit #}
|
|
<div class="control-group {% if form.expohit.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.expohit.label }}:</label>
|
|
<div class="controls">{{ form.expohit }}
|
|
<span class="help-inline">{{ form.expohit.errors }}</span>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="box span8">
|
|
<div class="box-header well">
|
|
<h2><i class="icon-pencil"></i>Условия участия</h2>
|
|
</div>
|
|
<div class="box-content">
|
|
{# currency #}
|
|
<div class="control-group {% if form.currency.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.currency.label }}:</label>
|
|
<div class="controls">{{ form.currency }}
|
|
<span class="help-inline">{{ form.currency.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# tax #}
|
|
<div class="control-group {% if form.tax.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.tax.label }}:</label>
|
|
<div class="controls">{{ form.tax }}
|
|
<span class="help-inline">{{ form.tax.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# min_price #}
|
|
<div class="control-group {% if form.min_price.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.min_price.label }}:</label>
|
|
<div class="controls">{{ form.min_price }}
|
|
<span class="help-inline">{{ form.min_price.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# max_price #}
|
|
<div class="control-group {% if form.max_price.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.max_price.label }}:</label>
|
|
<div class="controls">{{ form.max_price }}
|
|
<span class="help-inline">{{ form.max_price.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# discount #}
|
|
<div class="control-group {% if form.discount.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.discount.label }}:</label>
|
|
<div class="controls">{{ form.discount }}
|
|
<span class="help-inline">{{ form.discount.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# discount_description #}
|
|
{% with field='discount_description' form=form languages=languages %}
|
|
{% include 'c_admin/forms/multilang.html' %}
|
|
{% endwith %}
|
|
|
|
</div>
|
|
</div>
|
|
<div class="box span8">
|
|
<div class="box-header well">
|
|
<h2><i class="icon-pencil"></i>Деловая программа</h2>
|
|
</div>
|
|
<div class="box-content">
|
|
{% if object %}
|
|
<div id="timetable_wrap">
|
|
<table class="table">
|
|
<colgroup>
|
|
<col span="1" style="width: 35%;">
|
|
<col span="1" style="width: 10%;">
|
|
<col span="1" style="width: 10%;">
|
|
<col span="1" style="width: 25%;">
|
|
<col span="1" style="width: 10%;">
|
|
<col span="1" style="width: 10%;">
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<th>Программа</th>
|
|
<th>Начало</th>
|
|
<th>Конец</th>
|
|
<th>Спикеры</th>
|
|
<th>Организатор</th>
|
|
<th> </th>
|
|
</tr>
|
|
|
|
</thead>
|
|
<tbody>
|
|
{% for timetable in timetables %}
|
|
<tr>
|
|
<td>{{ timetable.programe|safe }}</td>
|
|
<td>{{ timetable.begin|date:"o-m-d H:i" }}</td>
|
|
<td>{{ timetable.end|date:"o-m-d H:i" }}</td>
|
|
<td>{{ timetable.speaker }}</td>
|
|
<td>
|
|
{{ timetable.timetable_organiser }}
|
|
</td>
|
|
<td>
|
|
<button class="btn btn-danger remove_timetable" value="{{ timetable.id }}">
|
|
Удалить
|
|
</button>
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<a href="#timetableModal" id="timetable_add" role="btn btn-success" class="btn btn-success" data-toggle="modal"><i class="icon-plus-sign icon-white"></i> Добавить program</a>
|
|
{% else %}
|
|
<p>Деловую программу можно добавлять только после введения основных данных</p>
|
|
{% endif %}
|
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="box span8">
|
|
<div class="box-header well">
|
|
<h2><i class="icon-pencil"></i>Статистика</h2>
|
|
</div>
|
|
|
|
<div class="box-content">
|
|
{# foundation_year #}
|
|
<div class="control-group {% if form.foundation_year.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.foundation_year.label }}:</label>
|
|
<div class="controls">{{ form.foundation_year }}
|
|
<span class="help-inline">{{ form.foundation_year.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# area #}
|
|
<div class="control-group {% if form.area.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.area.label }}:</label>
|
|
<div class="controls">{{ form.area }}
|
|
<span class="help-inline">{{ form.area.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# members #}
|
|
<div class="control-group {% if form.members.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.members.label }}:</label>
|
|
<div class="controls">{{ form.members }}
|
|
<span class="help-inline">{{ form.members.errors }}</span>
|
|
</div>
|
|
</div>
|
|
{# visitors #}
|
|
<div class="control-group {% if form.visitors.errors %}error{% endif %}">
|
|
<label class="control-label">{{ form.visitors.label }}:</label>
|
|
<div class="controls">{{ form.visitors }}
|
|
<span class="help-inline">{{ form.visitors.errors }}</span>
|
|
</div>
|
|
</div>
|
|
|
|
{% if object %}
|
|
<div style="padding-left: 160px;{% if object %} {% else %}display: none;{% endif %}">
|
|
|
|
<table class="table table-hover" style=" width: 100%;">
|
|
<thead>
|
|
<tr>
|
|
<td>Год</td>
|
|
<td>Посетители</td>
|
|
<td>Участники</td>
|
|
<td>Площадь</td>
|
|
<td></td>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for stat in object.statistic.all %}
|
|
<tr>
|
|
<td>{{ stat.year }}</td>
|
|
<td>{{ stat.visitors }}</td>
|
|
<td>{{ stat.members }}</td>
|
|
<td>{{ stat.area }}</td>
|
|
<td><a class="btn btn-danger delete_stat" href="/admin/ajax_delete_stat/{{ stat.id }}/"><i class="icon-trash icon-white"></i> Удалить</a></td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<a href="#stat_modal" id="stat_add" role="btn btn-success" class="btn btn-success" data-toggle="modal"><i class="icon-plus-sign icon-white"></i> Добавить год</a>
|
|
</div>
|
|
|
|
|
|
{% else %}
|
|
{% endif %}
|
|
|
|
</div>
|
|
<div class="box span8" id="file">
|
|
<div class="box-header well">
|
|
<h2><i class="icon-pencil"></i> Файлы</h2>
|
|
</div>
|
|
<div class="box-content">
|
|
{% if object %}
|
|
{# button that shows modal window with file form #}
|
|
<a href="#myModal" id="file_add" role="button" class="btn btn-info" data-toggle="modal">Добавить файл</a>
|
|
{% else %}
|
|
<p>Файлы можно добавлять только после введения основных данных</p>
|
|
{% endif %}
|
|
{# this div shows list of files and refreshes when new file added #}
|
|
<div id="file_list">
|
|
<table class="table table-hover">
|
|
|
|
<thead>
|
|
<tr>
|
|
<td>id</td>
|
|
<td>Файл</td>
|
|
<td>Имя</td>
|
|
<td>Назначение</td>
|
|
<td></td>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% include 'file_list.html' with files=files %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
{% include 'c_admin/includes/photogallery.html' with object=object %}
|
|
|
|
<div class="box span8">
|
|
<div class="box-header well">
|
|
<h2><i class="icon-pencil"></i>Мета данные</h2>
|
|
</div>
|
|
<div class="box-content">
|
|
{# keywords #}
|
|
{% with field='keywords' form=form languages=languages %}
|
|
{% include 'c_admin/forms/multilang.html' %}
|
|
{% endwith %}
|
|
{# title #}
|
|
{% with field='title' form=form languages=languages %}
|
|
{% include 'c_admin/forms/multilang.html' %}
|
|
{% endwith %}
|
|
{# descriptions #}
|
|
{% with field='descriptions' form=form languages=languages %}
|
|
{% include 'c_admin/forms/multilang.html' %}
|
|
{% endwith %}
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="controls">
|
|
<input class="btn btn-large btn-primary" type="submit" value="Добавить">
|
|
<input class="btn btn-large" type="reset" value="Отмена">
|
|
</div>
|
|
|
|
</fieldset>
|
|
</form>
|
|
|
|
|
|
{% include 'c_admin/includes/photo_form.html' with form=photo_form object=object %}
|
|
{% include 'c_admin/includes/file_form.html' with file_form=file_form object=object %}
|
|
{% include 'c_admin/includes/stat_form.html' with form=stat_form object=object %}
|
|
{% endblock %}
|
|
|