phcmembers 3.0.1 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/app/assets/stylesheets/phcmembers/_custom.scss +38 -0
  4. data/app/controllers/phcmembers/application_controller.rb +6 -1
  5. data/app/controllers/phcmembers/directory/categories_controller.rb +15 -16
  6. data/app/controllers/phcmembers/directory/categorylistings_controller.rb +20 -0
  7. data/app/controllers/phcmembers/member/addresses_controller.rb +75 -0
  8. data/app/controllers/phcmembers/member/listings_controller.rb +77 -0
  9. data/app/controllers/phcmembers/member/profiles_controller.rb +68 -0
  10. data/app/helpers/phcmembers/directory/categories_helper.rb +4 -0
  11. data/app/helpers/phcmembers/directory/categorylistings_helper.rb +4 -0
  12. data/app/helpers/phcmembers/member/listings_helper.rb +4 -0
  13. data/app/models/phcmembers/connections.rb +7 -0
  14. data/app/models/phcmembers/directory/category.rb +4 -9
  15. data/app/models/phcmembers/directory/categorylisting.rb +12 -0
  16. data/app/models/phcmembers/member.rb +7 -0
  17. data/app/models/phcmembers/member/address.rb +11 -0
  18. data/app/models/phcmembers/member/listing.rb +13 -0
  19. data/app/models/phcmembers/{members/main.rb → member/profile.rb} +3 -3
  20. data/app/views/layouts/phcmembers/application.html.erb +1 -1
  21. data/app/views/layouts/phcmembers/directory/directory_all.html.erb +1 -1
  22. data/app/views/layouts/phcmembers/members/members_all.html.erb +1 -1
  23. data/app/views/phcmembers/directory/categories/_form.html.erb +2 -2
  24. data/app/views/phcmembers/directory/categories/components/_category_audits.html.erb +6 -19
  25. data/app/views/phcmembers/directory/categories/components/_category_list.html.erb +3 -3
  26. data/app/views/phcmembers/directory/categories/components/_category_main.html.erb +18 -11
  27. data/app/views/phcmembers/directory/categories/edit.html.erb +20 -19
  28. data/app/views/phcmembers/directory/categories/index.html.erb +13 -17
  29. data/app/views/phcmembers/directory/categories/new.html.erb +19 -18
  30. data/app/views/phcmembers/directory/categories/show.html.erb +8 -14
  31. data/app/views/phcmembers/directory/categorylistings/index.html.erb +63 -0
  32. data/app/views/phcmembers/directory/categorylistings/show.html.erb +4 -0
  33. data/app/views/phcmembers/{members/contacts → member/addresses}/_form.html.erb +5 -5
  34. data/app/views/phcmembers/member/addresses/components/_address_address.html.erb +29 -0
  35. data/app/views/phcmembers/member/addresses/components/_address_audits.html.erb +12 -0
  36. data/app/views/phcmembers/member/addresses/components/_address_main.html.erb +31 -0
  37. data/app/views/phcmembers/member/addresses/edit.html.erb +47 -0
  38. data/app/views/phcmembers/member/addresses/index.html.erb +78 -0
  39. data/app/views/phcmembers/member/addresses/new.html.erb +47 -0
  40. data/app/views/phcmembers/member/addresses/show.html.erb +29 -0
  41. data/app/views/phcmembers/{members/businesses → member/listings}/_form.html.erb +11 -4
  42. data/app/views/phcmembers/member/listings/components/_listing_address.html.erb +48 -0
  43. data/app/views/phcmembers/member/listings/components/_listing_audits.html.erb +12 -0
  44. data/app/views/phcmembers/member/listings/components/_listing_main.html.erb +31 -0
  45. data/app/views/phcmembers/member/listings/edit.html.erb +47 -0
  46. data/app/views/phcmembers/member/listings/index.html.erb +78 -0
  47. data/app/views/phcmembers/member/listings/new.html.erb +47 -0
  48. data/app/views/phcmembers/member/listings/show.html.erb +29 -0
  49. data/app/views/phcmembers/{members/mains → member/profiles}/_form.html.erb +6 -8
  50. data/app/views/phcmembers/member/profiles/components/_profile_main.html.erb +44 -0
  51. data/app/views/phcmembers/member/profiles/components/_profile_sidebar.html.erb +28 -0
  52. data/app/views/phcmembers/member/profiles/edit.html.erb +46 -0
  53. data/app/views/phcmembers/member/profiles/index.html.erb +71 -0
  54. data/app/views/phcmembers/member/profiles/new.html.erb +45 -0
  55. data/app/views/phcmembers/member/profiles/show.html.erb +35 -0
  56. data/config/routes.rb +9 -15
  57. data/db/migrate/20160724220339_create_phcmembers_member_profiles.rb +16 -0
  58. data/db/migrate/{20160706184249_create_phcmembers_members_contacts.rb → 20160725153306_create_phcmembers_member_addresses.rb} +4 -4
  59. data/db/migrate/{20160706184708_create_phcmembers_directory_categories.rb → 20160725182257_create_phcmembers_directory_categories.rb} +0 -2
  60. data/db/migrate/{20160706184011_create_phcmembers_members_businesses.rb → 20160727024006_create_phcmembers_member_listings.rb} +5 -9
  61. data/db/migrate/20160727042756_create_phcmembers_directory_categorylistings.rb +10 -0
  62. data/lib/phcmembers/version.rb +1 -1
  63. metadata +45 -50
  64. data/app/controllers/phcmembers/directory/listings_controller.rb +0 -71
  65. data/app/controllers/phcmembers/members/businesses_controller.rb +0 -83
  66. data/app/controllers/phcmembers/members/contacts_controller.rb +0 -83
  67. data/app/controllers/phcmembers/members/mains_controller.rb +0 -70
  68. data/app/models/phcmembers/directory/listing.rb +0 -20
  69. data/app/models/phcmembers/members.rb +0 -7
  70. data/app/models/phcmembers/members/business.rb +0 -44
  71. data/app/models/phcmembers/members/contact.rb +0 -34
  72. data/app/views/phcmembers/directory/listings/_form.html.erb +0 -15
  73. data/app/views/phcmembers/directory/listings/_formpatch.html.erb +0 -15
  74. data/app/views/phcmembers/directory/listings/components/_listing_audits.html.erb +0 -25
  75. data/app/views/phcmembers/directory/listings/components/_listing_list.html.erb +0 -48
  76. data/app/views/phcmembers/directory/listings/components/_listing_main.html.erb +0 -21
  77. data/app/views/phcmembers/directory/listings/edit.html.erb +0 -45
  78. data/app/views/phcmembers/directory/listings/index.html.erb +0 -73
  79. data/app/views/phcmembers/directory/listings/new.html.erb +0 -45
  80. data/app/views/phcmembers/directory/listings/show.html.erb +0 -34
  81. data/app/views/phcmembers/members/businesses/_formpatch.html.erb +0 -65
  82. data/app/views/phcmembers/members/businesses/components/_business_address.html.erb +0 -48
  83. data/app/views/phcmembers/members/businesses/components/_business_audits.html.erb +0 -25
  84. data/app/views/phcmembers/members/businesses/components/_business_main.html.erb +0 -21
  85. data/app/views/phcmembers/members/businesses/edit.html.erb +0 -46
  86. data/app/views/phcmembers/members/businesses/index.html.erb +0 -76
  87. data/app/views/phcmembers/members/businesses/new.html.erb +0 -47
  88. data/app/views/phcmembers/members/businesses/show.html.erb +0 -35
  89. data/app/views/phcmembers/members/contacts/_formpatch.html.erb +0 -38
  90. data/app/views/phcmembers/members/contacts/components/_contact_address.html.erb +0 -29
  91. data/app/views/phcmembers/members/contacts/components/_contact_audits.html.erb +0 -25
  92. data/app/views/phcmembers/members/contacts/components/_contact_main.html.erb +0 -21
  93. data/app/views/phcmembers/members/contacts/edit.html.erb +0 -46
  94. data/app/views/phcmembers/members/contacts/index.html.erb +0 -75
  95. data/app/views/phcmembers/members/contacts/new.html.erb +0 -46
  96. data/app/views/phcmembers/members/contacts/show.html.erb +0 -35
  97. data/app/views/phcmembers/members/mains/components/_profile_main.html.erb +0 -48
  98. data/app/views/phcmembers/members/mains/components/_profile_sidebar.html.erb +0 -67
  99. data/app/views/phcmembers/members/mains/edit.html.erb +0 -45
  100. data/app/views/phcmembers/members/mains/index.html.erb +0 -69
  101. data/app/views/phcmembers/members/mains/new.html.erb +0 -45
  102. data/app/views/phcmembers/members/mains/show.html.erb +0 -39
  103. data/db/migrate/20160706184353_create_phcmembers_members_mains.rb +0 -22
  104. data/db/migrate/20160706184527_create_phcmembers_directory_listings.rb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 34f0f0a1e63a590d2627c8e2bd3b4fca25152b0a
