Added a dropdown status field to flowcell table
authorLorian Schaeffer <lorian@caltech.edu>
Fri, 21 Mar 2008 20:54:19 +0000 (20:54 +0000)
committerLorian Schaeffer <lorian@caltech.edu>
Fri, 21 Mar 2008 20:54:19 +0000 (20:54 +0000)
gaworkflow/frontend/fctracker/models.py
gaworkflow/frontend/fctracker/views.py
gaworkflow/frontend/urls.py

index 2e6a314a6c66e9990a3d92fd7bc93a075010155d..06082be9b6144bb25a4086ec34c78cfa3bb7866f 100644 (file)
@@ -31,7 +31,6 @@ class Person(models.Model):
   
   def __str__(self):
     return '%s (%s lab)' % (self.name, self.lab)
-
   
   class Meta:
     verbose_name_plural = "people"
@@ -70,7 +69,7 @@ class Library(models.Model):
   amplified_from_sample = models.ForeignKey('self', blank=True, null=True)
   library_size = models.IntegerField(default=225, blank=True, null=True)
   
-  undiluted_concentration = models.DecimalField("Undiluted concentration (ng/ul)", max_digits=5, decimal_places=2, blank=True, null=True)
+  undiluted_concentration = models.DecimalField("Undiluted concentration (ng/ul)", max_digits=5, decimal_places=2, default=0)
   successful_pM = models.DecimalField(max_digits=5, decimal_places=2, blank=True, null=True)
   
   notes = models.TextField(blank=True)
@@ -109,6 +108,16 @@ class FlowCell(models.Model):
   advanced_run = models.BooleanField(default=False)
   read_length = models.IntegerField(default=32)
   
+  
+  FLOWCELL_STATUSES = (
+      ('No', 'Not run'),
+      ('F', 'Failed'),
+      ('Del', 'Data deleted'),
+      ('A', 'Data available'),
+      ('In', 'In progress'),
+    )
+  flowcell_status = models.CharField(max_length=10, choices=FLOWCELL_STATUSES)
+  
   lane_1_library = models.ForeignKey(Library, related_name="lane_1_library")
   lane_2_library = models.ForeignKey(Library, related_name="lane_2_library")
   lane_3_library = models.ForeignKey(Library, related_name="lane_3_library")
@@ -157,11 +166,11 @@ class FlowCell(models.Model):
     save_as = True
     save_on_top = True
     search_fields = ['flowcell_id', 'lane_1_library__library_id', 'lane_1_library__library_name', 'lane_2_library__library_id', 'lane_2_library__library_name', 'lane_3_library__library_id', 'lane_3_library__library_name', 'lane_4_library__library_id', 'lane_4_library__library_name', 'lane_5_library__library_id', 'lane_5_library__library_name', 'lane_6_library__library_id', 'lane_6_library__library_name', 'lane_7_library__library_id', 'lane_7_library__library_name', 'lane_8_library__library_id', 'lane_8_library__library_name']
-    list_display = ('run_date', 'flowcell_id', 'lane_1_library', 'lane_2_library', 'lane_3_library', 'lane_4_library', 'lane_5_library', 'lane_6_library', 'lane_7_library', 'lane_8_library')
+    list_display = ('run_date', 'flowcell_status', 'flowcell_id', 'lane_1_library', 'lane_2_library', 'lane_3_library', 'lane_4_library', 'lane_5_library', 'lane_6_library', 'lane_7_library', 'lane_8_library')
     list_display_links = ('run_date', 'flowcell_id', 'lane_1_library', 'lane_2_library', 'lane_3_library', 'lane_4_library', 'lane_5_library', 'lane_6_library', 'lane_7_library', 'lane_8_library')
     fields = (
         (None, {
-            'fields': ('run_date', 'flowcell_id', ('read_length', 'advanced_run'),)
+            'fields': ('run_date', ('flowcell_id', 'flowcell_status'), ('read_length', 'advanced_run'),)
         }),
         ('Lanes:', {
             'fields' : (('lane_1_library', 'lane_1_pM'), ('lane_2_library', 'lane_2_pM'), ('lane_3_library', 'lane_3_pM'), ('lane_4_library', 'lane_4_pM'), ('lane_5_library', 'lane_5_pM'), ('lane_6_library', 'lane_6_pM'), ('lane_7_library', 'lane_7_pM'), ('lane_8_library', 'lane_8_pM'),)
index 60f00ef0ef347811e7b0c0921b7fda097acd9fcc..c50a0be1fca14e2efe39cad61db626a44091595d 100644 (file)
@@ -1 +1,13 @@
 # Create your views here.
+from django.http import HttpResponse
+from django.shortcuts import get_list_or_404
+from gaworkflow.frontend.fctracker.models import Library, Person
+
+def labindex(request):
+       return HttpResponse("Testing this page")
+
+def labdetail(request, lab_name):
+       members = get_list_or_404(Person, lab=lab_name)
+       lab_libraries = Library.objects.filter(made_for__in=members)
+       output = ', '.join([q.library_name for q in lab_libraries])
+       return HttpResponse(output)
index 0c6701524a390c6aaa98f4dd1bed848f40f372fe..da3c44f05d047911054951c4a5540f6178df53e5 100644 (file)
@@ -13,4 +13,8 @@ urlpatterns = patterns('',
      (r'^admin/', include('django.contrib.admin.urls')),
     # Databrowser:
      (r'^databrowse/(.*)', databrowse.site.root),
+    # List of labs with read-only access:
+     (r'^lab/$', 'gaworkflow.frontend.fctracker.views.labindex'),
+    # Lab-specific access:
+     (r'^lab/(\w+)/$', 'gaworkflow.frontend.fctracker.views.labdetail'),
 )