diff --git a/trademark/urls.py b/trademark/urls.py index 8d1b8a1..45190e8 100644 --- a/trademark/urls.py +++ b/trademark/urls.py @@ -1,8 +1,6 @@ #-*- coding: utf-8 -*- from django.conf.urls import patterns, url -from trademark.landing.api import get_random_list_trademarks - from . import views @@ -12,7 +10,7 @@ urlpatterns = patterns('', url(r'^nices/(?P[\w-]+)/$', views.NiceDetailView.as_view(), name='nice-detail'), url(r'^products/(?P[\w-]+)/$', views.ProductDetailView.as_view(), name='product-detail'), url(r'^results/(?P[\w-]+)/$', views.SearchDetailView.as_view(), name='search-detail'), - url(r'^random-trademarks/', get_random_list_trademarks, name='random-trademarks'), + url(r'^random-trademarks/', views.get_random_list_trademarks, name='random-trademarks'), url(r'^trademark/(?P[\w-]+)/$', views.TrademarkDetailView.as_view(), name='trademark-detail'), url(r'^request/(?P[\w-]+)/$', views.Search.as_view(), name='search-detail'), url(r'^request/$', views.Search.as_view(), name='search'), diff --git a/trademark/views.py b/trademark/views.py index c5d839f..39fa6c2 100644 --- a/trademark/views.py +++ b/trademark/views.py @@ -12,6 +12,7 @@ from .models import * from django.views.decorators.cache import never_cache from django.db.models import Count +import pymorphy2 class SearchDetailView(generic.DetailView): @@ -219,3 +220,50 @@ class Search(generic.View): return HttpResponse(json.dumps(response), content_type="application/json") +@never_cache +def get_random_list_trademarks(request, status='Expired', count=10): + morph = pymorphy2.MorphAnalyzer() + + trademark_list = [] + expired_trademarks = Trademark.objects.filter(status=status).order_by('?')[:count*2] + + for trademark in expired_trademarks: + if len(trademark.title.split(' ')) > 3: + continue + + for product in trademark.products.all(): + words = product.title.split(' ') + normalize_title = [] + if len(words) <= 3: + first_word = morph.parse(words[0])[0] + if first_word.tag.POS == 'NOUN': + for word in words: + word = morph.parse(word)[0] + try: + normalize_title.append(word.inflect({'sing', 'nomn'}).word) + except: + continue + + break + + try: + glyph = Nice.objects.get(nice_id=notation[1]).glyph or 'fa-snowflake-o' + except Nice.DoesNotExist: + # Быть такого не должно + glyph = 'fa-snowflake-o' + + trademark_list.append({ + 'product': ' '.join(normalize_title).capitalize(), + 'name': trademark.title.title(), + 'trademark': trademark.id, + 'glyph': glyph + }) + + response = { + 'count': len(trademark_list), + 'status': 'ok', + 'items': trademark_list[:count] + } + + return HttpResponse(json.dumps(response), content_type="application/json") +