Turn the library_id back into the primary key for samples_library (SCHEMA CHANGE!)
[htsworkflow.git] / htsworkflow / frontend / analysis / models.py
index 4b1c72d1d0b1faa9af538a622f0e69ab3dafc3be..41ecf424bc2d29902ce076e55bafad0feefbb792 100644 (file)
@@ -1,12 +1,13 @@
 from django.db import models
 from datetime import datetime
+from htsworkflow.frontend import settings
 from htsworkflow.frontend.samples.models import Library 
 from string import *
 
 class Task(models.Model):
   task_name = models.CharField(max_length=50,unique=True, db_index=True)
-  subject1 = models.ForeignKey(Library,related_name='sbj1_library',verbose_name="Subject")
-  subject2 = models.ForeignKey(Library,related_name='sbj2_library',verbose_name="Subject 2 / Control",blank=True,null=True)
+  subject1 = models.ForeignKey(Library,related_name='sbj1_library',verbose_name="Subject1 (Signal/Hpa2)")
+  subject2 = models.ForeignKey(Library,related_name='sbj2_library',verbose_name="Subject2 (Control/Msp1)",blank=True,null=True)
   CALCS = (
       ('QuEST', 'QuEST Peak Calling'),
       ('WingPeaks', 'Wing Peak Calling'),
@@ -14,10 +15,12 @@ class Task(models.Model):
       ('qPCR', 'In Silico qPCR'),
       ('CompareLibs', 'Compare Libaraies'),
       ('ComparePeakCalls','Compare Peak Calls'),
-      ('ProfileReads','Profile Reads')
+      ('ProfileReads','Profile Reads'),
+      ('Methylseq','Methylseq'),
     )
   apply_calc = models.CharField(max_length=50,choices=CALCS,verbose_name='Applied Calculation')
   ## userid = # logged in user
+  task_params = models.CharField(max_length=200,blank=True,null=True,default="")
   task_status = models.CharField(max_length=500,blank=True,null=True,default='defined')
   results_location = models.CharField(max_length=2000,blank=True,null=True) 
   submitted_on = models.DateTimeField(default=datetime.now())
@@ -35,24 +38,9 @@ class Task(models.Model):
         pstr += '%s, ' % (p.project_name) 
       return pstr
 
-  class Admin:
-    list_display = ('task_name','apply_calc','subject1','subject2','InProjects','submitted_on','task_status')
-    list_filter = ('apply_calc',)
-    search_fields = ['task_name','id','=subject1__library_id','=subject2__library_id']
-    fields = (
-        (None, {
-          'fields': (('task_name'),('apply_calc'),('subject1'),('subject2'))
-           }),
-          ('system fields', {
-             'classes': 'collapse',
-           'fields': (('submitted_on'),('task_status','run_note'))
-          }),
-        )
-    
-    
 class Project(models.Model):
     project_name = models.CharField(max_length=50,unique=True, db_index=True)
-    tasks = models.ManyToManyField(Task,related_name='project_tasks',null=True,filter_interface=models.HORIZONTAL)
+    tasks = models.ManyToManyField(Task,related_name='project_tasks',null=True
     project_notes = models.CharField(max_length=500,blank=True,null=True)
     
     def __str__(self):
@@ -60,7 +48,7 @@ class Project(models.Model):
 
     def ProjectTasks(self):
       ptasks = self.tasks.all().order_by('id')
-      surl = 'http://m304-apple-server.stanford.edu/projects/' 
+      surl = settings.TASKS_PROJS_SERVER+'/projects/'
       tstr = '<script>'
       tstr += 'function togView(eid){'
       tstr += 'f=document.getElementById(eid);'
@@ -79,7 +67,11 @@ class Project(models.Model):
       tstr += '<table><tr><th>Tasks</th><th>Job Status</th>'
       isregistered = False
       for t in ptasks:
-        tstr += '<tr><td width=250>%s</td><td>%s</td></tr>'  % (t.task_name,replace(t.task_status,'Complete','<span style="color:green;font-weight:bolder">Complete</span>'))
+        taskdesc = t.task_name+'<div style="font-size:80%">Details: '+t.apply_calc+' on '+t.subject1.id
+        if t.subject2 is not None:
+          taskdesc += ' and '+t.subject2.id
+        taskdesc += ' (TaskId:'+t.id.__str__()+')'
+        tstr += '<tr><td width=250>%s</td><td>%s</td></tr>'  % (taskdesc,replace(t.task_status,'Complete','<span style="color:green;font-weight:bolder">Complete</span>'))
         if t.task_status != 'defined': isregistered = True
 
       tstr += '</table>'
@@ -107,11 +99,3 @@ class Project(models.Model):
 
     ProjTitle.allow_tags = True
 
-    class Admin:
-      list_display = ('ProjTitle','ProjectTasks')
-      list_filter = ()
-      search_fields = ['project_name','=tasks__subject1__library_id','=tasks__subject2__library_id','tasks__subject1__library_name','tasks__subject2__library_name','project_notes']
-      fields = (
-        (None, {
-          'fields': (('project_name'),('tasks'),('project_notes'))}),
-        )