parent
72592aacfd
commit
e208b32f0d
38 changed files with 741 additions and 195 deletions
@ -0,0 +1,59 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
import MySQLdb |
||||||
|
from MySQLdb.cursors import DictCursor |
||||||
|
from django.core.management.base import BaseCommand, CommandError |
||||||
|
from functions.translate import fill_with_signal |
||||||
|
from article.models import Article |
||||||
|
from accounts.models import User |
||||||
|
|
||||||
|
|
||||||
|
class Command(BaseCommand): |
||||||
|
def handle(self, *args, **options): |
||||||
|
db = MySQLdb.connect(host="localhost", |
||||||
|
user="kotzilla", |
||||||
|
passwd="qazedc", |
||||||
|
db="old_expomap", |
||||||
|
charset='utf8', |
||||||
|
cursorclass=DictCursor) |
||||||
|
cursor = db.cursor() |
||||||
|
sql = """SELECT news_id as id , |
||||||
|
headline as main_title, |
||||||
|
content as description, |
||||||
|
cid as author, |
||||||
|
date_added as created |
||||||
|
|
||||||
|
FROM `latest_news`""" |
||||||
|
|
||||||
|
cursor.execute(sql) |
||||||
|
|
||||||
|
result = cursor.fetchall() |
||||||
|
user = User.objects.get(id=1) |
||||||
|
|
||||||
|
c = 0 |
||||||
|
for a in result: |
||||||
|
if len(a['main_title'])>255 or not a['main_title']: |
||||||
|
continue |
||||||
|
article = Article(type=Article.news, |
||||||
|
id=a['id'], |
||||||
|
created=a['created']) |
||||||
|
if a['author']: |
||||||
|
try: |
||||||
|
author = User.objects.get(id=a['author']) |
||||||
|
except User.DoesNotExist: |
||||||
|
author = user |
||||||
|
else: |
||||||
|
author = user |
||||||
|
|
||||||
|
article.author = author |
||||||
|
|
||||||
|
article.translate('ru') |
||||||
|
article.main_title = a['main_title'] |
||||||
|
article.description = a['description'] |
||||||
|
article.save() |
||||||
|
print(article) |
||||||
|
|
||||||
|
|
||||||
|
#print(a['main_title']) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,74 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
import xlrd |
||||||
|
import urllib2 |
||||||
|
from django.core.management.base import BaseCommand |
||||||
|
from django.conf import settings |
||||||
|
from functions.form_check import translit_with_separator |
||||||
|
from functions.files import get_alternative_filename |
||||||
|
from exposition.models import Exposition, Statistic |
||||||
|
from organiser.models import Organiser |
||||||
|
|
||||||
|
|
||||||
|
CHINA_FILE = settings.MEDIA_ROOT+'/import/expo_china_ru.xlsx' |
||||||
|
GERMANY_FILE = settings.MEDIA_ROOT+'/import/expo_germany_ru.xlsx' |
||||||
|
# 391 row not imported(same url) |
||||||
|
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' |
||||||
|
NA_EU_ASIA_FILE2 = settings.MEDIA_ROOT+'/import/expo_na_eu_ sa_part2.xls' |
||||||
|
|
||||||
|
# 44 |
||||||
|
class Command(BaseCommand): |
||||||
|
def handle(self, *args, **options): |
||||||
|
qs = Statistic.objects.language('ru').exclude(translations__countries='') |
||||||
|
comas = 0 |
||||||
|
enters = 0 |
||||||
|
main = 0 |
||||||
|
spaces = 0 |
||||||
|
word = 0 |
||||||
|
number = 0 |
||||||
|
for i in qs: |
||||||
|
if ';' in i.countries: |
||||||
|
main +=1 |
||||||
|
a = i.countries.split(';') |
||||||
|
new = [item.strip() for item in a] |
||||||
|
|
||||||
|
st = ';'.join(new) |
||||||
|
print st.encode('utf8') |
||||||
|
i.countries = st |
||||||
|
#i.save() |
||||||
|
elif ',' in i.countries: |
||||||
|
comas += 1 |
||||||
|
|
||||||
|
|
||||||
|
elif '\n' in i.countries: |
||||||
|
enters += 1 |
||||||
|
elif ' ' in i.countries: |
||||||
|
spaces += 1 |
||||||
|
if '55' in i.countries: |
||||||
|
continue |
||||||
|
|
||||||
|
|
||||||
|
elif '.' in i.countries: |
||||||
|
number += 1 |
||||||
|
#a = i.countries.split('.') |
||||||
|
#i.countries_number = int(a[0]) |
||||||
|
#i.countries = '' |
||||||
|
#i.save() |
||||||
|
|
||||||
|
else: |
||||||
|
word += 1 |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
print('all: %d'%qs.count()) |
||||||
|
print('main: %d'%main) |
||||||
|
print('comas: %d'%comas) |
||||||
|
print('enter: %d'%enters) |
||||||
|
print('spaces: %d'%spaces) |
||||||
|
print('word: %d'%word) |
||||||
|
print('number: %d'%number) |
||||||
|
|
||||||
@ -0,0 +1,65 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
import xlrd |
||||||
|
import urllib2 |
||||||
|
from django.core.management.base import BaseCommand |
||||||
|
from django.conf import settings |
||||||
|
from functions.form_check import translit_with_separator |
||||||
|
from functions.files import get_alternative_filename |
||||||
|
from exposition.models import Exposition, Statistic |
||||||
|
from organiser.models import Organiser |
||||||
|
|
||||||
|
|
||||||
|
CHINA_FILE = settings.MEDIA_ROOT+'/import/expo_china_ru.xlsx' |
||||||
|
GERMANY_FILE = settings.MEDIA_ROOT+'/import/expo_germany_ru.xlsx' |
||||||
|
# 391 row not imported(same url) |
||||||
|
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' |
||||||
|
NA_EU_ASIA_FILE2 = settings.MEDIA_ROOT+'/import/expo_na_eu_ sa_part2.xls' |
||||||
|
|
||||||
|
|
||||||
|
class Command(BaseCommand): |
||||||
|
def handle(self, *args, **options): |
||||||
|
|
||||||
|
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:]): |
||||||
|
exp_url = translit_with_separator(row[2]) |
||||||
|
try: |
||||||
|
exp = Exposition.objects.language('ru').get(url=exp_url) |
||||||
|
except Exposition.DoesNotExist: |
||||||
|
continue |
||||||
|
if not row[30]: |
||||||
|
continue |
||||||
|
|
||||||
|
year = int(row[30]) |
||||||
|
try: |
||||||
|
countries_number = int(exp.stat_countries) |
||||||
|
countries = '' |
||||||
|
except ValueError: |
||||||
|
countries_number = None |
||||||
|
countries = exp.stat_countries |
||||||
|
|
||||||
|
members = exp.members |
||||||
|
visitors = exp.visitors |
||||||
|
area = exp.area |
||||||
|
|
||||||
|
|
||||||
|
s = Statistic(exposition=exp, |
||||||
|
year=year, |
||||||
|
countries_number=countries_number, |
||||||
|
members=members, |
||||||
|
visitors=visitors, |
||||||
|
area=area) |
||||||
|
s.translate('ru') |
||||||
|
s.countries = countries |
||||||
|
s.save() |
||||||
|
|
||||||
|
print(exp) |
||||||
@ -1,10 +1,19 @@ |
|||||||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||||||
from django.conf.urls import patterns, include, url |
from django.conf.urls import patterns, include, url |
||||||
from views import ServiceView |
from views import ServiceView, CallBackListView, VisitListView, TranslationListView, AdvertisingListView, \ |
||||||
|
ParticipationListView, RemoteListView,TicketsListView |
||||||
|
|
||||||
urlpatterns = patterns('', |
urlpatterns = patterns('', |
||||||
|
url(r'service/order/callback/$', CallBackListView.as_view()), |
||||||
|
url(r'service/order/visit/$', VisitListView.as_view()), |
||||||
|
url(r'service/order/translation/$', TranslationListView.as_view()), |
||||||
|
url(r'service/order/advertising/$', AdvertisingListView.as_view()), |
||||||
|
url(r'service/order/participation/$', ParticipationListView.as_view()), |
||||||
|
url(r'service/order/remote/$', RemoteListView.as_view()), |
||||||
|
url(r'service/order/tickets/$', TicketsListView.as_view()), |
||||||
url(r'service/advertise/$', 'service.views.advertise'), |
url(r'service/advertise/$', 'service.views.advertise'), |
||||||
url(r'service/(?P<url>.*)/$', ServiceView.as_view()), |
url(r'service/(?P<url>.*)/$', ServiceView.as_view()), |
||||||
|
|
||||||
|
|
||||||
) |
) |
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,58 @@ |
|||||||
|
<div class="modal hide fade bs-example-modal-lg" id="stat_modal" > |
||||||
|
<div class="modal-header"> |
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true" id="close_stat">×</button> |
||||||
|
<h3>Добавить год</h3> |
||||||
|
</div> |
||||||
|
<form method="post" class="form-horizontal" id="stat_form" enctype="multipart/form-data" action="#"> {% csrf_token %} |
||||||
|
|
||||||
|
<div class="modal-body"> |
||||||
|
|
||||||
|
<div class="control-group{% if form.year.errors %}error{% endif %}"> |
||||||
|
<label class="control-label">{{ form.year.label }}:</label> |
||||||
|
<div class="controls">{{ form.year }} |
||||||
|
<span class="help-inline">{{ form.year.errors }}</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<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> |
||||||
|
|
||||||
|
<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> |
||||||
|
|
||||||
|
<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> |
||||||
|
|
||||||
|
<div class="control-group{% if form.countries_number.errors %}error{% endif %}"> |
||||||
|
<label class="control-label">{{ form.countries_number.label }}:</label> |
||||||
|
<div class="controls">{{ form.countries_number }} |
||||||
|
<span class="help-inline">{{ form.countries_number.errors }}</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
{% include 'admin/forms/multilang.html' with field='countries' form=form languages=languages %} |
||||||
|
|
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="modal-footer"> |
||||||
|
<div class="controls"> |
||||||
|
<input class="btn btn-primary" type="submit" value="Добавить"> |
||||||
|
<input type="reset" class="btn" value="Отменить" data-dismiss="modal"> |
||||||
|
|
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
|
||||||
|
|
||||||
|
</div> |
||||||
@ -0,0 +1,37 @@ |
|||||||
|
{% extends 'base.html' %} |
||||||
|
|
||||||
|
{% block body %} |
||||||
|
|
||||||
|
<div class="box span8"> |
||||||
|
<div class="box-header well"> |
||||||
|
<h2><i class="icon-arrow-down"></i>Список заказов</h2> |
||||||
|
</div> |
||||||
|
<div class="box-content"> |
||||||
|
<table class="table table-hover"> |
||||||
|
<thead> |
||||||
|
<tr> |
||||||
|
<th>id</th> |
||||||
|
<th>Контактное лицо</th> |
||||||
|
<th>Телефон</th> |
||||||
|
<th>Время создания</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{% for item in object_list %} |
||||||
|
<tr> |
||||||
|
<td>{{ item.id }}</td> |
||||||
|
<td>{{ item.person_inf }}</td> |
||||||
|
<td>{{ item.phone }}</td> |
||||||
|
<td>{{ item.created }}</td> |
||||||
|
</tr> |
||||||
|
{% endfor %} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
|
||||||
|
{% include 'admin/includes/admin_pagination.html' with page_obj=page_obj %} |
||||||
|
</div> |
||||||
|
{# pagination #} |
||||||
|
|
||||||
|
|
||||||
|
{% endblock %} |
||||||
Loading…
Reference in new issue