lportal 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. data/README +16 -0
  2. data/install.rb +1 -0
  3. data/lib/account.rb +16 -0
  4. data/lib/address.rb +25 -0
  5. data/lib/announcement.rb +5 -0
  6. data/lib/blog_post.rb +32 -0
  7. data/lib/bookmark.rb +10 -0
  8. data/lib/company.rb +43 -0
  9. data/lib/contact.rb +52 -0
  10. data/lib/counter.rb +4 -0
  11. data/lib/dl_file.rb +24 -0
  12. data/lib/dl_folder.rb +25 -0
  13. data/lib/emailaddress.rb +18 -0
  14. data/lib/group.rb +100 -0
  15. data/lib/ig/folder.rb +12 -0
  16. data/lib/ig/image.rb +35 -0
  17. data/lib/image.rb +11 -0
  18. data/lib/journal/article.rb +43 -0
  19. data/lib/journal/article_image.rb +4 -0
  20. data/lib/journal/article_resource.rb +23 -0
  21. data/lib/mb/category.rb +47 -0
  22. data/lib/mb/discussion.rb +16 -0
  23. data/lib/mb/message.rb +45 -0
  24. data/lib/mb/thread.rb +20 -0
  25. data/lib/organization.rb +26 -0
  26. data/lib/permission.rb +32 -0
  27. data/lib/phone.rb +33 -0
  28. data/lib/resource.rb +58 -0
  29. data/lib/resource_code.rb +13 -0
  30. data/lib/role.rb +19 -0
  31. data/lib/tag/asset.rb +34 -0
  32. data/lib/tag/entry.rb +46 -0
  33. data/lib/tag/property.rb +28 -0
  34. data/lib/user.rb +248 -0
  35. data/lib/usergroup.rb +23 -0
  36. data/lib/web/layout.rb +67 -0
  37. data/lib/web/layout_set.rb +37 -0
  38. data/lib/web/portlet.rb +43 -0
  39. data/lib/web/portlet_name.rb +6 -0
  40. data/lib/web/portlet_preferences.rb +42 -0
  41. data/lib/wiki/node.rb +21 -0
  42. data/lib/wiki/page.rb +29 -0
  43. data/lib/wiki/pageresource.rb +20 -0
  44. data/lportal.rb +9 -0
  45. data/test/unit/account_test.rb +20 -0
  46. data/test/unit/address_test.rb +8 -0
  47. data/test/unit/announcement_test.rb +8 -0
  48. data/test/unit/asset_test.rb +29 -0
  49. data/test/unit/bookmark_test.rb +8 -0
  50. data/test/unit/company_test.rb +60 -0
  51. data/test/unit/contact_test.rb +23 -0
  52. data/test/unit/dl_file_test.rb +8 -0
  53. data/test/unit/dl_folder_test.rb +8 -0
  54. data/test/unit/group_test.rb +76 -0
  55. data/test/unit/ig/folder_test.rb +8 -0
  56. data/test/unit/ig/image_test.rb +20 -0
  57. data/test/unit/image_test.rb +34 -0
  58. data/test/unit/journal/article_image_test.rb +8 -0
  59. data/test/unit/journal/article_resource_test.rb +20 -0
  60. data/test/unit/journal/article_test.rb +39 -0
  61. data/test/unit/mb/category_test.rb +35 -0
  62. data/test/unit/mb/discussion_test.rb +14 -0
  63. data/test/unit/mb/message_test.rb +46 -0
  64. data/test/unit/mb/thread_test.rb +21 -0
  65. data/test/unit/organization_test.rb +57 -0
  66. data/test/unit/permission_test.rb +33 -0
  67. data/test/unit/resource_code_test.rb +29 -0
  68. data/test/unit/resource_test.rb +49 -0
  69. data/test/unit/role_test.rb +22 -0
  70. data/test/unit/tag/entry_test.rb +35 -0
  71. data/test/unit/tag/property_test.rb +27 -0
  72. data/test/unit/user_group_test.rb +8 -0
  73. data/test/unit/user_test.rb +103 -0
  74. data/test/unit/usergroup_test.rb +33 -0
  75. data/test/unit/web/layout_set_test.rb +88 -0
  76. data/test/unit/web/layout_test.rb +91 -0
  77. data/test/unit/web/portlet_preferences_test.rb +47 -0
  78. data/test/unit/web/portlet_test.rb +33 -0
  79. data/test/unit/wiki/node_test.rb +8 -0
  80. data/test/unit/wiki/page_test.rb +8 -0
  81. metadata +146 -0
