dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #42029
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 21471: add created/lastUpdated to TEAV
------------------------------------------------------------
revno: 21471
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Wed 2015-12-16 14:23:46 +0100
message:
add created/lastUpdated to TEAV
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentityattributevalue/TrackedEntityAttributeValue.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/InitTableAlteror.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentityattributevalue/DefaultTrackedEntityAttributeValueService.java
dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/trackedentityattributevalue/hibernate/TrackedEntityAttributeValue.hbm.xml
dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/Coordinate.java
dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/JdbcEventStore.java
dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java
dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/Attribute.java
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentityattributevalue/TrackedEntityAttributeValue.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentityattributevalue/TrackedEntityAttributeValue.java 2015-12-01 17:19:15 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentityattributevalue/TrackedEntityAttributeValue.java 2015-12-16 13:23:46 +0000
@@ -42,6 +42,7 @@
import org.hisp.dhis.trackedentity.TrackedEntityInstance;
import java.io.Serializable;
+import java.util.Date;
/**
* TODO index on attribute and instance
@@ -61,6 +62,10 @@
private TrackedEntityInstance entityInstance;
+ private Date created;
+
+ private Date lastUpdated;
+
private String encryptedValue;
private String plainValue;
@@ -68,7 +73,7 @@
/**
* This value is only used to store values from setValue when we don't know
* if attribute is set or not.
- */
+ */
private String value;
@@ -86,14 +91,25 @@
setEntityInstance( entityInstance );
}
- public TrackedEntityAttributeValue( TrackedEntityAttribute attribute, TrackedEntityInstance entityInstance,
- String value )
+ public TrackedEntityAttributeValue( TrackedEntityAttribute attribute, TrackedEntityInstance entityInstance, String value )
{
setAttribute( attribute );
setEntityInstance( entityInstance );
setValue( value );
}
+ public void setAutoFields()
+ {
+ Date date = new Date();
+
+ if ( created == null )
+ {
+ created = date;
+ }
+
+ setLastUpdated( date );
+ }
+
// -------------------------------------------------------------------------
// hashCode and equals
// -------------------------------------------------------------------------
@@ -178,11 +194,35 @@
// Getters and setters
// -------------------------------------------------------------------------
+ @JsonProperty
+ @JacksonXmlProperty( isAttribute = true )
+ public Date getCreated()
+ {
+ return created;
+ }
+
+ public void setCreated( Date created )
+ {
+ this.created = created;
+ }
+
+ @JsonProperty
+ @JacksonXmlProperty( isAttribute = true )
+ public Date getLastUpdated()
+ {
+ return lastUpdated;
+ }
+
+ public void setLastUpdated( Date lastUpdated )
+ {
+ this.lastUpdated = lastUpdated;
+ }
+
/**
- * Retrieves the encrypted value if the attribute is confidential. If the
+ * Retrieves the encrypted value if the attribute is confidential. If the
* value is not confidential, returns old value. Should be null unless it was
* confidential at an earlier stage.
- *
+ *
* @return String with decrypted value or null.
*/
@JsonIgnore
@@ -197,10 +237,10 @@
}
/**
- * Retrieves the plain-text value is the attribute isn't confidential. If
- * the value is confidential, this value should be null, unless it was
+ * Retrieves the plain-text value is the attribute isn't confidential. If
+ * the value is confidential, this value should be null, unless it was
* non-confidential at an earlier stage.
- *
+ *
* @return String with plain-text value or null.
*/
@JsonIgnore
@@ -215,9 +255,9 @@
}
/**
- * Returns the encrypted or the plain-text value, based on the attribute's
+ * Returns the encrypted or the plain-text value, based on the attribute's
* confidential value.
- *
+ *
* @return String with value, either plain-text or decrypted.
*/
@JsonProperty
@@ -229,10 +269,10 @@
}
/**
- * Since we never can be 100% certain Attribute is not null, we store the
- * value in a temporary variable. The getEncrypted and getPlaintext methods
+ * Since we never can be 100% certain Attribute is not null, we store the
+ * value in a temporary variable. The getEncrypted and getPlaintext methods
* will handle this value when requested.
- *
+ *
* @param value the value to be stored
*/
public void setValue( String value )
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/InitTableAlteror.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/InitTableAlteror.java 2015-12-16 12:46:52 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/InitTableAlteror.java 2015-12-16 13:23:46 +0000
@@ -136,6 +136,8 @@
executeSql( "alter table trackedentitydatavalue drop column timestamp" );
executeSql( "alter table trackedentityattributevalueaudit rename column timestamp to created" );
+ executeSql( "update trackedentityattributevalue set created=now() where created is null" );
+ executeSql( "update trackedentityattributevalue set lastupdated=now() where lastupdated is null" );
}
private void updateProgramStatus()
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentityattributevalue/DefaultTrackedEntityAttributeValueService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentityattributevalue/DefaultTrackedEntityAttributeValueService.java 2015-11-30 02:50:28 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/trackedentityattributevalue/DefaultTrackedEntityAttributeValueService.java 2015-12-16 13:23:46 +0000
@@ -111,6 +111,8 @@
@Override
public void addTrackedEntityAttributeValue( TrackedEntityAttributeValue attributeValue )
{
+ attributeValue.setAutoFields();
+
if ( attributeValue.getValue() != null )
{
attributeValueStore.saveVoid( attributeValue );
@@ -120,6 +122,8 @@
@Override
public void updateTrackedEntityAttributeValue( TrackedEntityAttributeValue attributeValue )
{
+ attributeValue.setAutoFields();
+
if ( StringUtils.isEmpty( attributeValue.getValue() ) )
{
attributeValueStore.delete( attributeValue );
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/trackedentityattributevalue/hibernate/TrackedEntityAttributeValue.hbm.xml'
--- dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/trackedentityattributevalue/hibernate/TrackedEntityAttributeValue.hbm.xml 2015-12-01 16:23:47 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/trackedentityattributevalue/hibernate/TrackedEntityAttributeValue.hbm.xml 2015-12-16 13:23:46 +0000
@@ -13,6 +13,10 @@
foreign-key="fk_attributevalue_trackedentityattributeid" />
</composite-id>
+ <property name="created" type="timestamp" />
+
+ <property name="lastUpdated" type="timestamp" />
+
<property name="plainValue" column="value" access="property" length="50000" />
<property name="encryptedValue" column="encrypted_value" access="property" type="AESEncryptedString" />
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/Coordinate.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/Coordinate.java 2015-01-17 07:41:26 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/Coordinate.java 2015-12-16 13:23:46 +0000
@@ -55,7 +55,7 @@
}
@JsonProperty( required = true )
- @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0, isAttribute = true )
+ @JacksonXmlProperty( isAttribute = true )
public Double getLatitude()
{
return latitude;
@@ -67,7 +67,7 @@
}
@JsonProperty( required = true )
- @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0, isAttribute = true )
+ @JacksonXmlProperty( isAttribute = true )
public Double getLongitude()
{
return longitude;
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/JdbcEventStore.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/JdbcEventStore.java 2015-12-16 12:46:52 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/JdbcEventStore.java 2015-12-16 13:23:46 +0000
@@ -251,6 +251,8 @@
String valueType = rowSet.getString( "ta_valuetype" );
Attribute attribute = new Attribute();
+ attribute.setCreated( DateUtils.getLongGmtDateString( rowSet.getDate( "pav_created" ) ) );
+ attribute.setLastUpdated( DateUtils.getLongGmtDateString( rowSet.getDate( "pav_lastupdated" ) ) );
attribute.setValue( rowSet.getString( "pav_value" ) );
attribute.setDisplayName( rowSet.getString( "ta_name" ) );
attribute.setValueType( valueType != null ? ValueType.valueOf( valueType.toUpperCase() ) : null );
@@ -495,7 +497,7 @@
private String getAttributeValueQuery()
{
- String sql = "select pav.trackedentityinstanceid as pav_id, pav.value as pav_value, ta.uid as ta_uid, ta.name as ta_name, ta.valuetype as ta_valuetype "
+ String sql = "select pav.trackedentityinstanceid as pav_id, pav.created as pav_created, pav.lastupdated as pav_lastupdated, pav.value as pav_value, ta.uid as ta_uid, ta.name as ta_name, ta.valuetype as ta_valuetype "
+ "from trackedentityattributevalue pav "
+ "inner join trackedentityattribute ta on pav.trackedentityattributeid=ta.trackedentityattributeid ";
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java 2015-12-16 08:59:10 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/AbstractTrackedEntityInstanceService.java 2015-12-16 13:23:46 +0000
@@ -44,6 +44,7 @@
import org.hisp.dhis.relationship.RelationshipService;
import org.hisp.dhis.relationship.RelationshipType;
import org.hisp.dhis.system.callable.IdentifiableObjectCallable;
+import org.hisp.dhis.system.util.DateUtils;
import org.hisp.dhis.trackedentity.TrackedEntity;
import org.hisp.dhis.trackedentity.TrackedEntityAttribute;
import org.hisp.dhis.trackedentity.TrackedEntityAttributeService;
@@ -180,6 +181,8 @@
{
Attribute attribute = new Attribute();
+ attribute.setCreated( DateUtils.getLongGmtDateString( attributeValue.getCreated() ) );
+ attribute.setLastUpdated( DateUtils.getLongGmtDateString( attributeValue.getLastUpdated() ) );
attribute.setDisplayName( attributeValue.getAttribute().getDisplayName() );
attribute.setAttribute( attributeValue.getAttribute().getUid() );
attribute.setValueType( attributeValue.getAttribute().getValueType() );
=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/Attribute.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/Attribute.java 2015-09-13 21:54:23 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/trackedentity/Attribute.java 2015-12-16 13:23:46 +0000
@@ -44,6 +44,10 @@
private String attribute;
+ private String created;
+
+ private String lastUpdated;
+
private ValueType valueType;
private String code;
@@ -92,6 +96,30 @@
@JsonProperty
@JacksonXmlProperty( isAttribute = true )
+ public String getCreated()
+ {
+ return created;
+ }
+
+ public void setCreated( String created )
+ {
+ this.created = created;
+ }
+
+ @JsonProperty
+ @JacksonXmlProperty( isAttribute = true )
+ public String getLastUpdated()
+ {
+ return lastUpdated;
+ }
+
+ public void setLastUpdated( String lastUpdated )
+ {
+ this.lastUpdated = lastUpdated;
+ }
+
+ @JsonProperty
+ @JacksonXmlProperty( isAttribute = true )
public ValueType getValueType()
{
return valueType;