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
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"
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"
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 == "<class 'mezzanine.pages.models.Page'>")
- 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()
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'))
created_at = models.DateTimeField(auto_now=True)
# objects = SearchableManager()
- search_fields = ("title",)
+ # search_fields = ("title",)
class Meta:
abstract = True
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):
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):
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<slug>.*)/$', VideoDetailView.as_view(), name="festival-video-detail"),
- url(r'^videos/category/(?P<slug>.*)/$', VideoListCategoryView.as_view(), name="festival-video-list-category"),
- url(r'^audios/detail/(?P<slug>.*)/$', AudioDetailView.as_view(), name="festival-audio-detail"),
- url(r'^audios/category/(?P<slug>.*)/$', AudioListCategoryView.as_view(), name="festival-audio-list-category"),
-
+ url(r'^audios/detail/(?P<slug>.*)/$', AudioDetailView.as_view(), name="audio-detail"),
+ url(r'^videos/detail/(?P<slug>.*)/$', VideoDetailView.as_view(), name="video-detail"),
+ url(r'^videos/category/(?P<slug>.*)/$', VideoListCategoryView.as_view(), name="video-list-category"),
]
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
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):
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):
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"
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"
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):
<p>
<h4>Filter:</h4>
{% for key,value in filter_dict.items %}
- <a href="{{ value.url }}" title="{{ key }}">{{ key }} {{ value.count }}</a><br>
+ <a href="{{ value.url }}" title="{{ value.verbose_name }}">{{ value.verbose_name }} {{ value.count }}</a><br>
{% endfor %}
{% if cancel_filter_url %}
<a href="{{ cancel_filter_url }}" title="">Cancel filter</a>
</p>
{% for result in results.object_list %}
{% with result.get_absolute_url as result_url %}
-
+ {{ result.periods.date_from }}{{ result.periods.date_to }}
<h5>
- {{ forloop.counter0|add:results.start_index }})
- - {{ result|classname }} -
{% if result_url %}
<a href="{{ result_url }}">{{ result }}</a>
{% else %}
{% endif %}
</h5>
{% if result.description != result|stringformat:"s" %}
- <p>{{ result.description|truncatewords_html:20|safe }}</p>
+ <p>{{ result.description|truncatewords_html:200|safe }}</p>
{% endif %}
{% if result_url %}
<a href="{{ result_url }}">{% trans "read more" %}</a>
-Subproject commit 04b66f1604f971ce3b58dfa656bdadc2e57a8620
+Subproject commit 5a92509d2d9b0e5b964faa5a74328ee977c44cc7