This commit is contained in:
@@ -1,6 +1,20 @@
|
||||
|
||||
PRIORITY - ALWAYS Lowest level stuff first
|
||||
=-=-=-=-
|
||||
todo: Opening the widgets list on a new empty db I got this error at server:
|
||||
2020-05-02 13:20:40.4589|ERROR|Server|Error=>System.ArgumentNullException: Value cannot be null. (Parameter 'AyaDataList:GetCustomFieldDefinitionsForList, Custom field object type Widget has no FormCustom defined')
|
||||
at AyaNova.DataList.AyaDataList.GetCustomFieldDefinitionsForList() in C:\data\code\raven\server\AyaNova\DataList\AyaDataList.cs:line 150
|
||||
at AyaNova.DataList.AyaDataList.GenerateListColumnsJSONFromListView(JArray listViewArray) in C:\data\code\raven\server\AyaNova\DataList\AyaDataList.cs:line 49
|
||||
at AyaNova.DataList.DataListFetcher.GetResponseAsync(String DataListKey, AyContext ct, ListOptions listOptions, Int64 UserId, AuthorizationRoles UserRoles) in C:\data\code\raven\server\AyaNova\DataList\DataListFetcher.cs:line 182
|
||||
at AyaNova.Api.Controllers.DataListController.List(ListOptions listOptions) in C:\data\code\raven\server\AyaNova\Controllers\DataListController.cs:line 76
|
||||
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
|
||||
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
|
||||
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
|
||||
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
|
||||
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
|
||||
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
|
||||
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
|
||||
todo: server bizobjectnamefetcherdirect isn't handling workorders properly (or other serialized objects)
|
||||
- adde special handling if the name of the "name" column is "serial" or maybe can just run a special query instead?
|
||||
todo: check non-ops user can login during seeding operation
|
||||
todo: BizRoles.cs seems to get hammered on every single request, is it efficient?
|
||||
- Why is it not cached in some way?
|
||||
@@ -9,6 +23,7 @@ todo: BizRoles.cs seems to get hammered on every single request, is it efficient
|
||||
if do so then ideally put them into the biz object responsible?
|
||||
- it has to instantiate that anyway on any meaningful operation
|
||||
or...is this worse than actually caching in a lifetime cache because it will need to load on every route hit whereas a lifteimte cache is just there from being loaded once?
|
||||
---
|
||||
todo: API REFACTORING (note: workordercontroller / biz should be following all these rules so it's the template if need reference)
|
||||
todo: consider and then get rid of PATCH in all routes
|
||||
unless compelling reason to keep
|
||||
@@ -29,11 +44,21 @@ todo: Routes should check rights *BEFORE* they fetch the object, not after, all
|
||||
i.e. delete route instantiates biz object, then it fetchs object from db *then* it checks if they have rights to delete (generically, not specific to that object)
|
||||
This is out of order as it triggers a db call even if they have no rights to do it
|
||||
todo: all biz objects "ExistsAsync" is this required / necessary?
|
||||
---
|
||||
todo: add query fail logging to datalist just like done with picklist so in production can catch mysterious problems more easily
|
||||
todo: AUTO ID GENERATOR
|
||||
change to a dedicated spot in global rather than inferring as it is not right practically for reasons
|
||||
Get the auto-id most recent values at boot time
|
||||
internal static void SetMostRecentAutoIdValuesFromDatabase(AyaNova.Models.AyContext ct)
|
||||
internal static void SetMostRecentAutoIdValuesFromDatabase(AyaNova.Models.AyContext ct)
|
||||
Server serialized fields, it should *not* be getting the value from the table but rather have it's own table with last number assigned instead
|
||||
My plan has flaws, getting the number from teh last number used in the actual table is a bit fucked because it means you could end up with mutiple issues
|
||||
Instead have central location for storing serial numbers (perhaps one per table type for concurrency efficieny? Though it's a pretty fast operation.)
|
||||
Do not put in shared object though, i.e. global settings or something because it's going to be it's own thing and require efficient access.
|
||||
Maybe this is a case for a stored procedure?
|
||||
todo: change trial detection route that client first hits
|
||||
- make it a different controller and renamed to something like server ping or "hello" or something friendly and useful
|
||||
- maybe the route that gets Notifications
|
||||
- because there could be a notificatoin type that doesn't need logged in users for general server down announcements etc
|
||||
todo: Search get search result for workorder descendents doesn't fit into existing system due to it being a biz object wide feature but workorder having sub-get results
|
||||
- CHILD objects need to point to their parent and be readable in code for searching and for opening objects based on child object
|
||||
- so all child objects need a typeandid of the immediate parent
|
||||
@@ -41,6 +66,13 @@ todo: Search get search result for workorder descendents doesn't fit into existi
|
||||
- Required for opening a search result of a descendent that is not directly openable an
|
||||
- Need parent AyaType as an ENUM ATTRIBUTE in the AyaType table for easy traversal
|
||||
todo: search tables in schema, I think there is a missing index here, need to look at the search query section again as it was changed several times from the original schema creation
|
||||
todo: add long polling notification route (CLIENT AND SERVER)
|
||||
https://rockfish.ayanova.com/default.htm#!/rfcaseEdit/3507
|
||||
- Need way to acknowledge receipt of long poll info from client to server so that it can be removed or something?
|
||||
- maybe successfull sending clears it regardless of client?
|
||||
todo: ability to mass tag items from list (SERVER AND CLIENT)
|
||||
- also a good way to do an initial implementation of a mass ops UI code
|
||||
todo: ability to mass rename a tag to something else in all objects (SERVER AND CLIENT)
|
||||
todo: api / server landing page is shitty on a mobile
|
||||
and really just shitty, add a logo or some shit
|
||||
todo: Should server show uptime somewhere?
|
||||
@@ -50,7 +82,10 @@ todo: Is there a log that records past jobs, how long can they be viewed?
|
||||
todo: Rename the link to AyaNova App on the server page to just "AyaNova"
|
||||
todo: translation cjkindex, no way to set this value currently
|
||||
todo: Licensing - make sure tech type use license works properly: a tech license is consumed if a user has **any one** of the four roles of TechFull, TechLimited, SubcontractorFull, SubcontractorLimited
|
||||
todo: BACKUP & related stuff that should be in v.initial release https://rockfish.ayanova.com/default.htm#!/rfcaseEdit/3369
|
||||
todo: OPS routes (SERVER AND CLIENT)
|
||||
- Backup, restore https://rockfish.ayanova.com/default.htm#!/rfcaseEdit/3369
|
||||
- These need to be done fairly early on in order to have shit to play with for testing etc
|
||||
BACKUP & related stuff that should be in v.initial release https://rockfish.ayanova.com/default.htm#!/rfcaseEdit/3369
|
||||
todo: (BREAK THIS OUT INTO LATER/NOW/CASES) there are several outstanding AUTHENTICATION related cases in rockfish for RAVEN
|
||||
e.g. https://rockfish.ayanova.com/default.htm#!/rfcaseEdit/1924
|
||||
https://rockfish.ayanova.com/default.htm#!/rfcaseEdit/1835
|
||||
|
||||
Reference in New Issue
Block a user