+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)
+ project_notes = models.CharField(max_length=500,blank=True,null=True)
+
+ def __str__(self):
+ return '%s' % (self.project_name)
+
+ def ProjectTasks(self):
+ ptasks = self.tasks.all().order_by('id')
+ surl = 'data analysis server'
+ tstr = '<script>'
+ tstr += 'function togView(eid){'
+ tstr += 'f=document.getElementById(eid);'
+ tstr += 'if(f.height==0){'
+ tstr += 'f.height=400;'
+ tstr += 'f.style.border=\'solid #cccccc 3px\';'
+ tstr += '}else{'
+ tstr += 'f.height=0;'
+ tstr += 'f.style.border=\'none\';'
+ tstr += '}'
+ tstr += '}'
+ tstr += '</script>'
+ tstr += '<table><tr><th>Task</th><th>Job Status</th>'
+ for t in ptasks:
+ tstr += '<tr><td width=250>%s</td><td>%s</td></tr>' % (t.task_name,t.task_status)
+
+ tstr += '</table>'
+ tstr += '<div>'
+ tstr += '<div align=center><a onClick="togView(\'RFrame'+self.id.__str__()+'\');" href="'+surl+self.id.__str__()+'/" title="View Results Page" target="RFrame'+self.id.__str__()+'">VIEW PROJECT RESULTS</a></div>'
+ tstr += '<iframe width="100%" height="0" frameborder="0" style="background-color:#ffffff" name="RFrame'+self.id.__str__()+'" id="RFrame'+self.id.__str__()+'"/></iframe></div>'
+
+ return tstr
+
+ ProjectTasks.allow_tags = True
+
+ class Admin:
+ list_display = ('project_name','ProjectTasks')
+ # list_filter = ('...',)
+ fields = (
+ (None, {
+ 'fields': (('project_name'),('tasks'),('project_notes'))}),
+ )