Merge branch 'develop' of git.general-servers.com:expomap/expomap into develop

remotes/origin/1203
pavel 11 years ago
commit acc3eeaaab
  1. 2
      accounts/admin_urls.py
  2. 18
      exposition/management/commands/exposition_load.py
  3. 24
      import_xls/utils.py
  4. 23
      settings/templatetags/tempalte_tags.py
  5. 15
      settings/templatetags/template_filters.py
  6. 40
      templates/client/includes/accounts/calendar_table.html
  7. 1
      templates/client/static_client/js/min/_modules/block.common.min.js
  8. 1
      templates/client/static_client/js/min/_modules/block.exposition.list.min.js
  9. 1
      templates/client/static_client/js/min/_modules/block.search.min.js
  10. 1
      templates/client/static_client/js/min/_modules/page.company.min.js
  11. 1
      templates/client/static_client/js/min/_modules/page.events.feed.min.js
  12. 1
      templates/client/static_client/js/min/_modules/page.exposition.object.min.js
  13. 1
      templates/client/static_client/js/min/_modules/page.index.min.js
  14. 1
      templates/client/static_client/js/min/_modules/page.place.object.min.js
  15. 1
      templates/client/static_client/js/min/_modules/page.place.photo.min.js
  16. 1
      templates/client/static_client/js/min/_modules/page.profile.min.js
  17. 7
      templates/client/static_client/js/min/app.min.js

