lportal 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +16 -0
- data/install.rb +1 -0
- data/lib/account.rb +16 -0
- data/lib/address.rb +25 -0
- data/lib/announcement.rb +5 -0
- data/lib/blog_post.rb +32 -0
- data/lib/bookmark.rb +10 -0
- data/lib/company.rb +43 -0
- data/lib/contact.rb +52 -0
- data/lib/counter.rb +4 -0
- data/lib/dl_file.rb +24 -0
- data/lib/dl_folder.rb +25 -0
- data/lib/emailaddress.rb +18 -0
- data/lib/group.rb +100 -0
- data/lib/ig/folder.rb +12 -0
- data/lib/ig/image.rb +35 -0
- data/lib/image.rb +11 -0
- data/lib/journal/article.rb +43 -0
- data/lib/journal/article_image.rb +4 -0
- data/lib/journal/article_resource.rb +23 -0
- data/lib/mb/category.rb +47 -0
- data/lib/mb/discussion.rb +16 -0
- data/lib/mb/message.rb +45 -0
- data/lib/mb/thread.rb +20 -0
- data/lib/organization.rb +26 -0
- data/lib/permission.rb +32 -0
- data/lib/phone.rb +33 -0
- data/lib/resource.rb +58 -0
- data/lib/resource_code.rb +13 -0
- data/lib/role.rb +19 -0
- data/lib/tag/asset.rb +34 -0
- data/lib/tag/entry.rb +46 -0
- data/lib/tag/property.rb +28 -0
- data/lib/user.rb +248 -0
- data/lib/usergroup.rb +23 -0
- data/lib/web/layout.rb +67 -0
- data/lib/web/layout_set.rb +37 -0
- data/lib/web/portlet.rb +43 -0
- data/lib/web/portlet_name.rb +6 -0
- data/lib/web/portlet_preferences.rb +42 -0
- data/lib/wiki/node.rb +21 -0
- data/lib/wiki/page.rb +29 -0
- data/lib/wiki/pageresource.rb +20 -0
- data/lportal.rb +9 -0
- data/test/unit/account_test.rb +20 -0
- data/test/unit/address_test.rb +8 -0
- data/test/unit/announcement_test.rb +8 -0
- data/test/unit/asset_test.rb +29 -0
- data/test/unit/bookmark_test.rb +8 -0
- data/test/unit/company_test.rb +60 -0
- data/test/unit/contact_test.rb +23 -0
- data/test/unit/dl_file_test.rb +8 -0
- data/test/unit/dl_folder_test.rb +8 -0
- data/test/unit/group_test.rb +76 -0
- data/test/unit/ig/folder_test.rb +8 -0
- data/test/unit/ig/image_test.rb +20 -0
- data/test/unit/image_test.rb +34 -0
- data/test/unit/journal/article_image_test.rb +8 -0
- data/test/unit/journal/article_resource_test.rb +20 -0
- data/test/unit/journal/article_test.rb +39 -0
- data/test/unit/mb/category_test.rb +35 -0
- data/test/unit/mb/discussion_test.rb +14 -0
- data/test/unit/mb/message_test.rb +46 -0
- data/test/unit/mb/thread_test.rb +21 -0
- data/test/unit/organization_test.rb +57 -0
- data/test/unit/permission_test.rb +33 -0
- data/test/unit/resource_code_test.rb +29 -0
- data/test/unit/resource_test.rb +49 -0
- data/test/unit/role_test.rb +22 -0
- data/test/unit/tag/entry_test.rb +35 -0
- data/test/unit/tag/property_test.rb +27 -0
- data/test/unit/user_group_test.rb +8 -0
- data/test/unit/user_test.rb +103 -0
- data/test/unit/usergroup_test.rb +33 -0
- data/test/unit/web/layout_set_test.rb +88 -0
- data/test/unit/web/layout_test.rb +91 -0
- data/test/unit/web/portlet_preferences_test.rb +47 -0
- data/test/unit/web/portlet_test.rb +33 -0
- data/test/unit/wiki/node_test.rb +8 -0
- data/test/unit/wiki/page_test.rb +8 -0
- 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
|
data/lib/announcement.rb
ADDED
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
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
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
|
data/lib/emailaddress.rb
ADDED
@@ -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,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,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
|
data/lib/mb/category.rb
ADDED
@@ -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
|
data/lib/organization.rb
ADDED
@@ -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
|