aboutsummaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorAndrea Lepori <alepori@student.ethz.ch>2021-03-17 22:20:58 +0100
committerAndrea Lepori <alepori@student.ethz.ch>2021-03-17 22:21:23 +0100
commit19d120e045991226a07bbe3929bc3ed0db818790 (patch)
tree57b2d6fb5e724b4ef1d030586676d804b273a182 /client
parentadd rev to version and create document from non primary group (diff)
downloadscout-subs-19d120e045991226a07bbe3929bc3ed0db818790.tar.gz
scout-subs-19d120e045991226a07bbe3929bc3ed0db818790.zip
users of group capi can optionally view documents
Diffstat (limited to 'client')
-rw-r--r--client/migrations/0007_groupsettings.py23
-rw-r--r--client/models.py4
-rw-r--r--client/views.py17
3 files changed, 43 insertions, 1 deletions
diff --git a/client/migrations/0007_groupsettings.py b/client/migrations/0007_groupsettings.py
new file mode 100644
index 0000000..b5a23fa
--- /dev/null
+++ b/client/migrations/0007_groupsettings.py
@@ -0,0 +1,23 @@
+# Generated by Django 3.1.2 on 2021-03-17 20:06
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('auth', '0012_alter_user_first_name_max_length'),
+ ('client', '0006_documenttype_max_instances'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='GroupSettings',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('view_documents', models.BooleanField(default=False)),
+ ('group', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='auth.group')),
+ ],
+ ),
+ ]
diff --git a/client/models.py b/client/models.py
index d14a267..5b5db6a 100644
--- a/client/models.py
+++ b/client/models.py
@@ -111,3 +111,7 @@ class UserCode(models.Model):
phone = models.CharField(default="", max_length=250)
school = models.CharField(default="", max_length=250)
year = models.IntegerField(default=0)
+
+class GroupSettings(models.Model):
+ group = models.ForeignKey(Group, default=None, on_delete=models.CASCADE)
+ view_documents = models.BooleanField(default=False) \ No newline at end of file
diff --git a/client/views.py b/client/views.py
index 32678f5..6fdd3f2 100644
--- a/client/views.py
+++ b/client/views.py
@@ -1,6 +1,6 @@
from random import randint
from django.contrib.auth.models import Group, Permission, User
-from client.models import UserCode, Keys, DocumentType, Document, PersonalData, KeyVal, MedicalData
+from client.models import GroupSettings, UserCode, Keys, DocumentType, Document, PersonalData, KeyVal, MedicalData
from django.db.models import Q
from django.http import HttpResponseRedirect, FileResponse, HttpResponse
from django.contrib.auth.decorators import login_required
@@ -17,6 +17,7 @@ import pytz
def index(request):
context = {}
+ group_view = False
# check if user is logged
if (request.user.is_authenticated):
if not (request.user.is_staff or request.user.has_perm("client.approved")):
@@ -39,6 +40,19 @@ def index(request):
user_code = "U" + str(usercode.code)
context = {"user_code": user_code}
else:
+ # get user group
+ group = request.user.groups.values_list('name', flat=True)[0]
+
+ # get group settings
+ settings = GroupSettings.objects.filter(group__name=group)
+
+ # check if settings exists
+ if len(settings) == 0:
+ group_view = False
+ else:
+ # set settings value
+ group_view = settings[0].view_documents
+
# user action
if request.method == "POST":
# get document id
@@ -123,6 +137,7 @@ def index(request):
context = {
"docs": out,
"empty": len(out) == 0,
+ "group_view": group_view,
}
return render(request, 'client/index.html', context)