remotes/origin/1203
Назар Котюк 11 years ago
commit 42e094022a
  1. 1
      article/admin.py
  2. 7
      article/forms.py
  3. 2
      article/models.py
  4. 6
      exposition/models.py
  5. 4
      service/order_forms.py
  6. 12
      service/views.py
  7. 23
      templates/admin/article/blog_form.html
  8. 5
      templates/client/article/article.html
  9. 5
      templates/client/article/news.html
  10. 2
      templates/client/base_catalog.html
  11. 2
      templates/client/includes/exposition/exposition_object.html
  12. 2
      templates/client/service/translator.html
  13. 48
      theme/management/commands/tag_translate.py

@ -157,6 +157,7 @@ class BlogView(FormView):
data = {}
data['theme'] = [item.id for item in article.theme.all()]
data['exposition'] = article.exposition
data['publish_date'] = article.publish_date
data['conference'] = article.conference
a = ','.join(['%s:%s'%(item.id, item.name) for item in article.tag.all()])

@ -21,6 +21,7 @@ class BlogForm(forms.Form):
type = Article.blog
theme = forms.ModelMultipleChoiceField(label='Тематики', queryset=Theme.objects.all(), required=False,
widget=forms.SelectMultiple(attrs={'style':'width: 550px'}))
publish_date = forms.DateField(label=u'Дата публикации', input_formats=['%Y-%m-%d', '%d.%m.%Y'], required=False)
tag = forms.CharField(label=u'Теги', widget=forms.HiddenInput(), required=False)
logo = forms.ImageField(label=u'Лого', required=False)
def __init__(self, *args, **kwargs):
@ -51,10 +52,12 @@ class BlogForm(forms.Form):
#create new Article object or get exists
if not article:
article = Article()
article.author = author
article.author = author
article.type = self.type
article.logo = data['logo']
if data['logo']:
article.logo = data['logo']
article.publish_date = data['publish_date']
# fill translated fields and save object
fill_with_signal(Article, article, data)
# fill manytomany fields

@ -106,7 +106,7 @@ class Article(TranslatableModel):
"set a custom description."), default=False)
# published = models.
created = models.DateTimeField()
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
#translated fields

@ -365,9 +365,9 @@ def logo_name(instance, filename):
class Paid(models.Model):
expo = models.OneToOneField(Exposition)
org_logo = models.ImageField(upload_to=logo_name, blank=True, max_length=255)
oficial_link = models.ForeignKey('banners.Redirect', null=True, blank=True)
participation_link = models.ForeignKey('banners.Redirect', null=True, blank=True)
tickets_link = models.ForeignKey('banners.Redirect', null=True, blank=True)
oficial_link = models.ForeignKey('banners.Redirect', null=True, blank=True, related_name='expo_oficial')
participation_link = models.ForeignKey('banners.Redirect', null=True, blank=True, related_name='expo_participation')
tickets_link = models.ForeignKey('banners.Redirect', null=True, blank=True, related_name='expo_tickets')
pre_save.connect(pre_save_handler, sender=Exposition)

