← Back to team overview

dhis2-devs team mailing list archive

Re: [Branch ~dhis2-devs-core/dhis2/trunk] Rev 1337: Improved DataValue.isZero

 

Hi Bob,

I might suggest just a small change.

^[0]*[\.,]?[0]*$

Escape the period and add a comma for some locales that use commas
instead of periods. I am not aware of other decimal points, perhaps a
semicolon?

I am a bit confused though about the concept here. Values in DHIS are
stored in the DB as text, as far as I can tell. People should be
allowed to enter decimal values I think. We have an data element
(Number of liters of fuel). There is no reason why this could not be
entered (and as far as I know, it is) in decimal values. I am sure
there are other examples. Perhaps the validation rules is a better
place to put these types of rules? It sure would be nice to have Regex
capability there, to allow people that are so inclined to create
expressions for validation that would just be evaluated with a regular
expression.

Regards,
JPP

2010/1/26 Bob Jolliffe <bobjolliffe@xxxxxxxxx>:
> 2010/1/26 Lars Helge Øverland <larshelge@xxxxxxxxx>
>>
>>
>> 2010/1/26 Trí Trần Thanh <tranthanhtri84@xxxxxxxxx>
>>>
>>> ================================
>>> Tran Thanh Tri
>>>  HISP Viet Nam
>>>  Cell phone: +84903670967
>>>  Website: http://tringuyenvn.com
>>> ================================
>>>
>>>
>>> 2010/1/25 <noreply@xxxxxxxxxxxxx>
>>>>
>>>> ------------------------------------------------------------
>>>> revno: 1337
>>>> committer: Lars Helge Oeverland <larshelge@xxxxxxxxx>
>>>> branch nick: trunk
>>>> timestamp: Mon 2010-01-25 15:30:51 +0100
>>>> message:
>>>>  Improved DataValue.isZero
>>>> modified:
>>>>  dhis-2/dhis-api/src/main/java/org/hisp/dhis/datavalue/DataValue.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/datavalue/DataValue.java'
>>>> --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/datavalue/DataValue.java
>>>>        2010-01-25 14:08:24 +0000
>>>> +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/datavalue/DataValue.java
>>>>        2010-01-25 14:30:51 +0000
>>>> @@ -198,7 +198,7 @@
>>>>     public boolean isZero()
>>>>     {
>>>>         return dataElement != null && dataElement.getType().equals(
>>>> DataElement.VALUE_TYPE_INT )
>>>> -            && value != null && ( value.equals( "0" ) ||
>>>> value.startsWith( "0." ) );
>>>
>>>  This script will not working fine. new Double("0.001").intValue()==0 is
>>> true but it must be false.
>>>  I thing it must be new Double(value)==(new Double(0))
>>> what do you thing ?
>>>>
>>>> +            && value != null && new Double( value ).i
>>
>> I don't think we should allow decimal numbers in the first place, eg it
>> cant be 0.5 people with malaria or vaccines given. But Jason pointed out
>> that regex might be the better solution for this in any case.
>
> Maybe something like
>
> ^[0]*[.]?[0]*$
>
> Start word. Read any number of zeroes followed optionally by a '.' followed
> by any number of zeroes.  End word.
>
> From my emacs buffer, M indicates a match
> 0   M
> 003
> 0.00   M
> 0.03
> .000   M
> 00.0   M
> 008000
>
> Cheers
> Bob
>
>> Feel free to improve, I don't have strong opinions on this.
>>
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~dhis2-devs
>> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~dhis2-devs
>> More help   : https://help.launchpad.net/ListHelp
>>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help   : https://help.launchpad.net/ListHelp
>
>



Follow ups

References