4
- data.tar.gz: 038d6308baefb41a88a64e8849d940aaa06ea256
3
+ metadata.gz: 146b4a1e4e4ae6620908d4cb3d45cbc8cb671b5e
4
+ data.tar.gz: cdae959e292e7b93479e136c8985fb003ba517e6
5
5
  SHA512:
6
- metadata.gz: 0df38fe90b232d7a6bbf34a6ab5cdf2733bf1cf9dc0d10442bcb82b7cd3893c328274ab7702fdbacb4cec9efecf5837c937c337459c400c59d4f80b01ec32989
7
- data.tar.gz: 037e2a5f427a4c0503d65ec9d4679d211fc198bfdacfd08691ba9f52c9f3f53c22fba370ac4c0e65c882ebd01a5452ede461fe90e451ab5b15f3c3ce78f53cea
6
+ metadata.gz: 255cb6a6ae8e54768d4cfd62e33bd1170968d930d968c39d95b189c8a876e73c9aac5ab9c441e156855d39d8ea02bb1ad6e5558c7ec01a9eab66f531ed3d1280
7
+ data.tar.gz: d33d0fd6896c5f3c91a6d2351b6a181279a92b68cac3f55b509d7608beaa0604b8a49d4d2926a1eb5f5ccbfc24f7e0e52bc3d79de394baa3a6df9f5ac82e5739
data/README.md CHANGED
@@ -10,11 +10,11 @@ PHCMembers(3) is an open source membership and listing directory engine purpose
10
10
  - Directory and listings manager with a web directory API.