@ -4,7 +4,7 @@ from admin import UserListView
urlpatterns = patterns('',
#url(r'^registration/$', 'accounts.admin.registration'),
#url(r'^create_admin/$', 'accounts.admin.create_admin'),
#url(r'^create_admin/$', 'accounts.admin.create_admin'),
#url(r'^create_md5user/$', 'accounts.admin.create_md5'),
url(r'^change/(.*)/$', 'accounts.admin.user_change'),
url(r'^all/$', UserListView.as_view()),

@ -12,17 +12,21 @@ ITALY_FILE = settings.MEDIA_ROOT+'/import/expo_italy_ru.xlsx'
# moscow 3 exps
F = settings.MEDIA_ROOT+'/import/exp.xlsx'
LA_FILE = settings.MEDIA_ROOT+'/import/expo_la.xlsx'
NA_EU_ASIA_FILE = settings.MEDIA_ROOT+'/import/expo_na_eu_ sa.xls'
class Command(BaseCommand):
def handle(self, *args, **options):
f = open(F, 'r')
f = open(NA_EU_ASIA_FILE, 'r')
book = xlrd.open_workbook(file_contents=f.read())
sheet = book.sheet_by_index(0)
row_list = [sheet.row_values(row_number) for row_number in range(sheet.nrows)]
labels = [label for label in row_list[0]]
for row_number, row in enumerate(row_list[1:]):
print(row_number)
if row[0] != '':
# in first column ids
@ -68,12 +72,15 @@ class Command(BaseCommand):
else:
value = func(cell)
setattr(object, field_name, value)
object.save()
if field_name == 'city':
pass
else:
setattr(object, field_name, value)
#object.save()
print('post save %s'% str(object))
"""
for method in methods:
func = method['func']
if method.get('purpose'):
@ -82,4 +89,5 @@ class Command(BaseCommand):
except:
continue
else:
func(object, method['value'])
func(object, method['value'])
"""

@ -41,6 +41,7 @@ def to_country(value):
country = query.filter(name=value)[0]
return country
except IndexError:
print(value.encode('utf8'))
return None
def to_city(value, lang, country):
@ -52,9 +53,9 @@ def to_city(value, lang, country):
# print(city)
return city
except IndexError:
# print('---------------------')
# print(value.encode('utf8'))
# print('---------------------')
print('---------------------')
print(value.encode('utf8'))
print('---------------------')
return None
@ -88,7 +89,13 @@ def to_place(value):
place = PlaceExposition.objects.get(url=value)
return place
except PlaceExposition.DoesNotExist:
return None
try:
place = PlaceExposition.objects.get(id=value)
return place
except:
return None
def to_periodic(value):
@ -145,7 +152,7 @@ def save_logo(obj, path):
url = 'http://expomap.ru' + path
try:
response = urllib2.urlopen(url, timeout=10)
response = urllib2.urlopen(url, timeout=15)
except:
return None
@ -158,7 +165,12 @@ def save_logo(obj, path):
return None
obj.logo = logo_path + alt_name
obj.save()
try:
obj.save()
except:
print('logo exception. logo: %s'%obj.logo)
return None
def check_quality_label(obj, value, label):

@ -47,6 +47,29 @@ def get_date(parser, token):
return Date()
class SetVarNode(template.Node):
def __init__(self, var_name, var_value):
self.var_name = var_name
self.var_value = var_value
def render(self, context):
try:
value = template.Variable(self.var_value).resolve(context)
except template.VariableDoesNotExist:
value = ""
context[self.var_name] = value
return u""
def set_var(parser, token):
"""
{% set <var_name> = <var_value> %}
"""
parts = token.split_contents()
if len(parts) < 4:
raise template.TemplateSyntaxError("'set' tag must be of the form: {% set <var_name> = <var_value> %}")
return SetVarNode(parts[1], parts[3])
register.tag('set', set_var)
register.tag('get_date', get_date)

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
from django import template
import phonenumbers
import datetime, random
@ -228,3 +229,17 @@ def next_monthes(value):
a = value
return value
@register.filter
def get_rus_day(date):
days = {1: u'Пн', 2: u'Вт', 3: u'Ср', 4: u'Чт', 5: u'Пт', 6: u'Сб', 0: u'Вс',}
return days.get(date.weekday(), '')
@register.filter
def in_events(day, events):
for event in events:
if event.data_begin <= day.date() <= event.data_end:
return True
return False

@ -17,18 +17,18 @@
<div class="cal-wrap">
<div class="calendar-container" >
<div class="scroll-content" id="calendar-scroll-box">
{% with events=events %}
<table id="calendar-table">
<tbody class="cal-days">
<tr>
{% for day in days %}
{% ifnotequal day current_day %}
<td width="115"><div><b>{{ day|date:"d" }}</b>/<i>{{ day|date:"D"|lower }}</i></div></td>
<td width="115"><div><b>{{ day|date:"d" }}</b>/<i>{% if LANGUAGE_CODE == 'ru' %}{{ day|get_rus_day }}{% else %}{{ day|date:"D" }}{% endif %}</i></div></td>
{% else %}
<td class="c-cur">
<div>
<div class="cur-mark">{% trans 'Сегодня' %}</div>
<b>{{ day|date:"d" }}</b>/<i>{{ day|date:"D"|lower }}</i>
<b>{{ day|date:"d" }}</b>/<i>{% if LANGUAGE_CODE == 'ru' %}{{ day|get_rus_day }}{% else %}{{ day|date:"D" }}{% endif %}</i>
</div>
</td>
{% endifnotequal %}
@ -37,6 +37,18 @@
</tbody>
<tbody class="cal-body">
{# первый ряд с отображениями дней где нет событий #}
<tr>
{% for day in days %}
{% if day|in_events:events %}
<td></td>
{% else %}
<td class="c-cur">&nbsp;</td>{# нет событий в эти дни #}
{% endif %}
{% endfor %}
</tr>
{% for event in events %}
<tr>
{% for day in days %}
@ -111,29 +123,9 @@
</tr>
{% endfor %}
</tbody>
{% comment %}
{% if events %}
<tbody class="cal-days">
<tr>
{% for day in days %}
{% ifnotequal day current_day %}
<td><div><b>{{ day|date:"d" }}</b>/<i>{{ day|date:"D"|lower }}</i></div></td>
{% else %}
<td class="c-cur">
<div>
<div class="cur-mark">{% trans 'Сегодня' %}</div>
<b>{{ day|date:"d" }}</b>/<i>{{ day|date:"D"|lower }}</i>
</div>
</td>
{% endifnotequal %}
{% endfor %}
</tr>
</tbody>
{% endif %}
{% endcomment %}
</table>
{% endwith %}
</div>
</div>

@ -0,0 +1 @@
var EXPO=EXPO||{};EXPO.common?console.warn("WARNING: EXPO.common is already defined!"):EXPO.common=function(){var e={},t=function(e,t){return(e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector).call(e,t)};e.opt={};var s=function(e){this.fields=[],this.allIsClear=!1,this.ajaxUrl=e.getAttribute("action"),this.DOM=e,this._initFields(),this._eventController()};return s.prototype={_eventController:function(){var e=this;this.DOM.addEventListener?this.DOM.addEventListener("submit",function(t){return e.validate(),t.preventDefault(),!1},!1):this.DOM.attachEvent&&this.DOM.attachEvent("onsubmit",function(t){return e.validate(),t.preventDefault(),!1})},_initFields:function(){},validate:function(){var e,t=this,s=$(t.DOM).serialize(),i={},o="err-message-box",n=t.DOM.querySelector("."+o),a=n.innerHTML,r=function(s){if(e=s,t.unHighlightFields(),e.success)n&&EXPO.common.removeClass(n,"active"),window.location.reload();else{EXPO.common.removeClass(n,"active"),i={},t.fields=[];for(var o in e.errors)e.errors.hasOwnProperty(o)&&("__all__"!=o?(i={name:o,id:"id_"+o,errorText:e.errors[o]},t.fields.push(i)):n&&(EXPO.common.addClass(n,"active"),a.indexOf(e.errors[o])<0&&n.insertAdjacentHTML("beforeend",e.errors[o]+" ")));t.highliteFields()}};t.unHighlightFields(),EXPO.common.postRequest(s,t.ajaxUrl,r)},highliteFields:function(){for(var e,t,s=0;s<this.fields.length;s++)e=this.DOM.querySelector("#"+this.fields[s].id),t=e.parentNode,EXPO.common.addClass(t,"required"),EXPO.common.addClass(t,"err")},unHighlightFields:function(){for(var e,t,s=0;s<this.fields.length;s++)e=this.DOM.querySelector("#"+this.fields[s].id),t=e.parentNode,EXPO.common.removeClass(t,"required"),EXPO.common.removeClass(t,"err")},submit:function(){}},e.forms=[],$(function(){$("form.validate").each(function(){e.forms.push(new s(this))})}),$(function(){$.fn.customRadioCheck=function(){return $(this).each(function(){function e(){if("radio"==s){var e=t.attr("name"),i=$('input[type="radio"]').filter('[name="'+e+'"]');i.each(function(){var e=$(this).closest(".custom-radio");e.removeClass("checked"),$(this).is(":checked")&&e.addClass("checked")})}else t.prop("checked")?o.addClass("checked"):o.removeClass("checked");t.trigger("blur")}var t=$(this),s=t.attr("type"),i=t.closest("label"),o=t.wrap("<span class='custom-"+s+"' />").parent();i.addClass("custom-radio-check"),e(),t.on("change",e)})},$("input[type='checkbox'], input[type='radio']").customRadioCheck()}),e.init=function(e){$.extend(this.opt,e);var t=this,s=this.opt.addCalendarClass,i=this.opt.removeCalendarClass,o=this.opt.addCalendarText,n=this.opt.removeCalendarText;$(function(){$("."+s+", ."+i).on("click",function(e){o=t.opt.addCalendarText,n=t.opt.removeCalendarText,e.preventDefault();var a=$(this),r=a.attr("href");$.get(r,function(e){e.not_authorized?$.fancybox.open("#"+t.opt.loginModalId):e.success&&(e.in?a.removeClass(s).addClass(i).text(n):a.removeClass(i).addClass(s).text(o))})})})},e.hasClass=function(e,t){return e.classList?e.classList.contains(t):new RegExp("(^| )"+t+"( |$)","gi").test(el.className)},e.addClass=function(t,s){return e.hasClass(t,s)||(t.classList?t.classList.add(s):t.className+=" "+s),t},e.removeClass=function(t,s){var i=" "+t.className.replace(/[\t\r\n]/g," ")+" ";if(e.hasClass(t,s))if(t.classList)t.classList.remove(s);else{for(;i.indexOf(" "+s+" ")>=0;)i=i.replace(" "+s+" "," ");t.className=i.replace(/^\s+|\s+$/g," ")}return t},e.closest=function(t,s){for(var i=function(s){return e.hasClass(t,s)};t;){if(i(s))return t;t=t.parentNode}},e.children=function(e,s){for(var i,o=[],i=0,n=e.childNodes.length;n>i;++i)t(e.childNodes[i],s)&&o.push(e.childNodes[i]);return o},e.postRequest=function(e,t,s){e||(e=""),$.ajax({type:"POST",url:t,data:e,success:function(e){return"function"!=typeof s?e:(console.log("data recieved:"),console.log(e),console.log(JSON.stringify(e)),s(e),void 0)}})},e.getRequest=function(e,t,s){e||(e=""),$.ajax({type:"GET",url:t,data:e,success:function(e){return"function"!=typeof s?e:(console.log("data recieved:"),console.log(e),console.log(JSON.stringify(e)),s(e),void 0)}})},e.Modal=function(e){var t=this;this.id,this.opt=e,this.DOMwrap=document.getElementById(e.id),this.DOM=this.DOMwrap.querySelector("."+e.wrapClass),$(".modal-close",this.DOM).on("click",function(){t.close()}),$(".modals > *").on("click",function(e){$(e.target.parentNode).find(t.DOMwrap).length&&t.close()})},e.Modal.prototype={pullData:function(e){this.id=e.substr(1),$(e).show().siblings().hide(),this.refresh()},open:function(){$(this.DOMwrap).fadeIn(),e.addClass(document.body,"ov-hidden")},close:function(){$(this.DOMwrap).fadeOut(),e.removeClass(document.body,"ov-hidden")},refresh:function(){var e=this;e.DOM.style.width=e.opt.size[e.id].width+"px",e.DOM.style.minHeight=e.opt.size[e.id].height+"px",e.DOM.style.marginLeft=-(e.opt.size[e.id].width/2)+"px",e.DOM.style.marginTop=-(e.opt.size[e.id].height/2)+"px"}},e}();

@ -0,0 +1 @@
var EXPO=EXPO||{};EXPO.exposition=EXPO.exposition||{},EXPO.exposition.list?console.warn("WARNING: EXPO.place.object is already defined!"):EXPO.exposition.list=function(){var t=EXPO.common,n={},o=function(t,n){this.opt=n,this.DOMthis=t,this.DOMbutton=t.querySelector("."+n.buttonClass),this.DOMinput=t.querySelector("."+n.inputClass),this.inputName=this.DOMinput.getAttribute("name"),this.url=this.DOMbutton.getAttribute("href"),this._controller()};return o.prototype={_init:function(){},_controller:function(){var t=this;$(this.DOMinput).on("blur",function(){t.send()}),$(this.DOMbutton).on("click",function(){return!1})},send:function(){var n,o={},i=this,e=function(t){t.success?(console.log("ok"),$(i.DOMbutton).addClass("active")):console.log("data not send")};o[this.inputName]=this.DOMinput.value,n=t.getRequest(o,this.url,e)}},n.opt={},$(function(){}),n.init=function(n){$.extend(this.opt,n),this.notes=[];var i=this;$("."+this.opt.note.wrapClass).each(function(){var t=new o(this,i.opt.note);i.notes.push(t)}),$("."+this.opt.note.wrapDisabledClass).on("click",function(){return $.fancybox.open("#pw-login"),!1}),t.opt.addCalendarText=this.opt.addCalendarText,t.opt.removeCalendarText=this.opt.removeCalendarText},n}();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
var EXPO=EXPO||{};EXPO.exposition=EXPO.exposition||{},EXPO.exposition.object?console.warn("WARNING: EXPO.exposition.object is already defined!"):EXPO.exposition.object=function(){var t=EXPO.common,n={},o=function(t,n){this.opt=n,this.DOMthis=t,this.DOMbutton=t.querySelector("."+n.buttonClass),this.DOMinput=t.querySelector("."+n.inputClass),this.inputName=this.DOMinput.getAttribute("name"),this.url=this.DOMbutton.getAttribute("href"),this._controller()};return o.prototype={_init:function(){},_controller:function(){var t=this;$(this.DOMinput).on("blur",function(){t.send()}),$(this.DOMbutton).on("click",function(){return!1})},send:function(){var n,o={},e=this,i=function(t){t.success?(console.log("ok"),$(e.DOMbutton).addClass("active")):console.log("data not send")};o[this.inputName]=this.DOMinput.value,n=t.getRequest(o,this.url,i)}},n.opt={},$(function(){}),n.init=function(n){$.extend(this.opt,n);var e=this,i=$(document.getElementById(e.opt.visitButton.visitorsListId)),s=$(document.getElementById(e.opt.visitButton.wrapId));this.notes=[],i.children().length||s.show(),$("."+this.opt.note.wrapClass).each(function(){var t=new o(this,e.opt.note);e.notes.push(t)}),$("."+this.opt.note.wrapDisabledClass).on("click",function(){return $.fancybox.open("#pw-login"),!1}),t.opt.addCalendarText=this.opt.addCalendarText,t.opt.removeCalendarText=this.opt.removeCalendarText},n}();

@ -0,0 +1 @@
var EXPO=EXPO||{};EXPO.index?console.warn("WARNING: EXPO.eventsFeed is already defined!"):EXPO.index=function(){var t={};t.opt={};var n=EXPO.common,i=function(t,n){this.opt=n,this.DOMthis=t,this.DOMbutton=t.querySelector("."+n.buttonClass),this.DOMinput=t.querySelector("."+n.inputClass),this.inputName=this.DOMinput.getAttribute("name"),this.url=this.DOMbutton.getAttribute("href"),this._controller()};return i.prototype={_init:function(){},_controller:function(){var t=this;$(this.DOMinput).on("blur",function(){t.send()}),$(this.DOMbutton).on("click",function(){return!1})},send:function(){var t,i={},o=this,e=function(t){t.success?(console.log("ok"),$(o.DOMbutton).addClass("active")):console.log("data not send")};i[this.inputName]=this.DOMinput.value,t=n.getRequest(i,this.url,e)}},t.init=function(t){$.extend(this.opt,t);var n=this;this.notes=[],$("."+this.opt.note.wrapClass).each(function(){var t=new i(this,n.opt.note);n.notes.push(t)}),$("."+this.opt.note.wrapDisabledClass).on("click",function(){return $.fancybox.open("#pw-login"),!1})},t}();

@ -0,0 +1 @@
var EXPO=EXPO||{};EXPO.place=EXPO.place||{},EXPO.place.object?console.warn("WARNING: EXPO.place.object is already defined!"):EXPO.place.object=function(){var t={},i=function(t,i){this.$annotation=$("."+t.annotationClass,i),this.$fullPart=$("."+t.fullPartClass,i),this.$readMore=$("."+t.readMoreClass,i),this.cutLength=t.cutLength,this.fullText,this.init()};return i.prototype={init:function(){var t=this,i=this.$annotation.html().slice(0,t.cutLength);this.fullText=this.$annotation.html(),this.$annotation.html(i+"..."),this.$fullPart.html(this.fullText)},showMore:function(){this.$readMore.hide(),this.$annotation.hide(),this.$fullPart.removeClass("hidden")},_cutAnnotation:function(){}},t.opt={},$(function(){}),t.init=function(t){$.extend(this.opt,t);var n=this;this.articles=[],$("."+n.opt.article.class).each(function(){var t=new i(n.opt.article,this);t.$readMore.on("click",function(){t.showMore()}),n.articles.push(t)})},t}();

@ -0,0 +1 @@
var EXPO=EXPO||{};EXPO.placePhoto?console.warn("WARNING: EXPO.placePhoto is already defined!"):EXPO.placePhoto=function(){var t={};t.settings={},t.lang={};var n=function(t,n,e,i,o,r,c,a){var d=this;this.currentId=void 0,this.ajaxUrl=i,this.opt={gContainerId:n,mId:t,mTrigger:e,nBtn:o,pBtn:r,cBtn:c,mcId:a},this.$mWindow=void 0,$(function(){d.$mWindow=$("#"+d.opt.mId),d.$mtrigger=$("."+d.opt.mTrigger),d.$nBtn=$("#"+d.opt.nBtn),d.$pBtn=$("#"+d.opt.pBtn),d.$cBtn=$("#"+d.opt.cBtn),d.$mtrigger.on("click",function(){var t;try{t=$(this).children("img").data("image-id"),d.currentId=t}catch(n){console.log(n.message)}return d.show(),!1}),d.$nBtn.off("click"),d.$nBtn.on("click",function(){return d.nextSlide(),!1}),d.$pBtn.off("click"),d.$pBtn.on("click",function(){return d.prevSlide(),!1}),d.$cBtn.off("click"),d.$cBtn.on("click",function(){return d.close(),!1}),d.$mWindow.off("click"),d.$mWindow.on("click",function(t){var n=$(t.target);return n.parents().filter("#"+d.opt.mcId).length<1&&d.close(),!1})})};return n.prototype={_getAjax:function(t,n){var e=this;t||(t=""),$.ajax({type:"GET",url:e.ajaxUrl,data:t,success:function(t){"function"==typeof n?(e.rawData=t,n()):e.rawData=t}})},_renderSlide:function(t,n){var e=this;t&&(e.currentId=t),n?(dna.empty(e.opt.mcId),dna.load(e.opt.mcId,e.ajaxUrl+e.currentId,{callback:n()})):(dna.empty(e.opt.mcId),dna.load(e.opt.mcId,e.ajaxUrl+e.currentId,{empty:!0}))},_getId:function(t){var n=this,e=function(){var t=$("."+n.opt.mTrigger+' [data-image-id="'+n.currentId+'"]').parents("li").next().find("img").data("image-id");t?n.currentId=t:console.log("there is not next slides")},i=function(){var t=$("."+n.opt.mTrigger+' [data-image-id="'+n.currentId+'"]').parents("li").prev().find("img").data("image-id");t?n.currentId=t:console.log("there is not previous slides")},o=function(){console.log("_getId("+t+") RESULTS:"),console.log(n.currentId)};switch(t){case">":e();break;case"<":i();break;default:o()}},close:function(){$("body").removeClass("no-scroll"),this.$mWindow.hide()},open:function(){$("body").addClass("no-scroll"),this.$mWindow.show()},nextSlide:function(){var t=this.currentId;this._getId(">"),t!=this.currentId&&this._renderSlide()},prevSlide:function(){var t=this.currentId;this._getId("<"),t!=this.currentId&&this._renderSlide()},show:function(t){var n=this;this._renderSlide(t,function(){n.open()})}},t.init=function(t){$.extend(this.lang,t.lang),t.lang=null,$.extend(this.settings,t);var e=this;this.modal=new n(e.settings.modalId,e.settings.containerId,e.settings.modalTrigger,e.settings.ajaxUrl,e.settings.nextButtonId,e.settings.prevButtonId,e.settings.closeModalButtonId,e.settings.modalContainerId)},t}();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save