data/README ADDED
@@ -0,0 +1,16 @@
1
+ == Liferay
2
+
3
+ This is a collection of (some) Liferay models for developers that use the database with ActiveRecord. You may want to check out the Rails-portlet package if you're going to deploy Rails applications of Liferay.
4
+
5
+
6
+
7
+ == Example
8
+
9
+ 1. Configure ActiveRecord as usual.
10
+ 2. require 'lportal'
11
+ 3. You're good to go.
12
+
13
+ This gem quite effectively pollutes your namespace, and that is intentional. If you are working in the context of the portal, having your users modeled by User is more convenient rather than having to reference them as Lportal::Users.
14
+
15
+
16
+ Copyright (c) 2008 Mikael Lammentausta, released under the MIT license
data/install.rb ADDED
@@ -0,0 +1 @@
1
+ # Install hook code here
data/lib/account.rb ADDED
@@ -0,0 +1,16 @@
1
+ class Account < ActiveRecord::Base
2
+ set_table_name :account_
3
+ set_primary_key :accountid
4
+
5
+ # com.liferay.portal.model.Account
6
+ def liferay_class
7
+ 'com.liferay.portal.model.Account'
8
+ end
9
+
10
+ belongs_to :company,
11
+ :foreign_key => 'companyid'
12
+
13
+ belongs_to :user,
14
+ :foreign_key => 'userid'
15
+
16
+ end
data/lib/address.rb ADDED
@@ -0,0 +1,25 @@
1
+ class Address < ActiveRecord::Base
2
+ set_table_name :address
3
+ set_primary_key :addressid
4
+
5
+ public
6
+
7
+ # com.liferay.portal.model.Address
8
+ def liferay_class
9
+ 'com.liferay.portal.model.Address'
10
+ end
11
+
12
+ belongs_to :company,
13
+ :foreign_key => 'companyid'
14
+
15
+ belongs_to :user,
16
+ :foreign_key => 'userid'
17
+
18
+
19
+ def initialize(params)
20
+ super(params)
21
+ self.createdate = Time.now
22
+ self.modifieddate = Time.now
23
+ end
24
+
25
+ end
@@ -0,0 +1,5 @@
1
+ class Announcement < ActiveRecord::Base
2
+ set_table_name :announcementsentry
3
+ set_primary_key :entryid
4
+
5
+ end
data/lib/blog_post.rb ADDED
@@ -0,0 +1,32 @@
1
+ class BlogPost < ActiveRecord::Base
2
+ set_table_name :blogsentry
3
+ set_primary_key :entryid
4
+
5
+ # com.liferay.portlet.blogs.model.BlogsEntry
6
+ def liferay_class
7
+ 'com.liferay.portlet.blogs.model.BlogsEntry'
8
+ end
9
+
10
+ # association to user
11
+ belongs_to :user,
12
+ :foreign_key => 'userid'
13
+ alias :writer :user
14
+ alias :owner :user
15
+
16
+ # association to group
17
+ belongs_to :group,
18
+ :foreign_key => 'groupid'
19
+ alias :community :group
20
+
21
+ has_one :asset,
22
+ :foreign_key => 'classpk'
23
+
24
+ # # association to assets (?)
25
+ # has_and_belongs_to_many :assets,
26
+ # :class_name => 'Asset',
27
+ # :join_table => 'tagsasset',
28
+ # :foreign_key => 'classpk',
29
+ # :association_foreign_key => 'assetid'
30
+
31
+
32
+ end
data/lib/bookmark.rb ADDED
@@ -0,0 +1,10 @@
1
+ class Bookmark < ActiveRecord::Base
2
+ set_table_name :bookmarksentry
3
+ set_primary_key :entryid
4
+
5
+ # com.liferay.portlet.bookmarks.model.BookmarksEntry
6
+ def liferay_class
7
+ 'com.liferay.portlet.bookmarks.model.BookmarksEntry'
8
+ end
9
+
10
+ end
data/lib/company.rb ADDED
@@ -0,0 +1,43 @@
1
+ class Company < ActiveRecord::Base
2
+ set_table_name :company
3
+ set_primary_key :companyid
4
+
5
+ has_one :account,
6
+ :foreign_key => 'companyid'
7
+
8
+ has_one :address,
9
+ :foreign_key => 'companyid'
10
+
11
+ has_many :organizations,
12
+ :foreign_key => 'companyid'
13
+
14
+ has_many :contacts,
15
+ :foreign_key => 'companyid'
16
+
17
+ has_many :users,
18
+ :foreign_key => 'companyid'
19
+
20
+ has_many :groups,
21
+ :foreign_key => 'companyid'
22
+
23
+ has_many :layoutsets,
24
+ :class_name => 'Web::LayoutSet',
25
+ :foreign_key => 'companyid'
26
+
27
+ has_one :resource,
28
+ :foreign_key => 'primkey'
29
+
30
+ # com.liferay.portal.model.Company
31
+ def liferay_class
32
+ 'com.liferay.portal.model.Company'
33
+ end
34
+
35
+
36
+ # has_one :frontpage,
37
+ # :class_name => "Web::LayoutSet",
38
+ # :foreign_key => "companyid",
39
+ # :conditions => "privatelayout=false AND virtualhost='#{@virtualhost}'"
40
+
41
+
42
+
43
+ end
data/lib/contact.rb ADDED
@@ -0,0 +1,52 @@
1
+ class Contact < ActiveRecord::Base
2
+ set_table_name :contact_
3
+ set_primary_key :contactid
4
+
5
+ public
6
+
7
+ # com.liferay.portal.model.Contact
8
+ def liferay_class
9
+ 'com.liferay.portal.model.Contact'
10
+ end
11
+
12
+ belongs_to :company,
13
+ :foreign_key => 'companyid'
14
+
15
+ belongs_to :user,
16
+ :foreign_key => 'userid'
17
+
18
+ belongs_to :account,
19
+ :foreign_key => 'accountid'
20
+
21
+ def initialize(params)
22
+ super(params)
23
+ self.createdate = Time.now
24
+ self.modifieddate = Time.now
25
+ self.prefixid ||= 0
26
+ self.suffixid ||= 0
27
+ self.parentcontactid ||= 0
28
+ self.birthday ||= Date.new(1970,1,1)
29
+
30
+ unless self.companyid
31
+ u = User.find self.userid
32
+ self.companyid = u.company.id
33
+ end
34
+ unless self.accountid
35
+ c = Company.find self.companyid
36
+ self.accountid = c.accountid
37
+ end
38
+ end
39
+
40
+ def save
41
+ if !self.username and self.firstname and self.lastname
42
+ self.username = fullname
43
+ end
44
+ super
45
+ end
46
+
47
+ def fullname
48
+ (self.firstname.empty? and self.lastname.empty?) ?
49
+ false : self.firstname+' '+self.lastname
50
+ end
51
+
52
+ end
data/lib/counter.rb ADDED
@@ -0,0 +1,4 @@
1
+ class Counter < ActiveRecord::Base
2
+ set_table_name :counter
3
+ set_primary_key :name
4
+ end
data/lib/dl_file.rb ADDED
@@ -0,0 +1,24 @@
1
+ class DlFile < ActiveRecord::Base
2
+ set_table_name :dlfileentry
3
+ set_primary_key :fileentryid
4
+
5
+ # com.liferay.portlet.documentlibrary.model.DLFileEntry
6
+ def liferay_class
7
+ 'com.liferay.portlet.documentlibrary.model.DLFileEntry'
8
+ end
9
+
10
+ belongs_to :folder,
11
+ :class_name => 'DlFolder',
12
+ :foreign_key => 'folderid'
13
+
14
+ belongs_to :company,
15
+ :foreign_key => 'companyid'
16
+
17
+ belongs_to :user,
18
+ :foreign_key => 'userid'
19
+ alias :owner :user
20
+
21
+ has_one :asset,
22
+ :foreign_key => 'classpk'
23
+
24
+ end
data/lib/dl_folder.rb ADDED
@@ -0,0 +1,25 @@
1
+ class DlFolder < ActiveRecord::Base
2
+ set_table_name :dlfolder
3
+ set_primary_key :folderid
4
+
5
+ # com.liferay.portlet.documentlibrary.model.DLFolder
6
+ def liferay_class
7
+ 'com.liferay.portlet.documentlibrary.model.DLFolder'
8
+ end
9
+
10
+ has_many :files,
11
+ :class_name => 'DlFile',
12
+ :foreign_key => 'folderid'
13
+
14
+ belongs_to :company,
15
+ :foreign_key => 'companyid'
16
+
17
+ belongs_to :user,
18
+ :foreign_key => 'userid'
19
+ alias :owner :user
20
+
21
+ belongs_to :group,
22
+ :foreign_key => 'groupid'
23
+ alias :community :group
24
+
25
+ end
@@ -0,0 +1,18 @@
1
+ class Emailaddress < ActiveRecord::Base
2
+ set_table_name :emailaddress
3
+ set_primary_key :emailaddressid
4
+
5
+ public
6
+
7
+ # com.liferay.portal.model.EmailAddress
8
+ def liferay_class
9
+ 'com.liferay.portal.model.EmailAddress'
10
+ end
11
+
12
+ belongs_to :company,
13
+ :foreign_key => 'companyid'
14
+
15
+ belongs_to :user,
16
+ :foreign_key => 'userid'
17
+
18
+ end
data/lib/group.rb ADDED
@@ -0,0 +1,100 @@
1
+ # This model represents the user groups (communities) in the lportal database.
2
+ class Group < ActiveRecord::Base
3
+ set_table_name :group_
4
+ set_primary_key :groupid
5
+
6
+ public
7
+
8
+ # com.liferay.portal.model.Group
9
+ def liferay_class
10
+ 'com.liferay.portal.model.Group'
11
+ end
12
+
13
+ belongs_to :company,
14
+ :foreign_key => 'companyid'
15
+
16
+ belongs_to :creator,
17
+ :class_name => 'User',
18
+ :foreign_key => 'creatoruserid'
19
+ alias :owner :creator
20
+
21
+ # association to organizations
22
+ has_and_belongs_to_many :organizations,
23
+ :join_table => 'groups_orgs',
24
+ :foreign_key => 'groupid',
25
+ :association_foreign_key => 'organizationid'
26
+ alias :orgs :organizations
27
+
28
+ # association to users
29
+ has_and_belongs_to_many :users,
30
+ :join_table => 'users_groups',
31
+ :foreign_key => 'groupid',
32
+ :association_foreign_key => 'userid'
33
+
34
+ # association to roles
35
+ has_and_belongs_to_many :roles,
36
+ :join_table => 'groups_roles',
37
+ :foreign_key => 'groupid',
38
+ :association_foreign_key => 'roleid'
39
+
40
+ # association to group permissions.
41
+ has_and_belongs_to_many :permissions,
42
+ :join_table => 'groups_permissions',
43
+ :foreign_key => 'groupid',
44
+ :association_foreign_key => 'permissionid'
45
+
46
+ # association to group usergroups.
47
+ has_and_belongs_to_many :usergroups,
48
+ :join_table => 'groups_usergroups',
49
+ :foreign_key => 'groupid',
50
+ :association_foreign_key => 'usergroupid'
51
+
52
+ ####
53
+
54
+ # association to assets
55
+ has_many :assets,
56
+ :foreign_key => 'groupid'
57
+
58
+ # a group may have two layoutsets (public and private)
59
+ has_many :layoutsets,
60
+ :class_name => 'Web::LayoutSet',
61
+ :foreign_key => 'groupid'
62
+
63
+ has_one :public_layoutset,
64
+ :class_name => 'Web::LayoutSet',
65
+ :foreign_key => 'groupid',
66
+ :conditions => 'privatelayout = false'
67
+
68
+ has_one :private_layoutset,
69
+ :class_name => 'Web::LayoutSet',
70
+ :foreign_key => 'groupid',
71
+ :conditions => 'privatelayout = true'
72
+
73
+ # a group may have many layouts (public and private)
74
+ has_many :layouts,
75
+ :class_name => 'Web::Layout',
76
+ :foreign_key => 'groupid'
77
+
78
+ has_many :public_layouts,
79
+ :class_name => 'Web::Layout',
80
+ :foreign_key => 'groupid',
81
+ :conditions => 'privatelayout = false'
82
+
83
+ has_many :private_layouts,
84
+ :class_name => 'Web::Layout',
85
+ :foreign_key => 'groupid',
86
+ :conditions => 'privatelayout = true'
87
+
88
+ # myös classpk ?
89
+ has_one :resource,
90
+ :foreign_key => 'primkey'
91
+
92
+ has_many :mbcategories,
93
+ :class_name => 'MB::Category',
94
+ :foreign_key => 'groupid'
95
+
96
+ def is_active?
97
+ self.active_
98
+ end
99
+
100
+ end
data/lib/ig/folder.rb ADDED
@@ -0,0 +1,12 @@
1
+ # Image Gallery
2
+ module IG
3
+ class Folder < ActiveRecord::Base
4
+ set_table_name :igfolder
5
+ set_primary_key :folderid
6
+
7
+ # com.liferay.portlet.imagegallery.model.IGFolder
8
+ def liferay_class
9
+ 'com.liferay.portlet.imagegallery.model.IGFolder'
10
+ end
11
+ end
12
+ end
data/lib/ig/image.rb ADDED
@@ -0,0 +1,35 @@
1
+ module IG
2
+ # Image gallery image
3
+ class Image < ActiveRecord::Base
4
+ set_table_name :igimage
5
+ set_primary_key :imageid
6
+
7
+ # com.liferay.portlet.imagegallery.model.IGImage
8
+ def liferay_class
9
+ 'com.liferay.portlet.imagegallery.model.IGImage'
10
+ end
11
+
12
+ belongs_to :company,
13
+ :foreign_key => 'companyid'
14
+
15
+ belongs_to :user,
16
+ :foreign_key => 'userid'
17
+
18
+ has_one :asset,
19
+ :foreign_key => 'classpk'
20
+
21
+ # belongs_to :folder,
22
+ # :class_name => "DlFolder",
23
+ # :foreign_key => "folderid"
24
+
25
+ #
26
+ def large
27
+ ::Image.find self.largeimageid
28
+ end
29
+
30
+ def small
31
+ ::Image.find self.smallimageid
32
+ end
33
+
34
+ end
35
+ end
data/lib/image.rb ADDED
@@ -0,0 +1,11 @@
1
+ # Image data
2
+ class Image < ActiveRecord::Base
3
+ set_table_name :image
4
+ set_primary_key :imageid
5
+
6
+ # com.liferay.portal.model.Image
7
+ def liferay_class
8
+ 'com.liferay.portal.model.Image'
9
+ end
10
+
11
+ end
@@ -0,0 +1,43 @@
1
+ module Journal
2
+ class Article < ActiveRecord::Base
3
+ set_table_name :journalarticle
4
+ set_primary_key :id_
5
+
6
+ # com.liferay.portlet.journal.model.JournalArticle
7
+ def liferay_class
8
+ 'com.liferay.portlet.journal.model.JournalArticle'
9
+ end
10
+
11
+ belongs_to :company,
12
+ :foreign_key => 'companyid'
13
+
14
+ belongs_to :group,
15
+ :foreign_key => 'groupid'
16
+
17
+ # association to user
18
+ belongs_to :user,
19
+ :foreign_key => 'userid'
20
+ alias :owner :user
21
+
22
+ belongs_to :resource,
23
+ :class_name => 'Journal::ArticleResource',
24
+ :foreign_key => 'resourceprimkey'
25
+
26
+ def asset
27
+ self.resource.asset
28
+ end
29
+
30
+ has_many :properties,
31
+ :class_name => 'TagsProperty',
32
+ :foreign_key => 'entryid'
33
+
34
+ # # association to assets
35
+ # has_and_belongs_to_many :assets,
36
+ # :join_table => 'tagsassets_tagsentries',
37
+ # :foreign_key => 'entryid',
38
+ # :association_foreign_key => 'assetid'
39
+
40
+
41
+ end
42
+
43
+ end
@@ -0,0 +1,4 @@
1
+ module Journal
2
+ class ArticleImage < ActiveRecord::Base
3
+ end
4
+ end
@@ -0,0 +1,23 @@
1
+ module Journal
2
+ class ArticleResource < ActiveRecord::Base
3
+ set_table_name :journalarticleresource
4
+ set_primary_key :resourceprimkey
5
+
6
+ # com.liferay.portlet.journal.model.JournalArticleResource
7
+ def liferay_class
8
+ 'com.liferay.portlet.journal.model.JournalArticleResource'
9
+ end
10
+
11
+ belongs_to :group,
12
+ :foreign_key => 'groupid'
13
+
14
+ has_one :asset,
15
+ :foreign_key => 'classpk'
16
+
17
+ # verbose has_one :article, as articleid does not refer the primkey of Journal::Article
18
+ def articles
19
+ Journal::Article.find :all, :conditions => "articleid=#{self.articleid}"
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,47 @@
1
+ # Message Board
2
+ module MB
3
+ class Category < ActiveRecord::Base
4
+ set_table_name :mbcategory
5
+ set_primary_key :categoryid
6
+
7
+ # com.liferay.portlet.messageboards.model.MBCategory
8
+ def liferay_class
9
+ 'com.liferay.portlet.messageboards.model.MBCategory'
10
+ end
11
+
12
+ belongs_to :group,
13
+ :foreign_key => "groupid"
14
+
15
+ belongs_to :company,
16
+ :foreign_key => "companyid"
17
+
18
+ belongs_to :user,
19
+ :foreign_key => "userid"
20
+ alias :owner :user
21
+
22
+ has_one :asset,
23
+ :foreign_key => 'classpk'
24
+
25
+ # has_one :parent,
26
+ # :class_name => self.class,
27
+ # :foreign_key => "parentcategoryid"
28
+
29
+ #
30
+ def parent
31
+ self.parentcategoryid != 0 ? MB::Category.find(self.parentcategoryid) : nil
32
+ end
33
+
34
+ has_many :subcategories,
35
+ :class_name => 'MB::Category',
36
+ :foreign_key => :parentcategoryid
37
+
38
+ has_many :threads,
39
+ :class_name => 'MB::Thread',
40
+ :foreign_key => 'categoryid'
41
+
42
+ has_many :messages,
43
+ :class_name => 'MB::Message',
44
+ :foreign_key => 'categoryid'
45
+
46
+ end
47
+ end
@@ -0,0 +1,16 @@
1
+ module MB
2
+ class Discussion < ActiveRecord::Base
3
+ set_table_name :mbdiscussion
4
+ set_primary_key :discussionid
5
+
6
+ # com.liferay.portlet.messageboards.model.MBDiscussion
7
+ def liferay_class
8
+ 'com.liferay.portlet.messageboards.model.MBDiscussion'
9
+ end
10
+
11
+ belongs_to :thread,
12
+ :class_name => "MB::Thread",
13
+ :foreign_key => "threadid"
14
+
15
+ end
16
+ end
data/lib/mb/message.rb ADDED
@@ -0,0 +1,45 @@
1
+ module MB
2
+ class Message < ActiveRecord::Base
3
+ set_table_name :mbmessage
4
+ set_primary_key :messageid
5
+
6
+ # com.liferay.portlet.messageboards.model.MBMessage
7
+ def liferay_class
8
+ 'com.liferay.portlet.messageboards.model.MBMessage'
9
+ end
10
+
11
+ belongs_to :company,
12
+ :foreign_key => 'companyid'
13
+
14
+ belongs_to :user,
15
+ :foreign_key => 'userid'
16
+ alias :writer :user
17
+ alias :owner :user
18
+
19
+ belongs_to :category,
20
+ :class_name => 'MB::Category',
21
+ :foreign_key => 'categoryid'
22
+
23
+ belongs_to :thread,
24
+ :class_name => 'MB::Thread',
25
+ :foreign_key => 'threadid'
26
+
27
+ has_one :asset,
28
+ :foreign_key => 'classpk'
29
+
30
+
31
+ # parent message
32
+ def parent
33
+ self.parentmessageid != 0 ? MB::Message.find(self.parentmessageid) : nil
34
+ end
35
+
36
+ def has_attachements?
37
+ self.attachements
38
+ end
39
+
40
+ def is_anonymous?
41
+ self.anonymous
42
+ end
43
+
44
+ end
45
+ end
data/lib/mb/thread.rb ADDED
@@ -0,0 +1,20 @@
1
+ module MB
2
+ class Thread < ActiveRecord::Base
3
+ set_table_name :mbthread
4
+ set_primary_key :threadid
5
+
6
+ # com.liferay.portlet.messageboards.model.MBThread
7
+ def liferay_class
8
+ 'com.liferay.portlet.messageboards.model.MBThread'
9
+ end
10
+
11
+ belongs_to :category,
12
+ :class_name => "MB::Category",
13
+ :foreign_key => "categoryid"
14
+
15
+ belongs_to :first_entry,
16
+ :class_name => "MB::Message",
17
+ :foreign_key => "rootmessageid"
18
+
19
+ end
20
+ end
@@ -0,0 +1,26 @@
1
+ class Organization < ActiveRecord::Base
2
+ set_table_name :organization_
3
+ set_primary_key :organizationid
4
+
5
+ # com.liferay.portal.model.Organization
6
+ def liferay_class
7
+ 'com.liferay.portal.model.Organization'
8
+ end
9
+
10
+ belongs_to :company,
11
+ :foreign_key => 'companyid'
12
+
13
+ # association to users
14
+ has_and_belongs_to_many :users,
15
+ :join_table => 'users_orgs',
16
+ :foreign_key => 'organizationid',
17
+ :association_foreign_key => 'userid'
18
+ alias :members :users
19
+
20
+ # Organization's own group
21
+ has_one :hive,
22
+ :class_name => 'Group',
23
+ :foreign_key => 'classpk'
24
+
25
+
26
+ end