Made admin/newsletter page with list of subscribers

This commit is contained in:
Skud
2013-08-27 21:49:54 +10:00
parent 30bb877537
commit 16f4e153f2
7 changed files with 51 additions and 0 deletions

View File

@@ -5,4 +5,12 @@ class AdminController < ApplicationController
format.html # index.html.haml
end
end
def newsletter
authorize! :manage, :all
@members = Member.confirmed.wants_newsletter.all
respond_to do |format|
format.html # index.html.haml
end
end
end

View File

@@ -7,6 +7,7 @@
%li= link_to "Products", products_path
%li= link_to "Roles", roles_path
%li= link_to "Forums", forums_path
%li= link_to "Newsletter subscribers", admin_newsletter_path
%h2 Orders

View File

@@ -0,0 +1,6 @@
-content_for :title, 'Newsletter subscribers'
%p
- @members.each do |m|
= m.email
%br/

View File

@@ -117,6 +117,7 @@ Growstuff::Application.routes.draw do
match '/admin/orders' => 'admin/orders#index'
match '/admin/orders/:action' => 'admin/orders#:action'
match '/admin' => 'admin#index'
match '/admin/newsletter' => 'admin#newsletter', :as => :admin_newsletter
match '/admin/:action' => 'admin#:action'
end

View File

@@ -2,4 +2,19 @@ require 'spec_helper'
describe AdminController do
login_member(:admin_member)
describe "GET admin/newsletter" do
it 'fetches the admin newsletter page' do
get :newsletter
response.should be_success
response.should render_template("admin/newsletter")
end
it 'assigns @members' do
m = FactoryGirl.create(:newsletter_recipient_member)
get :newsletter
assigns(:members).should eq [m]
end
end
end

View File

@@ -14,4 +14,8 @@ describe 'admin/index.html.haml', :type => "view" do
assert_select "a", :href => roles_path
assert_select "a", :href => forums_path
end
it "has a link to newsletter subscribers" do
rendered.should contain "Newsletter subscribers"
end
end

View File

@@ -0,0 +1,16 @@
require 'spec_helper'
describe 'admin/newsletter.html.haml', :type => "view" do
before(:each) do
@member = FactoryGirl.create(:admin_member)
sign_in @member
controller.stub(:current_user) { @member }
@subscriber = FactoryGirl.create(:newsletter_recipient_member)
assign(:members, [@subscriber])
render
end
it "lists newsletter subscribers by email" do
rendered.should contain @subscriber.email
end
end