Merge branch 'add-condition'
authorDiane Trout <diane@caltech.edu>
Thu, 26 May 2011 17:47:24 +0000 (10:47 -0700)
committerDiane Trout <diane@caltech.edu>
Thu, 26 May 2011 17:47:24 +0000 (10:47 -0700)
Conflicts:
htsworkflow/frontend/templates/samples/library_detail.html

Resolve differences between the headers of library_detail for
adding RDFa and reordering the sample details.

htsworkflow/frontend/samples/admin.py
htsworkflow/frontend/samples/models.py
htsworkflow/frontend/templates/samples/library_detail.html

index 6db3ba831e59cb88d0fe397ae470e7e802156892..4247c88b68d7998771a1adad4c04d28d24587d28 100644 (file)
@@ -47,11 +47,11 @@ class AntibodyOptions(admin.ModelAdmin):
      )
 
 class CelllineOptions(admin.ModelAdmin):
-    list_display = ('cellline_name', 'nickname', 'notes')
+    list_display = ('cellline_name', 'notes')
     search_fields = ('cellline_name', 'nickname', 'notes')
     fieldsets = (
       (None, {
-          'fields': (('cellline_name'),('notes'),)
+          'fields': (('cellline_name','nickname',),('notes'),)
       }),
      )
 
@@ -129,9 +129,16 @@ class LibraryOptions(admin.ModelAdmin):
       (None, {
         'fields': (
           ('id','library_name','hidden'),
-          ('library_species', 'cell_line', 'replicate'),
-          ('library_type', 'experiment_type'))
+          ('library_species', 'library_type', 'experiment_type'),
+          )
          }),
+         ('Experiment Detail:', {
+            'fields': (('cell_line', 'replicate',),
+                       ('condition',),
+                       ('antibody', ),
+                       ),
+            'classes': ('collapse',),
+            }),
          ('Creation Information:', {
              'fields' : (('made_by', 'creation_date', 'stopping_point'), 
                          ('amplified_from_sample'), 
@@ -221,9 +228,9 @@ class TagOptions(admin.ModelAdmin):
 
 admin.site.register(Library, LibraryOptions)
 admin.site.register(Affiliation, AffiliationOptions)
-#admin.site.register(Antibody, AntibodyOptions)
+admin.site.register(Antibody, AntibodyOptions)
 admin.site.register(Cellline, CelllineOptions)
-#admin.site.register(Condition, ConditionOptions)
+admin.site.register(Condition, ConditionOptions)
 admin.site.register(ExperimentType, ExperimentTypeOptions)
 #admin.site.register(HTSUser, HTSUserOptions)
 admin.site.register(LibraryType, LibraryTypeOptions)
index aac0ff6692686440e0943dabeed75b095d2d9b44..e49d23b16e98cde532377ae7ab08d24bfb7bb7f1 100644 (file)
@@ -19,8 +19,7 @@ class Antibody(models.Model):
         max_length=20,
         blank=True,
         null=True, 
-        db_index=True,
-        verbose_name = 'Short Name'
+        db_index=True
     )
     catalog = models.CharField(max_length=50, unique=True, db_index=True)
     antibodies = models.CharField(max_length=500, db_index=True)
@@ -38,8 +37,8 @@ class Cellline(models.Model):
     nickname = models.CharField(max_length=20,
         blank=True,
         null=True, 
-        db_index=True,
-        verbose_name = 'Short Name')
+        db_index=True)
+    
     notes = models.TextField(blank=True)
     def __unicode__(self):
         return unicode(self.cellline_name)
@@ -152,7 +151,7 @@ class Library(models.Model):
   # New field Aug/19/08
   # SQL to add column: alter table fctracker_library add column "replicate" smallint unsigned NULL;
   REPLICATE_NUM = ((1,1),(2,2),(3,3),(4,4))
-  replicate =  models.PositiveSmallIntegerField(choices=REPLICATE_NUM,default=1
+  replicate =  models.PositiveSmallIntegerField(choices=REPLICATE_NUM,blank=True,null=True
   experiment_type = models.ForeignKey(ExperimentType)
   library_type = models.ForeignKey(LibraryType, blank=True, null=True)
   creation_date = models.DateField(blank=True, null=True)
@@ -202,7 +201,7 @@ class Library(models.Model):
       ordering = ["-id"]
   
   def antibody_name(self):
-    str ='<a target=_self href="/admin/samples/antibody/'+self.antibody.id.__str__()+'/" title="'+self.antibody.__str__()+'">'+self.antibody.nickname+'</a>' 
+    str ='<a target=_self href="/admin/samples/antibody/'+self.antibody.id.__str__()+'/" title="'+self.antibody.__str__()+'">'+self.antibody.label+'</a>' 
     return str
   antibody_name.allow_tags = True
 
index 35baefc8c043f96122cff7a719c4cffcbf6d4a1f..2c2d90bf793acfb87e34d4be28997444e86705f6 100644 (file)
     {% block additional_javascript %}
     {% endblock %}
 
+<style type="text/css">
+  /* <![CDATA[ */
+  div#librarydetail {
+    margin: 0;
+    padding: 0;
+  }
+  div#librarydetail table, div#librarydetail td {
+    border-style: solid;
+  }
+  div#librarydetail table {
+    border-width: 0 0 1px 1px;
+    border-spacing: 0;
+    border-collapse: collapse;
+  }
+  div#librarydetail td {
+    margin: 0;
+    padding: 3px;
+    border-width: 1px 1px 0 0;
+  }
+  div#librarydetail thead {
+    text-align: center;
+    }
+  div#librarydetail tbody {
+    text-align: right;
+  }
+  div#librarydetail h1,
+  div#librarydetail h2
+  {
+    font-size: 150%;
+  }
+
+  div#librarydetail h3 {
+     font-size: 125%;
+     margin: 0;
+  }
+
+  div#librarydetail h4,
+  div#librarydetail h5,
+  div#librarydetail ul,
+  div#librarydetail ol,
+  div#librarydetail li
+  {
+    list-style: none;
+    margin: 0;   
+  }
+
+  div#librarydetail ul,
+  div#librarydetail ol
+  {
+    margin-bottom: .5em;
+  }
+
+  div.library_identity { 
+    float: left; margin: 5px; }
+  div.library_sample_detail { float: left; margin: 5px; }
+  div.library_library_detail { float: left; margin: 5px; }
+  div.library_statistics { clear: both; border: 1px; }
+ /* ]]> */
+</style>
 {% endblock %}
 
 {% block content %}
