remotes/origin/1203
Kotiuk Nazarii 11 years ago
parent 42d8a8bf16
commit 41271c05a7
  1. 1
      accounts/admin.py
  2. 4
      core/models.py
  3. 12
      import_xls/admin.py
  4. 2
      import_xls/excel_settings.py
  5. 48
      import_xls/import_forms.py
  6. 6
      import_xls/utils.py
  7. 0
      logs/django_request.log
  8. 16
      logs/mylog.log
  9. 7056
      logs/mylog.log.1
  10. 3
      meta/models.py
  11. 47
      proj/settings.py
  12. 6
      settings/old_urls.py
  13. 23
      settings/redirect_views.py
  14. 31
      templates/client/404_test.html

@ -4,6 +4,7 @@ import random
import json
from hashlib import md5
from django.shortcuts import render_to_response
from django.conf import settings
from django.http import HttpResponseRedirect, HttpResponse
from django.core.context_processors import csrf
from django.contrib.auth.decorators import login_required

@ -130,8 +130,8 @@ class Page(TranslatableModel):
self.translate(lang)
for field in clear_f_n:
setattr(self, field, field_items.get(field, ''))
super(Page,self).save(*args, **kwargs)
return self
obj = super(Page,self).save(*args, **kwargs)
return obj
def __unicode__(self):
return self.url

@ -29,13 +29,17 @@ class ImportView(FormView):
"""
abstract class
"""
template_name = 'import.html'
template_name = 'admin/import templates/import.html'
def form_valid(self, form):
form.save_file()
errors = form.save_file()
messages.success(self.request, 'Success')
context = self.get_context_data()
context['import_errors'] = errors
context['form'] = form
return render_to_response(self.template_name, context)
return super(ImportView, self).form_valid(form)
class ExportView(FormView):
@ -166,4 +170,4 @@ def work_file(request, log_id):
filename = 'import_%s_file.xls'%str(log.id)
response['content-disposition'] = 'attachment;filename=%s'%filename
response['X-Accel-Redirect'] = log.work_file.url
return response
return response

