Translators list. Meta and redirecting

remotes/origin/1203
Kotiuk Nazarii 11 years ago
parent bffdf71e81
commit eb79817687
  1. 7
      accounts/models.py
  2. 1
      proj/urls.py
  3. 6
      settings/old_urls.py
  4. 27
      settings/redirect_views.py
  5. 21
      templates/client/accounts/translators/translators_list.html
  6. 56
      templates/client/includes/accounts/translators.html
  7. 13
      translator/urls.py
  8. 30
      translator/views.py

@ -140,6 +140,9 @@ class User(AbstractBaseUser, PermissionsMixin):
USERNAME_FIELD = 'username'
REQUIRED_FIELDS = ['first_name', 'last_name']
class Meta:
ordering=['-rating']
def get_full_name(self):
"""
Returns the first_name plus the last_name, with a space in between.
@ -196,9 +199,9 @@ class User(AbstractBaseUser, PermissionsMixin):
def get_permanent_url(self):
if self.url:
return '/%s'%self.url
return '/%s/'%self.url
#return self.catalog+self.url+'/'
return '/%d'%self.id
return '/%d/'%self.id
#return self.catalog+str(self.id)+'/'
def get_expos(self):

@ -37,6 +37,7 @@ 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'^', include('accounts.urls')),
url(r'^', include('exposition.urls')),
url(r'^', include('settings.conference_old_urls')), # conference redirects from old version

@ -13,9 +13,9 @@ urlpatterns = patterns('',
url(r'^serv-zaoch-info.php$', old_redirect, {'redirect_url': '/service/remote/'}),
url(r'^serv-visit-info.php$', old_redirect, {'redirect_url': '/service/visit/'}),
url(r'^serv-bilet-info.php$', old_redirect, {'redirect_url': '/service/tickets/'}),
url(r'^serv-translator-info.php$', old_redirect, {'redirect_url': '/service/translator/'}),
url(r'^content.php/coID/(?P<some>.*)/perevodchiki-(?P<some1>.*)/$', old_redirect, {'redirect_url': '/service/translator/'}),
url(r'^content.php/coID/(?P<some>.*)/perevodchiki-(?P<some1>.*)$', old_redirect, {'redirect_url': '/service/translator/'}),
url(r'^serv-translator-info.php$', old_redirect, {'redirect_url': '/translators/'}),
url(r'^content.php/coID/(?P<some>.*)/perevodchiki-(?P<country_or_city>.*)/$', old_redirect, {'redirect_url': '/translators/{country_or_city}/'}),
url(r'^content.php/coID/(?P<some>.*)/perevodchik-(?P<country_or_city>.*)/$', old_redirect, {'redirect_url': '/translators/{country_or_city}/'}),
url(r'^(?P<some>.*)/(?P<event>.*)/buildstand.html$', old_redirect, {'redirect_url': '{event_catalog}{event_url}/service/participation/'}),
url(r'^(?P<some>.*)/(?P<event>.*)/bilet.html$', old_redirect, {'redirect_url': '{event_catalog}{event_url}/service/tickets/'}),

@ -106,11 +106,36 @@ class News_p(object):
obj = get_object_or_404(Article, old_id=value)
return {key: obj.slug}
class Country_or_City(object):
def get_object_url(self,key, value):
try:
obj = Country.objects.get(old_url=value)
except Country.DoesNotExist:
try:
obj = Country.objects.filter(url=value)[0]
except IndexError:
obj = None
if not obj:
try:
obj = City.objects.get(old_url=value)
except City.DoesNotExist:
obj = get_object_or_404(City, url=value)
except City.MultipleObjectsReturned:
obj = City.objects.filter(old_url=value)[0]
if not obj:
raise Http404
if isinstance(obj, Country):
result = 'country/%s'%obj.url
elif isinstance(obj, City):
result = 'city/%s'%obj.url
return {key: result}
old_params = {'city': CityRedirect, 'country': CountryRedirect, 'theme': ThemeRedirect, 'tag': TagRedirect,
'event': EventRedirect, 'company': Company, 'article': ArticleRedirect, 'user': UserRedirect,
'page': PageRedirect, 'news_p': News_p}
'page': PageRedirect, 'news_p': News_p, 'country_or_city': Country_or_City}
def old_redirect(request, *args, **kwargs):

@ -0,0 +1,21 @@
{% extends 'base_catalog.html' %}
{% load i18n %}
{% block bread_scrumbs %}
{% endblock %}
{% block page_title %}
<div class="page-title">
<h1>{% if meta %}{{ meta.h1 }}{% else %}{% trans 'Переводчики' %}{% endif %}</h1>
</div>
{% endblock %}
{% block content_list %}
{% include 'client/includes/accounts/translators.html' with object_list=object_list %}
{% endblock %}
{% block paginator %}
{% include 'includes/catalog_paginator.html' with page_obj=page_obj %}
{% endblock %}

@ -0,0 +1,56 @@
{% load static %}
{% load i18n %}
{% load template_filters %}
<ul class="cat-list cl-visitors">
{% for user in object_list %}
<li class="cl-item">
<div class="cl-item-wrap clearfix">
<a href="{{ user.get_permanent_url }}">
<div class="cli-pict">
{% with obj=user %}
{% include 'includes/show_logo.html' %}
{% endwith %}
</div>
</a>
<div class="cli-info">
<div class="cli-top clearfix">
<header>
<div class="cli-title">
<a href="{{ user.get_permanent_url }}">{{ user.get_full_name }}</a>
</div>
</header>
</div>
<div class="cli-bot clearfix">
<div class="cli-position">{{ user.translator.languages }}</div>
{% if user.profile.country %}
<div class="cli-place"><a href="/translators/country/{{ user.profile.country.url }}/">{{ user.profile.country }}</a>{% if user.profile.city %}, <a href="/translators/city/{{ user.profile.city.url }}/">{{ user.profile.city }}</a>{% endif %}</div>
{% endif %}
</div>
</div>
<div class="cli-buttons clearfix">
<div class="cli-m-buttons">
<a class="button icon-info" href="{{ user.get_permanent_url }}">{% trans 'информация' %}</a>
</div>
{% comment %}
<div class="cli-s-buttons">
{% if user.is_authenticated %}
<a class="button icon-msg" href="#">{% trans 'отправить сообщение' %}</a>
{% endif %}
</div>
{% endcomment %}
</div>
</div>
{% comment %}
<footer class="clearfix">
<div class="cli-tags">
</div>
</footer>
{% endcomment %}
</li>
{% endfor %}
</ul>

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
from django.conf.urls import patterns, include, url
from translator.views import TranslatorList
urlpatterns = patterns('',
url(r'^city/(?P<city>.*)/page/(?P<page>\d+)/$', TranslatorList.as_view(), {'meta_id':88}),
url(r'^city/(?P<city>.*)/$', TranslatorList.as_view(), {'meta_id':88}),
url(r'^country/(?P<country>.*)/page/(?P<page>\d+)/$', TranslatorList.as_view(), {'meta_id':87}),
url(r'^country/(?P<country>.*)/$', TranslatorList.as_view(), {'meta_id':87}),
url(r'^page/(?P<page>\d+)/$', TranslatorList.as_view() , {'meta_id':86}),
url(r'^', TranslatorList.as_view() , {'meta_id':86}),
)

@ -0,0 +1,30 @@
from django.views.generic import ListView
from django.shortcuts import get_object_or_404
from django.conf import settings
from functions.cache_mixin import JitterCacheMixin, CacheMixin
from meta.views import MetadataMixin
from accounts.models import User
from country.models import Country
from city.models import City
from translator.models import Translator
class TranslatorList(JitterCacheMixin, MetadataMixin, ListView):
model = User
template_name = 'client/accounts/translators/translators_list.html'
paginate_by = settings.CLIENT_PAGINATION
def get_queryset(self):
# all users with translator profile
qs = self.model.objects.select_related('profile', 'country', 'city').filter(translator__isnull=False)
if self.kwargs.get('city'):
city_slug = self.kwargs.get('city')
city = get_object_or_404(City, url=city_slug)
self.kwargs['city'] = city
qs = qs.filter(profile__city=city)
if self.kwargs.get('country'):
country_slug = self.kwargs.get('country')
country = get_object_or_404(Country, url=country_slug)
self.kwargs['country'] = country
qs = qs.filter(profile__country=country)
return qs
Loading…
Cancel
Save