lportal 1.0.0 → 1.0.4
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.
- data/README +1 -2
- data/init.rb +4 -0
- data/lib/announcement/entry.rb +17 -0
- data/lib/blog_post.rb +3 -0
- data/lib/bookmark/entry.rb +22 -0
- data/lib/bookmark/folder.rb +18 -0
- data/lib/calevent.rb +20 -0
- data/lib/classname.rb +78 -0
- data/lib/company.rb +5 -0
- data/lib/ig/folder.rb +11 -0
- data/lib/ig/image.rb +3 -4
- data/lib/journal/article_resource.rb +6 -2
- data/lib/mb/message.rb +0 -3
- data/lib/mb/thread.rb +5 -1
- data/lib/organization.rb +9 -2
- data/lib/resource.rb +5 -11
- data/lib/tag/asset.rb +40 -1
- data/lib/user.rb +7 -0
- data/lib/usergroup.rb +4 -4
- data/lib/web/layout.rb +4 -0
- data/lib/web/layout_set.rb +14 -10
- data/lib/web/portlet.rb +9 -9
- data/lib/web/portlet_preferences.rb +6 -6
- data/lib/wiki/page.rb +3 -0
- data/lportal.rb +12 -1
- data/test/unit/account_test.rb +5 -2
- data/test/unit/address_test.rb +0 -4
- data/test/unit/announcement/entry_test.rb +28 -0
- data/test/unit/blog_post_test.rb +38 -0
- data/test/unit/bookmark/entry_test.rb +28 -0
- data/test/unit/bookmark/folder_test.rb +22 -0
- data/test/unit/calevent_test.rb +28 -0
- data/test/unit/company_test.rb +31 -18
- data/test/unit/contact_test.rb +6 -5
- data/test/unit/group_test.rb +4 -2
- data/test/unit/ig/folder_test.rb +23 -3
- data/test/unit/ig/image_test.rb +11 -3
- data/test/unit/journal/article_image_test.rb +6 -5
- data/test/unit/journal/article_resource_test.rb +16 -3
- data/test/unit/journal/article_test.rb +19 -6
- data/test/unit/mb/category_test.rb +21 -5
- data/test/unit/mb/discussion_test.rb +9 -2
- data/test/unit/mb/message_test.rb +16 -8
- data/test/unit/mb/thread_test.rb +10 -3
- data/test/unit/organization_test.rb +20 -21
- data/test/unit/permission_test.rb +30 -9
- data/test/unit/resource_code_test.rb +8 -4
- data/test/unit/resource_test.rb +46 -24
- data/test/unit/role_test.rb +5 -3
- data/test/unit/tag/asset_test.rb +61 -0
- data/test/unit/tag/entry_test.rb +17 -7
- data/test/unit/tag/property_test.rb +12 -4
- data/test/unit/user_test.rb +37 -44
- data/test/unit/usergroup_test.rb +10 -9
- data/test/unit/web/layout_set_test.rb +38 -34
- data/test/unit/web/layout_test.rb +3 -5
- data/test/unit/web/portlet_preferences_test.rb +10 -6
- data/test/unit/web/portlet_test.rb +14 -8
- data/test/unit/wiki/node_test.rb +1 -4
- data/test/unit/wiki/page_test.rb +1 -4
- data/version.rb +4 -0
- metadata +28 -10
- data/lib/announcement.rb +0 -5
- data/lib/bookmark.rb +0 -10
- data/lib/web/portlet_name.rb +0 -6
- data/test/unit/announcement_test.rb +0 -8
- data/test/unit/asset_test.rb +0 -29
- data/test/unit/bookmark_test.rb +0 -8
- data/test/unit/user_group_test.rb +0 -8
data/README
CHANGED
@@ -3,8 +3,7 @@
|
|
3
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
4
|
|
5
5
|
|
6
|
-
|
7
|
-
== Example
|
6
|
+
== Follow these steps
|
8
7
|
|
9
8
|
1. Configure ActiveRecord as usual.
|
10
9
|
2. require 'lportal'
|
data/init.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
module Announcement
|
2
|
+
class Entry < ActiveRecord::Base
|
3
|
+
set_table_name :announcementsentry
|
4
|
+
set_primary_key :entryid
|
5
|
+
|
6
|
+
belongs_to :company,
|
7
|
+
:foreign_key => 'companyid'
|
8
|
+
|
9
|
+
belongs_to :user,
|
10
|
+
:foreign_key => 'userid'
|
11
|
+
|
12
|
+
# has_one :asset,
|
13
|
+
# :foreign_key => 'classpk'
|
14
|
+
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
data/lib/blog_post.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
module Bookmark
|
2
|
+
class Entry < ActiveRecord::Base
|
3
|
+
set_table_name :bookmarksentry
|
4
|
+
set_primary_key :entryid
|
5
|
+
|
6
|
+
# com.liferay.portlet.bookmarks.model.BookmarksEntry
|
7
|
+
def liferay_class
|
8
|
+
'com.liferay.portlet.bookmarks.model.BookmarksEntry'
|
9
|
+
end
|
10
|
+
|
11
|
+
belongs_to :company,
|
12
|
+
:foreign_key => 'companyid'
|
13
|
+
|
14
|
+
belongs_to :user,
|
15
|
+
:foreign_key => 'userid'
|
16
|
+
|
17
|
+
belongs_to :folder,
|
18
|
+
:class_name => 'Bookmark::Folder',
|
19
|
+
:foreign_key => 'folderid'
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Bookmark
|
2
|
+
class Folder < ActiveRecord::Base
|
3
|
+
set_table_name :bookmarksfolder
|
4
|
+
set_primary_key :folderid
|
5
|
+
|
6
|
+
# com.liferay.portlet.bookmarks.model.BookmarksFolder
|
7
|
+
def liferay_class
|
8
|
+
'com.liferay.portlet.bookmarks.model.BookmarksFolder'
|
9
|
+
end
|
10
|
+
|
11
|
+
belongs_to :company,
|
12
|
+
:foreign_key => 'companyid'
|
13
|
+
|
14
|
+
belongs_to :user,
|
15
|
+
:foreign_key => 'userid'
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
data/lib/calevent.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
class Calevent < ActiveRecord::Base
|
2
|
+
set_table_name :calevent
|
3
|
+
set_primary_key :eventid
|
4
|
+
|
5
|
+
# com.liferay.portlet.calendar.model.CalEvent
|
6
|
+
def liferay_class
|
7
|
+
'com.liferay.portlet.calendar.model.CalEvent'
|
8
|
+
end
|
9
|
+
|
10
|
+
belongs_to :company,
|
11
|
+
:foreign_key => 'companyid'
|
12
|
+
|
13
|
+
belongs_to :user,
|
14
|
+
:foreign_key => 'userid'
|
15
|
+
|
16
|
+
belongs_to :group,
|
17
|
+
:foreign_key => 'groupid'
|
18
|
+
|
19
|
+
|
20
|
+
end
|
data/lib/classname.rb
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
class Classname < ActiveRecord::Base
|
2
|
+
set_table_name :classname_
|
3
|
+
set_primary_key :classnameid
|
4
|
+
|
5
|
+
# Returns the Class of the model for a certain Java class
|
6
|
+
def self.model(codename)
|
7
|
+
case codename
|
8
|
+
|
9
|
+
# TODO: rake task to caterpillar..
|
10
|
+
# when "56" #journal_content
|
11
|
+
# when "58" #login
|
12
|
+
# when "101" #tagged_content
|
13
|
+
# when "103" #tags_compiler
|
14
|
+
|
15
|
+
when 'com.liferay.portal.model.Layout'
|
16
|
+
Web::Layout
|
17
|
+
|
18
|
+
when 'com.liferay.portal.model.Organization'
|
19
|
+
Organization
|
20
|
+
|
21
|
+
when 'com.liferay.portal.model.Role'
|
22
|
+
Role
|
23
|
+
|
24
|
+
when 'com.liferay.portal.model.User'
|
25
|
+
User
|
26
|
+
|
27
|
+
when 'com.liferay.portal.model.UserGroup'
|
28
|
+
Usergroup
|
29
|
+
|
30
|
+
when 'com.liferay.portlet.blogs.model.BlogsEntry'
|
31
|
+
BlogPost
|
32
|
+
|
33
|
+
when 'com.liferay.portlet.documentlibrary.model.DLFileEntry'
|
34
|
+
DlFile
|
35
|
+
|
36
|
+
when 'com.liferay.portlet.documentlibrary.model.DLFolder'
|
37
|
+
DlFolder
|
38
|
+
|
39
|
+
when 'com.liferay.portlet.calendar.model.CalEvent'
|
40
|
+
Calevent
|
41
|
+
|
42
|
+
when 'com.liferay.portlet.announcements.model.AnnouncementsEntry'
|
43
|
+
Announcement::Entry
|
44
|
+
|
45
|
+
when 'com.liferay.portlet.bookmarks.model.BookmarksEntry'
|
46
|
+
Bookmark::Entry
|
47
|
+
|
48
|
+
when 'com.liferay.portlet.bookmarks.model.BookmarksFolder'
|
49
|
+
Bookmark::Folder
|
50
|
+
|
51
|
+
when 'com.liferay.portlet.imagegallery.model.IGFolder'
|
52
|
+
IG::Folder
|
53
|
+
|
54
|
+
when 'com.liferay.portlet.imagegallery.model.IGImage'
|
55
|
+
IG::Image
|
56
|
+
|
57
|
+
when 'com.liferay.portlet.journal.model.JournalArticle'
|
58
|
+
Journal::Article
|
59
|
+
|
60
|
+
when 'com.liferay.portlet.journal.model.JournalArticleResource'
|
61
|
+
Journal::ArticleResource
|
62
|
+
|
63
|
+
when 'com.liferay.portlet.messageboards.model.MBCategory'
|
64
|
+
MB::Category
|
65
|
+
|
66
|
+
when 'com.liferay.portlet.messageboards.model.MBMessage'
|
67
|
+
MB::Message
|
68
|
+
|
69
|
+
when 'com.liferay.portlet.wiki.model.WikiNode'
|
70
|
+
Wiki::Node
|
71
|
+
|
72
|
+
when 'com.liferay.portlet.wiki.model.WikiPage'
|
73
|
+
Wiki::Page
|
74
|
+
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
data/lib/company.rb
CHANGED
@@ -32,6 +32,11 @@ class Company < ActiveRecord::Base
|
|
32
32
|
'com.liferay.portal.model.Company'
|
33
33
|
end
|
34
34
|
|
35
|
+
def administrators
|
36
|
+
adminrole = Role.find_by_name 'Administrator'
|
37
|
+
return self.users.select{|u| u.roles.include?(adminrole) }
|
38
|
+
end
|
39
|
+
|
35
40
|
|
36
41
|
# has_one :frontpage,
|
37
42
|
# :class_name => "Web::LayoutSet",
|
data/lib/ig/folder.rb
CHANGED
@@ -8,5 +8,16 @@ module IG
|
|
8
8
|
def liferay_class
|
9
9
|
'com.liferay.portlet.imagegallery.model.IGFolder'
|
10
10
|
end
|
11
|
+
|
12
|
+
belongs_to :company,
|
13
|
+
:foreign_key => 'companyid'
|
14
|
+
|
15
|
+
belongs_to :user,
|
16
|
+
:foreign_key => 'userid'
|
17
|
+
|
18
|
+
belongs_to :group,
|
19
|
+
:foreign_key => 'groupid'
|
20
|
+
|
21
|
+
|
11
22
|
end
|
12
23
|
end
|
data/lib/ig/image.rb
CHANGED
@@ -18,11 +18,10 @@ module IG
|
|
18
18
|
has_one :asset,
|
19
19
|
:foreign_key => 'classpk'
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
belongs_to :folder,
|
22
|
+
:class_name => 'IG::Folder',
|
23
|
+
:foreign_key => 'folderid'
|
24
24
|
|
25
|
-
#
|
26
25
|
def large
|
27
26
|
::Image.find self.largeimageid
|
28
27
|
end
|
@@ -14,9 +14,13 @@ module Journal
|
|
14
14
|
has_one :asset,
|
15
15
|
:foreign_key => 'classpk'
|
16
16
|
|
17
|
+
# belongs_to :article,
|
18
|
+
# :class_name => 'Journal::Article',
|
19
|
+
# :foreign_key => 'articleid'
|
20
|
+
|
17
21
|
# verbose has_one :article, as articleid does not refer the primkey of Journal::Article
|
18
|
-
def
|
19
|
-
Journal::Article.
|
22
|
+
def article
|
23
|
+
Journal::Article.find_by_articleid self.articleid
|
20
24
|
end
|
21
25
|
|
22
26
|
end
|
data/lib/mb/message.rb
CHANGED
data/lib/mb/thread.rb
CHANGED
@@ -12,9 +12,13 @@ module MB
|
|
12
12
|
:class_name => "MB::Category",
|
13
13
|
:foreign_key => "categoryid"
|
14
14
|
|
15
|
-
belongs_to :
|
15
|
+
belongs_to :root,
|
16
16
|
:class_name => "MB::Message",
|
17
17
|
:foreign_key => "rootmessageid"
|
18
18
|
|
19
|
+
def first_entry
|
20
|
+
self.root
|
21
|
+
end
|
22
|
+
|
19
23
|
end
|
20
24
|
end
|
data/lib/organization.rb
CHANGED
@@ -17,10 +17,17 @@ class Organization < ActiveRecord::Base
|
|
17
17
|
:association_foreign_key => 'userid'
|
18
18
|
alias :members :users
|
19
19
|
|
20
|
+
belongs_to :parent,
|
21
|
+
:class_name => 'Organization',
|
22
|
+
:foreign_key => 'parentorganizationid'
|
23
|
+
|
20
24
|
# Organization's own group
|
21
|
-
has_one :
|
22
|
-
:class_name
|
25
|
+
has_one :group,
|
26
|
+
:class_name => 'Group',
|
23
27
|
:foreign_key => 'classpk'
|
24
28
|
|
29
|
+
def hive
|
30
|
+
self.group
|
31
|
+
end
|
25
32
|
|
26
33
|
end
|
data/lib/resource.rb
CHANGED
@@ -32,23 +32,17 @@ class Resource < ActiveRecord::Base
|
|
32
32
|
def content
|
33
33
|
key = self.primkey
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
when 'com.liferay.portal.model.Layout'
|
39
|
-
Web::Layout.find key
|
40
|
-
|
41
|
-
# when "56" #journal_content
|
42
|
-
# when "58" #login
|
43
|
-
# when "101" #tagged_content
|
44
|
-
# when "103" #tags_compiler
|
35
|
+
_class = Classname.model(self.code.name)
|
36
|
+
if _class
|
37
|
+
_class.find key
|
45
38
|
|
46
39
|
else
|
47
40
|
if key[/LAYOUT/]
|
48
41
|
Web::PortletPreferences.find(:first, :conditions => "plid=#{self.plid} AND portletid='#{self.portletid}'" )
|
49
42
|
else
|
50
43
|
# unless groups_ids.include? key
|
51
|
-
|
44
|
+
STDERR.puts "fixme: #{self.code.name} (#{key})"
|
45
|
+
return nil
|
52
46
|
# end
|
53
47
|
end
|
54
48
|
end
|
data/lib/tag/asset.rb
CHANGED
@@ -24,11 +24,50 @@ module Tag
|
|
24
24
|
|
25
25
|
# association to tags
|
26
26
|
has_and_belongs_to_many :tags,
|
27
|
-
:class_name
|
27
|
+
:class_name => 'Tag::Entry',
|
28
28
|
:join_table => 'tagsassets_tagsentries',
|
29
29
|
:foreign_key => 'assetid',
|
30
30
|
:association_foreign_key => 'entryid'
|
31
31
|
|
32
|
+
def self.resource_types
|
33
|
+
[
|
34
|
+
BlogPost,
|
35
|
+
Wiki::Page,
|
36
|
+
MB::Message,
|
37
|
+
Journal::Article,
|
38
|
+
DlFile,
|
39
|
+
IG::Image,
|
40
|
+
Bookmark::Entry,
|
41
|
+
Group,
|
42
|
+
DlFolder
|
43
|
+
]
|
44
|
+
end
|
45
|
+
|
46
|
+
# Content can be of several different types.
|
47
|
+
# Finding Wiki::Page s and Journal::Article s is a bit tricky..
|
48
|
+
def resource
|
49
|
+
resource_id = self.classpk
|
50
|
+
#logger.debug "Looking up resource #{resource_id}"
|
51
|
+
|
52
|
+
_class = Classname.model(Classname.find(self.classnameid).value)
|
53
|
+
if _class
|
54
|
+
if _class==Wiki::Page
|
55
|
+
Wiki::Page.find(:first,
|
56
|
+
:conditions => "resourceprimkey=#{resource_id}", :order => "version DESC")
|
57
|
+
|
58
|
+
elsif _class==Journal::Article
|
59
|
+
Journal::Article.find(:first,
|
60
|
+
:conditions => "resourceprimkey=#{resource_id}", :order => "version DESC")
|
61
|
+
|
62
|
+
else
|
63
|
+
_class.find resource_id
|
64
|
+
end
|
65
|
+
|
66
|
+
else
|
67
|
+
logger.warn "Resource #{resource_id} of asset #{self.id} was left unresolved"
|
68
|
+
return nil
|
69
|
+
end
|
70
|
+
end
|
32
71
|
|
33
72
|
end
|
34
73
|
end
|
data/lib/user.rb
CHANGED
@@ -3,6 +3,8 @@ class User < ActiveRecord::Base
|
|
3
3
|
set_table_name :user_
|
4
4
|
set_primary_key :userid
|
5
5
|
|
6
|
+
validates_uniqueness_of :screenname
|
7
|
+
|
6
8
|
public
|
7
9
|
|
8
10
|
def liferay_class
|
@@ -154,6 +156,7 @@ class User < ActiveRecord::Base
|
|
154
156
|
|
155
157
|
# association to assets
|
156
158
|
has_many :assets,
|
159
|
+
:order => 'publishdate',
|
157
160
|
:foreign_key => 'userid'
|
158
161
|
|
159
162
|
# association to wiki pages
|
@@ -211,6 +214,10 @@ class User < ActiveRecord::Base
|
|
211
214
|
def birthday
|
212
215
|
self.contact.birthday
|
213
216
|
end
|
217
|
+
def birthday=(val)
|
218
|
+
self.contact.birthday = val
|
219
|
+
self.contact.save
|
220
|
+
end
|
214
221
|
|
215
222
|
def streetaddress
|
216
223
|
self.address.street1
|
data/lib/usergroup.rb
CHANGED
@@ -12,12 +12,12 @@ class Usergroup < ActiveRecord::Base
|
|
12
12
|
|
13
13
|
# association to direct groups
|
14
14
|
has_and_belongs_to_many :groups,
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
:join_table => 'groups_usergroups',
|
16
|
+
:foreign_key => 'usergroupid',
|
17
|
+
:association_foreign_key => 'groupid'
|
18
18
|
|
19
19
|
has_one :parent,
|
20
|
-
:class_name
|
20
|
+
:class_name => 'Usergroup',
|
21
21
|
:foreign_key => 'parentusergroupid'
|
22
22
|
|
23
23
|
end
|
data/lib/web/layout.rb
CHANGED
@@ -21,6 +21,10 @@ module Web
|
|
21
21
|
has_many :resources,
|
22
22
|
:foreign_key => 'primkey'
|
23
23
|
|
24
|
+
def layoutset
|
25
|
+
Web::LayoutSet.find(:first, :conditions => "groupid=#{self.groupid} AND privatelayout=#{self.privatelayout}" )
|
26
|
+
end
|
27
|
+
|
24
28
|
def portletids
|
25
29
|
begin
|
26
30
|
ts = self.typesettings
|
data/lib/web/layout_set.rb
CHANGED
@@ -3,35 +3,39 @@ module Web
|
|
3
3
|
class LayoutSet < ActiveRecord::Base
|
4
4
|
set_table_name :layoutset
|
5
5
|
set_primary_key :layoutsetid
|
6
|
-
|
6
|
+
|
7
7
|
# com.liferay.portal.model.LayoutSet
|
8
8
|
def liferay_class
|
9
9
|
'com.liferay.portal.model.LayoutSet'
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
public
|
13
|
-
|
13
|
+
|
14
14
|
belongs_to :group,
|
15
15
|
:foreign_key => 'groupid'
|
16
|
-
|
16
|
+
|
17
17
|
belongs_to :company,
|
18
18
|
:foreign_key => 'companyid'
|
19
|
-
|
19
|
+
|
20
20
|
def is_public?
|
21
21
|
!self.privatelayout
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
def is_private?
|
25
25
|
self.privatelayout
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
def has_logo?
|
29
29
|
self.logo
|
30
30
|
end
|
31
|
-
|
31
|
+
|
32
|
+
def layouts
|
33
|
+
Web::Layout.find(:all, :conditions => "groupid=#{self.groupid} AND privatelayout=#{self.privatelayout}" )
|
34
|
+
end
|
35
|
+
|
32
36
|
#?
|
33
37
|
# has_one :resource,
|
34
38
|
# :foreign_key => 'primkey'
|
35
|
-
|
36
|
-
end
|
39
|
+
|
40
|
+
end
|
37
41
|
end
|
data/lib/web/portlet.rb
CHANGED
@@ -3,21 +3,21 @@ module Web
|
|
3
3
|
class Portlet < ActiveRecord::Base
|
4
4
|
set_table_name :portlet
|
5
5
|
set_primary_key :id_
|
6
|
-
|
6
|
+
|
7
7
|
public
|
8
|
-
|
8
|
+
|
9
9
|
belongs_to :company,
|
10
10
|
:foreign_key => "companyid"
|
11
|
-
|
11
|
+
|
12
12
|
# primkey in resource_ table
|
13
13
|
def primkey(plid)
|
14
14
|
"#{plid}_LAYOUT_#{self.portletid}"
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def resource(plid)
|
18
18
|
Resource.find_by_primkey(self.primkey(plid))
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
# all instances
|
22
22
|
def resources
|
23
23
|
# Resource.find_by_primkey(self.primkey)
|
@@ -26,18 +26,18 @@ module Web
|
|
26
26
|
ResourceCode.find(:all, :conditions => "name='#{portletid}'").each do |rc|
|
27
27
|
resources << Resource.find(:all, :conditions => "codeid='#{rc.id}'")
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
return resources.flatten
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
def is_active?
|
34
34
|
self.active_
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
# comply API with Web::Portlet.resource
|
38
38
|
def preferences_
|
39
39
|
""
|
40
40
|
end
|
41
|
-
|
41
|
+
|
42
42
|
end
|
43
43
|
end
|
@@ -2,28 +2,28 @@ module Web
|
|
2
2
|
class PortletPreferences < ActiveRecord::Base
|
3
3
|
set_table_name :portletpreferences
|
4
4
|
set_primary_key :portletpreferencesid
|
5
|
-
|
5
|
+
|
6
6
|
public
|
7
|
-
|
7
|
+
|
8
8
|
belongs_to :layout,
|
9
9
|
:class_name => 'Web::Layout',
|
10
10
|
:foreign_key => 'plid'
|
11
|
-
|
11
|
+
|
12
12
|
belongs_to :owner,
|
13
13
|
:class_name => 'User',
|
14
14
|
:foreign_key => 'ownerid'
|
15
|
-
|
15
|
+
|
16
16
|
# primkey in resource_ table
|
17
17
|
def primkey
|
18
18
|
"#{self.plid}_LAYOUT_#{self.portletid}"
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
# argument plid is to comply API with Web::Portlet.resource
|
22
22
|
def resource(plid)
|
23
23
|
Resource.find_by_primkey(self.primkey)
|
24
24
|
# Resource.find(:all, :conditions => "primkey='#{self.primkey}'")
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
# loads the preferences XML structure to Ruby Hash
|
28
28
|
def preferences_
|
29
29
|
xml = REXML::Document.new(self.preferences)
|
data/lib/wiki/page.rb
CHANGED
data/lportal.rb
CHANGED
@@ -4,6 +4,17 @@ require 'active_record'
|
|
4
4
|
file = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__
|
5
5
|
this_dir = File.dirname(File.expand_path(file))
|
6
6
|
|
7
|
+
require this_dir+'/version'
|
8
|
+
|
9
|
+
# include all ruby files
|
7
10
|
Find.find(this_dir+'/lib') do |file|
|
8
|
-
|
11
|
+
if FileTest.directory?(file)
|
12
|
+
if File.basename(file) == "deprecated"
|
13
|
+
Find.prune # Don't look any further into this directory.
|
14
|
+
else
|
15
|
+
next
|
16
|
+
end
|
17
|
+
else
|
18
|
+
require file if file[/.rb$/]
|
19
|
+
end
|
9
20
|
end
|
data/test/unit/account_test.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class AccountTest < ActiveSupport::TestCase
|
4
|
+
fixtures :account_
|
5
|
+
|
4
6
|
def setup
|
5
7
|
@accounts = Account.find :all
|
6
8
|
assert !@accounts.empty?, "No accounts found"
|
@@ -8,13 +10,14 @@ class AccountTest < ActiveSupport::TestCase
|
|
8
10
|
|
9
11
|
def test_company
|
10
12
|
@accounts.each do |x|
|
11
|
-
|
13
|
+
assert_not_nil x.company
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
15
17
|
def test_user
|
16
18
|
@accounts.each do |x|
|
17
|
-
|
19
|
+
#assert_not_nil x.user
|
18
20
|
end
|
19
21
|
end
|
22
|
+
|
20
23
|
end
|
data/test/unit/address_test.rb
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Announcement::EntryTest < ActiveSupport::TestCase
|
4
|
+
fixtures :announcementsentry
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@announcements = Announcement::Entry.all
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_company
|
11
|
+
@announcements.each do |x|
|
12
|
+
assert_not_nil x.company, "#{x.id} belongs to no company"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_user
|
17
|
+
@announcements.each do |x|
|
18
|
+
assert_not_nil x.user, "#{x.id} belongs to no user!"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# def test_asset
|
23
|
+
# @announcements.each do |x|
|
24
|
+
# assert_not_nil x.asset
|
25
|
+
# end
|
26
|
+
# end
|
27
|
+
|
28
|
+
end
|