@ -275,7 +275,7 @@ place_exp_sett = {
u'Тип':{u'field': u'type', u'func': to_type},
u'Краткое описание':{u'field': u'main_title', u'func': unicode},
u'Страна':{u'field': u'country', u'func': to_country},
u'Город':{u'field': u'city', u'func': to_city, 'extra_values': 'country'},
u'Город':{u'field': u'city_id', u'func': to_city, 'extra_values': 'country'},
u'Описание':{u'field': u'description', u'func': unicode},
u'Адрес':{u'field': u'adress', u'func': unicode},
u'Тел.':{u'field': u'phone', u'func': to_phone},

@ -279,20 +279,22 @@ class ImportEventForm(ImportForm):
labels = [label for label in row_list[0]]
errors = []
log = Log.custom.create_log_name(f)
for row_number, row in enumerate(row_list):
if row_number == 0:
continue
log_msg = u'[%s] %s: '%(str(row_number), row[2])
if row[0] != '':
# in first column id
try:
obj = self.model.objects.language(lang).get(id=int(row[0]))
obj = model.objects.language(lang).get(id=int(row[0]))
except ValueError:
obj = self.model()
obj = model()
obj.translate(lang)
except self.model.DoesNotExist:
obj = self.model(id= int(row[0]))
except model.DoesNotExist:
obj = model(id= int(row[0]))
obj.translate(lang)
else:
# if id blank - its a new event
@ -314,7 +316,8 @@ class ImportEventForm(ImportForm):
if setting.get('method'):
# this cell contains data that must be written after creating object
if cell != "":
methods.append({'func': setting['func'], 'value': cell, 'purpose': setting.get('purpose')})
methods.append({'func': setting['func'], 'value': cell,
'purpose': setting.get('purpose'), 'field': label})
continue
field_name = setting['field']
@ -325,7 +328,7 @@ class ImportEventForm(ImportForm):
extra_value = setting.get('extra_values')
if extra_value is not None:
# if setting has extra value then
# it is some field like city, theme, tag
# it is some field like city, tag
# that has relation and can be created
# in function we add language(need for relation fields)
@ -339,24 +342,39 @@ class ImportEventForm(ImportForm):
value = func(obj, cell, setting['label'])
else:
value = func(cell)
try:
setattr(obj, field_name, value)
except ValueError:
continue
if field_name != 'place':
try:
setattr(obj, field_name, value)
except ValueError:
continue
else:
if value is None:
setattr(obj, 'place_alt', cell)
else:
try:
setattr(obj, field_name, value)
except Exception:
setattr(obj, 'place_alt', cell)
if not obj.url:
a = obj.name
obj.url = translit_with_separator(obj.name)
obj.is_published = True
try:
obj.save()
except IntegrityError, e:
error = str(e)
if typical_errors.get(error):
error = typical_errors[error]
if error.startswith('(1062, "Duplicate entry') and error.endswith('for key \'url\'")'):
error = u'Событие с таким названием или урлом уже существует'
errors.append([obj.name, error])
log_msg += error
logcall(log.log, log_msg + '\n')
continue
for method in methods:
@ -365,12 +383,14 @@ class ImportEventForm(ImportForm):
try:
func(obj, method['value'], method['purpose'])
except:
log_msg += '(%s: Ошибка);'%method['field']
continue
else:
func(obj, method['value'])
#-------------
msg = func(obj, method['value'])
if msg:
log_msg += '(%s: %s);'%(method['field'], msg)
logcall(log.log, log_msg + '\n')
return errors
def save_file(self):

@ -161,12 +161,16 @@ def get_audience(value):
return ', '.join(new_list)
return ''
import types
def save_logo(obj, path):
if not path:
return None
file_name = path.split('/')[-1]
logo_path = obj.logo.field.upload_to
if isinstance(logo_path, types.FunctionType):
logo_path = logo_path(obj, obj.url)
logo_path = '/'.join(logo_path.split('/')[:-1])
full_path = settings.MEDIA_ROOT + logo_path
try:

@ -1,16 +0,0 @@
2015-07-28 12:23:39,172 [DEBUG] django.db.backends: (0.001) SHOW TABLES; args=()
2015-07-28 12:23:39,175 [DEBUG] django.db.backends: (0.000) SELECT `service_service`.`id`, `service_service`.`url`, `service_service`.`currency`, `service_service`.`price`, `service_service`.`params`, `service_service`.`template`, `service_service`.`type`, `service_service`.`sort`, `service_service`.`main_page`, `service_service`.`meta_id` FROM `service_service`; args=()
2015-07-28 12:23:39,200 [DEBUG] django.db.backends: (0.002) SHOW TABLES; args=()
2015-07-28 12:23:39,201 [DEBUG] django.db.backends: (0.000) SELECT `service_service`.`id`, `service_service`.`url`, `service_service`.`currency`, `service_service`.`price`, `service_service`.`params`, `service_service`.`template`, `service_service`.`type`, `service_service`.`sort`, `service_service`.`main_page`, `service_service`.`meta_id` FROM `service_service`; args=()
2015-07-28 12:23:39,232 [DEBUG] django.db.backends: (0.001) SHOW TABLES; args=()
2015-07-28 12:23:39,233 [DEBUG] django.db.backends: (0.000) SELECT `service_service`.`id`, `service_service`.`url`, `service_service`.`currency`, `service_service`.`price`, `service_service`.`params`, `service_service`.`template`, `service_service`.`type`, `service_service`.`sort`, `service_service`.`main_page`, `service_service`.`meta_id` FROM `service_service`; args=()
2015-07-28 12:23:39,247 [DEBUG] django.db.backends: (0.001) SHOW TABLES; args=()
2015-07-28 12:23:39,248 [DEBUG] django.db.backends: (0.000) SELECT `service_service`.`id`, `service_service`.`url`, `service_service`.`currency`, `service_service`.`price`, `service_service`.`params`, `service_service`.`template`, `service_service`.`type`, `service_service`.`sort`, `service_service`.`main_page`, `service_service`.`meta_id` FROM `service_service`; args=()
2015-07-28 12:23:39,284 [DEBUG] django.db.backends: (0.001) SHOW TABLES; args=()
2015-07-28 12:23:39,285 [DEBUG] django.db.backends: (0.000) SELECT `service_service`.`id`, `service_service`.`url`, `service_service`.`currency`, `service_service`.`price`, `service_service`.`params`, `service_service`.`template`, `service_service`.`type`, `service_service`.`sort`, `service_service`.`main_page`, `service_service`.`meta_id` FROM `service_service`; args=()
2015-07-28 12:23:39,304 [DEBUG] django.db.backends: (0.001) SHOW TABLES; args=()
2015-07-28 12:23:39,305 [DEBUG] django.db.backends: (0.000) SELECT `service_service`.`id`, `service_service`.`url`, `service_service`.`currency`, `service_service`.`price`, `service_service`.`params`, `service_service`.`template`, `service_service`.`type`, `service_service`.`sort`, `service_service`.`main_page`, `service_service`.`meta_id` FROM `service_service`; args=()
2015-07-28 12:23:39,460 [DEBUG] root: Using default logger
2015-07-28 12:23:39,460 [DEBUG] root: Using default logger
2015-07-28 12:24:17,361 [DEBUG] django.db.backends: (0.001) SELECT `accounts_user`.`id`, `accounts_user`.`password`, `accounts_user`.`last_login`, `accounts_user`.`is_superuser`, `accounts_user`.`email`, `accounts_user`.`username`, `accounts_user`.`first_name`, `accounts_user`.`last_name`, `accounts_user`.`rating`, `accounts_user`.`url`, `accounts_user`.`is_active`, `accounts_user`.`is_staff`, `accounts_user`.`is_admin`, `accounts_user`.`date_joined`, `accounts_user`.`date_registered`, `accounts_user`.`date_modified`, `accounts_user`.`organiser_id`, `accounts_user`.`translator_id`, `accounts_user`.`company_id`, `accounts_user`.`position` FROM `accounts_user` WHERE `accounts_user`.`email` = 'vaniakov95@gmail.com' ; args=('vaniakov95@gmail.com',)
2015-07-28 12:24:25,526 [DEBUG] django.db.backends: (0.000) SELECT `accounts_user`.`id`, `accounts_user`.`password`, `accounts_user`.`last_login`, `accounts_user`.`is_superuser`, `accounts_user`.`email`, `accounts_user`.`username`, `accounts_user`.`first_name`, `accounts_user`.`last_name`, `accounts_user`.`rating`, `accounts_user`.`url`, `accounts_user`.`is_active`, `accounts_user`.`is_staff`, `accounts_user`.`is_admin`, `accounts_user`.`date_joined`, `accounts_user`.`date_registered`, `accounts_user`.`date_modified`, `accounts_user`.`organiser_id`, `accounts_user`.`translator_id`, `accounts_user`.`company_id`, `accounts_user`.`position` FROM `accounts_user` WHERE `accounts_user`.`email` = 'vaniakov95@gmail.com' ; args=('vaniakov95@gmail.com',)

File diff suppressed because one or more lines are too long

@ -129,7 +129,8 @@ class SeoTextManager(TranslationManager):
cache_time = 120
def cache_get(self, *args, **kwargs):
url = kwargs.get('url',None)
# ПЕРЕРОБИТИ
url = kwargs.get('url')
lang = kwargs.get('lang')[:2] or translation.get_language()[:2]
key = 'seo_text_cache'
result = cache.get(key)

@ -22,7 +22,7 @@ DATABASES = {
'NAME': 'test2',
'USER': 'kotzilla',
'PASSWORD': 'qazedc',
'HOST': '195.66.79.148',
'HOST': '195.66.79.152',
'PORT': '',
}
}
@ -401,51 +401,6 @@ LOGGING = {
},
}
}
"""
LOGGING ={
'version':1,
'disable_existing_loggers': True,
'formatters': {
'standart': {
'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s'
},
},
'handlers': {
'default': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename':'/home/www/proj/logs/mylog.log',
'maxBytes': 1024 * 1024 * 5,
'backupCount': 5,
'formatter': 'standart',
},
'request_handler':{
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/home/www/proj/logs/django_request.log',
'maxBytes': 1024 * 1024 * 5,
'backupCount': 5,
'formatter': 'standart',
},
},
'loggers': {
'':{
'handlers':['default'],
'level': 'DEBUG',
'propagate': True
},
'django_request':{
'handlers': ['request_handler'],
'level': 'DEBUG',
'propagate': False
},
}
}
"""
CRONJOBS = [
('0 */1 * * *', 'django.core.management.call_command', ['update_index conference --age=1']),

@ -13,9 +13,9 @@ urlpatterns = patterns('',
url(r'^serv-zaoch-info.php$', old_redirect, {'redirect_url': '/service/remote/'}),
url(r'^serv-visit-info.php$', old_redirect, {'redirect_url': '/service/visit/'}),
url(r'^serv-bilet-info.php$', old_redirect, {'redirect_url': '/service/tickets/'}),
url(r'^serv-translator-info.php$', old_redirect, {'redirect_url': '/service/translator/'}),
url(r'^content.php/coID/(?P<some>.*)/perevodchiki-(?P<some1>.*)/$', old_redirect, {'redirect_url': '/service/translator/'}),
url(r'^content.php/coID/(?P<some>.*)/perevodchiki-(?P<some1>.*)$', old_redirect, {'redirect_url': '/service/translator/'}),
url(r'^serv-translator-info.php$', old_redirect, {'redirect_url': '/translators/'}),
url(r'^content.php/coID/(?P<some>.*)/perevodchiki-(?P<country_or_city>.*)/$', old_redirect, {'redirect_url': '/translators/{country_or_city}/'}),
url(r'^content.php/coID/(?P<some>.*)/perevodchik-(?P<country_or_city>.*)/$', old_redirect, {'redirect_url': '/translators/{country_or_city}/'}),
url(r'^(?P<some>.*)/(?P<event>.*)/buildstand.html$', old_redirect, {'redirect_url': '{event_catalog}{event_url}/service/participation/'}),
url(r'^(?P<some>.*)/(?P<event>.*)/bilet.html$', old_redirect, {'redirect_url': '{event_catalog}{event_url}/service/tickets/'}),

@ -106,7 +106,30 @@ class News_p(object):
obj = get_object_or_404(Article, old_id=value)
return {key: obj.slug}
class Country_or_City(object):
def get_object_url(self,key, value):
try:
obj = Country.objects.get(old_url=value)
except Country.DoesNotExist:
try:
obj = Country.objects.filter(url=value)[0]
except IndexError:
obj = None
if not obj:
try:
obj = City.objects.get(old_url=value)
except City.DoesNotExist:
obj = get_object_or_404(City, url=value)
except City.MultipleObjectsReturned:
obj = City.objects.filter(old_url=value)[0]
if not obj:
raise Http404
if isinstance(obj, Country):
result = 'country/%s'%obj.url
elif isinstance(obj, City):
result = 'city/%s'%obj.url
return {key: result}
old_params = {'city': CityRedirect, 'country': CountryRedirect, 'theme': ThemeRedirect, 'tag': TagRedirect,
'event': EventRedirect, 'company': Company, 'article': ArticleRedirect, 'user': UserRedirect,

@ -1,31 +0,0 @@
{% extends 'base_catalog.html' %}
{% block content_list %}
<div class="page-title">
<h1>Запрашиваемая страница не найдена</h1>
</div>
<div class="m-article error-404">
<span class="figure">404:</span>
<p class="title">Возможно у нее изменился адрес или же она была удалена.<br> Воспользуйтесь поиском по названию, расширенной формой поиска или каталогом событий.</p>
<div class="clearfix"></div>
<hr/>
<section>
<h2>Каталог выставок</h2>
<ul class="items-list">
{% for item in expo_themes %}
<li><i class="fa fa-circle"></i><a href="/expo/theme/{{ item.url }}/">{{ item.name }}&nbsp;({{ item.expo_count }})</a></li>
{% endfor %}
</ul>
</section>
<hr/>
<section >
<h2>Каталог конференций</h2>
<ul class="items-list">
{% for item in conf_themes %}
<li><i class="fa fa-circle"></i><a href="/conference/theme/{{ item.url }}/">{{ item.name }}&nbsp;({{ item.conference_count }})</a></li>
{% endfor %}
</ul>
</section>
</div>
{% endblock %}
Loading…
Cancel
Save