parent
26ce593e5b
commit
d55a811dc9
25 changed files with 438 additions and 80 deletions
@ -0,0 +1,62 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
import xlrd |
||||||
|
from django.core.management.base import BaseCommand |
||||||
|
from django.conf import settings |
||||||
|
from article.models import Article |
||||||
|
from import_xls.excel_settings import article_sett |
||||||
|
from django.db import IntegrityError |
||||||
|
|
||||||
|
|
||||||
|
NEWS_FILE = settings.MEDIA_ROOT+'/import/news.xls' |
||||||
|
|
||||||
|
|
||||||
|
class Command(BaseCommand): |
||||||
|
def handle(self, *args, **options): |
||||||
|
|
||||||
|
f = open(NEWS_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]] |
||||||
|
existing = 0 |
||||||
|
for row_number, row in enumerate(row_list[2:]): |
||||||
|
|
||||||
|
published = row[4] |
||||||
|
if row[0] != '': |
||||||
|
# in first column ids |
||||||
|
try: |
||||||
|
object = Article.objects.language('ru').get(id=int(row[0])) |
||||||
|
object.type = Article.news |
||||||
|
object.save() |
||||||
|
print(object.type) |
||||||
|
continue |
||||||
|
except ValueError: |
||||||
|
|
||||||
|
object = Article(type=Article.news) |
||||||
|
object.translate('ru') |
||||||
|
except Article.DoesNotExist: |
||||||
|
object = Article(id= int(row[0])) |
||||||
|
object.translate('ru') |
||||||
|
existing += 1 |
||||||
|
else: |
||||||
|
# if id blank - its a new place |
||||||
|
object = Article(type=Article.news) |
||||||
|
object.translate('ru') |
||||||
|
|
||||||
|
for col_number, cell in enumerate(row): |
||||||
|
|
||||||
|
label = labels[col_number] |
||||||
|
setting = article_sett.get(label) |
||||||
|
if setting is None: |
||||||
|
continue |
||||||
|
|
||||||
|
field_name = setting['field'] |
||||||
|
func = setting.get('func') |
||||||
|
value = func(cell) |
||||||
|
setattr(object, field_name, value) |
||||||
|
object.publish_date = published |
||||||
|
try: |
||||||
|
object.save() |
||||||
|
except Exception, e: |
||||||
|
print(e) |
||||||
|
|
||||||
@ -0,0 +1,69 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
import MySQLdb |
||||||
|
import datetime |
||||||
|
from django.utils.translation import activate |
||||||
|
from MySQLdb.cursors import DictCursor |
||||||
|
from django.core.management.base import BaseCommand, CommandError |
||||||
|
from django.conf import settings |
||||||
|
import xlrd |
||||||
|
from import_xls.utils import to_theme, to_tag |
||||||
|
from functions.translate import fill_with_signal |
||||||
|
from article.models import Article |
||||||
|
from accounts.models import User |
||||||
|
from django.db import IntegrityError |
||||||
|
from exposition.models import Exposition |
||||||
|
|
||||||
|
NEWS_FILE = settings.MEDIA_ROOT+'/import/exported_news.xls' |
||||||
|
BLOGS_FILE = settings.MEDIA_ROOT+'/import/blogs.xls' |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class Command(BaseCommand): |
||||||
|
def handle(self, *args, **options): |
||||||
|
activate('ru') |
||||||
|
f = open(BLOGS_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)] |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
print(len(row_list)) |
||||||
|
|
||||||
|
|
||||||
|
existing = 0 |
||||||
|
|
||||||
|
|
||||||
|
for row_number, row in enumerate(row_list[2:]): |
||||||
|
|
||||||
|
id = int(row[0]) |
||||||
|
if id == 49: |
||||||
|
continue |
||||||
|
|
||||||
|
main_title = row[1] |
||||||
|
theme = row[2] |
||||||
|
tag = row[3] |
||||||
|
description = row[4] |
||||||
|
article = Article.objects.language('ru').get(id=id) |
||||||
|
#article.main_title = main_title |
||||||
|
#article.description = description |
||||||
|
#article.save() |
||||||
|
|
||||||
|
|
||||||
|
to_theme(article, theme) |
||||||
|
to_tag(article, tag) |
||||||
|
print(id) |
||||||
|
""" |
||||||
|
try: |
||||||
|
expo = Exposition.objects.filter(translations__name=event)[0] |
||||||
|
except IndexError: |
||||||
|
expo = None |
||||||
|
|
||||||
|
if expo: |
||||||
|
article.exposition = expo |
||||||
|
article.save() |
||||||
|
print(id) |
||||||
|
""" |
||||||
|
|
||||||
|
|
||||||
@ -1,4 +1,6 @@ |
|||||||
<i class="icon"></i> |
|
||||||
{% for tag in obj.tag.all %} |
{% with tags=obj.tag.all %} |
||||||
<a href="?tag={{ tag.id }}" title="">{{ tag.name }}</a>, |
{% for tag in obj.tag.all %} |
||||||
{% endfor %} |
<a href="{{ obj.get_catalog }}?tag={{ tag.id }}" title="">{{ tag.name }}</a>{% if forloop.counter != tags|length %},{% endif %} |
||||||
|
{% endfor %} |
||||||
|
{% endwith %} |
||||||
@ -1,42 +1,45 @@ |
|||||||
{% load static %} |
|
||||||
{% load i18n %} |
{% load i18n %} |
||||||
|
{% load template_filters %} |
||||||
|
|
||||||
<div class="s-news-list"> |
{% if False|random_social %} |
||||||
<header> |
<header> |
||||||
<a href="#">{% trans 'Новости событий' %}</a> |
<a href="/news/">{% trans 'Новости событий' %}</a> |
||||||
</header> |
</header> |
||||||
|
|
||||||
<ul> |
<ul> |
||||||
<!-- |
{% for item in news_list %} |
||||||
<li> |
<li> |
||||||
<a href="#"> |
<a href="{{ item.get_permanent_url }}"> |
||||||
<span class="nl-pict"></span> |
<span class="nl-pict"> |
||||||
<span class="nl-body"> |
{% include 'client/includes/article/news_on_main_logo.html' with obj=item %} |
||||||
<span class="nl-text">ОАО «НПК «РЕКОД» на Международной конференции «Земля из космоса — наиболее эффективные решения»</span> |
</span> |
||||||
<span class="nl-date">20 августа</span> |
<span class="nl-body"> |
||||||
</span> |
<span class="nl-text">{{ item.main_title }}</span> |
||||||
</a> |
<span class="nl-date">{{ item.created|date:"d E Y" }}</span> |
||||||
</li> |
</span> |
||||||
<li> |
</a> |
||||||
<a href="#"> |
</li> |
||||||
<span class="nl-pict"><img src="img/_del-temp/expo-bn-2-s.jpg" alt="" /></span> |
{% endfor %} |
||||||
<span class="nl-body"> |
|
||||||
<span class="nl-text">«Лоскутная радуга» на выставке «АРТ-Красноярск-2013»</span> |
|
||||||
<span class="nl-date">20 августа</span> |
|
||||||
</span> |
|
||||||
</a> |
|
||||||
</li> |
|
||||||
<li> |
|
||||||
<a href="#"> |
|
||||||
<span class="nl-pict"><img src="img/_del-temp/expo-bn-2-s.jpg" alt="" /></span> |
|
||||||
<span class="nl-body"> |
|
||||||
<span class="nl-text">На выставке «Арт-Красноярск» организуют настоящий праздник искусства</span> |
|
||||||
<span class="nl-date">20 августа</span> |
|
||||||
</span> |
|
||||||
|
|
||||||
</a> |
|
||||||
</li> |
|
||||||
--> |
|
||||||
</ul> |
</ul> |
||||||
<footer><a class="more" href="/news/">{% trans 'Все новости' %}</a></footer> |
<footer><a class="more" href="/news/">{% trans 'Все новости' %}</a></footer> |
||||||
</div> |
{% else %} |
||||||
|
<header> |
||||||
|
<a href="/blogs/">{% trans 'Статьи' %}</a> |
||||||
|
</header> |
||||||
|
<ul> |
||||||
|
{% for item in blogs %} |
||||||
|
<li> |
||||||
|
<a href="{{ item.get_permanent_url }}"> |
||||||
|
<span class="nl-pict"> |
||||||
|
{% include 'client/includes/article/news_on_main_logo.html' with obj=item %} |
||||||
|
</span> |
||||||
|
<span class="nl-body"> |
||||||
|
<span class="nl-text">{{ item.main_title }}</span> |
||||||
|
<span class="nl-date">{{ item.created|date:"d E Y" }}</span> |
||||||
|
</span> |
||||||
|
</a> |
||||||
|
</li> |
||||||
|
{% endfor %} |
||||||
|
</ul> |
||||||
|
<footer><a class="more" href="/blogs/">{% trans 'Все статьи' %}</a></footer> |
||||||
|
|
||||||
|
{% endif %} |
||||||
Loading…
Reference in new issue