11
11
  - Member's list, contact information and listings manager.
12
12
  - Easy app integration with views that can be customized.
13
- - User authetication will activate when Devise is installed.
13
+ - User authentication will activate when Devise is installed.
14
14
 
15
15
  #### Step 1 - Add PHCMembers to your gemfile
16
16
 
17
- gem 'phcmembers', '~> 2.2'
17
+ gem 'phcmembers', '~> 3.0', '>= 3.0.1'
18
18
  bundle exec install
19
19
 
20
20
  #### Step 2 - Add database migration files
@@ -0,0 +1,38 @@
1
+ // Page Header Title
2
+ .page-title {
3
+ padding: 25px 0px 40px 0px;
4
+ font-size: 28px;
5
+ letter-spacing: -1px;
6
+ display: block;
7
+ color: #666;
8
+ margin: 0px 0px 15px 0px;
9
+ font-weight: 300;
10
+ // Title SubScript
11
+ small {
12
+ font-size: 14px;
13
+ letter-spacing: 0px;
14
+ font-weight: 300;
15
+ color: #888;
16
+ }
17
+
18
+ .page-content-white &,
19
+ .page-container-bg-solid & {
20
+ color: #666;
21
+ margin-bottom: 20px;
22
+ margin-top: 20px;
23
+ small {
24
+ color: #666;
25
+ }
26
+ }
27
+
28
+ .page-content-white & {
29
+ margin: 25px 0;
30
+ font-size: 24px;
31
+ }
32
+ }
33
+
34
+ // Fix for Time in List
35
+ .feeds {
36
+ padding: 5px 5px 5px 5px;
37
+ font-size: 13px;
38
+ }
@@ -3,7 +3,12 @@ module Phcmembers
3
3
 
4
4
  # Security Filters
5
5
  protect_from_forgery with: :exception
6
-
6
+
7
+ # Grab Member Information
8
+ def get_member_profile_info
9
+ @members_profile_info = Member::Profile.find(params[:profile_id])
10
+ end
11
+
7
12
  # Load Helpers
8
13
  helper Phctitleseo::Engine.helpers
9
14
  helper Phcnotifi::Engine.helpers
@@ -3,54 +3,53 @@ require_dependency "phcmembers/application_controller"
3
3
  module Phcmembers
