|
@@ -7,6 +7,7 @@ |
7 |
7 |
|
import org.litesoft.core.util.*; |
8 |
8 |
|
import org.litesoft.datt.server.*; |
9 |
9 |
|
import org.litesoft.orsup.base.*; |
|
10 |
+ |
import org.litesoft.orsup.selection.*; |
10 |
11 |
|
import org.litesoft.orsup.transact.*; |
11 |
12 |
|
|
12 |
13 |
|
public class Story extends StoryGO |
|
@@ -40,13 +41,13 @@ |
40 |
41 |
|
{ |
41 |
42 |
|
setCreator( CurrentUserAccessor.get().getRequiredUser().freshIntoIfNotAlreadyIn( zTransaction ) ); |
42 |
43 |
|
} |
43 |
|
- |
if (getRestrictedResource() == null) |
|
44 |
+ |
if ( getRestrictedResource() == null ) |
44 |
45 |
|
{ |
45 |
46 |
|
setRestrictedResource( CurrentRestrictedResourceAccessor.get().getRequiredRestrictedResource().freshIntoIfNotAlreadyIn( zTransaction ) ); |
46 |
47 |
|
} |
47 |
48 |
|
setCreatorFullName( getCreator().getFullName() ); |
48 |
49 |
|
} |
49 |
|
- |
else if ( isAnyAttributeChanged() ) |
|
50 |
+ |
else if ( isAnyAttributeChanged() && notJustPriorityLastChangedBy() ) |
50 |
51 |
|
{ |
51 |
52 |
|
if ( mCommitUpdate != null ) |
52 |
53 |
|
{ |
|
@@ -54,21 +55,35 @@ |
54 |
55 |
|
mCommitUpdate.requestDelete(); |
55 |
56 |
|
mCommitUpdate = null; |
56 |
57 |
|
} |
57 |
|
- |
addUpdates( mCommitUpdate = new StoryUpdate( zTransaction, CurrentUserAccessor.get().getRequiredUser().freshIntoIfNotAlreadyIn( zTransaction ) ) ); |
|
58 |
+ |
User zUser = CurrentUserAccessor.get().getRequiredUser().freshIntoIfNotAlreadyIn( zTransaction ); |
|
59 |
+ |
addUpdates( mCommitUpdate = new StoryUpdate( zTransaction, zUser ) ); |
58 |
60 |
|
for ( String zChangedAttributeName : getChangedAttributeNames() ) |
59 |
61 |
|
{ |
60 |
62 |
|
AttributeAccessorSCD<Story> zACD = getAccessorSCDrequired( zChangedAttributeName ); |
61 |
63 |
|
if ( zACD.isPersisted() ) |
62 |
64 |
|
{ |
63 |
|
- |
String zName = zACD.getName(); |
64 |
|
- |
String zOldValue = UtilsCommon.toString( getOriginalValueFor( zName ) ); |
65 |
|
- |
mCommitUpdate.addChanges( new StoryChange( zTransaction, zName, zOldValue ) ); |
|
65 |
+ |
if ( zACD == CD_Priority ) |
|
66 |
+ |
{ |
|
67 |
+ |
setPriorityLastChangedBy( zUser.getFullName() ); |
|
68 |
+ |
} |
|
69 |
+ |
if ( zACD != CD_PriorityLastChangedBy ) |
|
70 |
+ |
{ |
|
71 |
+ |
String zName = zACD.getName(); |
|
72 |
+ |
String zOldValue = UtilsCommon.toString( getOriginalValueFor( zName ) ); |
|
73 |
+ |
mCommitUpdate.addChanges( new StoryChange( zTransaction, zName, zOldValue ) ); |
|
74 |
+ |
} |
66 |
75 |
|
} |
67 |
76 |
|
} |
68 |
77 |
|
} |
69 |
78 |
|
return super.aboutToCommit( pTransactionTimestamp ); |
70 |
79 |
|
} |
71 |
80 |
|
|
|
81 |
+ |
private boolean notJustPriorityLastChangedBy() |
|
82 |
+ |
{ |
|
83 |
+ |
int changes = numberOfAttributeChanged(); |
|
84 |
+ |
return (changes > 1) || ((changes == 1) && !isAttributeChanged( CD_PriorityLastChangedBy )); |
|
85 |
+ |
} |
|
86 |
+ |
|
72 |
87 |
|
private GenericReference<String> mChanges = null; |
73 |
88 |
|
|
74 |
89 |
|
@Override |
|
@@ -96,4 +111,11 @@ |
96 |
111 |
|
} |
97 |
112 |
|
return sb.toString(); |
98 |
113 |
|
} |
|
114 |
+ |
|
|
115 |
+ |
public static WhereClause getLimitToCurrentRestrictedResource() |
|
116 |
+ |
{ |
|
117 |
+ |
// Add filter to where clause to only select based on RestrictedResource. |
|
118 |
+ |
RestrictedResource zRestrictedResource = CurrentRestrictedResourceAccessor.get().getRequiredRestrictedResource(); |
|
119 |
+ |
return WhereClauseFactory.INSTANCE.isEqual( CD_RestrictedResource, zRestrictedResource ); |
|
120 |
+ |
} |
99 |
121 |
|
} |