From 674afafd87ec82e99b65cc5685a3ade04cc04bf9 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Sun, 6 Nov 2016 20:51:21 +0100 Subject: [PATCH] Add first demo detail view, update admin filters --- app/organization/media/admin.py | 1 + app/organization/network/admin.py | 14 +++++---- app/organization/projects/models.py | 5 ++++ app/organization/projects/urls.py | 1 + app/organization/projects/views.py | 31 ++++++++++++++++++++ app/templates/network/organization_list.html | 21 ------------- 6 files changed, 46 insertions(+), 27 deletions(-) diff --git a/app/organization/media/admin.py b/app/organization/media/admin.py index a0111e66..f26f0c99 100644 --- a/app/organization/media/admin.py +++ b/app/organization/media/admin.py @@ -14,6 +14,7 @@ class MediaAdmin(BaseTranslationModelAdmin): model = Media inlines = (MediaTranscodedAdmin,) + list_display = ['title',] class PlaylistMediaInline(TabularDynamicInlineAdmin): diff --git a/app/organization/network/admin.py b/app/organization/network/admin.py index 100860db..1a9ab46c 100644 --- a/app/organization/network/admin.py +++ b/app/organization/network/admin.py @@ -44,7 +44,6 @@ class OrganizationAdmin(BaseTranslationModelAdmin): list_filter = ['name', 'is_on_map'] - class PageProductListInline(TabularDynamicInlineAdmin): model = PageProductList @@ -70,7 +69,8 @@ class TeamAdmin(BaseTranslationModelAdmin): class TeamPageAdmin(PageAdmin): - inlines = [PageImageInline, PageBlockInline, PagePlaylistInline, PageProductListInline, PageRelatedTitleAdmin, DynamicContentPageInline] + inlines = [PageImageInline, PageBlockInline, PagePlaylistInline, + PageProductListInline, PageRelatedTitleAdmin, DynamicContentPageInline] class PersonAdminBase(BaseTranslationModelAdmin): @@ -82,7 +82,8 @@ class PersonActivityInline(StackedDynamicInlineAdmin): model = PersonActivity fk_name = 'person' - filter_horizontal = ['organizations', 'employers', 'teams', 'projects', 'supervisors', 'phd_directors', ] + filter_horizontal = ['organizations', 'employers', 'teams', + 'projects', 'supervisors', 'phd_directors', ] class PersonPlaylistInline(TabularDynamicInlineAdmin): @@ -121,17 +122,18 @@ class PersonAdmin(BaseTranslationOrderedModelAdmin): PersonActivityInline,] first_fields = ['last_name', 'first_name', 'title', 'gender', 'user'] search_fields = ['last_name', 'first_name'] - list_display = ['last_name', 'first_name', 'description', 'email', 'gender'] + list_display = ['last_name', 'first_name', 'description', 'email', 'gender', 'created'] list_filter = ['person_title', 'activities__date_from', 'activities__date_to', 'activities__is_permanent', 'activities__framework', 'activities__grade', - 'activities__function', 'activities__teams',] + 'activities__status', 'activities__teams', 'activities__projects',] class PersonActivityAdmin(BaseTranslationModelAdmin): model = PersonActivity list_display = ['person', 'get_teams', 'status', 'date_from', 'date_to'] - filter_horizontal = ['organizations', 'employers', 'teams', 'projects', 'supervisors', 'phd_directors', ] + filter_horizontal = ['organizations', 'employers', 'teams', 'projects', + 'supervisors', 'phd_directors', ] def get_teams(self, instance): values = [] diff --git a/app/organization/projects/models.py b/app/organization/projects/models.py index 66356bdb..9a4aa239 100644 --- a/app/organization/projects/models.py +++ b/app/organization/projects/models.py @@ -173,6 +173,11 @@ class Repository(Named, URL): dir_name = self.url.split('/')[-1].split('.')[0] return settings.PROJECT_DEMOS_DIR + os.sep + dir_name + @property + def relative_url(self): + path = self.directory.replace(settings.MEDIA_ROOT, '') + return settings.MEDIA_URL + path + '/index.html' + def clone(self): os.chdir(settings.PROJECT_DEMOS_DIR) os.system(' '.join((self.system.clone_command, self.url))) diff --git a/app/organization/projects/urls.py b/app/organization/projects/urls.py index 86bf8853..052f1293 100644 --- a/app/organization/projects/urls.py +++ b/app/organization/projects/urls.py @@ -12,4 +12,5 @@ from organization.projects.views import * urlpatterns = [ url("^project/detail/(?P.*)/$", ProjectDetailView.as_view(), name='organization-project-detail'), url("^dynamic-content-project/$", permission_required('project.can_edit')(DynamicContentProjectView.as_view()), name='dynamic-content-project'), + url("^project/demo/(?P.*)/$", ProjectDemoDetailView.as_view(), name='organization-project-demo-detail'), ] diff --git a/app/organization/projects/views.py b/app/organization/projects/views.py index a6bc9154..b58a1d6e 100644 --- a/app/organization/projects/views.py +++ b/app/organization/projects/views.py @@ -57,3 +57,34 @@ class DynamicContentProjectView(Select2QuerySetSequenceView): qs = self.mixup_querysets(qs) return qs + + +class ProjectDemoDetailView(SlugMixin, DetailView): + + model = ProjectDemo + template_name='projects/project_demo_detail.html' + context_object_name = 'demo' + + def get_context_data(self, **kwargs): + context = super(ProjectDemoDetailView, self).get_context_data(**kwargs) + demo = self.get_object() + project = demo.project + department = None + + if project: + if project.lead_team: + if project.lead_team.department: + department = project.lead_team.department + else: + for team in project.teams.all(): + if team.department: + department = team.department + break + + context['department'] = department + if project.topic and project.topic.parent: + context['page'] = project.topic.parent.pages.all().first() + elif project.topic: + context['page'] = project.topic.pages.all().first() + + return context diff --git a/app/templates/network/organization_list.html b/app/templates/network/organization_list.html index aadd9afe..7631729e 100644 --- a/app/templates/network/organization_list.html +++ b/app/templates/network/organization_list.html @@ -21,42 +21,27 @@ {% block page_slider %}
-
-
-
- {% for type in organization_types %}
{{ type.0 }}
{% endfor %} -
-
-
-
-
-
-
    - {% for organization in organizations %} -
  • @@ -94,15 +79,9 @@ {% endcomment %} {% endfor %} -
-
-
-
-
- {% endblock %} -- 2.39.5