4
4
  class Directory::CategoriesController < ApplicationController
5
5
 
6
- # Filters
6
+ # Security & Action Filters
7
7
  before_action :set_paper_trail_whodunnit
8
- before_action :set_directory_category, only: [:edit, :update, :destroy]
9
- # layout 'layouts/phcmemberspro/directory/directory_all.html.erb'
8
+ before_action :set_directory_category, only: [:show, :edit, :update, :destroy]
10
9
 
11
- # Directory Category Index
10
+ # INDEX - Directory Category
12
11
  def index
13
12
  @directory_categories = Directory::Category.all
14
13
  end
15
14
 
16
- # Directory Category Details
15
+ # DETAILED - Directory Category
17
16
  def show
18
- @versions = PaperTrail::Version.where(item_id: params[:id], item_type: 'Phcmembers::Directory::Category')
19
17
  @directory_category = Directory::Category.find(params[:id])
18
+ @versions = PaperTrail::Version.where(item_id: params[:id], item_type: 'Phcmembers::Directory::Category')
20
19
  end
21
20
 
22
- # New Directory Category
21
+ # NEW - Directory Category
23
22
  def new
24
23
  @directory_category = Directory::Category.new
25
24
  end
26
25
 
27
- # Edit Directory Category
26
+ # EDIT - Directory Category
28
27
  def edit
29
28
  end
30
29
 
31
- # Create Action
30
+ # POST - Directory Category
32
31
  def create
33
32
  @directory_category = Directory::Category.new(directory_category_params)
34
33
  if @directory_category.save
35
- redirect_to directory_categories_path, notice: 'Category was successfully created.'
34
+ redirect_to directory_categories_url, notice: 'Category was successfully created.'
36
35
  else
37
36
  render :new
38
37
  end
39
38
  end
40
39
 
41
- # Update Action
40
+ # PATCH/PUT - Directory Category
42
41
  def update
43
42
  if @directory_category.update(directory_category_params)
44
- redirect_to directory_categories_path, notice: 'Category was successfully updated.'
43
+ redirect_to directory_categories_url, notice: 'Category was successfully updated.'
45
44
  else
46
45
  render :edit
47
46
  end
48
47
  end
49
48
 
50
- # Delete Action
49
+ # DELETE - Directory Category
51
50
  def destroy
52
51
  @directory_category.destroy
53
- redirect_to directory_categories_path, notice: 'Category was successfully destroyed.'
52
+ redirect_to directory_categories_url, notice: 'Category was successfully destroyed.'
54
53
  end
55
54
 
56
55
  private
@@ -60,10 +59,10 @@ module Phcmembers
60
59
  @directory_category = Directory::Category.find(params[:id])
61
60
  end
62
61
 
63
- # whitelist
62
+ # Whitelist
64
63
  def directory_category_params
65
64
  params.require(:directory_category).permit(:catname)
66
65
  end
67
66
 
68
67
  end
