From e5ad3369e2d02fb87bf13193769645399c71c6bc Mon Sep 17 00:00:00 2001 From: Adam Marcus Date: Tue, 17 Oct 2017 13:35:53 +0000 Subject: [PATCH] Code review --- .../interface_api/project_management/views.py | 6 ++++-- ... => 0070_todos_and_reverse_assignments.py} | 10 +++++++-- .../migrations/0071_auto_20171015_2303.py | 21 ------------------- .../common/js/orchestra.services.es6.js | 4 ++-- 4 files changed, 14 insertions(+), 27 deletions(-) rename orchestra/migrations/{0070_todo.py => 0070_todos_and_reverse_assignments.py} (68%) delete mode 100644 orchestra/migrations/0071_auto_20171015_2303.py diff --git a/orchestra/interface_api/project_management/views.py b/orchestra/interface_api/project_management/views.py index 856347c43..7e6c1f070 100644 --- a/orchestra/interface_api/project_management/views.py +++ b/orchestra/interface_api/project_management/views.py @@ -1,4 +1,6 @@ import slacker + +from django.shortcuts import get_object_or_404 from jsonview.exceptions import BadRequest from rest_framework import generics from rest_framework import permissions @@ -41,12 +43,12 @@ def project_information_api(request): """ This function is used by both the project management interface (project admins only) and for providing project information to - experts (only to experts associated with a project). We enfoce + experts (only to experts associated with a project). We enforce both of these permissions in the view below. """ project_id = load_encoded_json(request.body)['project_id'] - worker = Worker.objects.get(user=request.user) + worker = get_object_or_404(Worker, user=request.user) if not (is_project_admin(request.user) or worker.assignments.filter(task__project=project_id).exists()): raise BadRequest('Permission denied') diff --git a/orchestra/migrations/0070_todo.py b/orchestra/migrations/0070_todos_and_reverse_assignments.py similarity index 68% rename from orchestra/migrations/0070_todo.py rename to orchestra/migrations/0070_todos_and_reverse_assignments.py index 94952b94a..76a2d0766 100644 --- a/orchestra/migrations/0070_todo.py +++ b/orchestra/migrations/0070_todos_and_reverse_assignments.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.9.13 on 2017-10-09 18:00 +# Generated by Django 1.9.13 on 2017-10-17 13:29 from __future__ import unicode_literals from django.db import migrations, models import django.db.models.deletion import django.utils.timezone +import orchestra.models.core.mixins import orchestra.utils.models @@ -25,6 +26,11 @@ class Migration(migrations.Migration): ('completed', models.BooleanField(default=False)), ('task', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='todos', to='orchestra.Task')), ], - bases=(orchestra.utils.models.DeleteMixin, models.Model), + bases=(orchestra.models.core.mixins.TodoMixin, orchestra.utils.models.DeleteMixin, models.Model), + ), + migrations.AlterField( + model_name='taskassignment', + name='worker', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='assignments', to='orchestra.Worker'), ), ] diff --git a/orchestra/migrations/0071_auto_20171015_2303.py b/orchestra/migrations/0071_auto_20171015_2303.py deleted file mode 100644 index 1e67d9307..000000000 --- a/orchestra/migrations/0071_auto_20171015_2303.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.13 on 2017-10-15 23:03 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('orchestra', '0070_todo'), - ] - - operations = [ - migrations.AlterField( - model_name='taskassignment', - name='worker', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='assignments', to='orchestra.Worker'), - ), - ] diff --git a/orchestra/static/orchestra/common/js/orchestra.services.es6.js b/orchestra/static/orchestra/common/js/orchestra.services.es6.js index 41fb77ea9..8968c8d06 100644 --- a/orchestra/static/orchestra/common/js/orchestra.services.es6.js +++ b/orchestra/static/orchestra/common/js/orchestra.services.es6.js @@ -64,8 +64,8 @@ export function orchestraService () { export function orchestraTasks ($http) { 'ngAnnotate' - const activeState = (task) => task.state === 'in_progress' || task.state === 'returned' || task.state === 'just_added' - const pendingState = (task) => task.state === 'pending_review' || task.state === 'pending_processing' + const activeState = (task) => ['just_added', 'in_progress', 'returned'].indexOf(task.state) !== -1 + const pendingState = (task) => ['pending_review', 'pending_processing'].indexOf(task.state) !== -1 const activeTask = (task) => activeState(task) && task.should_be_active const pendingTask = (task) => (activeState(task) && !task.should_be_active) || pendingState(task)