@ -131,8 +131,8 @@ LANGS = [(_(u'Русский'), _(u'Русский'))]
from theme.models import Theme
class TranslationForm(AbstractOrderForm):
languages = forms.CharField(required=False)
themes = forms.CharField(required=False)
languages = forms.CharField(required=False, widget=forms.TextInput(attrs={'placeholder': _(u'Знание языков')}))
themes = forms.CharField(required=False, widget=forms.TextInput(attrs={'placeholder': _(u'Тематика')}))
fr = forms.DateField(input_formats=settings.CLIENT_DATE_FORMAT,
widget=forms.DateInput(attrs={'class': 'date dateFrom', 'placeholder': _(u'дд.мм.гггг')}))
to = forms.DateField(input_formats=settings.CLIENT_DATE_FORMAT,

@ -8,6 +8,7 @@ from django.shortcuts import get_object_or_404
from django.http import Http404
import json
from django.http import HttpResponseRedirect, HttpResponse
from meta.views import MetadataMixin
#from functions.search_forms import CompanySearchForm
from order_forms import TranslationForm, CatalogForm, VisitForm, RemoteForm, ParticipationForm, TicketsForm,\
@ -17,7 +18,10 @@ from order_forms import TranslationForm, CatalogForm, VisitForm, RemoteForm, Par
order_forms = {'translator': TranslationForm, 'catalog': CatalogForm, 'participation': ParticipationForm,
'remote': RemoteForm, 'tickets': TicketsForm, 'visit': VisitForm, 'buildstand': BuildStandForm}
class ServiceView(FormView):
meta = {'translator': 80, 'participation': 85,
'remote': 84, 'tickets': 81, 'visit': 82}
class ServiceView(MetadataMixin, FormView):
success_url = '/service/thanks/'
def dispatch(self, request, *args, **kwargs):
@ -45,6 +49,12 @@ class ServiceView(FormView):
#messages.success(self.request, _(u'Ваш запрос был успешно отправлен'))
return HttpResponseRedirect(self.success_url)
def get_context_data(self, **kwargs):
url = self.kwargs.get('url')
meta_id = meta.get(url)
kwargs.update({'meta_id': meta_id})
return super(ServiceView, self).get_context_data(**kwargs)
def advertise(request):

@ -13,6 +13,21 @@
<script src="{% static 'custom_js/file_post_ajax.js' %}"></script>
<script src="{% static 'custom_js/select_tag.js' %}"></script>
<link href="{% static 'js/datetimepicker/css/datetimepicker.css' %}" rel="stylesheet"/>
<script src="{% static 'js/datetimepicker/js/bootstrap-datetimepicker.js' %}"></script>
<script>
$(document).ready(function(){
$('#id_publish_date').datetimepicker({
todayHighlight: true,
format : 'yyyy-mm-dd',
minView:2
});
});
</script>
{% endblock %}
{% block body %}
@ -29,6 +44,14 @@
{# main_title #}
{% include 'admin/forms/multilang.html' with field='main_title' form=form languages=languages %}
<div class="control-group {% if form.publish_date.errors %}error{% endif %}">
<label class="control-label"><b>{{ form.publish_date.label }}:</b></label>
<div class="controls">
{{ form.publish_date }}
<span class="help-inline">{{ form.publish_date.errors }}</span>
</div>
</div>
{# theme #}
<div class="control-group {% if form.theme.errors %}error{% endif %}">
<label class="control-label"><b>{{ form.theme.label }}:</b></label>

@ -19,7 +19,10 @@
{% include 'client/includes/article/article_logo.html' with obj=object %}
<h1>{{ object.main_title }}</h1>
<strong><span>{{ object.created|date:"d E Y" }}</span><a class="profile_link" href="{{ object.author.get_permanent_url }}" title="">{{ object.author.get_full_name }}</a></strong>
<strong><span>{{ object.publish_date|date:"d E Y" }}</span><a class="profile_link" href="{{ object.author.get_permanent_url }}" title="">{{ object.author.get_full_name }}</a></strong>
{% if request.user.is_admin %}
<a target="_blank" class="button green " href="/admin/article/blog/{{ object.slug }}/">{% trans 'изменить' %}</a>
{% endif %}
<p style="text-align: justify" align="justify">&nbsp;</p><hr>
<div class="content-text">
{{ object.description|safe }}

@ -20,7 +20,10 @@
{% include 'includes/article/article_logo.html' with obj=object %}
<h1>{{ object.main_title }}</h1>
<strong><span>{{ object.created|date:"d E Y" }}</span>{% if object.get_event %}<a class="flag" href="{{ object.get_event.get_permanent_url }}" title="">{{ object.get_event.name }}</a>{% endif %}</strong>
<strong><span>{{ object.published|date:"d E Y" }}</span>{% if object.get_event %}<a class="flag" href="{{ object.get_event.get_permanent_url }}" title="">{{ object.get_event.name }}</a>{% endif %}</strong>
{% if request.user.is_admin %}
<a target="_blank" class="button green " href="/admin/article/news/{{ object.slug }}/">{% trans 'изменить' %}</a>
{% endif %}
</div>
<div class="content-text">
{{ object.description|safe }}

@ -69,7 +69,7 @@
{% endwith %}
{% block under_search_baner %}
<div class="abn">
<a href="/redirect/redirect/10/"><img src="{% static 'client/img/partners/wire_760x70.gif' %}" alt="" /></a>
<a target="_blank" href="/redirect/redirect/10/"><img src="{% static 'client/img/partners/wire_760x70.gif' %}" alt="" /></a>
</div>
{% endblock %}

@ -78,7 +78,7 @@
{% endwith %}
</div>
{% if request.user.is_admin %}
<a class="button green " href="/admin/exposition/{{ object.url }}/">{% trans 'изменить' %}</a>
<a target="_blank" class="button green " href="/admin/exposition/{{ object.url }}/">{% trans 'изменить' %}</a>
{% endif %}
</div>
<div class="ib-add"><a class="button blue2 icon-find" href="http://www.booking.com/searchresults.html?aid={{ book_aid }}&city={{ object.city.id }}">{% trans 'Найти отель' %}</a></div>

@ -62,11 +62,13 @@
<div class="mf-line cols-2 rq-trans">
<div class="mf-field">
{{ form.languages }}
<input id="id_languages" name="languages" placeholder="{% trans 'Знание языков' %}" type="text" value="{{ form.languages.value }}">
</div>
<div class="mf-field">
{{ form.themes }}
<input id="id_themes" name="themes" placeholder="{% trans 'Тематика' %}" type="text" value="{{ form.themes.value }}">
</div>

@ -4,55 +4,23 @@ import xlrd, xlwt
from django.conf import settings
from import_xls.excel_settings import import_settings
INFLECT_FILE = settings.MEDIA_ROOT+'/import/themes_inflect.xls'
class Command(BaseCommand):
def handle(self, *args, **options):
f = open(settings.MEDIA_ROOT+'/import/tags2.xls', 'r')
f = open(INFLECT_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)]
# all field names in excel file (must be in second row)
field_names = [name for name in row_list[1]]
for row_number, row in enumerate(row_list):
# go through all rows in file
if row_number > 1:
# first two fields are verbose name and name
if row[0] != '':
# in first column ids
try:
object = Tag.objects.language('en').get(id=int(row[0]))
except:
continue
for col_number, cell in enumerate(row):
# go through row cells
# field name current cell
field_name = field_names[col_number]
setting = import_settings.get(field_name)
if setting is not None:
# if setting exist for this field
func = setting.get('func')
if func is not None:
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
# that has relation and can be created
# in function we add language(need for relation fields)
# and extra value from object (like for city need country)
value = func(cell, 'en', getattr(object, extra_value))
else:
value = func(cell)
if field_name != 'theme':
setattr(object, field_name, value)
else:
setattr(object, field_name, value[0])
print('pre save %s'%str(object))
try:
object.save()
except:
pass
print('post save %s'%str(object))
for row_number, row in enumerate(row_list[2:]):
id = int(row[0])
a = row[3]
print a.encode('utf8')
Theme.objects.filter(id=id).update(inflect=a)
Loading…
Cancel
Save