69
- end
68
+ end
@@ -0,0 +1,20 @@
1
+ require_dependency "phcmembers/application_controller"
2
+
3
+ module Phcmembers
4
+ class Directory::CategorylistingsController < ApplicationController
5
+
6
+ # Security & Action Filters
7
+ before_action :set_paper_trail_whodunnit
8
+ before_action :set_directory_category, only: [:show, :edit, :update, :destroy]
9
+
10
+ # INDEX - Directory Category/Listings
11
+ def index
12
+ @directory_categorylistings = Directory::Categorylisting.all
13
+ end
14
+
15
+ # DETAILED - Directory Category/Listings
16
+ def show
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,75 @@
1
+ require_dependency "phcmembers/application_controller"
2
+
3
+ module Phcmembers
4
+ class Member::AddressesController < ApplicationController
5
+
6
+ # Security & Action Filters
7
+ before_action :set_paper_trail_whodunnit
8
+ before_action :get_member_profile_info
9
+ before_action :set_member_address, only: [:show, :edit, :update, :destroy]
10
+
11
+ # INDEX - Directory Listings
12
+ def index
13
+ profile = Member::Profile.find(params[:profile_id])
14
+ @member_addresses = profile.addresses
15
+ end
16
+
17
+ # LISTINGS DETAILS - Directory Listings
18
+ def show
19
+ profile = Member::Profile.find(params[:profile_id])
20
+ @member_address = profile.addresses.find(params[:id])
21
+ @versions = PaperTrail::Version.where(item_id: params[:id], item_type: 'Phcmembers::Member::Address')
22
+ end
23
+
24
+ # NEW - Directory Listings
25
+ def new
26
+ profile = Member::Profile.find(params[:profile_id])
27
+ @member_address = profile.addresses.build
28
+ end
29
+
30
+ # EDIT - Directory Listings
31
+ def edit
32
+ end
33
+
34
+ # POST - Directory Listings
35
+ def create
36
+ @profile = Member::Profile.find(params[:profile_id])
37
+ @member_address = @profile.addresses.create(member_address_params)
38
+ if @member_address.save
39
+ redirect_to member_profile_addresses_url, notice: 'Listing was successfully created.'
40
+ else
41
+ render :new
42
+ end
43
+ end
44
+
45
+ # PATCH/PUT - Directory Listings
46
+ def update
47
+ if @member_address.update(member_address_params)
48
+ redirect_to member_profile_addresses_url, notice: 'Listing was successfully updated.'
49
+ else
50
+ render :edit
51
+ end
52
+ end
53
+
54
+ # DELETE - Directory Listings
55
+ def destroy
56
+ @profile = Member::Profile.find(params[:profile_id])
57
+ @member_address = @profile.addresses.find(params[:id])
58
+ @member_address.destroy
59
+ redirect_to member_profile_addresses_url, notice: 'Listing was successfully destroyed.'
60
+ end
61
+
62
+ private
63
+
64
+ # Common Callbacks
65
+ def set_member_address
66
+ @member_address = Member::Address.find(params[:id])
67
+ end
68
+
69
+ # Whitelist
70
+ def member_address_params
71
+ params.require(:member_address).permit(:mcaddressl1, :mcaddressl2, :mccity, :mcprovince, :mccountry, :mcpostalcode, :mctype, :profile_id)
72
+ end
73
+
74
+ end
75
+ end
@@ -0,0 +1,77 @@
1
+ require_dependency "phcmembers/application_controller"
2
+
3
+ module Phcmembers
4
+ class Member::ListingsController < ApplicationController
5
+
6
+ # Security & Action Filters
7
+ before_action :set_paper_trail_whodunnit
8
+ before_action :get_member_profile_info
9
+ before_action :set_member_listing, only: [:show, :edit, :update, :destroy]
10
+
11
+ # INDEX - Directory Listings
12
+ def index
13
+ profile = Member::Profile.find(params[:profile_id])
14
+ @member_listings = profile.listings
15
+ end
16
+
17
+ # LISTINGS DETAILS - Directory Listings
18
+ def show
19
+ profile = Member::Profile.find(params[:profile_id])
20
+ @meber_listing = profile.listings.find(params[:id])
21
+ @versions = PaperTrail::Version.where(item_id: params[:id], item_type: 'Phcmembers::Member::Listing')
22
+ end
23
+
24
+ # NEW - Directory Listings
25
+ def new
26
+ profile = Member::Profile.find(params[:profile_id])
27
+ @member_listing = profile.listings.build
28
+ end
29
+
30
+ # EDIT - Directory Listings
31
+ def edit
32
+ end
33
+
34
+ # POST - Directory Listings
35
+ def create
36
+ @profile = Member::Profile.find(params[:profile_id])
37
+ @member_listing = @profile.listings.create(member_listing_params)
38
+ if @member_listing.save
39
+ @member_listing.categorylistings.build
40
+ redirect_to member_profile_listings_url, notice: 'Listing was successfully created.'
41
+ else
42
+ render :new
43
+ end
44
+ end
45
+
46
+ # PATCH/PUT - Directory Listings
47
+ def update
48
+ if @member_listing.update(member_listing_params)
49
+ @member_listing.categorylistings.build
50
+ redirect_to member_profile_listings_url, notice: 'Listing was successfully updated.'
51
+ else
52
+ render :edit
53
+ end
54
+ end
55
+
56
+ # DELETE - Directory Listings
57
+ def destroy
58
+ @profile = Member::Profile.find(params[:profile_id])
59
+ @member_listing = @profile.listings.find(params[:id])
60
+ @member_listing.destroy
61
+ redirect_to member_profile_listings_url, notice: 'Listing was successfully destroyed.'
62
+ end
63
+
64
+ private
65
+
66
+ # Common Callbacks
67
+ def set_member_listing
68
+ @member_listing = Member::Listing.find(params[:id])
69
+ end
70
+
71
+ # Whitelist
72
+ def member_listing_params
73
+ params.require(:member_listing).permit(:mbcompanyname, :mbcontactname, :mbaddressl1, :mbaddressl2, :mbcity, :mbcountry, :mbprovince, :mbpostalcode, :mbphone, :mbcontactemail, :mbwebsite, :profile_id, category_ids: [])
74
+ end
75
+
76
+ end
77
+ end
@@ -0,0 +1,68 @@
1
+ require_dependency "phcmembers/application_controller"
2
+
3
+ module Phcmembers
4
+ class Member::ProfilesController < ApplicationController
5
+
6
+ # Security & Action Filters
7
+ before_action :set_paper_trail_whodunnit
8
+ before_action :set_member_profile, only: [:show, :edit, :update, :destroy]
9
+
10
+ # INDEX - Member Profile
11
+ def index
12
+ @member_profiles = Member::Profile.all
13
+ end
14
+
15
+ # DETAILED PROFILE - Member Profile
16
+ def show
17
+ @member_profile = Member::Profile.find(params[:id])
18
+ @versions = PaperTrail::Version.where(item_id: params[:id], item_type: 'Phcmembers::Member::Profile')
19
+ end
20
+
21
+ # NEW FORM - Member Profile
22
+ def new
23
+ @member_profile = Member::Profile.new
24
+ end
25
+
26
+ # EDIT FORM - Member Profile
27
+ def edit
28
+ end
29
+
30
+ # POST - Member Profile
31
+ def create
32
+ @member_profile = Member::Profile.new(member_profile_params)
33
+ if @member_profile.save
34
+ redirect_to member_profiles_url, notice: 'Profile was successfully created.'
35
+ else
36
+ render :new
37
+ end
38
+ end
39
+
40
+ # PATCH/PUT - Member Profile
41
+ def update
42
+ if @member_profile.update(member_profile_params)
43
+ redirect_to member_profiles_url, notice: 'Profile was successfully updated.'
44
+ else
45
+ render :edit
46
+ end
47
+ end
48
+
49
+ # DELETE - Member Profile
50
+ def destroy
51
+ @member_profile.destroy
52
+ redirect_to member_profiles_url, notice: 'Profile was successfully destroyed.'
53
+ end
54
+
55
+ private
56
+
57
+ # Common Callbacks
58
+ def set_member_profile
59
+ @member_profile = Member::Profile.find(params[:id])
60
+ end
61
+
62
+ # Whitelist
63
+ def member_profile_params
64
+ params.require(:member_profile).permit(:mfirstname, :mlastname, :mtitle, :memail, :mphone, :mnotes)
65
+ end
66
+
67
+ end
68
+ end
@@ -0,0 +1,4 @@
1
+ module Phcmembers
2
+ module Directory::CategoriesHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Phcmembers
2
+ module Directory::CategorylistingsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Phcmembers
2
+ module Member::ListingsHelper
3
+ end
4
+ end
@@ -0,0 +1,7 @@
1
+ module Phcmembers
2
+ module Connections
3
+ def self.table_name_prefix
4
+ 'phcmembers_connections_'
5
+ end
6
+ end
7
+ end
@@ -1,17 +1,12 @@
1
1
  module Phcmembers
2
- class Directory::Category < ActiveRecord::Base
2
+ class Directory::Category < ApplicationRecord
3
3
 
4
4
  # Add Paper Trail
5
5
  has_paper_trail
6
6
 
7
- # Model Relationship
8
- has_many :listings, class_name: 'Directory::Listing', dependent: :destroy
9
- has_many :businesses, class_name: 'Members::Business', :through => :listings
10
-
11
- # Validation for Form Fields
12
- validates :catname,
13
- presence: true,
14
- length: { minimum: 3 }
7
+ # Model Relationships
8
+ has_many :categorylistings, class_name: 'Phcmembers::Directory::Categorylisting', dependent: :destroy
9
+ has_many :listings, class_name: 'Phcmembers::Member::Listing', :through => :categorylistings
15
10
 
16
11
  end
17
12
  end