diff --git a/app/models/serializers/content_serializer.rb b/app/models/serializers/content_serializer.rb index 5f5c9926..23bac722 100644 --- a/app/models/serializers/content_serializer.rb +++ b/app/models/serializers/content_serializer.rb @@ -90,6 +90,20 @@ class ContentSerializer } } } + + # Do a little number crunching + self.data[:categories].each do |category| + completed_fields = category[:fields].select { |field| field[:value].present? }.count.to_f + total_fields = category[:fields].count + + if total_fields.zero? + category[:percent_complete] = nil + else + category[:percent_complete] = (completed_fields / total_fields * 100).round + end + end + + self.data end def value_for(attribute_field, content) diff --git a/app/views/content/display/_sidelinks.html.erb b/app/views/content/display/_sidelinks.html.erb index c663518a..90e588dd 100644 --- a/app/views/content/display/_sidelinks.html.erb +++ b/app/views/content/display/_sidelinks.html.erb @@ -9,7 +9,7 @@ <% if creating || editing %> diff --git a/app/views/content/display/sidebar/_categories.html.erb b/app/views/content/display/sidebar/_categories.html.erb index 6574d6e4..cf0dcf90 100644 --- a/app/views/content/display/sidebar/_categories.html.erb +++ b/app/views/content/display/sidebar/_categories.html.erb @@ -45,8 +45,14 @@ _panel" class="<%= 'red-text' if category[:label] == 'Overview' %>"> <%= category[:icon] %> <%= category[:label].capitalize.presence || '(blank)' %> - <% if editing %> - <%= rand(100) %>% + <% if editing && category[:percent_complete].present? %> + + <% if category[:percent_complete] == 100 %> + check + <% else %> + <%= category[:percent_complete] %>% + <% end %> + <% end %>