From 886d6c69d507f1aed10d27637e6e1e57d15cd842 Mon Sep 17 00:00:00 2001
From: Emilie
Date: Thu, 13 Oct 2016 11:35:56 +0200
Subject: [PATCH] mergin
---
app/local_settings.py | 10 ++++++--
app/organization/agenda/models.py | 8 +++---
app/organization/core/views.py | 38 ++++++++++++++++++-----------
app/organization/magazine/models.py | 10 +++++++-
app/organization/media/models.py | 12 +++++----
app/organization/media/urls.py | 8 +++---
app/organization/media/views.py | 11 +++++++++
app/organization/network/models.py | 16 ++++++++++++
app/organization/pages/models.py | 8 +++---
app/organization/projects/models.py | 8 ++++++
app/templates/search_results.html | 8 +++---
lib/mezzanine-agenda | 2 +-
12 files changed, 98 insertions(+), 41 deletions(-)
diff --git a/app/local_settings.py b/app/local_settings.py
index 285a237e..1f154534 100644
--- a/app/local_settings.py
+++ b/app/local_settings.py
@@ -128,8 +128,14 @@ DASHBOARD_TAGS = ( ("mezzanine_tags.app_list",), (), ("mezzanine_tags.recent_act
GRAPPELLI_ADMIN_TITLE = 'IRCAM Admin'
-SEARCH_MODEL_CHOICES = None # all objects
-SEARCH_MODEL_CHOICES = ('pages.Page',)
+SEARCH_MODEL_CHOICES = ('organization-pages.CustomPage',
+ 'organization-network.DepartmentPage',
+ 'organization-network.TeamPage',
+ 'organization-projects.ProjectTopicPage',
+ 'pages.Page',
+ 'organization-media.Audio',
+ 'organization-media.Video',
+ 'mezzanine_agenda.Event')
SEARCH_PER_PAGE = 10
MAX_PAGING_LINKS = 10
diff --git a/app/organization/agenda/models.py b/app/organization/agenda/models.py
index 4972904e..5bcc9fa6 100644
--- a/app/organization/agenda/models.py
+++ b/app/organization/agenda/models.py
@@ -62,8 +62,8 @@ class EventAudio(Audio):
event = models.ForeignKey(Event, verbose_name=_('event'), related_name='audios', blank=True, null=True, on_delete=models.SET_NULL)
class Meta:
- verbose_name = _("audio")
- verbose_name_plural = _("audios")
+ verbose_name = Audio._meta.verbose_name
+ verbose_name_plural = Audio._meta.verbose_name_plural
order_with_respect_to = "event"
@@ -72,8 +72,8 @@ class EventVideo(Video):
event = models.ForeignKey(Event, verbose_name=_('event'), related_name='videos', blank=True, null=True, on_delete=models.SET_NULL)
class Meta:
- verbose_name = _("video")
- verbose_name_plural = _("videos")
+ verbose_name = Video._meta.verbose_name
+ verbose_name_plural = Video._meta.verbose_name_plural
order_with_respect_to = "event"
diff --git a/app/organization/core/views.py b/app/organization/core/views.py
index 8719a165..13718067 100644
--- a/app/organization/core/views.py
+++ b/app/organization/core/views.py
@@ -49,29 +49,39 @@ class CustomSearchView(TemplateView):
search_type = search_model._meta.verbose_name_plural.capitalize()
results = search_model.objects.search(query, for_user=request.user)
-
+ print("----------------------------")
+ print(results)
+ print("----------------------------")
# count objects
filter_dict = dict()
for result in results:
- print('---------------------------')
- parent_class = result._meta.get_parent_list()[0]
- print(parent_class)
- print(parent_class.__name__)
- # print(parent_class == "")
- print('---------------------------')
-
- if result._meta.get_parent_list() == 'mezzanine.pages.models.Page':
- classname = 'Page'
- else :
- classname = result.__class__.__name__
+
+ classname = result.__class__.__name__
+ app_label = result._meta.app_label
+
+ # aggregate all Page types : CustomPage, TeamPage, Topic etc...
+ if result._meta.get_parent_list() :
+ parent_class = result._meta.get_parent_list()[0]
+
+ if parent_class.__name__ == 'Page':
+ classname = parent_class.__name__
+ app_label = parent_class._meta.app_label
+ elif "Video" in parent_class.__name__:
+ classname = "Video"
+ app_label = parent_class._meta.app_label
+ elif "Audio" in parent_class.__name__:
+ classname = "Audio"
+ app_label = parent_class._meta.app_label
if classname in filter_dict:
filter_dict[classname]['count'] += 1
else:
filter_dict[classname] = {'count' : 1}
- filter_dict[classname].update({'app_label' : result._meta.app_label})
+ filter_dict[classname].update({'verbose_name' : classname})
+ filter_dict[classname].update({'app_label' : app_label})
+
+
- print(filter_dict)
# get url param
current_query = QueryDict(mutable=True)
current_query = request.GET.copy()
diff --git a/app/organization/magazine/models.py b/app/organization/magazine/models.py
index 90dba922..1f2ce07f 100644
--- a/app/organization/magazine/models.py
+++ b/app/organization/magazine/models.py
@@ -44,13 +44,21 @@ class ArticleAudio(Audio):
article = models.ForeignKey(Article, verbose_name=_('article'), related_name='audios', blank=True, null=True, on_delete=models.SET_NULL)
+ class Meta:
+ verbose_name = Audio._meta.verbose_name
+ verbose_name_plural = Audio._meta.verbose_name_plural
+
class ArticleVideo(Video):
article = models.ForeignKey(Article, verbose_name=_('article'), related_name='videos', blank=True, null=True, on_delete=models.SET_NULL)
+ class Meta:
+ verbose_name = Video._meta.verbose_name
+ verbose_name_plural = Video._meta.verbose_name_plural
+
-class Brief(Displayable, RichText): #Orderable
+class Brief(Displayable, RichText):
text_button = models.CharField(blank=True, max_length=150, null=False, verbose_name=_('text button'))
external_content = models.URLField(blank=True, max_length=1000, null=False, verbose_name=_('external content'))
diff --git a/app/organization/media/models.py b/app/organization/media/models.py
index 35fcda66..496a7412 100644
--- a/app/organization/media/models.py
+++ b/app/organization/media/models.py
@@ -26,7 +26,7 @@ class Media(Displayable):
created_at = models.DateTimeField(auto_now=True)
# objects = SearchableManager()
- search_fields = ("title",)
+ # search_fields = ("title",)
class Meta:
abstract = True
@@ -65,11 +65,12 @@ class Audio(Media):
category = models.ForeignKey('MediaCategory', verbose_name=_('category'), related_name='audios', blank=True, null=True, on_delete=models.SET_NULL)
class Meta:
- verbose_name = _('audio')
+ verbose_name = _('Audio')
+ verbose_name_plural = _('Audios')
ordering = ('-created_at',)
def get_absolute_url(self):
- return reverse("festival-audio-detail", kwargs={"slug": self.slug})
+ return reverse("audio-detail", kwargs={"slug": self.slug})
class Video(Media):
@@ -80,11 +81,12 @@ class Video(Media):
category = models.ForeignKey('MediaCategory', verbose_name=_('category'), related_name='videos', blank=True, null=True, on_delete=models.SET_NULL)
class Meta:
- verbose_name = _('video')
+ verbose_name = _('Video')
+ verbose_name_plural = _('Videos')
ordering = ('-created_at',)
def get_absolute_url(self):
- return reverse("festival-video-detail", kwargs={"slug": self.slug})
+ return reverse("video-detail", kwargs={"slug": self.slug})
class MediaCategory(Slugged, Description):
diff --git a/app/organization/media/urls.py b/app/organization/media/urls.py
index 2e5763d5..a090a860 100644
--- a/app/organization/media/urls.py
+++ b/app/organization/media/urls.py
@@ -13,9 +13,7 @@ from organization.media.views import *
urlpatterns = [
url(r'^media-list/$', MediaListView.as_view(), name="media-list"),
url(r'^videos/$', VideoListView.as_view(), name="festival-video-list"),
- url(r'^videos/detail/(?P.*)/$', VideoDetailView.as_view(), name="festival-video-detail"),
- url(r'^videos/category/(?P.*)/$', VideoListCategoryView.as_view(), name="festival-video-list-category"),
- url(r'^audios/detail/(?P.*)/$', AudioDetailView.as_view(), name="festival-audio-detail"),
- url(r'^audios/category/(?P.*)/$', AudioListCategoryView.as_view(), name="festival-audio-list-category"),
-
+ url(r'^audios/detail/(?P.*)/$', AudioDetailView.as_view(), name="audio-detail"),
+ url(r'^videos/detail/(?P.*)/$', VideoDetailView.as_view(), name="video-detail"),
+ url(r'^videos/category/(?P.*)/$', VideoListCategoryView.as_view(), name="video-list-category"),
]
diff --git a/app/organization/media/views.py b/app/organization/media/views.py
index 4ea5af32..ff1697e7 100644
--- a/app/organization/media/views.py
+++ b/app/organization/media/views.py
@@ -9,6 +9,17 @@ from organization.agenda.models import EventVideo
from organization.magazine.models import Article, Topic, Brief, ArticleVideo
+class AudioDetailView(SlugMixin, DetailView):
+
+ model = Audio
+ template_name='festival/audio_detail.html'
+ context_object_name = 'audio'
+
+ def get_context_data(self, **kwargs):
+ context = super(AudioDetailView, self).get_context_data(**kwargs)
+ return context
+
+
class VideoListView(ListView):
model = Video
diff --git a/app/organization/network/models.py b/app/organization/network/models.py
index b7028907..5a5b7d7d 100644
--- a/app/organization/network/models.py
+++ b/app/organization/network/models.py
@@ -129,11 +129,19 @@ class OrganizationAudio(Audio):
organization = models.ForeignKey(Organization, verbose_name=_('organization'), related_name='audios', blank=True, null=True, on_delete=models.SET_NULL)
+ class Meta:
+ verbose_name = Audio._meta.verbose_name
+ verbose_name_plural = Audio._meta.verbose_name_plural
+
class OrganizationVideo(Video):
organization = models.ForeignKey(Organization, verbose_name=_('organization'), related_name='videos', blank=True, null=True, on_delete=models.SET_NULL)
+ class Meta:
+ verbose_name = Video._meta.verbose_name
+ verbose_name_plural = Video._meta.verbose_name_plural
+
class OrganizationLink(Link):
@@ -277,11 +285,19 @@ class PersonAudio(Audio):
person = models.ForeignKey(Person, verbose_name=_('person'), related_name='audios', blank=True, null=True, on_delete=models.SET_NULL)
+ class Meta:
+ verbose_name = Audio._meta.verbose_name
+ verbose_name_plural = Audio._meta.verbose_name_plural
+
class PersonVideo(Video):
person = models.ForeignKey(Person, verbose_name=_('person'), related_name='videos', blank=True, null=True, on_delete=models.SET_NULL)
+ class Meta:
+ verbose_name = Video._meta.verbose_name
+ verbose_name_plural = Video._meta.verbose_name_plural
+
class PersonLink(Link):
diff --git a/app/organization/pages/models.py b/app/organization/pages/models.py
index 02047b19..387f92a6 100644
--- a/app/organization/pages/models.py
+++ b/app/organization/pages/models.py
@@ -38,8 +38,8 @@ class PageAudio(Audio):
page = models.ForeignKey(Page, verbose_name=_('page'), related_name='audios', blank=True, null=True, on_delete=models.SET_NULL)
class Meta:
- verbose_name = _("audio")
- verbose_name_plural = _("audios")
+ verbose_name = Audio._meta.verbose_name
+ verbose_name_plural = Audio._meta.verbose_name_plural
order_with_respect_to = "page"
@@ -48,8 +48,8 @@ class PageVideo(Video):
page = models.ForeignKey(Page, verbose_name=_('page'), related_name='videos', blank=True, null=True, on_delete=models.SET_NULL)
class Meta:
- verbose_name = _("video")
- verbose_name_plural = _("videos")
+ verbose_name = Video._meta.verbose_name
+ verbose_name_plural = Video._meta.verbose_name_plural
order_with_respect_to = "page"
diff --git a/app/organization/projects/models.py b/app/organization/projects/models.py
index 5666539b..90ae33d7 100644
--- a/app/organization/projects/models.py
+++ b/app/organization/projects/models.py
@@ -83,11 +83,19 @@ class ProjectAudio(Audio):
project = models.ForeignKey(Project, verbose_name=_('project'), related_name='audios', blank=True, null=True, on_delete=models.SET_NULL)
+ class Meta:
+ verbose_name = Audio._meta.verbose_name
+ verbose_name_plural = Audio._meta.verbose_name_plural
+
class ProjectVideo(Video):
project = models.ForeignKey(Project, verbose_name=_('project'), related_name='videos', blank=True, null=True, on_delete=models.SET_NULL)
+ class Meta:
+ verbose_name = Video._meta.verbose_name
+ verbose_name_plural = Video._meta.verbose_name_plural
+
class ProjectLink(Link):
diff --git a/app/templates/search_results.html b/app/templates/search_results.html
index cf6843a5..a6c11673 100644
--- a/app/templates/search_results.html
+++ b/app/templates/search_results.html
@@ -40,7 +40,7 @@
Filter:
{% for key,value in filter_dict.items %}
- {{ key }} {{ value.count }}
+ {{ value.verbose_name }} {{ value.count }}
{% endfor %}
{% if cancel_filter_url %}
Cancel filter
@@ -48,10 +48,8 @@
{% for result in results.object_list %}
{% with result.get_absolute_url as result_url %}
-
+ {{ result.periods.date_from }}{{ result.periods.date_to }}
- {{ forloop.counter0|add:results.start_index }})
- - {{ result|classname }} -
{% if result_url %}
{{ result }}
{% else %}
@@ -59,7 +57,7 @@
{% endif %}
{% if result.description != result|stringformat:"s" %}
- {{ result.description|truncatewords_html:20|safe }}
+ {{ result.description|truncatewords_html:200|safe }}
{% endif %}
{% if result_url %}
{% trans "read more" %}
diff --git a/lib/mezzanine-agenda b/lib/mezzanine-agenda
index 04b66f16..5a92509d 160000
--- a/lib/mezzanine-agenda
+++ b/lib/mezzanine-agenda
@@ -1 +1 @@
-Subproject commit 04b66f1604f971ce3b58dfa656bdadc2e57a8620
+Subproject commit 5a92509d2d9b0e5b964faa5a74328ee977c44cc7
--
2.39.5