readonly fields, wip
diff --git a/planetstack/core/xoslib/static/js/xoslib/xos-backbone.js b/planetstack/core/xoslib/static/js/xoslib/xos-backbone.js
index f24bcbc..f02aed8 100644
--- a/planetstack/core/xoslib/static/js/xoslib/xos-backbone.js
+++ b/planetstack/core/xoslib/static/js/xoslib/xos-backbone.js
@@ -320,13 +320,9 @@
             attrs.addFields = attrs.detailFields;
         }
 
-        if (!attrs.inputType) {
-            attrs.inputType = {};
-        }
-
-        if (!attrs.foreignFields) {
-            attrs.foreignFields = {};
-        }
+        attrs.inputType = attrs.inputType || {};
+        attrs.foreignFields = attrs.foreignFields || {};
+        attrs.readOnlyFields = attrs.readOnlyFields || [];
 
         if (!attrs.collectionName) {
             attrs.collectionName = modelName + "s";
@@ -342,7 +338,7 @@
                 modelAttrs[key] = value;
                 collectionAttrs[key] = value;
             }
-            if ($.inArray(key, ["validate", "preSave"])) {
+            if ($.inArray(key, ["validate", "preSave", "readOnlyFields"])) {
                 modelAttrs[key] = value;
             }
         }
diff --git a/planetstack/core/xoslib/static/js/xoslib/xosHelper.js b/planetstack/core/xoslib/static/js/xoslib/xosHelper.js
index 3205598..9e69aa7 100644
--- a/planetstack/core/xoslib/static/js/xoslib/xosHelper.js
+++ b/planetstack/core/xoslib/static/js/xoslib/xosHelper.js
@@ -142,6 +142,7 @@
             console.log(parent_id);
             model = new xos[collection_name].model();
             model.attributes[parent_fieldName] = parent_id;
+            model.readOnlyFields.push(parent_fieldName);
             console.log(model);
             detailViewClass = app[addChildName];
             var detailView = new detailViewClass({model: model, collection:xos[collection_name]});
@@ -672,10 +673,16 @@
    fieldName = name of field within models of collection that will be displayed
 */
 
-idToSelect = function(variable, selectedId, collectionName, fieldName) {
-    result = '<select name="' + variable + '">' +
+idToSelect = function(variable, selectedId, collectionName, fieldName, readOnly) {
+    if (readOnly) {
+        readOnly = " readonly";
+    } else {
+        readOnly = "";
+    }
+    result = '<select name="' + variable + '"' + readOnly + '>' +
              idToOptions(selectedId, collectionName, fieldName) +
              '</select>';
+    console.log(result);
     return result;
 }
 
diff --git a/planetstack/core/xoslib/templates/xosAdmin.html b/planetstack/core/xoslib/templates/xosAdmin.html
index a222889..3848fc0 100644
--- a/planetstack/core/xoslib/templates/xosAdmin.html
+++ b/planetstack/core/xoslib/templates/xosAdmin.html
@@ -89,7 +89,9 @@
 </script>
 
 <script type="text/template" id="xos-list-footer-template">
-    <a href="<%= addChildHash %>">Add...</a>
+    <% if (addChildHash) { %>
+        <a href="<%= addChildHash %>">Add...</a>
+    <% } %>
 </script>
 
 <script type="text/template" id="xos-delete-button-template">
@@ -106,12 +108,13 @@
   <table>

   <% _.each(addFields, function(fieldName) { %>

      <tr><td><%= fieldNameToHumanReadable(fieldName) %>:</td>

+        <% readOnly = $.inArray(fieldName, model.readOnlyFields)>=0 ? " readonly" : "";  console.log(fieldName + " " + readOnly); console.log(model.readOnlyFields); %>

         <% if (fieldName in foreignFields) { %>

-            <td><%= idToSelect(fieldName, model.attributes[fieldName], foreignFields[fieldName], "humanReadableName") %></td>

+            <td><%= idToSelect(fieldName, model.attributes[fieldName], foreignFields[fieldName], "humanReadableName", readOnly) %></td>

         <% } else if (inputType[fieldName] == "checkbox") { %>

-            <td><input type="checkbox" name="<%= fieldName %>" <% if (model.attributes[fieldName]) print("checked"); %>></td>

+            <td><input type="checkbox" name="<%= fieldName %>" <% if (model.attributes[fieldName]) print("checked"); %><%= readOnly %>></td>

         <% } else { %>

-            <td><input type="text" name="<%= fieldName %>" value="<%= model.attributes[fieldName] %>"></td>

+            <td><input type="text" name="<%= fieldName %>" value="<%= model.attributes[fieldName] %>"<%= readOnly %>></td>

         <% } %>

      </tr>

   <% }); %>

@@ -121,7 +124,7 @@
 </script>
 
 <script type="text/template" id="xos-detail-template">
-  <h3 class="xos-detail-title">Add Object: <%= modelName %></h3>
+  <h3 class="xos-detail-title">Edit Object: <%= modelName %></h3>
   <form>
   <table>

   <% console.log(model); _.each(detailFields, function(fieldName) { %>

@@ -622,3 +625,4 @@
 xosDeleteButtonTemplate = _.template($("#xos-delete-button-template").html());
 xosDetailLinkTemplate = _.template($("#xos-detail-link-template").html());
 </script>
+