about summary refs log tree commit diff
path: root/uploader/templates/populations/create-population.html
diff options
context:
space:
mode:
Diffstat (limited to 'uploader/templates/populations/create-population.html')
-rw-r--r--uploader/templates/populations/create-population.html269
1 files changed, 269 insertions, 0 deletions
diff --git a/uploader/templates/populations/create-population.html b/uploader/templates/populations/create-population.html
new file mode 100644
index 0000000..007b6bf
--- /dev/null
+++ b/uploader/templates/populations/create-population.html
@@ -0,0 +1,269 @@
+{%extends "populations/base.html"%}
+{%from "flash_messages.html" import flash_all_messages%}
+{%from "species/macro-select-species.html" import select_species_form%}
+{%from "species/macro-display-species-card.html" import display_species_card%}
+
+{%block title%}Create Population{%endblock%}
+
+{%block pagetitle%}Create Population{%endblock%}
+
+{%block lvl3_breadcrumbs%}
+<li {%if activelink=="create-population"%}
+    class="breadcrumb-item active"
+    {%else%}
+    class="breadcrumb-item"
+    {%endif%}>
+  <a href="{{url_for('species.populations.create_population',
+           species_id=species.SpeciesId)}}">create population</a>
+</li>
+{%endblock%}
+
+
+{%block contents%}
+<div class="row">
+  <p>The population is the next hierarchical node under Species. Data is grouped under a specific population, under a particular species.</p>
+  <p>
+    This page enables you to create a new population, in the case that you
+    cannot find the population you want in the
+    <a
+      href="{{url_for('species.populations.list_species_populations',
+            species_id=species.SpeciesId)}}"
+      title="Population for species '{{species.FullName}}'.">
+      list of species populations
+    </a>
+  </p>
+</div>
+
+<div class="row">
+  <form method="POST"
+        action="{{url_for('species.populations.create_population',
+                species_id=species.SpeciesId,
+                return_to=return_to)}}">
+
+    <legend>Create Population</legend>
+
+    {{flash_all_messages()}}
+
+    <input type="hidden" name="return_to" value="{{return_to}}">
+
+    <div {%if errors.population_fullname%}
+         class="form-group has-error"
+         {%else%}
+         class="form-group"
+         {%endif%}>
+      <label for="txt-population-fullname" class="form-label">Full Name</label>
+      {%if errors.population_fullname%}
+      <small class="form-text text-danger">{{errors.population_fullname}}</small>
+      {%endif%}
+      <input type="text"
+             id="txt-population-fullname"
+             name="population_fullname"
+             required="required"
+             minLength="3"
+             maxLength="100"
+             value="{{error_values.population_fullname or ''}}"
+             class="form-control" />
+      <small class="form-text text-muted">
+        <p>
+          This is a descriptive name for your population &mdash; useful for
+          humans.
+        </p>
+      </small>
+    </div>
+
+    <div {%if errors.population_name%}
+         class="form-group has-error"
+         {%else%}
+         class="form-group"
+         {%endif%}>
+      <label for="txt-population-name" class="form-label">Name</label>
+      {%if errors.population_name%}
+      <small class="form-text text-danger">{{errors.population_name}}</small>
+      {%endif%}
+      <input type="text"
+             id="txt-population-name"
+             name="population_name"
+             required="required"
+             minLength="3"
+             maxLength="30"
+             value="{{error_values.population_name or ''}}"
+             class="form-control" />
+      <small class="form-text text-muted">
+        <p>
+          This is a short representative, but constrained name for your
+          population.
+          <br />
+          The field will only accept letters ('A-Za-z'), numbers (0-9), hyphens
+          and underscores. Any other character will cause the name to be
+          rejected.
+        </p>
+      </small>
+    </div>
+
+    <div class="form-group">
+      <label for="txt-population-code" class="form-label">Population Code</label>
+      <input type="text"
+             id="txt-population-code"
+             name="population_code"
+             maxLength="5"
+             minLength="3"
+             value="{{error_values.population_code or ''}}"
+             class="form-control" />
+      <small class="form-text text-muted">
+        <p class="form-text text-muted">
+          This is a 3-character code for your population, that is prepended to
+          the phenotype identifiers. e.g. For the "BXD Family" population, the
+          code is "BXD" and therefore, the phenotype identifiers for the
+          population look like the following examples: <em>BXD_10148</em>,
+          <em>BXD_10180</em>, <em>BXD_10197</em>, etc.
+        </p>
+      </small>
+    </div>
+
+    <div {%if errors.population_description%}
+         class="form-group has-error"
+         {%else%}
+         class="form-group"
+         {%endif%}>
+      <label for="txt-population-description" class="form-label">
+        Description
+      </label>
+      {%if errors.population_description%}
+      <small class="form-text text-danger">{{errors.population_description}}</small>
+      {%endif%}
+      <textarea
+        id="txt-population-description"
+        name="population_description"
+        required="required"
+        class="form-control"
+        rows="5">{{error_values.population_description or ''}}</textarea>
+      <small class="form-text text-muted">
+        <p>
+          This is a more detailed description for your population. This is
+          useful to communicate with other researchers some details regarding
+          your population, and what its about.
+          <br />
+          Put, here, anything that describes your population but does not go
+          cleanly under metadata.
+        </p>
+      </small>
+    </div>
+
+    <div {%if errors.population_family%}
+         class="form-group has-error"
+         {%else%}
+         class="form-group"
+         {%endif%}>
+      <label for="txt-population-family" class="form-label">Family</label>
+      <input type="text"
+             id="txt-population-family"
+             name="population_family"
+             class="form-control"
+             list="families-list" />
+      <datalist id="families-list">
+        {%for family in families%}
+        <option value="{{family}}">{{family}}</option>
+        {%endfor%}
+      </datalist>
+      <small class="form-text text-muted">
+        <p>
+          This is <strong>optional</strong> metadata. It is used to group
+          populations into "families" for presentation in the menus.
+          {%if families | length > 0%}
+          Examples of currently existing families are:
+          <ul>
+            {%for family in families[0:7]%}
+            <li>{{family}}</li>
+            {%endfor%}
+            <li>etc.</li>
+          </ul>
+          {%endif%}
+
+          You can
+          {%if families|length>0%} select from existing families, or {%endif%}
+          create a new family by typing in the input box above. You can also
+          leave the family blank.</p>
+      </small>
+    </div>
+
+    <div {%if errors.population_mapping_method_id%}
+         class="form-group has-error"
+         {%else%}
+         class="form-group"
+         {%endif%}>
+      <label for="select-population-mapping-methods"
+             class="form-label">Mapping Methods</label>
+
+      <select id="select-population-mapping-methods"
+              name="population_mapping_method_id"
+              class="form-control"
+              required="required">
+        <option value="">Select appropriate mapping methods</option>
+        {%for mmethod in mapping_methods%}
+        <option value="{{mmethod.id}}"
+                {%if error_values.population_mapping_method_id == mmethod.id%}
+                selected="selected"
+                {%endif%}>{{mmethod.value}}</option>
+        {%endfor%}
+      </select>
+
+      <small class="form-text text-muted">
+        <p>Select the mapping methods that your population will support.</p>
+      </small>
+    </div>
+
+    <div {%if errors.population_genetic_type%}
+         class="form-group has-error"
+         {%else%}
+         class="form-group"
+         {%endif%}>
+      <label for="select-population-genetic-type"
+             class="form-label">Genetic Type</label>
+      <select id="select-population-genetic-type"
+              name="population_genetic_type"
+              class="form-control">
+        <option value="">Select proper genetic type</option>
+        {%for gtype in genetic_types%}
+        <option value="{{gtype}}"
+                {%if error_values.population_genetic_type == gtype%}
+                selected="selected"
+                {%endif%}>{{gtype}}</option>
+        {%endfor%}
+      </select>
+      <small class="form-text text-muted text-danger">
+        <p>
+          <span class="glyphicon glyphicon-exclamation-sign"></span>
+          This might be a poorly named field.
+        </p>
+        <p>
+          It probably has more to do with the mating crosses/crossings used to
+          produce the individuals in the population. I am no biologist, however,
+          and I'm leaving this here to remind myself to confirm this.
+        </p>
+        <p>
+          I still don't know what riset is.<br />
+          … probably something to do with Recombinant Inbred Strains
+        </p>
+        <p>
+          Possible resources for this:
+          <ul>
+            <li>https://www.informatics.jax.org/silver/chapters/3-2.shtml</li>
+            <li>https://www.informatics.jax.org/silver/chapters/9-2.shtml</li>
+          </ul>
+        </p>
+      </small>
+    </div>
+
+    <div class="form-group">
+      <input type="submit"
+             value="create population"
+             class="btn btn-primary"  />
+    </div>
+
+  </form>
+</div>
+{%endblock%}
+
+{%block sidebarcontents%}
+{{display_species_card(species)}}
+{%endblock%}