← Back to team overview

dhis2-devs team mailing list archive

Re: WebApi failing Email, FileResources and

 

Hm ok, just trying to understand the workflow... to get to a d2 custom
app.. they need to 1) login 2) enter pin ? is that right? so its double?
all d2 apps are now covered by spring sec interceptors...

-- 
Morten Olav Hansen
Senior Engineer, DHIS 2
University of Oslo
http://www.dhis2.org

On Fri, Jun 3, 2016 at 8:19 PM, Calle Hedberg <calle.hedberg@xxxxxxxxx>
wrote:

> Morten,
>
> Custom App is not Android - it's a DHIS2 app. We did have some teething
> problems with users accessing the instance via the browser on their
> smartphones, but I think that's been sorted. In any case, our
> recommendation to all users is to rather access the instance via a laptop
> or computer - should be easier to upload PDF documents and generally view
> available information about posts etc that way. (a customised Android app
> might be on the cards for next year - TBD. For now we are just trying to
> iron out bugs and finalise everything before it goes live for the first
> batch of users this month).
>
> Regards
> Calle
>
> On 3 June 2016 at 14:57, Morten Olav Hansen <morten@xxxxxxxxx> wrote:
>
>> Ok, Calle, thanks for the info :) so when you say custom app.. I guess
>> it's Android?
>>
>> --
>> Morten Olav Hansen
>> Senior Engineer, DHIS 2
>> University of Oslo
>> http://www.dhis2.org
>>
>> On Fri, Jun 3, 2016 at 7:52 PM, Calle Hedberg <calle.hedberg@xxxxxxxxx>
>> wrote:
>>
>>> Morten,
>>>
>>> Sorry if my brief wasn't 100% clear on that - the DHIS user reg is a
>>> separate thing. All users logging in will be able to view (but not change)
>>> the general routine stuff around positions available etc. The pin-code is
>>> used in the custom app to ensure that all applicant users can only view and
>>> edit their own registrations/applications - not others.
>>>
>>> Regards
>>> Calle
>>>
>>> On 3 June 2016 at 14:23, Mike Nelushi <mikeevolution@xxxxxxxxx> wrote:
>>>
>>>> Yes, its a custom app. Thanks.
>>>>
>>>> On Fri, Jun 3, 2016 at 2:21 PM, Morten Olav Hansen <morten@xxxxxxxxx>
>>>> wrote:
>>>>
>>>>> Ok, I just saw `Login using PIN-code for account`, maybe you are using
>>>>> a custom apps for this..
>>>>>
>>>>> I saw you bug report, we will have a look at it
>>>>>
>>>>> --
>>>>> Morten Olav Hansen
>>>>> Senior Engineer, DHIS 2
>>>>> University of Oslo
>>>>> http://www.dhis2.org
>>>>>
>>>>> On Fri, Jun 3, 2016 at 7:18 PM, Mike Nelushi <mikeevolution@xxxxxxxxx>
>>>>> wrote:
>>>>>
>>>>>> Hi Morten,
>>>>>>
>>>>>> The pinCode is not the the DHIS2-Account it is for specific program
>>>>>> that they registered for. But the main thing is to be able to send emails
>>>>>> and later sms because there will be a lot of notification/alerts to each
>>>>>> user(e.g if they sent a wrong file).
>>>>>>
>>>>>> Regards,
>>>>>> Mike
>>>>>>
>>>>>> On Fri, Jun 3, 2016 at 2:05 PM, Morten Olav Hansen <morten@xxxxxxxxx>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Calle
>>>>>>>
>>>>>>> Out of curiosity... how can they login with this "PIN-code" is it
>>>>>>> simply the set password for their account?
>>>>>>>
>>>>>>> --
>>>>>>> Morten Olav Hansen
>>>>>>> Senior Engineer, DHIS 2
>>>>>>> University of Oslo
>>>>>>> http://www.dhis2.org
>>>>>>>
>>>>>>> On Fri, Jun 3, 2016 at 6:52 PM, Calle Hedberg <
>>>>>>> calle.hedberg@xxxxxxxxx> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> Since this instance is innovative and handling a somewhat unusual
>>>>>>>> scenario, it might be helpful to understand the background and conceptual
>>>>>>>> design:
>>>>>>>>
>>>>>>>> 1.
>>>>>>>> South Africa requires around 10,000 new health graduates (doctors,
>>>>>>>> nurses, physiotherapists and other professions allied to medicine) to do
>>>>>>>> one year of Community Service after graduation every year, and before they
>>>>>>>> take up normal work. Medical doctors also do internships in various
>>>>>>>> accredited hospitals as part of their practical studies.
>>>>>>>>
>>>>>>>> 2.
>>>>>>>> The CommServe instance contain routine data about the number of
>>>>>>>> community service or internship positions at all relevant health
>>>>>>>> facilities, together with some information on things like available
>>>>>>>> accommodation and distance to the nearest town, contact details, etc.
>>>>>>>>
>>>>>>>> 3.
>>>>>>>> Using a newly developed app, each of the ~10,000 graduates will in
>>>>>>>> the REGISTRATION phase
>>>>>>>> (a) register as a DHIS user (user reg)
>>>>>>>> (b) register as an applicant and submit relevant demography and
>>>>>>>> contact details about themselves (TRACKER app)
>>>>>>>> (c) submit relevant scanned PDF documents (copy of ID/Passport,
>>>>>>>> marriage certificate, graduation results, etc)
>>>>>>>> (d) be allocated a "PIN-code" that ensures that the candidate (and
>>>>>>>> ONLY that candidate) can log in again to the same registered "account"
>>>>>>>> (e) having the pin-code emailed to themselves (and nobody else)
>>>>>>>> after the registration process is completed, so that they don't forget it.
>>>>>>>>
>>>>>>>> 4.
>>>>>>>> Logging in again to the same account using the pin-code, each
>>>>>>>> graduate will in the first/second/third APPLICATION phase
>>>>>>>> (a) view available posts according to their profession (and in some
>>>>>>>> cases their location or bursary status)
>>>>>>>> (b) select five facilities of their choice for their community
>>>>>>>> service or internship.
>>>>>>>>
>>>>>>>> 5.
>>>>>>>> After each phase, the system is running a number of algorithms to
>>>>>>>> allocate graduates to health facilities, with confirmation emails / SMSs
>>>>>>>> sent out to each individual.
>>>>>>>> Every allocation means that applicant is not required to re-apply
>>>>>>>> and the post is removed from the available pool.
>>>>>>>> Those applicants not successful in round 1 because the applied only
>>>>>>>> for over-subscribed posts (where allocation will be done by lottery, so to
>>>>>>>> say) will go to round 2 and possibly 3.
>>>>>>>> In round 2 or 3, remaining applicants will again apply for 5
>>>>>>>> priority postings among those remaining.
>>>>>>>>
>>>>>>>> As should be obvious from the above, it is critical that we are
>>>>>>>> able to send emails to each applicant individually, and it is also critical
>>>>>>>> to ensure that the uploading of scanned documents works as expected (NOTE:
>>>>>>>> we hope to be able to restrict such uploads to PDF format only, and
>>>>>>>> preferably also to a maximum size. Having applicants just using their
>>>>>>>> smart-phones to snap large-size pictures of documents is to be avoided).
>>>>>>>>
>>>>>>>> This is a high-profile application and it has already been approved
>>>>>>>> by the National Health Council, so it is critical to get the last few bugs
>>>>>>>> ironed out.
>>>>>>>>
>>>>>>>> Regards
>>>>>>>> Calle
>>>>>>>>
>>>>>>>> On 3 June 2016 at 13:27, Morten Olav Hansen <morten@xxxxxxxxx>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Before Lars answers
>>>>>>>>>
>>>>>>>>> Mike, can you provide us with a detailed bug report on launchpad?
>>>>>>>>> it will help us track this bug, I can have a look on Monday
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Morten Olav Hansen
>>>>>>>>> Senior Engineer, DHIS 2
>>>>>>>>> University of Oslo
>>>>>>>>> http://www.dhis2.org
>>>>>>>>>
>>>>>>>>> On Fri, Jun 3, 2016 at 6:26 PM, Morten Olav Hansen <
>>>>>>>>> morten@xxxxxxxxx> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Mike
>>>>>>>>>>
>>>>>>>>>> I'm adding in Lars.. It's been a while since i looked at it.. but
>>>>>>>>>> I don't think that is how it was designed, if you select an org unit.. it
>>>>>>>>>> will send to EVERYBODY connected to that (kinda like when you assign an OU
>>>>>>>>>> to a user), if you want to send to individual users.. you need to select
>>>>>>>>>> them manually...
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Morten Olav Hansen
>>>>>>>>>> Senior Engineer, DHIS 2
>>>>>>>>>> University of Oslo
>>>>>>>>>> http://www.dhis2.org
>>>>>>>>>>
>>>>>>>>>> On Fri, Jun 3, 2016 at 6:24 PM, Mike Nelushi <
>>>>>>>>>> mikeevolution@xxxxxxxxx> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Morten,
>>>>>>>>>>>
>>>>>>>>>>> The messageConversations web-api is still a big issue because
>>>>>>>>>>> we need to send each user specific information to their e-mails.
>>>>>>>>>>>
>>>>>>>>>>> 1. Using  {"subject": subject, "text": message, "users": user}
>>>>>>>>>>>  json object, the mail gets stored on DHIS2 mail and does not send it to
>>>>>>>>>>> the user e-mail.
>>>>>>>>>>>
>>>>>>>>>>> LogUtil.java [http-apr-8080-exec-3])
>>>>>>>>>>> * INFO  2016-05-29 14:14:52,484 Invoking message sender:
>>>>>>>>>>> $Proxy53 (DefaultMessageService.java [http-apr-8080-exec-3])
>>>>>>>>>>> * INFO  2016-05-29 14:14:52,529 Invoking message sender:
>>>>>>>>>>> SmsMessageSender (DefaultMessageService.java [http-apr-8080-exec-3])
>>>>>>>>>>> * ERROR 2016-05-29 14:14:52,579 Unexpected error occurred
>>>>>>>>>>> invoking async method 'public java.lang.String
>>>>>>>>>>> org.hisp.dhis.message.EmailMessageSender.sendMessage(java.lang.String,java.lang.String,jav
>>>>>>>>>>> a.lang.String,org.hisp.dhis.user.User,java.util.Set,boolean)'.
>>>>>>>>>>> (SimpleAsyncUncaughtExceptionHandler.java [taskScheduler-7])
>>>>>>>>>>> org.hibernate.LazyInitializationException: failed to lazily
>>>>>>>>>>> initialize a collection of role: org.hisp.dhis.user.User.organisationUnits,
>>>>>>>>>>> could not initialize proxy - no Session
>>>>>>>>>>>         at
>>>>>>>>>>> org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:569)
>>>>>>>>>>>         at
>>>>>>>>>>> org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:188)
>>>>>>>>>>>         at
>>>>>>>>>>> org.hibernate.collection.internal.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:139)
>>>>>>>>>>>         at
>>>>>>>>>>> org.hibernate.collection.internal.PersistentSet.size(PersistentSet.java:156)
>>>>>>>>>>>         at
>>>>>>>>>>> org.hisp.dhis.common.IdentifiableObjectUtils.join(IdentifiableObjectUtils.java:76)
>>>>>>>>>>>         at
>>>>>>>>>>> org.hisp.dhis.user.User.getOrganisationUnitsName(User.java:288)
>>>>>>>>>>>         at
>>>>>>>>>>> org.hisp.dhis.message.EmailMessageSender.renderPlainContent(EmailMessageSender.java:188)
>>>>>>>>>>>         at
>>>>>>>>>>> org.hisp.dhis.message.EmailMessageSender.sendMessage(EmailMessageSender.java:115)
>>>>>>>>>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>>>>>>>> Method)
>>>>>>>>>>>         at
>>>>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>>>>>>         at
>>>>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>>>>>         at java.lang.reflect.Method.invoke(Method.java:498)
>>>>>>>>>>>         at
>>>>>>>>>>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
>>>>>>>>>>>         at
>>>>>>>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
>>>>>>>>>>>         at
>>>>>>>>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
>>>>>>>>>>>         at
>>>>>>>>>>> org.springframework.aop.interceptor.AsyncExecutionInterceptor$1.call(AsyncExecutionInterceptor.java:108)
>>>>>>>>>>>         at
>>>>>>>>>>> java.util.concurrent.FutureTask.run(FutureTask.java:266)
>>>>>>>>>>>         at
>>>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>>>>>>>>>>>         at
>>>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>>>>>>>>>>>         at
>>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>>>>>>>>>>>         at
>>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>>>>>>>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 2, Using {"subject": subject, "text": message, "users": users,
>>>>>>>>>>> "organisationUnits": organisationUnits}, sends email to everyone in the
>>>>>>>>>>> Orgunit and we want to send to individuals.
>>>>>>>>>>>
>>>>>>>>>>> Please advice.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Regards,
>>>>>>>>>>> Mike
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Fri, Jun 3, 2016 at 4:58 AM, Morten Olav Hansen <
>>>>>>>>>>> morten@xxxxxxxxx> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Mike
>>>>>>>>>>>>
>>>>>>>>>>>> I'm adding in the dev list, and Halvdan (who knows about file
>>>>>>>>>>>> resource API). I will have a look at the start as app functionality.
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Morten
>>>>>>>>>>>>
>>>>>>>>>>>> On Thu, Jun 2, 2016 at 5:00 PM, Mike Nelushi <
>>>>>>>>>>>> mikeevolution@xxxxxxxxx> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi Calle,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Apologies, forgot to add you on this thread.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Regards
>>>>>>>>>>>>> Mike
>>>>>>>>>>>>> On 2 Jun 2016 11:35, "Mike Nelushi" <mikeevolution@xxxxxxxxx>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi Morten,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Its Mike here from HISP-SA.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> We have been strangling to send email to individual users on
>>>>>>>>>>>>>> our new Community Service Application which is going live tomorrow. At the
>>>>>>>>>>>>>> moment when I send an email to individuals it sends to everyone who is a
>>>>>>>>>>>>>> DHIS2 user. Im user the dhis2.23 messageConversations web-api for this.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> A. The following are the two json objects I've used, the
>>>>>>>>>>>>>> first one doesn't send messages at all the messages stays on dhis2 mail.
>>>>>>>>>>>>>> 1. var json_Data = {"subject": subject, "text": message,
>>>>>>>>>>>>>> "users": users};
>>>>>>>>>>>>>> 2.var json_Data = {"subject": subject, "text": message,
>>>>>>>>>>>>>> "users": users, "organisationUnits": organisationUnits};
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> The following is our email settings
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> [image: Inline image 1]
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> B. Second Issue is that when we call fileResources webapi to
>>>>>>>>>>>>>> save file is does work but when you retrieve the file it says the file was
>>>>>>>>>>>>>> not saved. The following is the object:
>>>>>>>>>>>>>>                                     var file =
>>>>>>>>>>>>>> item[0].files[0];
>>>>>>>>>>>>>>                                     var formData = new
>>>>>>>>>>>>>> FormData();
>>>>>>>>>>>>>>                                     formData.append('file',
>>>>>>>>>>>>>> file);
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> C. The start page function on Appearance settings is not
>>>>>>>>>>>>>> working if you choice your own custom APP, when logging in it does it go to
>>>>>>>>>>>>>> the landing page instead it goes to index.action.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Can you please help us with this issues?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>>> Mike
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> *******************************************
>>>>>>>>
>>>>>>>> Calle Hedberg
>>>>>>>>
>>>>>>>> 46D Alma Road, 7700 Rosebank, SOUTH AFRICA
>>>>>>>>
>>>>>>>> Tel/fax (home): +27-21-685-6472
>>>>>>>>
>>>>>>>> Cell: +27-82-853-5352
>>>>>>>>
>>>>>>>> Iridium SatPhone: +8816-315-19119
>>>>>>>>
>>>>>>>> Email: calle.hedberg@xxxxxxxxx
>>>>>>>>
>>>>>>>> Skype: calle_hedberg
>>>>>>>>
>>>>>>>> *******************************************
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>>
>>> *******************************************
>>>
>>> Calle Hedberg
>>>
>>> 46D Alma Road, 7700 Rosebank, SOUTH AFRICA
>>>
>>> Tel/fax (home): +27-21-685-6472
>>>
>>> Cell: +27-82-853-5352
>>>
>>> Iridium SatPhone: +8816-315-19119
>>>
>>> Email: calle.hedberg@xxxxxxxxx
>>>
>>> Skype: calle_hedberg
>>>
>>> *******************************************
>>>
>>>
>>
>
>
> --
>
> *******************************************
>
> Calle Hedberg
>
> 46D Alma Road, 7700 Rosebank, SOUTH AFRICA
>
> Tel/fax (home): +27-21-685-6472
>
> Cell: +27-82-853-5352
>
> Iridium SatPhone: +8816-315-19119
>
> Email: calle.hedberg@xxxxxxxxx
>
> Skype: calle_hedberg
>
> *******************************************
>
>

PNG image


Follow ups

References