From 1007385e1fa980d869f10ac1a03c983bdbcbaa8f Mon Sep 17 00:00:00 2001 From: cryptogopher Date: Fri, 24 Apr 2020 16:53:24 +0200 Subject: [PATCH] Added eaten_at to Meal form --- app/helpers/body_trackers_helper.rb | 4 ++++ app/helpers/measurements_helper.rb | 6 +----- app/models/meal.rb | 14 ++++++++++++++ app/models/measurement.rb | 8 ++++++-- app/views/meals/_form.html.erb | 13 ++++++++++++- app/views/measurements/_form.html.erb | 4 ++-- config/locales/en.yml | 1 + 7 files changed, 40 insertions(+), 10 deletions(-) diff --git a/app/helpers/body_trackers_helper.rb b/app/helpers/body_trackers_helper.rb index 6ce9359..8518e65 100644 --- a/app/helpers/body_trackers_helper.rb +++ b/app/helpers/body_trackers_helper.rb @@ -11,6 +11,10 @@ module BodyTrackersHelper end end + def format_time(t) + t.strftime("%R") if t + end + def unit_options @project.units.map do |u| [u.shortname, u.id] diff --git a/app/helpers/measurements_helper.rb b/app/helpers/measurements_helper.rb index 8e1f1b5..724ccdf 100644 --- a/app/helpers/measurements_helper.rb +++ b/app/helpers/measurements_helper.rb @@ -1,14 +1,10 @@ module MeasurementsHelper def format_datetime(m) - m.taken_at.getlocal + m.taken_at .strftime("%F %R (~#{time_ago_in_words(m.taken_at)} ago)") .html_safe end - def format_time(m) - m.taken_at.getlocal.strftime("%R") - end - def toggle_column_options disabled = [] enabled_quantities = @routine.quantities.to_a diff --git a/app/models/meal.rb b/app/models/meal.rb index be1d66d..5ce67f8 100644 --- a/app/models/meal.rb +++ b/app/models/meal.rb @@ -22,6 +22,20 @@ class Meal < ActiveRecord::Base self[:eaten_at].getlocal if self[:eaten_at] end + def eaten_at_date + self.eaten_at + end + def eaten_at_date=(value) + self.eaten_at = Time.parse(value, self.eaten_at) + end + + def eaten_at_time + self.eaten_at + end + def eaten_at_time=(value) + self.eaten_at = Time.parse(value, self.eaten_at) + end + def toggle_eaten! update(eaten_at: self.eaten_at ? nil : DateTime.current) end diff --git a/app/models/measurement.rb b/app/models/measurement.rb index 780a1d1..7eb89ea 100644 --- a/app/models/measurement.rb +++ b/app/models/measurement.rb @@ -32,15 +32,19 @@ class Measurement < ActiveRecord::Base end end + def taken_at + self[:taken_at].getlocal if self[:taken_at] + end + def taken_at_date - self.taken_at.getlocal + self.taken_at end def taken_at_date=(value) self.taken_at = Time.parse(value, self.taken_at) end def taken_at_time - self.taken_at.getlocal + self.taken_at end def taken_at_time=(value) self.taken_at = Time.parse(value, self.taken_at) diff --git a/app/views/meals/_form.html.erb b/app/views/meals/_form.html.erb index 35c9400..84a90a5 100644 --- a/app/views/meals/_form.html.erb +++ b/app/views/meals/_form.html.erb @@ -2,7 +2,18 @@
-

<%= f.text_field :notes, required: false, style: "width: 95%;" %>

+
+
+

+ <%= f.date_field :eaten_at_date, required: false %> + <%= f.time_field :eaten_at_time, value: format_time(@meal.eaten_at), + required: false, label: '' %> +

+
+
+

<%= f.text_field :notes, required: false, style: "width: 95%;" %>

+
+
<% @meal.ingredients.each_with_index do |i, index| %> diff --git a/app/views/measurements/_form.html.erb b/app/views/measurements/_form.html.erb index c830254..dc505c3 100644 --- a/app/views/measurements/_form.html.erb +++ b/app/views/measurements/_form.html.erb @@ -14,8 +14,8 @@

<%= f.date_field :taken_at_date, required: true %> - <%= f.time_field :taken_at_time, value: format_time(@measurement), required: true, - label: '' %> + <%= f.time_field :taken_at_time, value: format_time(@measurement.taken_at), + required: true, label: '' %>

diff --git a/config/locales/en.yml b/config/locales/en.yml index c4c12c0..2e0670d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,6 +1,7 @@ # English strings go here for Rails i18n en: body_trackers_menu_caption: 'Body trackers' + field_eaten_at_date: 'Eaten at' field_ingredients: 'Ingredients' field_measurement_routine: 'Routine' field_readouts: 'Readouts'