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 %} |
||||
<a href="?tag={{ tag.id }}" title="">{{ tag.name }}</a>, |
||||
{% endfor %} |
||||
|
||||
{% with tags=obj.tag.all %} |
||||
{% for tag in obj.tag.all %} |
||||
<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 template_filters %} |
||||
|
||||
<div class="s-news-list"> |
||||
{% if False|random_social %} |
||||
<header> |
||||
<a href="#">{% trans 'Новости событий' %}</a> |
||||
<a href="/news/">{% trans 'Новости событий' %}</a> |
||||
</header> |
||||
|
||||
<ul> |
||||
<!-- |
||||
<li> |
||||
<a href="#"> |
||||
<span class="nl-pict"></span> |
||||
<span class="nl-body"> |
||||
<span class="nl-text">ОАО «НПК «РЕКОД» на Международной конференции «Земля из космоса — наиболее эффективные решения»</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">«Лоскутная радуга» на выставке «АРТ-Красноярск-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> |
||||
--> |
||||
{% for item in news_list %} |
||||
<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="/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