Cristobal M
12/15/22, 2:40:57 PM EST
editing the dates manually, I mean as plain text, not variable
in the invoice description
in the invoice description
Cristobal M
12/15/22, 2:43:59 PM EST
I also see you want to use ${invoicemonth} in product name, we dont use product name in EM Portal (we use only description there)
But I can make it work too.
But I can make it work too.
Cristobal M
12/15/22, 2:45:48 PM EST
Probably is better to use Product Name only, since Product Description appears to be like duplicated in the invoice in EM Portal. Not sure why there were different since beginning. Making them match.
Cristobal M
12/15/22, 4:26:14 PM EST
Deployed the fixes, now Subject is Product name and Porudct Name can use ${vars}
Christopher B
12/28/22, 11:14:49 AM EST
Christopher B
1/2/23, 3:49:47 PM EST
Use short time for subject
Update Invoices report to use the new Due Date field
CC bookkeeper@entermediadb.org on all active clients emails
Verify emails are going out.
Claire H
1/3/23, 6:46:33 PM EST
Bug: Wording on expenses updates makes it seem like its a request to enter in expense into Oi, it's a bit confusing.
A possible solution to this would be to make it really clear in the notification that it's an update that someone made an entry, not asking for a request or looking like a task.
Christopher B
1/10/23, 11:04:23 AM EST
Bug: Search for last year not working: https://entermediadb.org/app/collective/services/invoicepaidyear.html
Cristobal M
1/10/23, 11:17:53 AM EST
There is an error generating the link for this Collection, I think the slash in the name is not escaped right:
openinstitute.org/app/collective/community/AXHNDoy0Vu0xwKcM8K7q/The-Open-Institute-Team-/-Development.html
Cristobal M
1/10/23, 12:21:50 PM EST
looks like We broke some Json, build-test failing:
{ "readyState": 4, "responseText": "{ \"reponse\": {\n \"status\":\"error\",\"path\":\"/WEB-INF/base/mediadb/services/distribution/create/_site.xconf#JsonDataModule.getUUID java.lang.NullPointerException: Cannot invoke \"java.util.Map.get(Object)\" because \"request\" is null\",\"details\":\"\\/WEB-INF\\/base\\/mediadb\\/services\\/distribution\\/create\\/_site.xconf#JsonDataModule.getUUID java.lang.NullPointerException: Cannot invoke \\\"java.util.Map.get(Object)\\\" because \\\"request\\\" is null Cannot invoke \\\"java.util.Map.get(Object)\\\" because \\\"request\\\" is null\" \n}\n}", "status": 500, "statusText": "error" }
{ "readyState": 4, "responseText": "{ \"reponse\": {\n \"status\":\"error\",\"path\":\"/WEB-INF/base/mediadb/services/distribution/create/_site.xconf#JsonDataModule.getUUID java.lang.NullPointerException: Cannot invoke \"java.util.Map.get(Object)\" because \"request\" is null\",\"details\":\"\\/WEB-INF\\/base\\/mediadb\\/services\\/distribution\\/create\\/_site.xconf#JsonDataModule.getUUID java.lang.NullPointerException: Cannot invoke \\\"java.util.Map.get(Object)\\\" because \\\"request\\\" is null Cannot invoke \\\"java.util.Map.get(Object)\\\" because \\\"request\\\" is null\" \n}\n}", "status": 500, "statusText": "error" }
Cristobal M
1/10/23, 1:51:14 PM EST
Found the root cause. Our mediadb docs are all "text/plain" content type.
I was about to change all them, but I think is better idea to support "text/plain" since some people may use them like that in their apps? We dont want to break them. So added text/plan as valid Json request.
Cristobal M
1/10/23, 1:51:36 PM EST
if (type == null || (!type.startsWith("application/json") && !type.startsWith("text/plain")))