Updated inventory to support display of inventory items based on uuid/barcode_id...
authorBrandon King <kingb@caltech.edu>
Mon, 6 Jul 2009 22:12:53 +0000 (22:12 +0000)
committerBrandon King <kingb@caltech.edu>
Mon, 6 Jul 2009 22:12:53 +0000 (22:12 +0000)
htsworkflow/frontend/fixtures/bcmagic.xml
htsworkflow/frontend/inventory/urls.py
htsworkflow/frontend/inventory/views.py
htsworkflow/frontend/templates/inventory/inventory_summary.html

index 59dd041c2394edffe26c94194105c09c9c5615be..cd9fb97571ef8eae2bb55d71484bb16e27f6a4f6 100644 (file)
     <field name="regex" type="CharField">(?P&lt;search&gt;[\S\s]+)</field>
     <field name="url_template" type="TextField">http://www.flickr.com/search/?q={{ search }}</field>
   </object>
+  <object model="bcmagic.keywordmap" pk="6">
+    <field name="keyword" type="CharField">invu</field>
+    <field name="regex" type="CharField">(?P&lt;uuid&gt;[A-Fa-f0-9]+)</field>
+    <field name="url_template" type="TextField">/inventory/{{ uuid }}/</field>
+  </object>
+  <object model="bcmagic.keywordmap" pk="7">
+    <field name="keyword" type="CharField">invb</field>
+    <field name="regex" type="CharField">(?P&lt;barcode_id&gt;.+)</field>
+    <field name="url_template" type="TextField">/inventory/{{barcode_id}}/</field>
+  </object>
 </django-objects>
index 4331cb770582130e218ad3451519359dc40f310c..49ede616e44a0ecce7f25ca5a4242cb4d9e48589 100644 (file)
@@ -7,7 +7,8 @@ urlpatterns = patterns('',
      (r'^lts/link/(?P<flowcell>.+)/(?P<serial>.+)/$', 'htsworkflow.frontend.inventory.views.link_flowcell_and_device'),
      
     # INDEX
-    (r'^(?P<uuid>[a-fA-F0-9]{32})/$', 'htsworkflow.frontend.inventory.views.item_summary'),
+    (r'^(?P<uuid>[a-fA-F0-9]{32})/$', 'htsworkflow.frontend.inventory.views.item_summary_by_uuid'),
     (r'^(?P<uuid>[a-fA-F0-9]{32})/print/$', 'htsworkflow.frontend.inventory.views.item_print'),
+    (r'^(?P<barcode_id>.+)/$', 'htsworkflow.frontend.inventory.views.item_summary_by_barcode'),
     (r'^$', 'htsworkflow.frontend.inventory.views.index')
     )
index 7049320c9f79b5fd7adbc0ca4d6dbe3856dc97be..65040a1e10dbabd35dc565b78066c0dac36465d2 100644 (file)
@@ -90,15 +90,31 @@ def index(request):
                               context_dict,
                               context_instance=RequestContext(request))
     
+
 @login_required
-def item_summary(request, uuid, msg=''):
+def item_summary_by_barcode(request, barcode_id, msg=''):
     """
-    Display a summary for an item
+    Display a summary for an item by barcode
     """
     try:
-        item = Item.objects.get(uuid=uuid)
+        item = Item.objects.get(barcode_id=barcode_id)
     except ObjectDoesNotExist, e:
         item = None
+        
+    return item_summary_by_uuid(request, None, msg, item)
+    
+
+@login_required
+def item_summary_by_uuid(request, uuid, msg='', item=None):
+    """
+    Display a summary for an item
+    """
+    # Use item instead of looking it up if it is passed.
+    if item is None:
+        try:
+            item = Item.objects.get(uuid=uuid)
+        except ObjectDoesNotExist, e:
+            item = None
     
     context_dict = {
         'page_name': 'Item Summary',
@@ -149,7 +165,7 @@ def item_print(request, uuid):
     if item is not None:
         msg = _item_print(item, request)
     
-    return item_summary(request, uuid, msg)
+    return item_summary_by_uuid(request, uuid, msg)
 
 
 def link_flowcell_and_device(request, flowcell, serial):
index 5112c215201fb59be46939173d5e79f4c08d1f32..00cb6bd8473f57508e66581bc213d9a54fa0ca25 100644 (file)
@@ -2,10 +2,42 @@
 
 {% block content %}
 {% if item %}
-        <h3>Item: {{item.uuid}}</h3>
-        <a href="{% url htsworkflow.frontend.inventory.views.index %}{{item.uuid}}/print/">Print</a>
-        
-        
+        <h2>Item Summary:</h2>
+        <a href="{% url htsworkflow.frontend.inventory.views.index %}{{item.uuid}}/print/">Print</a><br />
+        <br />
+        <b>UUID:</b> {{item.uuid}}<br />
+        <b>Barcode ID:</b> {{ item.barcode_id }}<br />
+        <b>Type:</b> {{ item.item_type.name }}<br />
+        <br />
+        <b>Location:</b> {{ item.location.name }}<br />
+        <b>Status: </b> {% if item.status %}{{ item.status.name }}{% else %}N/A{% endif %}<br />
+        <br />
+        {% if item.item_info.model_id %}
+        <b>Model ID:</b> {{ item.item_info.model_id }}<br />
+        {% endif %}
+        {% if item.item_info.part_number %}
+        <b>Part Number:</b> {{ item.item_info.part_number }}<br />
+        {% endif %}
+        {% if item.item_info.lot_number %}
+        <b>Lot Number:</b> {{ item.item_info.lot_number }}<br />
+        {% endif %}
+        <br />
+        {% if item.item_info.url %}
+        <b>Item Website:</b> <a href="{{ item.item_info.url }}">Link</a><br />
+        {% endif %}
+        <b>Vendor:</b> {% if item.item_info.vendor.url %}<a href="{{ item.item_info.vendor.url }}">{% endif %}{{ item.item_info.vendor.name }}{% if item.item_info.vendor.url %}</a>{% endif %}<br />
+        <b>Purchase Date:</b>{% if item.item_info.purchase_date %}{{ item.item_info.purchase_date }}{% else %}N/A{% endif %}<br />
+        <b>Warenty (Months):</b>{% if item.item_info.warenty_months %}{{item.item_info.warenty_months}}{% else %}N/A{% endif %}<br />
+        <br />
+        <b>Item Info Notes:</b>
+        <p>
+                {% if item.item_info.notes %}{{ item.item_info.notes }}{% else %}No notes found{% endif %}
+        </p>
+        <br />
+        <b>Item Specific Notes:</b>
+        <p>
+                {% if item.notes %}{{ item.notes }}{% else %}No notes found{% endif %}
+        </p>
         
 {% else %}
         <h3>Item with UUID of {{ uuid }} not found.</h3>