diff --git a/assets/js/userarea.js b/assets/js/userarea.js index 0881720..2a8ba53 100644 --- a/assets/js/userarea.js +++ b/assets/js/userarea.js @@ -5,4 +5,5 @@ import { Tab } from 'bootstrap'; import DataTable from 'datatables.net-dt'; let mediaTable = new DataTable('#mediaTable'); -let scenesTable = new DataTable('#scenesTable'); \ No newline at end of file +let scenesTable = new DataTable('#scenesTable'); +let permissionsTable = new DataTable('#permissionsTable'); \ No newline at end of file diff --git a/quackscape/tours/migrations/0016_alter_categorypermission_category_and_more.py b/quackscape/tours/migrations/0016_alter_categorypermission_category_and_more.py new file mode 100644 index 0000000..fde0d17 --- /dev/null +++ b/quackscape/tours/migrations/0016_alter_categorypermission_category_and_more.py @@ -0,0 +1,26 @@ +# Generated by Django 5.0.3 on 2024-03-16 09:54 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('tours', '0015_alter_originalmedia_category_alter_scene_category'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AlterField( + model_name='categorypermission', + name='category', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='permissions', to='tours.category'), + ), + migrations.AlterField( + model_name='categorypermission', + name='user', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='category_permissions', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/quackscape/tours/models.py b/quackscape/tours/models.py index 21c6dc2..28d5fd4 100644 --- a/quackscape/tours/models.py +++ b/quackscape/tours/models.py @@ -49,8 +49,14 @@ class Category(models.Model): class CategoryPermission(models.Model): - category = models.ForeignKey(Category, on_delete=models.CASCADE) - user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE) + category = models.ForeignKey(Category, related_name="permissions", on_delete=models.CASCADE) + user = models.ForeignKey(get_user_model(), related_name="category_permissions", on_delete=models.CASCADE) + + # TODO: Permission levels + + @property + def role(self) -> str: + return "Content Editor" class Element(PolymorphicModel): diff --git a/quackscape/users/templates/users/category.html b/quackscape/users/templates/users/category.html index 249ba41..1aed6e5 100644 --- a/quackscape/users/templates/users/category.html +++ b/quackscape/users/templates/users/category.html @@ -1,5 +1,13 @@ {% extends "users/base.html" %} {% block content %} -
User | +Role | +Actions | +
---|---|---|
{{ category.owner }} | +Owner | ++ |
{{ permission.user }} | +{{ permission.role }} | ++ + | +