From dc7cf107c26fdb92d87dcfe50dfe86edf88e8e87 Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Mon, 1 Feb 2021 21:53:18 +0100 Subject: [PATCH 1/2] New admin page for invitations --- app/assets/stylesheets/admin.scss | 2 ++ .../admin/invitations_controller.rb | 6 +++++ app/views/admin/invitations/index.html.erb | 25 +++++++++++++++++++ app/views/shared/_admin_nav.html.erb | 4 +++ config/routes.rb | 1 + 5 files changed, 38 insertions(+) create mode 100644 app/controllers/admin/invitations_controller.rb create mode 100644 app/views/admin/invitations/index.html.erb diff --git a/app/assets/stylesheets/admin.scss b/app/assets/stylesheets/admin.scss index 6013c66..8e5f53b 100644 --- a/app/assets/stylesheets/admin.scss +++ b/app/assets/stylesheets/admin.scss @@ -10,6 +10,8 @@ body#admin-panel { #main-nav { ul { + grid-template-columns: repeat(4, 1fr); + li { a { &.active { diff --git a/app/controllers/admin/invitations_controller.rb b/app/controllers/admin/invitations_controller.rb new file mode 100644 index 0000000..00f963f --- /dev/null +++ b/app/controllers/admin/invitations_controller.rb @@ -0,0 +1,6 @@ +class Admin::InvitationsController < Admin::BaseController + def index + @current_section = :invitations + @invitations_used = Invitation.used.order('used_at desc') + end +end diff --git a/app/views/admin/invitations/index.html.erb b/app/views/admin/invitations/index.html.erb new file mode 100644 index 0000000..0246c02 --- /dev/null +++ b/app/views/admin/invitations/index.html.erb @@ -0,0 +1,25 @@ +
+

Invitations

+ + <% if @invitations_used.any? %> +

Accepted (<%= @invitations_used.length %>)

+ + + + + + + + + + <% @invitations_used.each do |invitation| %> + + + + + + <% end %> + +
TokenAcceptedInvited user
<%= invitation.token %><%= invitation.used_at.strftime("%Y-%m-%d") %><%= User.find(invitation.invited_user_id).address %>
+ <% end %> +
diff --git a/app/views/shared/_admin_nav.html.erb b/app/views/shared/_admin_nav.html.erb index c907b60..c1ca550 100644 --- a/app/views/shared/_admin_nav.html.erb +++ b/app/views/shared/_admin_nav.html.erb @@ -5,6 +5,10 @@ <%= link_to "Dashboard", admin_root_path, class: @current_section == :dashboard ? "active" : nil %> +
  • + <%= link_to "Invitations", admin_invitations_path, + class: @current_section == :invitations ? "active" : nil %> +
  • <%= link_to "Donations", admin_donations_path, class: @current_section == :donations ? "active" : nil %> diff --git a/config/routes.rb b/config/routes.rb index 89f8b2f..ae5bdc1 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -18,6 +18,7 @@ Rails.application.routes.draw do namespace :admin do root to: 'dashboard#index' + get 'invitations', to: 'invitations#index' get 'ldap_users', to: 'ldap_users#index' resources :donations end From 0110f27ada2ad230d86a56098ae9ba5af5ff0a9c Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Mon, 1 Feb 2021 22:34:52 +0100 Subject: [PATCH 2/2] Add invitation stats Show some stats about unused invitations and active inviters --- app/assets/stylesheets/layout.scss | 5 ----- app/controllers/admin/invitations_controller.rb | 2 ++ app/views/admin/invitations/index.html.erb | 15 +++++++++++---- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss index cf4267b..5208499 100644 --- a/app/assets/stylesheets/layout.scss +++ b/app/assets/stylesheets/layout.scss @@ -119,12 +119,7 @@ main { } section { - padding-bottom: 3rem; margin-bottom: 3rem; - - &:not(:last-of-type) { - border-bottom: 1px dotted #ccc; - } } table { diff --git a/app/controllers/admin/invitations_controller.rb b/app/controllers/admin/invitations_controller.rb index 00f963f..7bfa7be 100644 --- a/app/controllers/admin/invitations_controller.rb +++ b/app/controllers/admin/invitations_controller.rb @@ -1,6 +1,8 @@ class Admin::InvitationsController < Admin::BaseController def index @current_section = :invitations + @invitations_unused_count = Invitation.unused.count + @users_with_referrals_count = Invitation.used.distinct.count(:user_id) @invitations_used = Invitation.used.order('used_at desc') end end diff --git a/app/views/admin/invitations/index.html.erb b/app/views/admin/invitations/index.html.erb index 0246c02..fa2e981 100644 --- a/app/views/admin/invitations/index.html.erb +++ b/app/views/admin/invitations/index.html.erb @@ -1,7 +1,14 @@

    Invitations

    - - <% if @invitations_used.any? %> +

    + There are currently <%= @invitations_unused_count %> + unused invitations available to existing users. + <%= @users_with_referrals_count %> users have successfully + invited new users. +

    +
    +<% if @invitations_used.any? %> +

    Accepted (<%= @invitations_used.length %>)

    @@ -21,5 +28,5 @@ <% end %>
    - <% end %> -
    + +<% end %>