remotes/origin/1203
Nazar Kotjuk 10 years ago
parent 4bf1894e80
commit b69c5d9ca9
  1. 3
      .gitignore
  2. 4
      accounts/admin_urls.py
  3. 28
      accounts/forms.py
  4. 2
      import_xls/excel_settings.py
  5. BIN
      locale/en/LC_MESSAGES/django.po
  6. 0
      logs/django_request.log
  7. 16
      logs/mylog.log
  8. 7056
      logs/mylog.log.1
  9. 2
      proj/admin_urls.py
  10. 1
      proj/settings.py
  11. 5
      proj/urls.py
  12. 2
      proj/views.py
  13. 23
      specialist_catalog/management/commands/create_city_page.py
  14. 24
      specialist_catalog/management/commands/create_country_page.py
  15. 15
      specialist_catalog/models.py
  16. 5
      specialist_catalog/urls.py
  17. 49
      specialist_catalog/views.py
  18. 10
      templates/admin/includes/admin_nav.html
  19. 24
      templates/admin/specialist/catalog_all.html
  20. 106
      templates/admin/specialist/catalog_new.html
  21. 2
      templates/client/accounts/calendar.html
  22. 6
      templates/client/includes/header.html
  23. 6
      templates/client/robots.txt
  24. 32
      templates/client/specialist_catalog/catalog.html
  25. 25
      templates/client/specialist_catalog/catalog_detailed.html
  26. 2
      wizard/description.txt

3
.gitignore vendored

@ -7,6 +7,7 @@
.idea/
media/
media
logs/
Thumbs.db
npm-debug.log
/proj/local.py
@ -14,4 +15,4 @@ npm-debug.log
node_modules
node_modules

