minor bug fix

remotes/origin/1203
Ivan Kovalkovskyi 11 years ago
parent d51968c268
commit 3b2fd70e5b
  1. 2
      exposition/models.py
  2. 12
      meta/admin.py
  3. 11
      meta/admin_urls.py
  4. 10
      meta/forms.py
  5. 7
      meta/models.py
  6. 10
      meta/views.py
  7. 2
      proj/views.py
  8. 2
      templates/client/includes/seo_text.html
  9. 8
      wizard/models.py
  10. 2
      wizard/urls.py
  11. 69
      wizard/views.py

@ -59,6 +59,8 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin):
data_end = models.DateField(verbose_name='Дата окончания')
services = BitField(flags=flags)
# relations
creator = models.ForeignKey('accounts.User', verbose_name=u'Создатель', on_delete=models.SET_NULL,
related_name='exposition_creator', blank=True, null=True)
country = models.ForeignKey('country.Country', verbose_name='Страна', on_delete=models.PROTECT,
related_name='exposition_country')
city = models.ForeignKey('city.City', verbose_name='Город', on_delete=models.PROTECT,

@ -1,13 +1,7 @@
# -*- coding: utf-8 -*-
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect, HttpResponse
from django.core.context_processors import csrf
from django.http import HttpResponseRedirect
from django.conf import settings
from django.forms.formsets import BaseFormSet, formset_factory
from django.forms.models import modelformset_factory
from django.contrib.contenttypes.models import ContentType
from django.contrib.auth.decorators import login_required
#models and forms
# models and forms
from models import MetaSetting
from forms import MetaForm, MetaFilterForm
from functions.admin_views import AdminListView, AdminView
@ -45,7 +39,7 @@ class MetaView(AdminView):
data['keywords_%s' % code] = trans_obj.keywords
data['h1_%s' % code] = trans_obj.h1
form =form_class(initial=data)
form = form_class(initial=data)
return form
else:
return form_class()

@ -1,16 +1,15 @@
# -*- coding: utf-8 -*-
from django.conf.urls import patterns, include, url
from admin import MetaListView, MetaView
from .views import CreateSeoText, SeoTextList, EditSeoText, DeleteSeoText
from django.conf.urls import patterns, url
from views import CreateSeoText, SeoTextList, EditSeoText, DeleteSeoText
from .admin import MetaListView, MetaView
urlpatterns = patterns('conference.admin',
urlpatterns = patterns('',
url(r'^seo/new/$', CreateSeoText.as_view(), name='seo_new'),
url(r'^seo/all/$', SeoTextList.as_view(), name='seo_all'),
url(r'^seo/edit/(?P<pk>\d{1,5})/$', EditSeoText.as_view(), name='seo_edit'),
url(r'^seo/delete/(?P<pk>\d{1,5})/$', DeleteSeoText.as_view(), name='seo_delete'),
url(r'^all/$', MetaListView.as_view()),
#url(r'^change/(?P<url>.*)/$', 'conference_change'),
url(r'^(?P<id>.*)/$', MetaView.as_view()),
url(r'^(?P<id>\d{1,6})/$', MetaView.as_view()),
url(r'^$', MetaView.as_view()),
)

@ -1,9 +1,11 @@
# -*- coding: utf-8 -*-
from django import forms
from django.conf import settings
from models import MetaSetting
from models import MetaSetting, SeoText
from functions.translate import fill_with_signal
from functions.admin_forms import AdminFilterForm
from ckeditor.widgets import CKEditorWidget
from hvad.forms import TranslatableModelForm
class MetaForm(forms.Form):
@ -14,7 +16,7 @@ class MetaForm(forms.Form):
create dynamical translated fields fields
"""
super(MetaForm, self).__init__(*args, **kwargs)
#creates translated forms example: name_ru, name_en
# creates translated forms example: name_ru, name_en
# len(10) is a hack for detect if settings.LANGUAGES is not configured it return all langs
if len(settings.LANGUAGES) in range(10):
for lid, (code, name) in enumerate(settings.LANGUAGES):
@ -48,10 +50,6 @@ class MetaFilterForm(AdminFilterForm):
model = MetaSetting
from .models import SeoText
from ckeditor.widgets import CKEditorWidget
from hvad.forms import TranslatableModelForm
class SeoTextForm(TranslatableModelForm):
class Meta:

@ -135,13 +135,12 @@ class SeoTextManager(TranslationManager):
key = 'seo_text_cache'
result = cache.get(key)
if result:
return result.get(lang+'_' + url)
return result.get("%s_%s" % (lang, url))
qs = SeoText.objects.language('all')
value_dict = {obj.language_code+'_'+obj.url:obj for obj in qs}
value_dict = {obj.language_code+'_'+obj.url: obj for obj in qs}
cache.set(key, value_dict, self.cache_time)
return value_dict.get(lang+'_'+url)
return value_dict.get("%s_%s" % (lang, url))
class SeoText(TranslatableModel):

@ -1,9 +1,9 @@
from __future__ import unicode_literals
from . import settings
from django.views.generic import CreateView, UpdateView, DeleteView, ListView
from django.core.exceptions import ImproperlyConfigured
from models import MetaSetting
from . import settings
from .forms import SeoTextForm, SeoText
class Meta(object):
@ -189,10 +189,6 @@ class MetadataMixin(object):
return context
from django.views.generic import CreateView, UpdateView, DeleteView, ListView
from .models import SeoText
from .forms import SeoTextForm
class CreateSeoText(CreateView):
form_class = SeoTextForm

@ -26,6 +26,7 @@ def clear_slashes(str_):
str_ = str_[:-1]
return str_
def add_seo(request):
url = request.path
lang = get_language()
@ -38,6 +39,7 @@ def add_seo(request):
seo_text = None
return seo_text
def expo_context(request):
banners_themes = [24, 34, 4]
banner_tags = [141, 142, 143, 156, 206, 231, 232, 390, 391, 400, 457, 500, 536, 537, 539, 457, 500, 686, 715, 765,

@ -1,3 +1,3 @@
<div class="so-text">
<div class="seo-text">
<h2>{{ object.title }}</h2>{{ object.body|safe }}
</div>

@ -1,8 +0,0 @@
from django.db import models
from django.conf import settings
import os
# Create your models here.
class Attachment(models.Model):
file = models.FileField(upload_to=os.path.join(settings.MEDIA_ROOT,'attachments_files'))

@ -3,6 +3,6 @@ from django.conf.urls import patterns, url, include
from wizard.views import wizard_view
urlpatterns = patterns('',
url(r'^ajax/$', 'wizard.views.ajax_view'),
# url(r'^ajax/$', 'wizard.views.ajax_view'),
url(r'^$', wizard_view)
)

@ -4,10 +4,10 @@ from django.http import HttpResponseRedirect
from django.conf import settings
import os
from photologue.models import Photo, Gallery
from photologue.models import Photo
from exposition.models import Exposition, Statistic
from wizard.models import Attachment
from functions.form_check import translit_with_separator
from accounts.models import User
# defining different template for every form
@ -16,20 +16,26 @@ TEMPLATES = {
'1': 'client/wizard/second_step.html',
'2': 'client/wizard/third_step.html'
}
post = None
files = None
# main view that handle all data from 3 forms(steps) and finally create an Exposition
class ExpoWizard(SessionWizardView):
"main view that handle all data from 3 forms(steps) and finally create an Exposition"
# storing temporary files during upload
location = os.path.join(settings.MEDIA_ROOT, 'temp')
file_storage = FileSystemStorage(location, settings.MEDIA_URL)
SUCCES_URL = "/"
def get_template_names(self):
return [TEMPLATES[self.steps.current]]
def done(self, form_list, **kwargs):
# getting data and files
upload_logo = form_list[0].cleaned_data.get('logo')
upload_images = self.request.FILES.getlist(u'2-attachments')
data = self.get_all_cleaned_data()
# creating new exposition
expo = Exposition.objects.language(self.request.LANGUAGE_CODE).create(
name=data.get('name'),
data_begin=data.get('date_start'),
@ -59,9 +65,10 @@ class ExpoWizard(SessionWizardView):
min_closed_equipped_area=data.get('equiped'),
url=translit_with_separator(data.get('name')),
quality_label=0,
audience=0
audience=0,
creator = User.objects.get(id=self.request.user.id)
)
# adding photo to gallery
photos = []
for i, photo in enumerate(upload_images):
photos.append(Photo.objects.language(self.request.LANGUAGE_CODE).create(
@ -71,25 +78,16 @@ class ExpoWizard(SessionWizardView):
for photo in photos:
expo.upload_photo(photo)
# many to many relations saving
expo.tag = [data.get('tag')]
expo.theme = [data.get('theme')]
if data['membership1']:
expo.quality_label = (expo.quality_label | Exposition.quality_label.exporating)
if data['membership2']:
expo.quality_label = (expo.quality_label | Exposition.quality_label.rsva)
if data['membership3']:
expo.quality_label = (expo.quality_label | Exposition.quality_label.ufi)
if data['audience1']:
expo.audience = (expo.audience | Exposition.audience.experts)
if data['audience2']:
expo.audience = expo.audience | getattr(Exposition.audience, 'experts and consumers')
if data['audience3']:
expo.audience = expo.audience | (getattr(Exposition.audience, 'general public'))
# setting bit fields audience and quality_label
self.set_flags(expo, data)
expo.save()
Statistic.objects.language().create(
# ?
Statistic.objects.language(self.request.LANGUAGE_CODE).create(
exposition=expo,
year=data.get('statistic_year'),
visitors=data.get('visitors'),
@ -98,26 +96,31 @@ class ExpoWizard(SessionWizardView):
area=data.get('square')
)
# remove temporary files if it has any
if upload_logo:
self.file_storage.delete(upload_logo.name)
if upload_images:
for f in upload_images:
self.file_storage.delete(f.name)
return HttpResponseRedirect('/')
def get_template_names(self):
return [TEMPLATES[self.steps.current]]
return HttpResponseRedirect(self.SUCCES_URL)
def set_flags(self, expo, data):
if data['membership1']:
expo.quality_label = (expo.quality_label | Exposition.quality_label.exporating)
if data['membership2']:
expo.quality_label = (expo.quality_label | Exposition.quality_label.rsva)
if data['membership3']:
expo.quality_label = (expo.quality_label | Exposition.quality_label.ufi)
if data['audience1']:
expo.audience = (expo.audience | Exposition.audience.experts)
if data['audience2']:
expo.audience = expo.audience | getattr(Exposition.audience, 'experts and consumers')
if data['audience3']:
expo.audience = expo.audience | (getattr(Exposition.audience, 'general public'))
from wizard.forms import formlist
wizard_view = ExpoWizard.as_view(formlist)
from django.contrib.formtools.wizard.storage.session import SessionStorage
from django.http import HttpResponse
import json
def ajax_view(request):
form = formlist[2](post, files, prefix='2')
return HttpResponse(json.dumps({'posts':post,'files':files}), content_type='application/json')

Loading…
Cancel
Save