diff --git a/script/formatting/config/pylintrc b/script/formatting/config/pylintrc index 75a3ddc..00584ad 100644 --- a/script/formatting/config/pylintrc +++ b/script/formatting/config/pylintrc @@ -13,7 +13,7 @@ profile=no # Add files or directories to the blacklist. They should be base names, not # paths. -ignore=CVS,.git,manage.py,0001_initial.py,0002_enable_compression.py,0003_load_initial_data.py,0004_add_lhs.py,0005_add_workload_field.py,0006_session_hyperparameters.py,0007_executiontime.py,0008_change_result_taskids_field.py,0009_change_executiontime_function_field.py,0010_add_pipeline_data_field.py,0011_knob_bound_fields.py,credentials.py,create_knob_settings.py +ignore=CVS,.git,manage.py,0001_initial.py,0002_enable_compression.py,0003_load_initial_data.py,0004_add_lhs.py,0005_add_workload_field.py,0006_session_hyperparameters.py,0007_executiontime.py,0008_change_result_taskids_field.py,0009_change_executiontime_function_field.py,0010_add_pipeline_data_field.py,0011_knob_bound_fields.py,0012_make_workload_status_editable.py,credentials.py,create_knob_settings.py # ignore-patterns=**/migrations/*.py diff --git a/server/website/website/admin.py b/server/website/website/admin.py index 6624ca2..d3b7b49 100644 --- a/server/website/website/admin.py +++ b/server/website/website/admin.py @@ -15,7 +15,7 @@ from .models import (BackupData, DBMSCatalog, ExecutionTime, MetricData, PipelineData, PipelineRun, Project, Result, Session, Workload, Hardware, SessionKnob) -from .types import VarType +from .types import VarType, WorkloadStatusType class DBMSCatalogAdmin(admin.ModelAdmin): @@ -122,9 +122,20 @@ class PipelineRunAdmin(admin.ModelAdmin): class WorkloadAdmin(admin.ModelAdmin): - list_display = ('name', 'dbms', 'hardware') + list_display = ('name', 'dbms', 'project', 'workload_status') list_filter = (('dbms', admin.RelatedOnlyFieldListFilter), - ('hardware', admin.RelatedOnlyFieldListFilter)) + ('project', admin.RelatedOnlyFieldListFilter)) + + def workload_status(self, instance): # pylint: disable=no-self-use + if instance.status == WorkloadStatusType.MODIFIED: + color = 'red' + elif instance.status == WorkloadStatusType.PROCESSING: + color = 'orange' + else: # instance.status == WorkloadStatusType.PROCESSED + color = 'green' + return format_html('{}'.format( + color, WorkloadStatusType.name(instance.status))) + workload_status.short_description = 'Status' class TaskMetaAdmin(admin.ModelAdmin): diff --git a/server/website/website/migrations/0012_make_workload_status_editable.py b/server/website/website/migrations/0012_make_workload_status_editable.py new file mode 100644 index 0000000..7bb8134 --- /dev/null +++ b/server/website/website/migrations/0012_make_workload_status_editable.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.27 on 2020-04-02 18:37 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('website', '0011_knob_bound_fields'), + ] + + operations = [ + migrations.AlterField( + model_name='workload', + name='status', + field=models.IntegerField(choices=[(1, 'MODIFIED'), (2, 'PROCESSING'), (3, 'PROCESSED')], default=1), + ), + ] diff --git a/server/website/website/models.py b/server/website/website/models.py index 9cefd2c..d5ef652 100644 --- a/server/website/website/models.py +++ b/server/website/website/models.py @@ -394,8 +394,6 @@ class WorkloadManager(models.Manager): class Workload(BaseModel): - # __DEFAULT_FMT = '{db}_{hw}_UNASSIGNED'.format - objects = WorkloadManager() dbms = models.ForeignKey(DBMSCatalog) @@ -403,8 +401,7 @@ class Workload(BaseModel): name = models.CharField(max_length=128, verbose_name='workload name') project = models.ForeignKey(Project) status = models.IntegerField(choices=WorkloadStatusType.choices(), - default=WorkloadStatusType.MODIFIED, - editable=False) + default=WorkloadStatusType.MODIFIED) def delete(self, using=DEFAULT_DB_ALIAS, keep_parents=False): # The results should not have corresponding workloads. @@ -421,20 +418,6 @@ class Workload(BaseModel): class Meta: # pylint: disable=no-init unique_together = ("dbms", "hardware", "name", "project") - # @property - # def isdefault(self): - # return self.cluster_name == self.default - # - # @property - # def default(self): - # return self.__DEFAULT_FMT(db=self.dbms.pk, - # hw=self.hardware.pk) - # - # @staticmethod - # def get_default(dbms_id, hw_id): - # return Workload.__DEFAULT_FMT(db=dbms_id, - # hw=hw_id) - class PipelineRunManager(models.Manager): diff --git a/server/website/website/templates/workload.html b/server/website/website/templates/workload.html index c030747..d6bf89f 100644 --- a/server/website/website/templates/workload.html +++ b/server/website/website/templates/workload.html @@ -9,12 +9,20 @@

{{ labels.title }}

-
{{ labels.dbms }}
- {{ workload.dbms }} +
{{ labels.name }}
+ {{ workload.name }} -
{{ labels.name }}
- {{ workload.name }} +
{{ labels.dbms }}
+ {{ workload.dbms }} + + +
{{ labels.project }}
+ {{ workload.project }} + + +
{{ labels.status }}
+ {{ workload.get_status_display }}