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'),
('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())
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):
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);'
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>'
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'))}),
- )