Skip to content

Commit

Permalink
add departments, extid as slug
Browse files Browse the repository at this point in the history
  • Loading branch information
nicokant committed Jan 9, 2024
1 parent 561eb66 commit 24bacef
Show file tree
Hide file tree
Showing 7 changed files with 95 additions and 60 deletions.
2 changes: 2 additions & 0 deletions metadata_catalogue/nina/libs/harvesters.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ def _process_project(project: dict):
p, _ = Project.objects.update_or_create(
extid=project.get("id"),
defaults={
"slug": project.get("id"),
"name": project.get("title"),
"description": project.get("notes"),
"status": project.get("project_state"),
Expand All @@ -50,6 +51,7 @@ def _process_project(project: dict):
extid=group.get("id"),
defaults={
"name": group.get("title"),
"slug": project.get("id"),
"description": group.get("description"),
},
)
Expand Down
5 changes: 3 additions & 2 deletions metadata_catalogue/nina/urls.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
from django.urls import path

from .views import ProjectDetailView, ProjectListView, ProjectUpdateView
from .views import DepartmentDetailView, DepartmentListView, ProjectDetailView, ProjectListView, ProjectUpdateView

urlpatterns = [
path("projects/", ProjectListView.as_view(), name="projects-list"),
path("projects/<int:extid>/", ProjectDetailView.as_view(), name="projects-detail"),
path("projects/<slug:slug>/", ProjectDetailView.as_view(), name="projects-detail"),
path("projects/<slug:slug>/edit/", ProjectUpdateView.as_view(), name="projects-edit"),
path("departments/", DepartmentListView.as_view(), name="departments-list"),
path("departments/<slug:slug>/", DepartmentDetailView.as_view(), name="departments-detail"),
]
22 changes: 13 additions & 9 deletions metadata_catalogue/nina/views.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
from typing import Any

from django.core.exceptions import ObjectDoesNotExist
from django.db.models.base import Model
from django.db.models.query import QuerySet
from django.views.generic import DetailView, ListView

from metadata_catalogue.projects import views

from .models import Department


class ProjectListView(views.ProjectListView):
paginate_by = 20
Expand All @@ -16,10 +17,13 @@ class ProjectUpdateView(views.ProjectUpdateView):


class ProjectDetailView(views.ProjectDetailView):
def get_object(self, queryset=None):
if queryset is None:
queryset = self.get_queryset()
try:
return queryset.get(extid=self.kwargs.get("extid"))
except ObjectDoesNotExist:
return super().get_object(queryset)
pass


class DepartmentListView(ListView):
paginate_by = 20
model = Department


class DepartmentDetailView(DetailView):
model = Department
50 changes: 1 addition & 49 deletions metadata_catalogue/templates/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -42,55 +42,7 @@
{% endblock javascript %}
</head>
<body>
<div class="mb-1">
<nav class="navbar navbar-expand-md navbar-light bg-light">
<div class="container-fluid">
<button class="navbar-toggler navbar-toggler-right"
type="button"
data-bs-toggle="collapse"
data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent"
aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="{% url 'home' %}">Metadata Catalogue</a>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="{% url 'home' %}">Home <span class="visually-hidden">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'about' %}">About</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'projects-list' %}">Projects</a>
</li>
{% if request.user.is_authenticated %}
<li class="nav-item">
<a class="nav-link" href="{% url 'users:detail' request.user.pk %}">{% translate "My Profile" %}</a>
</li>
<li class="nav-item">
{# URL provided by django-allauth/account/urls.py #}
<a class="nav-link" href="{% url 'account_logout' %}">{% translate "Sign Out" %}</a>
</li>
{% else %}
{% if ACCOUNT_ALLOW_REGISTRATION %}
<li class="nav-item">
{# URL provided by django-allauth/account/urls.py #}
<a id="sign-up-link" class="nav-link" href="{% url 'account_signup' %}">{% translate "Sign Up" %}</a>
</li>
{% endif %}
<li class="nav-item">
{# URL provided by django-allauth/account/urls.py #}
<a id="log-in-link" class="nav-link" href="{% url 'account_login' %}">{% translate "Sign In" %}</a>
</li>
{% endif %}
</ul>
</div>
</div>
</nav>
</div>
<div class="mb-1">{% include 'includes/navbar.html' %}</div>
<div class="container">
{% if messages %}
{% for message in messages %}
Expand Down
49 changes: 49 additions & 0 deletions metadata_catalogue/templates/includes/navbar.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{% load static i18n %}

<nav class="navbar navbar-expand-md navbar-light bg-light">
<div class="container-fluid">
<button class="navbar-toggler navbar-toggler-right"
type="button"
data-bs-toggle="collapse"
data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent"
aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="{% url 'home' %}">Metadata Catalogue</a>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="{% url 'home' %}">Home <span class="visually-hidden">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'departments-list' %}">Departments</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'projects-list' %}">Projects</a>
</li>
{% if request.user.is_authenticated %}
<li class="nav-item">
<a class="nav-link" href="{% url 'users:detail' request.user.pk %}">{% translate "My Profile" %}</a>
</li>
<li class="nav-item">
{# URL provided by django-allauth/account/urls.py #}
<a class="nav-link" href="{% url 'account_logout' %}">{% translate "Sign Out" %}</a>
</li>
{% else %}
{% if ACCOUNT_ALLOW_REGISTRATION %}
<li class="nav-item">
{# URL provided by django-allauth/account/urls.py #}
<a id="sign-up-link" class="nav-link" href="{% url 'account_signup' %}">{% translate "Sign Up" %}</a>
</li>
{% endif %}
<li class="nav-item">
{# URL provided by django-allauth/account/urls.py #}
<a id="log-in-link" class="nav-link" href="{% url 'account_login' %}">{% translate "Sign In" %}</a>
</li>
{% endif %}
</ul>
</div>
</div>
</nav>
9 changes: 9 additions & 0 deletions metadata_catalogue/templates/nina/department_detail.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{% extends 'base.html' %}

{% block content %}
<h2>{{ object.name }}</h2>
<p>{{ object.description|default_if_none:"No description" }}</p>
<div class="d-flex">
<a class="btn btn-secondary mx-1" href="{% url 'projects-list' %}">Back</a>
</div>
{% endblock content %}
18 changes: 18 additions & 0 deletions metadata_catalogue/templates/nina/department_list.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{% extends 'base.html' %}

{% block content %}
<h2>Departments</h2>
<div class="pb-5 mt-3">
<ul class="list-group">
{% for project in object_list %}
<li class="list-group-item">
<h5>
<a href="{% url 'departments-detail' slug=project.slug %}">{{ project.name }}</a>
</h5>
<p>{{ project.description|default_if_none:'No description' }}</p>
</li>
{% endfor %}
</ul>
<div class="mt-3">{% include 'includes/pagination.html' %}</div>
</div>
{% endblock content %}

0 comments on commit 24bacef

Please sign in to comment.