From a69afd87e7368d56f3ce70e07628797905014804 Mon Sep 17 00:00:00 2001 From: Meir Taffel Date: Mon, 22 Jan 2018 10:07:01 +0000 Subject: [PATCH 1/3] Add date_taken to photos --- CONTRIBUTORS.md | 1 + app/controllers/plantings_controller.rb | 2 +- app/models/photo.rb | 3 ++- db/migrate/20180118112809_add_datetaken_to_photos.rb | 5 +++++ db/schema.rb | 3 ++- 5 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 db/migrate/20180118112809_add_datetaken_to_photos.rb diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index f984400ae..568137391 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -82,6 +82,7 @@ submit the change with your pull request. - Harry Brodsky / [hbrodsk1](https://github.com/hbrodsk1) - Jeff Kingswood / [ancyentmariner](https://github.com/ancyentmariner) - Logan Gingerich / [logangingerich](https://github.com/logangingerich) +- Mark Taffman / [mftaff](https://github.com/mftaff) ## Bots diff --git a/app/controllers/plantings_controller.rb b/app/controllers/plantings_controller.rb index 0853b897a..f50083213 100644 --- a/app/controllers/plantings_controller.rb +++ b/app/controllers/plantings_controller.rb @@ -31,7 +31,7 @@ class PlantingsController < ApplicationController @planting = Planting.includes(:owner, :crop, :garden, :photos) .friendly .find(params[:id]) - @photos = @planting.photos.order(created_at: :desc).includes(:owner).paginate(page: params[:page]) + @photos = @planting.photos.order(date_taken: :desc).includes(:owner).paginate(page: params[:page]) respond_with @planting end diff --git a/app/models/photo.rb b/app/models/photo.rb index 5800ec6f9..a73d28825 100644 --- a/app/models/photo.rb +++ b/app/models/photo.rb @@ -27,7 +27,8 @@ class Photo < ActiveRecord::Base license_url: license.url, thumbnail_url: FlickRaw.url_q(info), fullsize_url: FlickRaw.url_z(info), - link_url: FlickRaw.url_photopage(info) + link_url: FlickRaw.url_photopage(info), + date_taken: info.dates.taken } end diff --git a/db/migrate/20180118112809_add_datetaken_to_photos.rb b/db/migrate/20180118112809_add_datetaken_to_photos.rb new file mode 100644 index 000000000..42afaf23b --- /dev/null +++ b/db/migrate/20180118112809_add_datetaken_to_photos.rb @@ -0,0 +1,5 @@ +class AddDatetakenToPhotos < ActiveRecord::Migration + def change + add_column :photos, :date_taken, :datetime + end +end diff --git a/db/schema.rb b/db/schema.rb index 473e756fa..be74dabfc 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20171129041341) do +ActiveRecord::Schema.define(version: 20180118112809) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -405,6 +405,7 @@ ActiveRecord::Schema.define(version: 20171129041341) do t.string "license_url" t.string "link_url", null: false t.string "flickr_photo_id" + t.datetime "date_taken" end create_table "photos_plantings", id: false, force: :cascade do |t| From 88da0da616093a85299e5e3b745cfef49fa2cbf7 Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Mon, 5 Feb 2018 11:49:39 +1300 Subject: [PATCH 2/3] Re-fetches from flickr --- app/controllers/photos_controller.rb | 2 +- app/models/photo.rb | 6 +++++- db/migrate/20180118112809_add_datetaken_to_photos.rb | 5 +++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/controllers/photos_controller.rb b/app/controllers/photos_controller.rb index 2866c1549..57b10e5d8 100644 --- a/app/controllers/photos_controller.rb +++ b/app/controllers/photos_controller.rb @@ -88,7 +88,7 @@ class PhotosController < ApplicationController photo = Photo.find_by(flickr_photo_id: flickr_photo_id_param) photo ||= Photo.new(photo_params) photo.owner_id = current_member.id - photo.set_flickr_metadata + photo.set_flickr_metadata! photo end diff --git a/app/models/photo.rb b/app/models/photo.rb index a73d28825..07531672b 100644 --- a/app/models/photo.rb +++ b/app/models/photo.rb @@ -50,7 +50,11 @@ class Photo < ActiveRecord::Base end end - def set_flickr_metadata + def set_flickr_metadata! update_attributes(flickr_metadata) end + + def to_s + "#{title} by #{owner.login_name}" + end end diff --git a/db/migrate/20180118112809_add_datetaken_to_photos.rb b/db/migrate/20180118112809_add_datetaken_to_photos.rb index 42afaf23b..48fb49e51 100644 --- a/db/migrate/20180118112809_add_datetaken_to_photos.rb +++ b/db/migrate/20180118112809_add_datetaken_to_photos.rb @@ -1,5 +1,10 @@ class AddDatetakenToPhotos < ActiveRecord::Migration def change add_column :photos, :date_taken, :datetime + # Fetch from flickr, the photos updated the longest ago will be fetched first + Photo.all.order(:updated_at).each do |photo| + say "Fetch flickr data for #{photo}" + photo.set_flickr_metadata! + end end end From 5cda14f87a4c1a4f5b516f0cff0702be76a8a18f Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Mon, 5 Feb 2018 12:26:36 +1300 Subject: [PATCH 3/3] Don't update flickr meta data on db rollback --- db/migrate/20180118112809_add_datetaken_to_photos.rb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/db/migrate/20180118112809_add_datetaken_to_photos.rb b/db/migrate/20180118112809_add_datetaken_to_photos.rb index 48fb49e51..b8cb09118 100644 --- a/db/migrate/20180118112809_add_datetaken_to_photos.rb +++ b/db/migrate/20180118112809_add_datetaken_to_photos.rb @@ -1,6 +1,16 @@ class AddDatetakenToPhotos < ActiveRecord::Migration - def change + def up add_column :photos, :date_taken, :datetime + update_flickr_metadata + end + + def down + add_column :photos, :date_taken + end + + private + + def update_flickr_metadata # Fetch from flickr, the photos updated the longest ago will be fetched first Photo.all.order(:updated_at).each do |photo| say "Fetch flickr data for #{photo}"