@ -3,10 +3,6 @@ from django.conf.urls import patterns, url
from admin import UserListView, EditUser
urlpatterns = patterns('',
#url(r'^registration/$', 'accounts.admin.registration'),
#url(r'^create_admin/$', 'accounts.admin.create_admin'),
#url(r'^create_md5user/$', 'accounts.admin.create_md5'),
# url(r'^change/(?P<pk>.*)/$', EditUser.as_view()),
url(r'^change/(?P<url>.*)/$', 'accounts.admin.user_change'),
url(r'^all/$', UserListView.as_view()),
url(r'^reset_password_email/$', 'accounts.admin.reset_password_email'),

@ -83,9 +83,7 @@ class UserForm(forms.ModelForm):
company = forms.ChoiceField(label='Компания',
choices=[(item.id, item.name) for item in Company.objects.language().all()],
required=False)
organiser = forms.ChoiceField(label='Организатор',
choices=[(item.id, item.name) for item in Organiser.objects.language().all()],
required=False, initial=None)
title = forms.CharField(widget=forms.TextInput(attrs={'style': 'width: 550px'}), required=False)
descriptions = forms.CharField(widget=forms.TextInput(attrs={'style': 'width: 550px'}), required=False)
keywords = forms.CharField(widget=forms.TextInput(attrs={'style': 'width: 550px'}), required=False)
@ -105,9 +103,9 @@ class UserForm(forms.ModelForm):
class Meta:
model = User
exclude = ('username', 'email', 'last_login', 'password', 'is_admin', 'rating', 'is_superuser', 'is_staff'
exclude = ('organiser', 'username', 'email', 'last_login', 'password', 'is_admin', 'rating', 'is_superuser', 'is_staff'
'date_joined',
'date_registered', 'date_modified')
'date_registered', 'date_modified', 'is_active')
def save(self, force_insert=False, force_update=False, commit=True):
@ -139,16 +137,16 @@ class UserForm(forms.ModelForm):
profile.save()
return user
def clean_url(self):
url = self.cleaned_data.get('url')
if url:
if User.objects.get(url=translit_with_separator(url)):
raise forms.ValidationError('Такой урл уже занят')
else:
return url
def clean_organiser(self):
return clean_relation_field(self, 'organiser', Organiser)
#def clean_url(self):
# url = self.cleaned_data.get('url')
# if url:
# if User.objects.get(url=translit_with_separator(url)):
# raise forms.ValidationError('Такой урл уже занят')
# else:
# return url
#def clean_organiser(self):
# return clean_relation_field(self, 'organiser', Organiser)
def clean_company(self):
return clean_relation_field(self, 'company', Company)

@ -27,7 +27,7 @@ def get_theme(value):
def get_tag(value):
tag_names = [item['name'] for item in value.all().values('name')]
tag_names = [item['name'] for item in value.language('ru').all().values('name')]
return ','.join(tag_names)
def get_place_type(value):

Binary file not shown.

@ -1,16 +0,0 @@
2015-07-28 12:23:39,172 [DEBUG] django.db.backends: (0.001) SHOW TABLES; args=()
2015-07-28 12:23:39,175 [DEBUG] django.db.backends: (0.000) SELECT `service_service`.`id`, `service_service`.`url`, `service_service`.`currency`, `service_service`.`price`, `service_service`.`params`, `service_service`.`template`, `service_service`.`type`, `service_service`.`sort`, `service_service`.`main_page`, `service_service`.`meta_id` FROM `service_service`; args=()
2015-07-28 12:23:39,200 [DEBUG] django.db.backends: (0.002) SHOW TABLES; args=()
2015-07-28 12:23:39,201 [DEBUG] django.db.backends: (0.000) SELECT `service_service`.`id`, `service_service`.`url`, `service_service`.`currency`, `service_service`.`price`, `service_service`.`params`, `service_service`.`template`, `service_service`.`type`, `service_service`.`sort`, `service_service`.`main_page`, `service_service`.`meta_id` FROM `service_service`; args=()
2015-07-28 12:23:39,232 [DEBUG] django.db.backends: (0.001) SHOW TABLES; args=()
2015-07-28 12:23:39,233 [DEBUG] django.db.backends: (0.000) SELECT `service_service`.`id`, `service_service`.`url`, `service_service`.`currency`, `service_service`.`price`, `service_service`.`params`, `service_service`.`template`, `service_service`.`type`, `service_service`.`sort`, `service_service`.`main_page`, `service_service`.`meta_id` FROM `service_service`; args=()
2015-07-28 12:23:39,247 [DEBUG] django.db.backends: (0.001) SHOW TABLES; args=()
2015-07-28 12:23:39,248 [DEBUG] django.db.backends: (0.000) SELECT `service_service`.`id`, `service_service`.`url`, `service_service`.`currency`, `service_service`.`price`, `service_service`.`params`, `service_service`.`template`, `service_service`.`type`, `service_service`.`sort`, `service_service`.`main_page`, `service_service`.`meta_id` FROM `service_service`; args=()
2015-07-28 12:23:39,284 [DEBUG] django.db.backends: (0.001) SHOW TABLES; args=()
2015-07-28 12:23:39,285 [DEBUG] django.db.backends: (0.000) SELECT `service_service`.`id`, `service_service`.`url`, `service_service`.`currency`, `service_service`.`price`, `service_service`.`params`, `service_service`.`template`, `service_service`.`type`, `service_service`.`sort`, `service_service`.`main_page`, `service_service`.`meta_id` FROM `service_service`; args=()
2015-07-28 12:23:39,304 [DEBUG] django.db.backends: (0.001) SHOW TABLES; args=()
2015-07-28 12:23:39,305 [DEBUG] django.db.backends: (0.000) SELECT `service_service`.`id`, `service_service`.`url`, `service_service`.`currency`, `service_service`.`price`, `service_service`.`params`, `service_service`.`template`, `service_service`.`type`, `service_service`.`sort`, `service_service`.`main_page`, `service_service`.`meta_id` FROM `service_service`; args=()
2015-07-28 12:23:39,460 [DEBUG] root: Using default logger
2015-07-28 12:23:39,460 [DEBUG] root: Using default logger
2015-07-28 12:24:17,361 [DEBUG] django.db.backends: (0.001) SELECT `accounts_user`.`id`, `accounts_user`.`password`, `accounts_user`.`last_login`, `accounts_user`.`is_superuser`, `accounts_user`.`email`, `accounts_user`.`username`, `accounts_user`.`first_name`, `accounts_user`.`last_name`, `accounts_user`.`rating`, `accounts_user`.`url`, `accounts_user`.`is_active`, `accounts_user`.`is_staff`, `accounts_user`.`is_admin`, `accounts_user`.`date_joined`, `accounts_user`.`date_registered`, `accounts_user`.`date_modified`, `accounts_user`.`organiser_id`, `accounts_user`.`translator_id`, `accounts_user`.`company_id`, `accounts_user`.`position` FROM `accounts_user` WHERE `accounts_user`.`email` = 'vaniakov95@gmail.com' ; args=('vaniakov95@gmail.com',)
2015-07-28 12:24:25,526 [DEBUG] django.db.backends: (0.000) SELECT `accounts_user`.`id`, `accounts_user`.`password`, `accounts_user`.`last_login`, `accounts_user`.`is_superuser`, `accounts_user`.`email`, `accounts_user`.`username`, `accounts_user`.`first_name`, `accounts_user`.`last_name`, `accounts_user`.`rating`, `accounts_user`.`url`, `accounts_user`.`is_active`, `accounts_user`.`is_staff`, `accounts_user`.`is_admin`, `accounts_user`.`date_joined`, `accounts_user`.`date_registered`, `accounts_user`.`date_modified`, `accounts_user`.`organiser_id`, `accounts_user`.`translator_id`, `accounts_user`.`company_id`, `accounts_user`.`position` FROM `accounts_user` WHERE `accounts_user`.`email` = 'vaniakov95@gmail.com' ; args=('vaniakov95@gmail.com',)

File diff suppressed because one or more lines are too long

@ -34,7 +34,7 @@ urlpatterns = required(
url(r'^settings/', include('settings.admin_urls')),
url(r'^meta/', include('meta.admin_urls')),
url(r'^import_xls/', include('import_xls.admin_urls')),
url(r'^specialist_catalog/', include('specialist_catalog.admin_urls')),
url(r'^translator_catalog/', include('specialist_catalog.admin_urls')),
url(r'^language/add/', 'directories.admin.language_add'),
url(r'^currency/add/', 'directories.admin.currency_add'),

@ -353,7 +353,6 @@ INSTALLED_APPS = (
'password_reset', # reset password
'social.apps.django_app.default', # social auth
'core',
'wizard',
'specialist_catalog',
)

@ -29,7 +29,6 @@ sitemaps = {
handler404 = 'proj.views.error404'
urlpatterns = patterns('',
url(r'^wizard/', include('wizard.urls')),
url(r'^acquire_email/$', 'registration.backends.default.views.acquire_email', name = 'acquire_email'),
url(r'^rss/', include('core.urls')),
#url(r'^__debug__/', include(debug_toolbar.urls)),
@ -44,7 +43,8 @@ urlpatterns = patterns('',
url(r'^page/', include('core.simple_urls')),
url(r'^theme/', include('theme.urls')),
url(r'^places/', include('place_exposition.urls')),
url(r'^translators/', include('translator.urls')),
#url(r'^translators/', include('translator.urls')),
url(r'^translators/', include('specialist_catalog.urls')),
url(r'^expo-b/', include('expobanner.urls')),
url(r'^', include('accounts.urls')),
url(r'^', include('exposition.urls')),
@ -55,7 +55,6 @@ urlpatterns = patterns('',
url(r'^', include('company.urls')),
url(r'^', include('photoreport.urls')),
url(r'^', include('article.urls')),
url(r'^specialist/', include("specialist_catalog.urls")),
url(r'^country/', include('country.urls')),
url(r'^city/', include('city.urls')),
url(r'^organiser/', include('organiser.urls')),

@ -26,7 +26,6 @@ def clear_slashes(str_):
str_ = str_[:-1]
return str_
def add_seo(request):
url = request.path
lang = get_language()
@ -39,7 +38,6 @@ 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,24 +1,32 @@
# -*- coding: utf-8 -*-
from django.core.management.base import BaseCommand
from django.utils.translation import activate
from city.models import City
from specialist_catalog.models import SpecialistCatalog
default_text = u"Планируете посетить выставку в %s?" \
default_text = u"Планируете посетить выставку %s?" \
u" Мы предлагаем Вам подобрать переводчика именно под Ваши цели и потребности. " \
u"Специализируясь уже более 7 лет на предоставлении переводчиков на выставки и конференции " \
u"%s, мы можем предоставить профессионалов со знанием разных " \
u"языков на гибких для Вас условиях. Каждый заказ индивидуален для нас, " \
u"и итоговая цена зависит от вида перевода, тематики, срочности подбора " \
u"специалиста, города и объема работы."
default_title = u"Переводчики в %s"
default_logo = "specialist_catalog/logo_preview/default_logo.jpg"
default_cities = u"<ul><li>Лондон</li><li>Киев</li><li>Барселона</li></ul>"
default_title = u"Переводчики %s"
default_benefits = """<ul class="content_list">
<li>Эффективная цена</li>
<li>Опыт и профессионализм специалистов</li>
<li>Знание разных менталитетов и психологических аспектов проведения переговоров с зарубежными бизнесменами</li>
<li>Ориентированность в мировых выставочных комплексах</li>
<li>Гарантии, отчетность по договору, прозрачные безналичные расчеты в России</li>
</ul>"""
class Command(BaseCommand):
def handle(self, *args, **options):
cities = list(City.objects.language('ru').order_by('id'))
activate('ru')
cities = set(City.used.expo_cities())
for cty in cities:
name = cty.inflect or cty.name
sc = SpecialistCatalog(
@ -27,8 +35,7 @@ class Command(BaseCommand):
city=cty,
title=default_title % name,
main_descr=default_text % (name, name),
logo_preview=default_logo,
big_cities=default_cities,
benefits = default_benefits
)
sc.save()
print cty.url, " -> ", cty.country.url

@ -1,24 +1,31 @@
# -*- coding: utf-8 -*-
from django.core.management.base import BaseCommand
from django.utils.translation import activate
from country.models import Country
from specialist_catalog.models import SpecialistCatalog
default_text = u"Планируете посетить выставку в %s?" \
default_text = u"Планируете посетить выставку %s?" \
u" Мы предлагаем Вам подобрать переводчика именно под Ваши цели и потребности. " \
u"Специализируясь уже более 7 лет на предоставлении переводчиков на выставки и конференции " \
u"%s, мы можем предоставить профессионалов со знанием разных " \
u"языков на гибких для Вас условиях. Каждый заказ индивидуален для нас, " \
u"и итоговая цена зависит от вида перевода, тематики, срочности подбора " \
u"специалиста, города и объема работы."
default_title = u"Переводчики в %s"
default_logo = "specialist_catalog/logo_preview/ukraine.gif"
default_cities = u"<ul><li>Лондон</li><li>Киев</li><li>Барселона</li></ul>"
lang = 'ru'
default_title = u"Переводчики %s"
default_benefits = """<ul class="content_list">
<li>Эффективная цена</li>
<li>Опыт и профессионализм специалистов</li>
<li>Знание разных менталитетов и психологических аспектов проведения переговоров с зарубежными бизнесменами</li>
<li>Ориентированность в мировых выставочных комплексах</li>
<li>Гарантии, отчетность по договору, прозрачные безналичные расчеты в России</li>
</ul>"""
class Command(BaseCommand):
def handle(self, *args, **options):
countries = Country.objects.language('ru').order_by('name')
activate('ru')
countries = set(Country.objects.expo_countries())
for cntry in countries:
name = cntry.inflect or cntry.name
sc = SpecialistCatalog(
@ -26,8 +33,7 @@ class Command(BaseCommand):
country=cntry,
title=default_title % name,
main_descr=default_text % (name, name),
logo_preview=default_logo,
big_cities=default_cities,
benefits = default_benefits
)
sc.save()
print "created for: %s" % cntry.url
print "created for: %s" % cntry.url

@ -30,15 +30,16 @@ class SpecialistCatalog(TranslatableModel):
logo_preview = models.ImageField(verbose_name=u"Логотип", blank=True, upload_to='specialist_catalog/logo_preview/')
place_photo = models.ImageField(verbose_name=u"Фото для города", blank=True, upload_to='specialist_catalog/place_photo/')
specialists = models.ManyToManyField(Specialist, verbose_name=u"Специалисты", blank=True)
city = models.ForeignKey(City, on_delete=models.PROTECT, verbose_name=u"Город", unique=True, blank=True)
city = models.ForeignKey(City, on_delete=models.PROTECT, verbose_name=u"Город", blank=True, null=True)
country = models.ForeignKey(Country, on_delete=models.PROTECT, verbose_name=u"Страна", blank=False)
type = models.PositiveSmallIntegerField(verbose_name=u"Тип(Страна/Город)", default=2)
translations = TranslatedFields(
title=models.CharField(max_length=255, verbose_name=u"Заголовок"),
main_descr=models.CharField(max_length=1000, verbose_name=u"Краткое описание"),
benefits=models.CharField(max_length=2000, verbose_name=u"Преимущества"),
big_cities=models.TextField(verbose_name=u"Крупные города")
big_cities=models.TextField(verbose_name=u"Крупные города", blank=True)
)
def __init__(self, *args, **kwargs):
@ -81,7 +82,15 @@ class SpecialistCatalog(TranslatableModel):
return self
def __unicode__(self):
return self.title
return self.lazy_translation_getter('title', unicode(self.pk))
def place(self):
if self.type == _country:
return self.country
elif self.type == _city:
return self.city
else:
return None
class Feedback(models.Model):

@ -1,8 +1,11 @@
# -*- coding: utf-8 -*-
from django.conf.urls import url, patterns
from .views import CatalogDetailedView
from .views import CatalogDetailedView, SpecCatalog
urlpatterns = patterns('',
url(r'^city/$', SpecCatalog.as_view(), {'type': 'city'}, name="spec_city"),
url(r'^country/$', SpecCatalog.as_view(), {'type': 'country'}, name="spec_country"),
url(r'^city/(?P<slug>.*)/$', CatalogDetailedView.as_view(), {'type': 'city'}, name="spec_catalog_city"),
url(r'^country/(?P<slug>.*)/$', CatalogDetailedView.as_view(), {'type': 'country'}, name="spec_catalog_country"),
)

@ -1,13 +1,15 @@
# -*- coding: utf-8 -*-
from django.views.generic import CreateView, UpdateView, DeleteView, ListView, FormView, DetailView
from django.views.generic.detail import SingleObjectMixin
from django.utils.translation import ugettext as _
from .forms import *
from django.core.urlresolvers import reverse_lazy
from django.conf import settings
from django.shortcuts import get_object_or_404
from service.order_forms import TranslationForm
from django.http import HttpResponseRedirect
from django.utils.translation import get_language
from django.http import HttpResponseRedirect, Http404
from .models import _city, _country
# =========== ADMIN VIEWS ===========
@ -133,8 +135,6 @@ class FeedbackDeleteView(DeleteView):
# ========= CLIENT VIEWS ============
lang = get_language()[:2]
class CatalogDetailedView(SingleObjectMixin, FormView):
model = SpecialistCatalog
@ -142,11 +142,20 @@ class CatalogDetailedView(SingleObjectMixin, FormView):
template_name = "client/specialist_catalog/catalog_detailed.html"
success_url = reverse_lazy("service_thanks")
def get_object(self, queryset=None):
def get_catalog_obj(self):
if self.kwargs.get('type') is "country":
obj = self.model.objects.language(lang).get(country__url=self.kwargs.get('slug'))
try:
return self.model.objects.language().get(type=1, country__url=self.kwargs.get('slug'))
except self.model.DoesNotExist:
raise Http404
else:
obj = self.model.objects.language(lang).get(city__url=self.kwargs.get('slug'))
try:
return self.model.objects.language().get(type=2, city__url=self.kwargs.get('slug'))
except self.model.DoesNotExist:
raise Http404
def get_object(self, queryset=None):
obj = self.get_catalog_obj()
self.object = obj
return obj
@ -169,3 +178,29 @@ class CatalogDetailedView(SingleObjectMixin, FormView):
init['city'] = obj.city.name
return init
class SpecCatalog(ListView):
model = SpecialistCatalog
template_name = 'client/specialist_catalog/catalog.html'
def get_queryset(self):
if self.kwargs.get('type') == "country":
ctype = _country
else:
ctype = _city
qs = list(self.model.objects.language().select_related('country', 'city').filter(type=ctype))
if ctype == _country:
result = sorted(qs, key=lambda x: x.country.name)
else:
result = sorted(qs, key=lambda x: x.city.name)
return result
def get_context_data(self, **kwargs):
context = super(SpecCatalog, self).get_context_data(**kwargs)
if self.kwargs.get('type') == "country":
context['title'] = _(u'Переводчики по странам')
else:
context['title'] = _(u'Переводчики по городам')
return context

@ -29,11 +29,7 @@
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-eye-open"></i> Пользователи<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/admin/accounts/all">Пользователи</a></li>
<li><a href="/admin/translator/all">Переводчики</a></li>
<li><a href="/admin/organiser/all">Организаторы</a></li>
<li><a href="/admin/company/all">Компании</a></li>
<li class="divider"></li>
<li><a href="/admin/import-organiser">Импорт организаторов</a></li>
</ul>
</li>
@ -46,7 +42,6 @@
<li><a href="/admin/theme/theme/all">Тематики</a></li>
<li><a href="/admin/theme/tag/all">Теги</a></li>
<li><a href="/admin/service/all">Услуги</a></li>
<li><a href="/admin/settings">Настройки</a></li>
<li><a href="/admin/settings/main-page/">Главная страница</a></li>
<li><a href="/admin/meta/all/">Мета</a></li>
@ -61,9 +56,8 @@
<ul class="dropdown-menu">
<li><a href="/admin/article/blog/all/">Статьи</a></li>
<li><a href="/admin/article/news/all/">Новости</a></li>
<li><a href="#">Отзывы</a></li>
<li><a href="/admin/language/add">Языки</a></li>
<li><a href="/admin/currency/add">Валюты</a></li>
<li><a href="/admin/translator_catalog/catalog/all/">Каталог переводчиков</a></li>
<li><a href="/admin/translator_catalog/specialist/all/">Список переводчиков</a></li>
</ul>
</li>
<li class="dropdown">

@ -10,10 +10,8 @@
<thead>
<tr>
<th>&nbsp; </th>
<th>Заголовок</th>
<th>{% if request.path == "/admin/specialist_catalog/catalog/city/" %}Город{% elif request.path == "/admin/specialist_catalog/catalog/country/" %}Страна{% else %}Страна/Город{% endif %}</th>
<th>Количество специалистов</th>
<th>Link</th>
<th>&nbsp;</th>
</tr>
@ -21,15 +19,9 @@
<tbody>
{% for item in object_list %}
<tr>
<td>
{% thumbnail item.logo_preview "100x100" crop="center" as im %}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}</td>
<td>{{ item.title }}</td>
<td>{% if item.type == 1%}{{ item.country.name }}{% else %}{{ item.city.name }}{% endif %}</td>
<td>{{ item.specialists.count }}</td>
<td><a href="{{ item.get_absolute_url }}">Заценить</a></td>
<td><a href="{{ item.get_absolute_url }}" target="_blank">на сайте</a></td>
<td class="center sorting_1">
<a class="btn-small btn-info" href='{% url "catalog_edit" item.id %}'>
Изменить
@ -46,19 +38,9 @@
</tbody>
</table>
<a class="btn btn-success" href='{% url "catalog_new" %}'>
<i class="icon-plus-sign icon-white"></i> Хочу еще один </a>
<i class="icon-plus-sign icon-white"></i> Добавить </a>
</div>
{% include 'admin/includes/admin_pagination.html' %}
<div class="pagination pagination-centered">
<ul>
{% if page_obj.has_previous %}
<li> <a href="?page={{ page_obj.previous_page_number }}"></a></li>
{% endif %}
{% if page_obj.has_next %}
<li><a href="?page={{ page_obj.next_page_number }}"></a></li>
{% endif %}
</ul>
</div>
</div>
{% endblock %}

@ -127,77 +127,69 @@
<input class="btn btn-large btn-primary" type="submit" {% if request.path == '/admin/specialist_catalog/catalog/new/' %} value="Добавить" {% else %} value='Изменить' {% endif %}/>
<input class="btn btn-large" type="reset" value="Отмена">
<a class="btn btn-large" href="{% url 'catalog_all' %}">Чет передумал(а)</a>
<a class="btn btn-large" href="{% url 'catalog_all' %}">Вернуться</a>
</div>
</fieldset>
</form>
<!--Feedbacks block -->
<div class="box span8">
<div class="box-header well">
<h2><i class="icon-arrow-down"></i>Отзывы для текущего каталога </h2>
</div>
<div class="box-content">
{% if object.feedback_set.all %}
{% with object.feedback_set.all as feedbacks %}
<table class="table table-hover">
<thead>
<tr>
<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>Логотип</th>
<th>Имя</th>
<th>Компания</th>
<th>Текст</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
{% for item in feedbacks %}
<tr>
<th>Логотип</th>
<th>Имя</th>
<th>Компания</th>
<th>Текст</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
{% for item in feedbacks %}
<tr>
<td>
{% thumbnail item.logo "100x100" crop="center" as im %}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}</td>
<td>{{ item.name }}</td>
<td>{{ item.company }}</td>
<td>{{ item.text }}</td>
<td class="center sorting_1">
<a class="btn-small btn-info" href='{% url "feedback_edit" catalog_pk=object.id id=item.id %}'>
Изменить
</a>
</td>
<td>
{% thumbnail item.logo "100x100" crop="center" as im %}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}</td>
<td>{{ item.name }}</td>
<td>{{ item.company }}</td>
<td>{{ item.text }}</td>
<td class="center sorting_1">
<a class="btn-small btn-info" href='{% url "feedback_edit" catalog_pk=object.id id=item.id %}'>
Изменить
</a>
</td>
<td>
<a class="btn-small btn-danger delete" href='{% url "feedback_delete" item.id %}'>
Удалить
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<a class="btn btn-success" href='{% url "feedback_new" object.id %}'>
<i class="icon-plus-sign icon-white"></i> Хочу еще один </a>
</div>
<div class="pagination pagination-centered">
<ul>
{% if page_obj.has_previous %}
<li><a href="?page={{ page_obj.previous_page_number }}"></a></li>
{% endif %}
{% if page_obj.has_next %}
<li><a href="?page={{ page_obj.next_page_number }}"></a></li>
{% endif %}
</ul>
</div>
</div>
<td>
<a class="btn-small btn-danger delete" href='{% url "feedback_delete" item.id %}'>
Удалить
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<a class="btn btn-success" href='{% url "feedback_new" object.id %}'>
<i class="icon-plus-sign icon-white"></i> Хочу еще один </a>
{% endwith %}
{% elif object.id %}
Отзывов еще нет,
<a class="btn btn-success" href='{% url "feedback_new" catalog_pk=object.id%}'>
<i class="icon-plus-sign icon-white"></i> Добавить </a>
{% endif %}
</div>
</div>
{% endblock %}

@ -53,6 +53,6 @@
{% endblock %}
{% block scripts %}
<script src="{% static 'client/js/profile.js' %}"></script>
<script src="{% static 'client/js/profile.js' %}"></script>+++++++++++++++++++++++++++++++++++++++++++++++++++++++
{% endblock %}

@ -12,12 +12,6 @@
<div class="header-top clearfix">
<div class="ht-main">
{% if user.is_authenticated %}
{% if user.is_organiser %}
<div class="add-link"><a class="l-button ico" href="{% url "add_exposition" %}">добавить событие </a></div>
{% endif %}
{% endif %}
<ul class="lang-switch">
{% for lang in LANGUAGES %}

@ -43,6 +43,8 @@ Disallow: /callback/
Disallow: /register/
Disallow: /register-complete/
Disallow: /registration/reply/
Disallow: /wizard/
Disallow: /acquire_email/
Disallow: /address_book_process.php
Disallow: /account.php
Disallow: /account_edit.php
@ -145,6 +147,8 @@ Disallow: /callback/
Disallow: /register/
Disallow: /register-complete/
Disallow: /registration/reply/
Disallow: /wizard/
Disallow: /acquire_email/
Disallow: /address_book_process.php
Disallow: /account.php
Disallow: /account_edit.php
@ -247,6 +251,8 @@ Disallow: /callback/
Disallow: /register/
Disallow: /register-complete/
Disallow: /registration/reply/
Disallow: /wizard/
Disallow: /acquire_email/
Disallow: /address_book_process.php
Disallow: /account.php
Disallow: /account_edit.php

@ -0,0 +1,32 @@
{% extends "client/base_catalog.html" %}
{% load static %}
{% load i18n %}
{% load template_filters %}
{% block bread_scrumbs %}
<div class="bread-crumbs">
<a href="/">{% trans 'Главная страница' %}</a>
<strong>{{ title }}</strong>
</div>
{% endblock %}
{% block content_list %}
{% with objects=object_list %}
{% for obj in objects %}
{% set cur_word = obj.place.name %}
{% if cur_word|slice:":1"|lower != prev_word|slice:":1"|lower and forloop.counter != 1 %}
</ul>
{% endif %}
{% if cur_word|slice:":1"|lower != prev_word|slice:":1"|lower %}
<ul class="leter-list">
<div class="leter"><font size="5">{{ cur_word|slice:":1"|upper }}</font></div>
{% endif %}
<li>
<a href="{{ obj.get_absolute_url }}">{{ obj.place }}</a>
</li>
{% set prev_word = obj.place.name %}
{% endfor %}
{% endwith %}
{% endblock %}

@ -3,8 +3,20 @@
{% load thumbnail %}
{% load i18n %}
{% block head_scripts %}
{% block bread_scrumbs %}
<div class="bread-crumbs">
<a href="/">{% trans 'Главная страница' %}</a>
{% if object.type == 1 %}
<a href="{% url 'spec_country' %}">{% trans 'Переводчики по странам' %}</a>
{% else %}
<a href="{% url 'spec_city' %}">{% trans 'Переводчики по городам' %}</a>
{% endif %}
<strong>{{ object.place }}</strong>
</div>
{% endblock %}
{% block page_body%}
@ -15,9 +27,7 @@
<div class="item-wrap place clearfix">
<aside>
<div class="i-pict">
{% thumbnail object.logo_preview "100x100" crop="center" as im %}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}
{% include 'client/includes/show_logo.html' with obj=object %}
</div>
</aside>
@ -27,7 +37,7 @@
</header>
<div class="i-descr">
{{ object.main_descr }}
{{ object.main_descr|safe }}
</div>
<hr/>
@ -51,11 +61,12 @@
</div>
</div>
{{ object.big_cities }}
{% if object.big_cities %}
<div class="country_towns">
<h4>Крупные города:</h4>
{{ object.big_cities }}
{{ object.big_cities|safe }}
</div>
{% endif %}
<hr />

@ -0,0 +1,2 @@
Должен был быть модуль для добавления событий и других даных через кабинет пользователя.
Остановленна разработка по ненадобности, так как делается функционал добавление событий через црм
Loading…
Cancel
Save