Commit 087f9a1b authored by Stefano Alberto Russo's avatar Stefano Alberto Russo
Browse files

Added edit computing groups.

parent f345666b
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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>
+11 −0
Original line number Diff line number Diff line
@@ -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>
+22 −6
Original line number Diff line number Diff line
@@ -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
@@ -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))

@@ -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)
@@ -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