Loading services/webapp/code/rosetta/core_app/templates/components/computing.html +5 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,11 @@ <td>{{ data.computing.description }}</td> </tr> <tr> <td><b>Group</b></td> <td>{{ data.computing.group }}</td> </tr> <tr> <td><b>Type</b></td> <td>{{ data.computing.type }}</td> Loading services/webapp/code/rosetta/core_app/templates/edit_computing.html +11 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,17 @@ <td><b>Description</b></td> <td><textarea name="description" rows="3" cols="30">{{ data.computing.description }}</textarea></td> </tr> <tr> <td><b>Group</b></td> <td> <select name="group_id" style="width: 220px;"> <option value="">None</option> {% for group in data.groups %} <option value="{{ group.id }}" {% if data.computing.group and group.id == data.computing.group.id %}selected{% endif %}>{{ group.name }}</option> {% endfor %} </select> </td> </tr> <tr> <td><b>Type</b></td> <td><input type="text" name="type" value="{{ data.computing.type }}" size="30" required /></td> Loading services/webapp/code/rosetta/core_app/views.py +22 −6 Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ from django.conf import settings from django.shortcuts import render from django.contrib.auth import authenticate, login, logout from django.http import HttpResponse, HttpResponseRedirect, HttpResponseNotFound from django.contrib.auth.models import User from django.contrib.auth.models import User, Group from django.shortcuts import redirect from django.db.models import Q from .models import Profile, LoginToken, Task, TaskStatuses, Container, Computing, KeyPair, Page, Storage Loading Loading @@ -1227,10 +1227,16 @@ def computing(request): return render(request, 'error.html', {'data': data}) if details and computing_uuid: if request.user.is_staff: data['computing'] = Computing.objects.get(uuid=computing_uuid) else: try: data['computing'] = Computing.objects.get(uuid=computing_uuid, group__user=request.user) except Computing.DoesNotExist: data['computing'] = Computing.objects.get(uuid=computing_uuid, group=None) else: if request.user.is_staff: data['computings'] = Computing.objects.all() else: data['computings'] = list(Computing.objects.filter(group=None)) + list(Computing.objects.filter(group__user=request.user)) Loading Loading @@ -1260,6 +1266,7 @@ def edit_computing(request): data['computing'] = computing data['edited'] = False data['groups'] = Group.objects.all() if request.method == 'POST': computing.name = request.POST.get('name', computing.name) Loading Loading @@ -1298,6 +1305,15 @@ def edit_computing(request): except Exception: data['error'] = 'Invalid conf format (must be JSON dict).' return render(request, 'edit_computing.html', {'data': data}) # Handle group selection group_id = request.POST.get('group_id', None) if group_id: try: computing.group = Group.objects.get(id=group_id) except Group.DoesNotExist: computing.group = None else: computing.group = None try: computing.save() data['edited'] = True Loading Loading
services/webapp/code/rosetta/core_app/templates/components/computing.html +5 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,11 @@ <td>{{ data.computing.description }}</td> </tr> <tr> <td><b>Group</b></td> <td>{{ data.computing.group }}</td> </tr> <tr> <td><b>Type</b></td> <td>{{ data.computing.type }}</td> Loading
services/webapp/code/rosetta/core_app/templates/edit_computing.html +11 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,17 @@ <td><b>Description</b></td> <td><textarea name="description" rows="3" cols="30">{{ data.computing.description }}</textarea></td> </tr> <tr> <td><b>Group</b></td> <td> <select name="group_id" style="width: 220px;"> <option value="">None</option> {% for group in data.groups %} <option value="{{ group.id }}" {% if data.computing.group and group.id == data.computing.group.id %}selected{% endif %}>{{ group.name }}</option> {% endfor %} </select> </td> </tr> <tr> <td><b>Type</b></td> <td><input type="text" name="type" value="{{ data.computing.type }}" size="30" required /></td> Loading
services/webapp/code/rosetta/core_app/views.py +22 −6 Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ from django.conf import settings from django.shortcuts import render from django.contrib.auth import authenticate, login, logout from django.http import HttpResponse, HttpResponseRedirect, HttpResponseNotFound from django.contrib.auth.models import User from django.contrib.auth.models import User, Group from django.shortcuts import redirect from django.db.models import Q from .models import Profile, LoginToken, Task, TaskStatuses, Container, Computing, KeyPair, Page, Storage Loading Loading @@ -1227,10 +1227,16 @@ def computing(request): return render(request, 'error.html', {'data': data}) if details and computing_uuid: if request.user.is_staff: data['computing'] = Computing.objects.get(uuid=computing_uuid) else: try: data['computing'] = Computing.objects.get(uuid=computing_uuid, group__user=request.user) except Computing.DoesNotExist: data['computing'] = Computing.objects.get(uuid=computing_uuid, group=None) else: if request.user.is_staff: data['computings'] = Computing.objects.all() else: data['computings'] = list(Computing.objects.filter(group=None)) + list(Computing.objects.filter(group__user=request.user)) Loading Loading @@ -1260,6 +1266,7 @@ def edit_computing(request): data['computing'] = computing data['edited'] = False data['groups'] = Group.objects.all() if request.method == 'POST': computing.name = request.POST.get('name', computing.name) Loading Loading @@ -1298,6 +1305,15 @@ def edit_computing(request): except Exception: data['error'] = 'Invalid conf format (must be JSON dict).' return render(request, 'edit_computing.html', {'data': data}) # Handle group selection group_id = request.POST.get('group_id', None) if group_id: try: computing.group = Group.objects.get(id=group_id) except Group.DoesNotExist: computing.group = None else: computing.group = None try: computing.save() data['edited'] = True Loading