<div class="panel panel-part part">
  <div class="panel-heading js-sort-handle">
    <h4 class="panel-title">
      <a class="js-part-toggle" data-toggle="collapse" data-parent="#parts" href="#<%= f.object.slug || 'untitled-part' %>">
        <i class="glyphicon glyphicon-chevron-down pull-left add-right-margin"></i>
        <span class="js-part-title"><%= f.object.title.present? ? f.object.title : 'Untitled part' %></span>
      </a>
    </h4>
  </div>
  <div id="<%= f.object.slug || 'untitled-part' %>" class="js-part-toggle-target panel-collapse collapse in" aria-expanded="true">
    <div class="panel-body">
      <fieldset class="inputs">
        <div class="form-group" id="edition_parts_title_input">
          <span class="form-label">
            <%= f.label :title %><abbr title="required">*</abbr>
          </span>
          <span class="form-wrapper">
            <%= f.text_field :title, disabled: @resource.locked_for_edits?, class: "title form-control" %>
          </span>
          <%= form_errors(f.object.errors[:title]) %>
        </div>

        <%
          slug_input_html = { class: 'slug form-control', disabled: !editable }
          if @resource.version_number == 1
            slug_input_html['data-accepts-generated-value'] = true
          end
        %>

        <div class="form-group" id="edition_parts_slug_input">
          <span class="form-label">
            <%= f.label :slug %><abbr title="required">*</abbr>
          </span>
          <span class="form-wrapper">
            <%= f.text_field :slug, slug_input_html %>
            <span class="help-block">
              for example, title-of-part (no spaces, apostrophes or acronyms)
            </span>
          </span>
          <%= form_errors(f.object.errors[:slug]) %>
        </div>

        <div class="form-group">
          <span class="form-label">
            <%= f.label :body %><abbr title="required">*</abbr>
          </span>
          <span class="form-wrapper">
            <%= f.text_area :body, rows: 25, disabled: @resource.locked_for_edits?, class: "title form-control" %>
          </span>
        </div>

        <%= f.hidden_field :order, class: 'order', disabled: !editable %>

        <% unless @resource.locked_for_edits? %>
          <%= f.link_to_remove class: 'btn btn-default btn-sm' do %>
            <i class="glyphicon glyphicon-remove glyphicon-smaller-than-text"></i> Remove this part
          <% end %>
        <% end %>
      </fieldset>
    </div>
  </div>
</div>

<%= form_group(f, :body) do %>
  <%= f.text_area :body, rows: 25, disabled: @resource.locked_for_edits?, class: "input-md-7 form-control" %>
<% end %>

Update the Part view partial to display only Part attributes
Update the Part view partial to display only Part attributes

We now have a view partial that displays the attributes common to both
Parts and Variants. 

This common partial in turn renders either the Part or Variant specific
partial. So, the Part partial only needs to render attributes that are
specific to Parts.