-<div id="library_detail">
-  <h2>About this library</h2>
-  <b>Library ID</b>: {{ lib.id }}<br/>
-  <b>Name</b>: 
-    <span property="libns:name">{{ lib.library_name }}</span>
-  <br/>
-  <b>Species</b>: 
-    <a href="{{lib.library_species.get_absolute_url}}" rel="libns:species">
-    <span property="libns:species_name">{{ lib.library_species.scientific_name }}</span></a>
-  <br/>
-  <b>Concentration</b>: 
-    <span property="libns:concentration">{{ lib.undiluted_concentration }} ng/µl</span>
-  <br/>
-  <b>Gel Cut Size</b>: 
-    <span property="libns:gel_cut">{{ lib.gel_cut_size }}</span>
-  <br/>
-  <b>Insert Size</b>: 
-    <span property="libns:insert_size">{{ lib.insert_size }}</span>
-  <br/>
-  <b>Background or Cell Line</b>:
-     <span property="libns:cell_line">{{ lib.cell_line }}</span>
-  <br/>
-  <b>Replicate</b>: 
-     <span property="libns:replicate">{{ lib.replicate }}</span>
-  <br/>
-  <b>Library Type</b>:
-     <span property="libns:library_type">{{ lib.library_type }}</span>
-  <br/>
-  <b>Experiment Type</b>:
-     <span property="libns:experiment_type">{{ lib.experiment_type }}</span>
-  <br/>
-  <b>Made By</b>: 
-    <span property="libns:made_by">{{ lib.made_by }}</span>
-  <br/>
-  <b>Creation Date</b>
-    <span property="libns:date" content="{{lib.creation_date|date:'Y-m-d'}}T00:00:00" datatype="xsd:dateTime">{{ lib.creation_date }}</span>
-  <br/> 
-  <b>Protocol Stopping Point</b>
-    <span property="libns:stopping_point">{{ lib.stopping_point_name }}</span>
-  <br/> 
-  <b>Affiliations</b>:
-  <ul>
-    {% for individual in lib.affiliations.all %}
-      <li property="libns:affliation" content="{{individual.name}}">
-        {{ individual.name }} ( {{ individual.contact }} )
-      </li>
-    {% endfor %}
-  </ul>
-  <div class="htswdetail">
+<div id="librarydetail">
+  <div class="library_identity">
+    <h2>Library Name</h2>  
+    <b>Library ID</b>: {{ lib.id }}<br/>
+    <b>Name</b>: 
+      <span property="libns:name">{{ lib.library_name }}</span>
+    <br/>
+    <b>Affiliations</b>:
+    <ul>
+      {% for individual in lib.affiliations.all %}
+        <li property="libns:affliation" content="{{individual.name}}">
+          {{ individual.name }} ( {{ individual.contact }} )
+        </li>
+      {% endfor %}
+    </ul>
+  </div>
+  <div class="library_sample_detail">
+    <h2>Sample Details</h2>
+    <b>Species</b>: 
+      <span property="libns:species">{{ lib.library_species.scientific_name }}</span>
+    <br/>
+    <b>Experiment Type</b>:
+       <span property="libns:experiment_type">{{ lib.experiment_type }}</span>
+    <br/>
+    {% if lib.antibody %}
+    <b>Antibody</b>:
+       <span property="libns:antibody">{{ lib.antibody.antibodies }}</span>
+       {% if lib.antibody.antibodies.nuckname %}
+       (<span property="libns:antibody_term">{{ lib.antibody.nickname }}</span>)
+       {% endif %}
+    <br/>
+    {% endif %}
+    {% if lib.cell_line %}
+    <b>Background or Cell Line</b>:
+       <span property="libns:cell_line">{{ lib.cell_line }}</span>
+    <br/>
+    {% endif %}
+    {% if lib.condition %}
+    <b>Condition</b>:
+       <span property="libns:condition">{{ lib.condition.condition_name }}</span>
+       {% if lib.condition.nickname %}
+       (<span property="libns:condition_term">{{ lib.condition.nickname }}</span>)
+       {% endif %}
+    <br/>
+    {% endif %}
+    {% if lib.replicate %}
+    <b>Replicate</b>: 
+       <span property="libns:replicate">{{ lib.replicate }}</span>
+    <br/>
+    {% endif %}
+  </div>
+  <div class="library_library_detail">
+    <h2>Library Details</h2>
+    <b>Library Type</b>:
+       <span property="libns:library_type">{{ lib.library_type }}</span>
+    <br/>
+    <b>Creation Date</b>
+      <span property="libns:date" content="{{lib.creation_date|date:'Y-m-d'}}T00:00:00" datatype="xsd:dateTime">{{ lib.creation_date }}</span>
+    <br/> 
+    <b>Made By</b>: 
+      <span property="libns:made_by">{{ lib.made_by }}</span>
+    <br/>
+    {% if lib.gel_cut_size %}
+    <b>Gel Cut Size</b>: 
+      <span property="libns:gel_cut">{{ lib.gel_cut_size }}</span>
+    <br/>
+    {% endif %}
+    {% if lib.insert_size %}
+    <b>Insert Size</b>: 
+      <span property="libns:insert_size">{{ lib.insert_size }}</span>
+    <br/>
+    {% endif %}
+    {% if lib.undiluted_concentration %}
+    <b>Concentration</b>: 
+      <span property="libns:concentration">{{ lib.undiluted_concentration }} ng/µl</span>
+    <br/>
+    {% endif %}
+    {% if lib.stopping_point_name %}
+    <b>Protocol Stopping Point</b>
+      <span property="libns:stopping_point">{{ lib.stopping_point_name }}</span>
+    <br/>
+    {% endif %}
+  </div>
+  <div class="library_statistics">
   <h2>Raw Result Files</h2>
   <table>
   <thead>