better error message for tenant sanity check
diff --git a/planetstack/core/xoslib/dashboards/xosTenant.html b/planetstack/core/xoslib/dashboards/xosTenant.html
index 141e3ee..f988305 100644
--- a/planetstack/core/xoslib/dashboards/xosTenant.html
+++ b/planetstack/core/xoslib/dashboards/xosTenant.html
@@ -41,6 +41,25 @@
   </tr>
 </script>
 
+<script type="text/template" id="tenant-sanity-check">
+    Tenant view sanity check failed:
+       <ul>
+       <% for (index in errors) { %>
+           <li><%= errors[index] %></li>
+       <% } %>
+       </ul>
+       Steps to correct issues in the tenant view:
+       <ol>
+       <li>Make sure that the tenant view is linked to at least one deployment. You
+           may find the list of dashboard views at <a href="/admin/core/dashboardview/">here</a>.
+           Deployments currently attached to the tenant view are: <%= blessed_deployment_names.join(",") %>
+           </li>
+       <li>Make sure that at least one Image and one Flavor is attached to a tenant view deployment.</li>
+       <li>Make sure at least one Site is attached to a tenant view deployment.</li>
+       <li>Make sure at least one of the Sites has one or more nodes attached to it.</li>
+       </ol>
+</script>
+
 <script type="text/template" id="tenant-edit-users">
     <%= xosPickerTemplate({pickedItems: model.usersBuffer,
                           unpickedItems: array_subtract(xos.tenant().current_user_site_users, model.usersBuffer),
diff --git a/planetstack/core/xoslib/static/js/xosTenant.js b/planetstack/core/xoslib/static/js/xosTenant.js
index cd2b079..0c89a1e 100644
--- a/planetstack/core/xoslib/static/js/xosTenant.js
+++ b/planetstack/core/xoslib/static/js/xosTenant.js
@@ -415,10 +415,8 @@
     }

 

     if (errors.length > 0) {

-         $("#tenantSummary").html("Tenant view sanity check failed: <blockquote>" + errors.join("<br>") + "</blockquote>" +

-                "Usually errors in the Tenant view imply that nodes, sites, or " +

-                "images need to be added to a Deployment. The Deployment(s) that " +

-                "the tenant view is hardcoded to use are " +  xos.tenant().blessed_deployment_names.join(",") + ".");

+         t = templateFromId("#tenant-sanity-check")

+         $("#tenantSummary").html( t({errors: errors, blessed_deployment_names: xos.tenant().blessed_deployment_names}) );

          return false;

     }