From 698c97539b236e934078a1c930db6fd34abbdf62 Mon Sep 17 00:00:00 2001 From: Jeferson Lesbao de Siqueira Date: Fri, 18 Aug 2017 19:03:40 -0300 Subject: [PATCH 1/2] creating email weekly digest base --- emails/user_digest.moon | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 emails/user_digest.moon diff --git a/emails/user_digest.moon b/emails/user_digest.moon new file mode 100644 index 0000000..0733081 --- /dev/null +++ b/emails/user_digest.moon @@ -0,0 +1,6 @@ + +class UserDigest extends require "emails.base" + subject: => "LuaRocks Digest" + content: => + h2 "Hello #{@user\name_for_display!}, here is your weekly digest from LuaRocks, enjoy!" + From f911a24345e0d998b26e1386962ce33d951f0f2a Mon Sep 17 00:00:00 2001 From: Jeferson Siqueira Date: Mon, 21 Aug 2017 18:10:36 -0300 Subject: [PATCH 2/2] adds the most followed/starred modules in the past week to the weekly digest --- applications/user.moon | 22 ++++++++++++++++++++++ emails/user_digest.moon | 6 +++++- widgets/weekly_favorite_modules.moon | 5 +++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 widgets/weekly_favorite_modules.moon diff --git a/applications/user.moon b/applications/user.moon index efeb62a..fcbf053 100644 --- a/applications/user.moon +++ b/applications/user.moon @@ -374,3 +374,25 @@ class MoonRocksUser extends lapis.Application @flow("followings")\unfollow_object unfollowed_user, "subscription" redirect_to: @url_for unfollowed_user + + [weekly_digest: "/users/weekly_digest"]: require_login capture_errors_404 => + import Modules from require "models" + + weekly_favorites_followings_query = db.query "select object_id, count(*) from followings + where object_type = 1 and created_at >= current_date - interval '7' day + group by object_id order by count(*) desc limit 5" + + @weekly_favorites = {} + + for following in *weekly_favorites_followings_query + table.insert @weekly_favorites, Modules\find following.object_id + + Users\include_in @weekly_favorites, "user_id" + +-- render: true + + UserDigest = require "emails.user_digest" + UserDigest\send @, @current_user.email, { + current_user: @current_user, + weekly_favorites: @weekly_favorites + } diff --git a/emails/user_digest.moon b/emails/user_digest.moon index 0733081..d0efc14 100644 --- a/emails/user_digest.moon +++ b/emails/user_digest.moon @@ -1,6 +1,10 @@ +WeeklyFavoriteModules = require "widgets.base" class UserDigest extends require "emails.base" subject: => "LuaRocks Digest" content: => - h2 "Hello #{@user\name_for_display!}, here is your weekly digest from LuaRocks, enjoy!" + h2 "Hello #{@current_user\name_for_display!}, here is your weekly digest from LuaRocks, enjoy!" + + p "The more popular modules from this week!" + WeeklyFavoriteModules weekly_favorites: @weekly_favorites diff --git a/widgets/weekly_favorite_modules.moon b/widgets/weekly_favorite_modules.moon new file mode 100644 index 0000000..e25524d --- /dev/null +++ b/widgets/weekly_favorite_modules.moon @@ -0,0 +1,5 @@ +class WeeklyFavoriteModules extends require "widgets.page" + inner_content: => + p "The more popular modules from this week!" + @render_modules @weekly_favorites +