From 9ad5a05914d44a101424fae5880759a116261028 Mon Sep 17 00:00:00 2001 From: Christoph Haas Date: Tue, 23 Aug 2016 19:00:39 +0200 Subject: [PATCH] Showing newest and most wanted package on home page --- app/controllers/welcome_controller.rb | 6 ++- app/models/screenshot.rb | 8 +++ app/views/welcome/home.slim | 72 +++++++++++++-------------- 3 files changed, 48 insertions(+), 38 deletions(-) diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb index a7b3474..38af1ba 100644 --- a/app/controllers/welcome_controller.rb +++ b/app/controllers/welcome_controller.rb @@ -1,12 +1,14 @@ class WelcomeController < ApplicationController def home - # TODO: Use the package with the actual newest uploaded screenshot - @newest_uploaded_package = Package.with_screenshots.first + # TODO: Only approved screenshots! + @newest_upload = Screenshot.newest_upload # TODO: Use the actually most popular package and not just a random one @most_popular_package = Package.with_screenshots.first @package_count = Package.count + + @most_wanted = Package.without_screenshots_most_visits.first end def about diff --git a/app/models/screenshot.rb b/app/models/screenshot.rb index 21f1a01..5cad301 100644 --- a/app/models/screenshot.rb +++ b/app/models/screenshot.rb @@ -100,4 +100,12 @@ class Screenshot < ActiveRecord::Base self.approved = true self.save! end + + def self.newest_upload + self.order(updated_at: :desc).first + end + + def self.approved + self.find_by(approved: true) + end end diff --git a/app/views/welcome/home.slim b/app/views/welcome/home.slim index 1fc65ab..4922e70 100644 --- a/app/views/welcome/home.slim +++ b/app/views/welcome/home.slim @@ -22,40 +22,40 @@ div.small-3.columns input.button.postfix type="submit" value="Search" -/ div.row -/ hr +div.row + hr -/ div.row -/ div.large-4.medium-12.small-12.columns.text-center -/ h2 Newest upload -/ // TODO: load actual newest upload and cache it -/ // TODO: link to the package page -/ a.black href=package_path(@newest_uploaded_package.name) -/ img src=@newest_uploaded_package.screenshots.first.image.url(:large, timestamp: false) -/ p -/ strong -/ =@newest_uploaded_package.name -/ ' : -/ ' -/ =@newest_uploaded_package.description -/ div.large-4.medium-12.small-12.columns.text-center -/ h2 Most popular -/ // TODO: load actual most popular package and highest-rated screenshot and cache it -/ // TODO: link to the package page -/ a.black href=package_path(@most_popular_package.name) -/ img src=@most_popular_package.screenshots.first.image.url(:large, timestamp: false) -/ p -/ strong -/ =@most_popular_package.name -/ ' : -/ ' -/ =@most_popular_package.description -/ div.large-4.medium-12.small-12.columns.text-center -/ h2 Your help needed -/ // TODO: load actual most popular package without a screenshot and cache it -/ a href=upload_package_by_name_path('firefox') -/ img src="/images/dummy/no-screenshots-upload-one.svg" width="80%" -/ p -/ ' We lack a screenshot for the Firefox package. Can you -/ a href=upload_package_by_name_path('firefox') provide one -/ ' ? +div.row + div.large-4.medium-12.small-12.columns.text-center + h2 Newest upload + // TODO: load actual newest upload and cache it + // TODO: link to the package page + a.black href=package_path(@newest_upload.package.name) + = image_tag(@newest_upload.image.url(:large, timestamp: false), alt: @newest_upload.caption) + p + strong + =@newest_upload.package.name + ' : + ' + =@newest_upload.package.description + div.large-4.medium-12.small-12.columns.text-center + h2 Most popular + // TODO: load actual most popular package and highest-rated screenshot and cache it + // TODO: link to the package page + a.black href=package_path(@most_popular_package.name) + img src=@most_popular_package.screenshots.first.image.url(:large, timestamp: false) + p + strong + =@most_popular_package.name + ' : + ' + =@most_popular_package.description + div.large-4.medium-12.small-12.columns.text-center + h2 Your help needed + // TODO: load actual most popular package without a screenshot and cache it + a href=upload_package_by_name_path('firefox') + img src="/images/dummy/no-screenshots-upload-one.svg" width="80%" + p + ' We lack a screenshot for the Firefox package. Can you + a href=upload_package_by_name_path('firefox') provide one + ' ?