hatchy 0.0.5.pre → 0.0.6.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +68 -0
- data/app/assets/javascripts/hatchy/admin.js +7 -0
- data/app/controllers/hatchy/admin/projects_controller.rb +58 -0
- data/app/controllers/hatchy/admin/users_controller.rb +47 -0
- data/app/controllers/hatchy/projects_controller.rb +1 -1
- data/app/controllers/hatchy/users_controller.rb +1 -1
- data/app/datatables/hatchy/contributions_datatable.rb +68 -0
- data/app/datatables/hatchy/projects_datatable.rb +71 -0
- data/app/datatables/hatchy/users_datatable.rb +70 -0
- data/app/models/concerns/hatchy/project_states.rb +4 -5
- data/app/models/hatchy/project.rb +1 -1
- data/app/views/hatchy/admin/projects/_about.html.haml +8 -0
- data/app/views/hatchy/admin/projects/_basic_info.html.haml +55 -0
- data/app/views/hatchy/admin/projects/_project_account.html.haml +34 -0
- data/app/views/hatchy/admin/projects/index.html.haml +25 -0
- data/app/views/hatchy/admin/projects/show.html.haml +22 -0
- data/app/views/hatchy/admin/users/_basic_info.html.haml +54 -0
- data/app/views/hatchy/admin/users/_contributions.html.haml +25 -0
- data/app/views/hatchy/admin/users/_projects.html.haml +31 -0
- data/app/views/hatchy/admin/users/index.html.haml +24 -0
- data/app/views/hatchy/admin/users/show.html.haml +20 -0
- data/lib/generators/hatchy/install_generator.rb +24 -0
- data/lib/generators/templates/hatchy.rb +4 -0
- data/lib/hatchy.rb +8 -0
- data/lib/hatchy/version.rb +1 -1
- data/lib/tasks/hatchy_tasks.rake +11 -1
- data/spec/controllers/hatchy/admin/projects_controller_spec.rb +7 -0
- data/spec/controllers/hatchy/admin/users_controller_spec.rb +7 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/log/development.log +40926 -0
- data/spec/dummy/public/uploads/hatchy/project/project_img/2/Kickstarter-games.jpg +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/69d0e5fd934e4f651c4126e0e7c8994f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/7cba22a2cfc1f0a02bf5fa3a0e4e5a27 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8e08251664adb259d48c3ff9019fb9cf +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/adf03687ee42f87002445c1096069d64 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/bde5827fcb5ae18fd1ca1c57386417be +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c37311498380e52a91dbfc2c96425eac +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d11f4f73ecc91eb895ed1a2da31f13ba +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d41f33e5d0faf16d0549d1a45aef4f06 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/fb4485de1e413169e29fd17a5549b7d5 +0 -0
- metadata +52 -3
- data/lib/hatchy/setup_generator.rb +0 -10
@@ -48,7 +48,7 @@ module Hatchy::ProjectStates
|
|
48
48
|
|
49
49
|
def push_to_trash
|
50
50
|
if self.status == "draft" or self.status == "rejected" or self.status == "analysis"
|
51
|
-
self.status = "
|
51
|
+
self.status = "trash"
|
52
52
|
else
|
53
53
|
self.errors[:status] << "Project must be in draft, rejected or analysis first to be deleted"
|
54
54
|
end
|
@@ -147,10 +147,9 @@ module Hatchy::ProjectStates
|
|
147
147
|
account_attributes:[
|
148
148
|
:account, :account_digit, :account_type,
|
149
149
|
:address_city, :address_number, :address_state,
|
150
|
-
:address_street,:address_zip, :
|
151
|
-
:
|
152
|
-
:
|
153
|
-
:project_id
|
150
|
+
:address_street,:address_zip, :bank_id,
|
151
|
+
:email, :owner_document, :owner_name,
|
152
|
+
:phone, :project_id
|
154
153
|
]
|
155
154
|
]
|
156
155
|
end
|
@@ -16,7 +16,7 @@ module Hatchy
|
|
16
16
|
validates :name, presence: true, uniqueness: true
|
17
17
|
|
18
18
|
scope :recommended, -> { where(recommended: true, status:'online') }
|
19
|
-
scope :recent, -> { where(online_date: 5.days.ago.. Time.current) }
|
19
|
+
scope :recent, -> { where(online_date: 5.days.ago.. Time.current, status:'online') }
|
20
20
|
scope :online_category, -> (category_id) {where("status='online' AND category_id= ?", category_id)}
|
21
21
|
|
22
22
|
def video
|
@@ -0,0 +1,55 @@
|
|
1
|
+
%table.table.table-condensed.table-striped
|
2
|
+
%tr
|
3
|
+
%th Owner
|
4
|
+
%td= link_to @project.user.full_name, @project.user
|
5
|
+
%th Status
|
6
|
+
%td
|
7
|
+
.dropup
|
8
|
+
%button.btn.btn-default.dropdown-toggle{data:{toggle:"dropdown"}}
|
9
|
+
= @project.status
|
10
|
+
%span.caret
|
11
|
+
%ul.dropdown-menu
|
12
|
+
%li= link_to "send to approved", send_to_approved_admin_project_path, method: :put
|
13
|
+
%li= link_to "push to online", push_to_online_admin_project_path, method: :put
|
14
|
+
%li= link_to "send to rejected", send_to_rejected_admin_project_path, method: :put
|
15
|
+
%li= link_to "send to draft", send_to_draft_admin_project_path, method: :put
|
16
|
+
%li= link_to "push to trash", push_to_trash_admin_project_path, method: :put
|
17
|
+
%tr
|
18
|
+
%th Name
|
19
|
+
%td
|
20
|
+
= best_in_place @project, :name, url: admin_project_path
|
21
|
+
= link_to @project do
|
22
|
+
%i.fa.fa-share-square-o
|
23
|
+
%th Category
|
24
|
+
%td= link_to @project.category.name, admin_category_path(@project.category)
|
25
|
+
%tr
|
26
|
+
%th Recommended
|
27
|
+
%td= best_in_place @project, :recommended, as: :checkbox, url: admin_project_path
|
28
|
+
%th City
|
29
|
+
%td= @project.city
|
30
|
+
%tr
|
31
|
+
%th Video URL
|
32
|
+
%td= link_to @project.video_url, @project.video_url
|
33
|
+
%th Short URL
|
34
|
+
%td= link_to @project.short_url, @project.short_url
|
35
|
+
%tr
|
36
|
+
%th Online Days
|
37
|
+
%td= @project.online_days
|
38
|
+
%th Budget
|
39
|
+
%td= number_to_currency @project.goal
|
40
|
+
- if @project.online?
|
41
|
+
%tr
|
42
|
+
%th Online Date
|
43
|
+
%td= @project.online_date.strftime("%m/%d/%Y - %l:%M%p")
|
44
|
+
%th Expires at
|
45
|
+
%td= @project.expires_at.strftime("%m/%d/%Y - %l:%M%p")
|
46
|
+
-if @project.rejected?
|
47
|
+
%tr
|
48
|
+
%th Rejected at
|
49
|
+
%td= @project.rejected_at.strftime("%m/%d/%Y - %l:%M%p")
|
50
|
+
%th
|
51
|
+
%td
|
52
|
+
- if @project.draft?
|
53
|
+
%tr
|
54
|
+
%th Send to Draft at
|
55
|
+
%td= @project.send_to_draft_at
|
@@ -0,0 +1,34 @@
|
|
1
|
+
%table.table.table-condensed.table-striped
|
2
|
+
%tr
|
3
|
+
%th Account Type
|
4
|
+
%td= account.account_type
|
5
|
+
%th Bank
|
6
|
+
%td= link_to account.bank.name, admin_bank_path(account.bank)
|
7
|
+
%tr
|
8
|
+
%th Owner Name
|
9
|
+
%td= account.owner_name
|
10
|
+
%th Owner Document
|
11
|
+
%td= account.owner_document
|
12
|
+
%tr
|
13
|
+
%th Email
|
14
|
+
%td= account.email
|
15
|
+
%th Phone
|
16
|
+
%td= account.phone
|
17
|
+
%tr
|
18
|
+
%th Account
|
19
|
+
%td= account.account
|
20
|
+
%th Account Digit
|
21
|
+
%td= account.account_digit
|
22
|
+
%tr
|
23
|
+
%th Address State
|
24
|
+
%td= account.address_state
|
25
|
+
%th Address City
|
26
|
+
%td= account.address_city
|
27
|
+
%tr
|
28
|
+
%th Address Street
|
29
|
+
%td= account.address_street
|
30
|
+
%th Address Number
|
31
|
+
%td= account.address_number
|
32
|
+
%tr
|
33
|
+
%th Address Zip
|
34
|
+
%td= account.address_zip
|
@@ -0,0 +1,25 @@
|
|
1
|
+
.content-wrapper
|
2
|
+
.container-fluid
|
3
|
+
.row
|
4
|
+
.text-center
|
5
|
+
%h1 Projects
|
6
|
+
%hr
|
7
|
+
.row
|
8
|
+
.col-md-12
|
9
|
+
= render 'hatchy/admin/shared/admin_navtabs', list_view: admin_projects_path, new_view: ""
|
10
|
+
%table.table.table-condensed.table-striped.ajax-data-table{data:{source:admin_projects_url(format: :json)}}
|
11
|
+
%thead
|
12
|
+
%tr
|
13
|
+
%th Id
|
14
|
+
%th Recommended
|
15
|
+
%th Name
|
16
|
+
%th Owner
|
17
|
+
%th Category
|
18
|
+
%th City
|
19
|
+
%th Status
|
20
|
+
%th Goal
|
21
|
+
%th Draft At
|
22
|
+
%th Online Days
|
23
|
+
%th Online Date
|
24
|
+
%th Expires At
|
25
|
+
%tbody
|
@@ -0,0 +1,22 @@
|
|
1
|
+
.content-wrapper
|
2
|
+
.container-fluid
|
3
|
+
.row
|
4
|
+
.text-center
|
5
|
+
%h1= @project.name
|
6
|
+
%hr
|
7
|
+
.row
|
8
|
+
.col-md-12
|
9
|
+
%ul.nav.nav-tabs
|
10
|
+
%li{class: "#{current_page?(admin_projects_path) ? 'active' : ''}" }
|
11
|
+
= link_to admin_projects_path do
|
12
|
+
%i.fa.fa-list
|
13
|
+
%span Index
|
14
|
+
%h3 Basic Info
|
15
|
+
= render 'hatchy/admin/projects/basic_info'
|
16
|
+
- if @project.account != nil
|
17
|
+
%h3 Project Account
|
18
|
+
= render 'hatchy/admin/projects/project_account', account: @project.account
|
19
|
+
%hr
|
20
|
+
= render 'hatchy/admin/projects/about'
|
21
|
+
.col-sm-offset-2.col-sm-10
|
22
|
+
=link_to "Delete", admin_projects_path, method: :delete, data:{confirm: "Are you sure?"}, class:'btn btn-danger btn-lg'
|
@@ -0,0 +1,54 @@
|
|
1
|
+
%table.table.table-condensed.table-striped
|
2
|
+
%tr
|
3
|
+
%th Admin
|
4
|
+
%td= check_box "Admin", @user.admin, checked: @user.admin, disabled:true
|
5
|
+
%th Email
|
6
|
+
%td= @user.email
|
7
|
+
%tr
|
8
|
+
%th First Name
|
9
|
+
%td= @user.first_name
|
10
|
+
%th Last Name
|
11
|
+
%td= @user.last_name
|
12
|
+
%tr
|
13
|
+
%th Country
|
14
|
+
%td= @user.country.present? ? @user.country.name : "-"
|
15
|
+
%th State
|
16
|
+
%td= @user.address_state
|
17
|
+
%tr
|
18
|
+
%th City
|
19
|
+
%td= @user.address_city
|
20
|
+
%th Zipcode
|
21
|
+
%td= @user.address_zip
|
22
|
+
%tr
|
23
|
+
%th Street
|
24
|
+
%td= @user.address_street
|
25
|
+
%th Number
|
26
|
+
%td= @user.address_number
|
27
|
+
%tr
|
28
|
+
%th Phone
|
29
|
+
%td= @user.phone
|
30
|
+
%th Mobile
|
31
|
+
%td= @user.mobile
|
32
|
+
%tr
|
33
|
+
%th Facebook
|
34
|
+
%td= @user.facebook_link
|
35
|
+
%th Twitter
|
36
|
+
%td= @user.twitter_link
|
37
|
+
%tr
|
38
|
+
%th Created at
|
39
|
+
%td= @user.created_at.strftime("%m/%d/%Y - %l:%M%p")
|
40
|
+
%th Updated at
|
41
|
+
%td= @user.updated_at.strftime("%m/%d/%Y - %l:%M%p")
|
42
|
+
%tr
|
43
|
+
%th Sign In Count
|
44
|
+
%td= @user.sign_in_count
|
45
|
+
%tr
|
46
|
+
%th Current Sign In at
|
47
|
+
%td= @user.current_sign_in_at.strftime("%m/%d/%Y - %l:%M%p")
|
48
|
+
%th Last Sign In at
|
49
|
+
%td= @user.last_sign_in_at.strftime("%m/%d/%Y - %l:%M%p")
|
50
|
+
%tr
|
51
|
+
%th Last Sign In Ip
|
52
|
+
%td= @user.last_sign_in_ip
|
53
|
+
%th Current Sign In Ip
|
54
|
+
%td= @user.current_sign_in_ip
|
@@ -0,0 +1,25 @@
|
|
1
|
+
%table.table.table-condensed.table-striped.data-table
|
2
|
+
%thead
|
3
|
+
%tr
|
4
|
+
%th Project
|
5
|
+
%th User
|
6
|
+
%th Reward
|
7
|
+
%th Anonymous
|
8
|
+
%th Document
|
9
|
+
%th Ip Address
|
10
|
+
%th Card Type
|
11
|
+
%th Value
|
12
|
+
%th Status
|
13
|
+
|
14
|
+
%tbody
|
15
|
+
- contributions.each do |contribution|
|
16
|
+
%tr
|
17
|
+
%td= link_to contribution.project.name, admin_projects_path
|
18
|
+
%td= link_to contribution.user.full_name, admin_users_path
|
19
|
+
%td= link_to contribution.reward.id, "#"
|
20
|
+
%td= check_box "Anonymous", contribution.anonymous, checked: contribution.anonymous, disabled:true
|
21
|
+
%td= contribution.document
|
22
|
+
%td= contribution.ip_address
|
23
|
+
%td= contribution.card_type
|
24
|
+
%td= number_to_currency contribution.value
|
25
|
+
%td= contribution.status
|
@@ -0,0 +1,31 @@
|
|
1
|
+
%table.table.table-condensed.table-striped.data-table
|
2
|
+
%thead
|
3
|
+
%tr
|
4
|
+
%th Name
|
5
|
+
%th Recommended
|
6
|
+
%th Category
|
7
|
+
%th City
|
8
|
+
%th Status
|
9
|
+
%th Goal
|
10
|
+
%th Draft At
|
11
|
+
%th Online Days
|
12
|
+
%th Online Date
|
13
|
+
%th Expires At
|
14
|
+
|
15
|
+
%tbody
|
16
|
+
- projects.each do |project|
|
17
|
+
%tr
|
18
|
+
%td= project.name
|
19
|
+
%td= check_box "recommended", project.recommended, checked: project.recommended, disabled:true
|
20
|
+
%td= link_to project.category.name, admin_category_path(project.category)
|
21
|
+
%td= project.city
|
22
|
+
%td= project.status
|
23
|
+
%td= number_to_currency project.goal
|
24
|
+
%td= project.send_to_draft_at.strftime("%m/%d/%Y - %l:%M%p")
|
25
|
+
%td= project.online_days
|
26
|
+
- if project.online?
|
27
|
+
%td= project.online_date.strftime("%m/%d/%Y - %l:%M%p")
|
28
|
+
%td= project.expires_at.strftime("%m/%d/%Y - %l:%M%p")
|
29
|
+
- else
|
30
|
+
%td -
|
31
|
+
%td -
|
@@ -0,0 +1,24 @@
|
|
1
|
+
.content-wrapper
|
2
|
+
.container-fluid
|
3
|
+
.row
|
4
|
+
.text-center
|
5
|
+
%h1 Users
|
6
|
+
%hr
|
7
|
+
.row
|
8
|
+
.col-md-12
|
9
|
+
= render 'hatchy/admin/shared/admin_navtabs', list_view: admin_users_path, new_view: ""
|
10
|
+
%table.table.table-condensed.table-striped.ajax-data-table{data:{source:admin_users_url(format: :json)}}
|
11
|
+
%thead
|
12
|
+
%tr
|
13
|
+
%th Id
|
14
|
+
%th Admin
|
15
|
+
%th First Name
|
16
|
+
%th Last Name
|
17
|
+
%th Email
|
18
|
+
%th Document
|
19
|
+
%th Phone
|
20
|
+
%th Mobile
|
21
|
+
%th Newsletter
|
22
|
+
%th Signin Count
|
23
|
+
%th Last Signin At
|
24
|
+
%tbody
|
@@ -0,0 +1,20 @@
|
|
1
|
+
.content-wrapper
|
2
|
+
.container-fluid
|
3
|
+
.row
|
4
|
+
.text-center
|
5
|
+
%h1= @user.full_name
|
6
|
+
%hr
|
7
|
+
.row
|
8
|
+
.col-md-12
|
9
|
+
= render 'hatchy/admin/shared/admin_navtabs', list_view: admin_users_path, new_view: "", edit_path: edit_admin_user_path
|
10
|
+
%h3 Basic Info
|
11
|
+
= render 'hatchy/admin/users/basic_info'
|
12
|
+
%hr
|
13
|
+
%h3 Projects
|
14
|
+
= render 'hatchy/admin/users/projects', projects: @user.projects
|
15
|
+
%hr
|
16
|
+
%h3 Contributions
|
17
|
+
= render 'hatchy/admin/users/contributions', contributions: @user.contributions
|
18
|
+
%hr
|
19
|
+
.col-sm-offset-2.col-sm-10
|
20
|
+
=link_to "Delete", admin_user_path(@user), method: :delete, data:{confirm: "Are you sure?"}, class:'btn btn-danger btn-lg'
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
module Hatchy::Generators
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
4
|
+
source_root File.expand_path("../../templates", __FILE__)
|
5
|
+
|
6
|
+
def create_route
|
7
|
+
route 'mount Hatchy::Engine => "/"'
|
8
|
+
end
|
9
|
+
|
10
|
+
def copy_initializer
|
11
|
+
template "hatchy.rb", "config/initializers/hatchy.rb"
|
12
|
+
end
|
13
|
+
|
14
|
+
def copy_locale
|
15
|
+
copy_file "../../../config/locales/en.yml", "config/locales/hatchy.en.yml"
|
16
|
+
copy_file "../../../config/locales/devise.en.yml", "config/locales/devise.en.yml"
|
17
|
+
end
|
18
|
+
|
19
|
+
def copy_devise_initializer
|
20
|
+
copy_file "../../../config/initializers/devise.rb", "config/initializers/devise.rb"
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
data/lib/hatchy.rb
CHANGED
@@ -8,6 +8,7 @@ require "video_info"
|
|
8
8
|
require "pundit"
|
9
9
|
require "kaminari"
|
10
10
|
require "jquery-datatables-rails"
|
11
|
+
require "best_in_place"
|
11
12
|
require "hatchy/engine"
|
12
13
|
|
13
14
|
module Hatchy
|
@@ -21,4 +22,11 @@ module Hatchy
|
|
21
22
|
|
22
23
|
mattr_accessor :theme
|
23
24
|
@@theme = 'default'
|
25
|
+
|
26
|
+
# Default way to setup Hatchy. Run rails generate hatchy_install to create
|
27
|
+
# a fresh initializer with all configuration values.
|
28
|
+
def self.setup
|
29
|
+
yield self
|
30
|
+
end
|
31
|
+
|
24
32
|
end
|
data/lib/hatchy/version.rb
CHANGED
data/lib/tasks/hatchy_tasks.rake
CHANGED
@@ -5,14 +5,24 @@ namespace :hatchy do
|
|
5
5
|
require File.join(Hatchy.root, 'db', 'seed')
|
6
6
|
end
|
7
7
|
|
8
|
-
|
8
|
+
desc "Import default set of countries"
|
9
9
|
task :import_countries => :environment do
|
10
10
|
Hatchy::CountryImporter.import
|
11
11
|
end
|
12
12
|
|
13
|
+
desc "Create a default admin user"
|
14
|
+
task :create_admin_user => :environment do
|
15
|
+
Hatchy::User.create(email:'admin@example.com', password:'password', password_confirmation:'password', first_name:'Default', last_name:'Admin', admin: true)
|
16
|
+
puts " New user has been created successfully."
|
17
|
+
puts
|
18
|
+
puts " E-Mail Address..: admin@example.com"
|
19
|
+
puts " Password........: password"
|
20
|
+
end
|
21
|
+
|
13
22
|
desc "Run the setup task for a new application"
|
14
23
|
task :setup => :environment do
|
15
24
|
Rake::Task["hatchy:seed"].invoke
|
16
25
|
Rake::Task["hatchy:import_countries"].invoke if Hatchy::Country.all.empty?
|
26
|
+
Rake::Task["hatchy:create_admin_user"].invoke if Hatchy::User.all.empty?
|
17
27
|
end
|
18
28
|
end
|