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