From a6a92a1e2dad243d203aa147ecd0b2432562f914 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Tue, 14 Dec 2021 15:07:04 +0000 Subject: [PATCH] --- ayanova/devdocs/todo.txt | 163 +++++---------------------------------- 1 file changed, 20 insertions(+), 143 deletions(-) diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index 7d88974a..61e2f54a 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -129,10 +129,9 @@ trial / seeder system Coded by importance -1 means definitely right away -2 means definitely later after 1 -3 means nice to have but not sure or not urgent may even remove - +1 means before beta +2 means before release +3 means make a case for it for v.next @@ -186,9 +185,9 @@ TODO: 1 BETA DOCS: CLEANUP, go through each docs page look for swear words, inside info, stuff that shouldn't be there and replace with UNDER CONSTRUCTION instead -- Mirror docs to our site so we can link to a central place for them when doing website and for beta test, installation etc +-2 Mirror docs to our site so we can link to a central place for them when doing website and for beta test, installation etc -- Somewhere document that a login is good for 5 days from moment of login before needing to login again +-1 Somewhere document that a login is good for 5 days from moment of login before needing to login again @@ -216,7 +215,8 @@ TODO: 1 BETA DOCS: - 1 todo: on linux server test discovered lightbulb sample reports are coming up in listing first which is not what is expected -- 1 todo: there are no default reports for any objects except a selected few, thought joyce was making a report for every object that's reportable + add a "sample" checkbox so that they only appear to roles that can design reports, ditch the lightbulb for a z (check first to confirm last on all platforms) +- 2/3 todo: there are no default reports for any objects except a selected few, thought joyce was making a report for every object that's reportable will need to make a slew of default plain reports like customer etc @@ -236,13 +236,14 @@ TODO: 1 BETA DOCS: - 1 bugbug?:open vendor, print report, go back it shows as savable all of a sudden despite no changes made in UI, also does not give dirty save prompt when leave it even though save icon is showing enabled bold - 1 fixed?? changed to attachment files path : for some reason user files path is blank in server settings under ops in ayanova app on linux desktop when using the single data path folder, check in windows - 1 todo: First print if it's downloading or will need to download chromium it should state there will be a delay while it attempts to download and install chromium render engine + or maybe trigger it on first boot? - 1 todo: firefox schedule fix: https://github.com/vuetifyjs/vuetify/issues/14243#issuecomment-944907925 this should fix on it's own with an update to vuetify which was just patched 2021-11-09 and not released yet -- 1 translation cleanup, work order sb Orden de trabajo but is translated as Pedido?! +- 1 translation cleanup, work order sb Orden de trabajo but is translated as Pedido?! (which is very generic and not work order, usually like a restaurant order or online shipping order sense for pedido) I did a couple but realized it needs to be done one by one roundtripped carefully as it's used in alternative tenses and forms throughout --3 Schedule, what is the maximum number of techs can show in team view, can show more with scroll? +-2 Schedule, what is the maximum number of techs can show in team view, can show more with scroll? seeder should prevent going over this max (tags/prefilter/gen less) @@ -251,7 +252,7 @@ TODO: 1 BETA DOCS: also, there needs to be more "dots", it's too few to get proper idea also todo under server that metrics isn't really capturing the whole server metrics only the ayanova process metrics as far as I can tell --2 hyperlinks in memos sb clickable to open in new tab or window or whatever +-3 hyperlinks in memos sb clickable to open in new tab or window or whatever this supports help links in migrate and also user links like "take a look at workorder 55" with a link to it in the UI recognize urls and make them actionable somehow @@ -277,7 +278,7 @@ todo:2 Not in love with the "Error api2200" as the only error text in the box At the very least make sure every raw error returned goes into the client log so can help with tech support when people need it without resorting to making them open developer console to see the actual raw error. (if do this maybe extend the length of the error log as it's possibly too short to capture enough stuff this way??) -todo:2 when there is an errorbox error it's possible to miss it as it's at the top scrolled off screen and you can save as the appbar doesn't scroll +todo:3 when there is an errorbox error it's possible to miss it as it's at the top scrolled off screen and you can save as the appbar doesn't scroll need more feedback, perhaps appbar turns red, or save button turns red or whole page has a color to it..?? Or maybe just as simple as an toast alert popup whatever it's called that temporarily shows the same error as is in the box at top @@ -288,10 +289,8 @@ todo:2 reporting custom fields Maybe translated custom fields alongside the string version?? Users see it as currency would be just as confused as Joyce was expecting it to be a number -todo:2 use const, not let unless need to reassign the variable - Going to need a case by case through all uses but it's a very important precaution so code it that way now for all new code -todo: 2 schedule form sync with ical, there's a case for it +todo: 2? schedule form sync with ical, there's a case for it todo:3 link back to list from single edit form it would be very handy to have a simple link back to the list or back a level @@ -403,22 +402,21 @@ todo: 3 Schedule form reporting? TODO: 1 Log the startup folder for AyaNova and provide in all areas where you can view config because user may have trouble locating it on windows - Also, log the data folder in case it isn't already so users can see where their data is (should show in log and also in UI) - this will be used for tech support often so be sure it's useful to us + todo: 1 When there is a rendering issue with chromium browser startup the server *must* log that to the server log, right now it just half-ass reports it back to the client only this is because it was written expecting any error was a template error not a starting chromium error so need to look there in the exception handler would rather not log report template issues to the server log but anything else structural should be -todo: 1 Test with expired key, can superuser login and no one else?? **CRITICAL** +todo: 2 Test with expired key, can superuser login and no one else?? **CRITICAL** Awaiting a raven license key generator first, currently do not have one, 404's in rockfish!! +todo: 2 rockfish generate keys for purchased licenses, the real deal todo: 1 investigate: noticed when rebooting linux server I need to login again which I didn't expect, it should still work as long as the token is unchanged is this due to randomization of jwt secret or something? try in windows and confirm -todo:1.5 Joyce case 3931 test restore of 4alarm data - actually, try it here first with small amount of data then try the huge one +todo:2 Joyce case 3931 test restore of 4alarm data Get a copy from Joyce on the red drive, it's about 5gb write up how to do it if there are manual steps (there will be I guess but maybe there shouldn't be) make sure it works one way or another @@ -433,7 +431,7 @@ todo: 2 make priority / woitem / wostatus colors distinct from each other maybe priority in primary and status of both kinds more muted but also in different ranges so no clash i.e. no two the same color or even close between each so in theory you can see at a glance which is which todo: 2 Server metrics don't seem to tell the story of teh overall server - i.e. when reporting is jammed up on linux and the server manager in do shows 100% cpu, inside the ayanova server ops metrics shows a much smaller number and responds + i.e. when reporting is jammed up on linux and the server manager shows 100% cpu, inside the ayanova server ops metrics shows a much smaller number and responds so it seems it's reporting only on ayanova's share of what is happening but if the overall server is bottlenecking we need to show that as well todo: 2 make sample data appointments suitable for evaluation of calendar @@ -474,38 +472,6 @@ NOW .... -What up with this and can it be blocked from logging / something simpler logged instead? - Try to determine if it's time related, maybe during backup?? - find a pattern - try logging success always to see how rare it is - I don't think it's happening at the linux server, it seems to be a comm issue from my ws?? - no, it actually is. - bittorrent interferes with it like it does with my browsing, maybe not the cause though, just a data point -2021-03-17 05:19:27.0750|ERROR|JobsBiz|Server::ProcessJobsAsync unexpected error during processing=>System.Threading.Tasks.TaskCanceledException: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing. - ---> System.TimeoutException: The operation was canceled. - ---> System.OperationCanceledException: The operation was canceled. - at System.Threading.CancellationToken.ThrowOperationCanceledException() - at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) - at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 token) - at System.Net.Security.SslStream.g__InternalFillHandshakeBufferAsync|182_0[TIOAdapter](TIOAdapter adap, ValueTask`1 task, Int32 minSize) - at System.Net.Security.SslStream.ReceiveBlobAsync[TIOAdapter](TIOAdapter adapter) - at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm) - at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Boolean async, Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken) - at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) - at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) - at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) - at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) - at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) - at Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) - at Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) - at System.Net.Http.HttpClient.SendAsyncCore(HttpRequestMessage request, HttpCompletionOption completionOption, Boolean async, Boolean emitTelemetryStartStop, CancellationToken cancellationToken) - --- End of inner exception stack trace --- - --- End of inner exception stack trace --- - at System.Net.Http.HttpClient.SendAsyncCore(HttpRequestMessage request, HttpCompletionOption completionOption, Boolean async, Boolean emitTelemetryStartStop, CancellationToken cancellationToken) - at AyaNova.Core.License.FetchKeyAsync(ApiServerState apiServerState, AyContext ct, ILogger log, Boolean calledFromInternalJob, Boolean devTestTrial) in C:\data\code\raven\server\AyaNova\util\License.cs:line 522 - at AyaNova.Biz.CoreJobLicense.DoWorkAsync() in C:\data\code\raven\server\AyaNova\generator\CoreJobLicense.cs:line 72 - at AyaNova.Biz.JobsBiz.ProcessJobsAsync() in C:\data\code\raven\server\AyaNova\biz\JobsBiz.cs:line 178 - todo:3 is there a way to tell if other connections are being used to AyaNova db like a utility or they are fucking around and it's affecting performance etc @@ -518,7 +484,7 @@ todo:3 is there a way to tell if other connections are being used to AyaNova db LATER ...... -todo:1 Changes to allow in place updates of server without erasing data: +todo:21 Changes to allow in place updates of server without erasing data: (Note: this is a 1 due to probbaly needing some stuff in place (source language) *before* release or it will become a nightmare after release) Needs to be supporting this early as possible so that upon release we can easily make changes without breaking existing setups or forcing complex actions how to add locale keys in future after release without erasing all data? @@ -550,7 +516,7 @@ todo:2 GetWorkorderSerial/name from leaf nodes once coded fixup in purchaseorderbiz::getasync MIGRATE_OUTSTANDING bit -todo:1 tag search in picklist, does it support more than one tag? I forget +todo:2 tag search in picklist, does it support more than one tag? I forget no, no it doesn't. Hmmm... fuck maybe they can enter unlimited tags as long as they have a ..before each one? Users may need to "triangulate" on to an item by multiple tags @@ -608,99 +574,10 @@ todo:2 many biz objects are not using new PUT methodology ######################################################################################################################## -CURRENTLY DOING: up top stuff above -EACH OBJECT DEV CYCLE: - FIRST - Check cases, make sure not changing the object fundamentally, many v7 objects are going to change for cases (particularly inventory related) - BACK - AyaType and associated code - BizRoles - Model and Database Schema and AyContext - DbUtil EraseAllData method - Update function PUBLIC.AYGETNAME in aySchema for new type - Biz object and all supported interfaces (searchable, exportable etc) - Reportable Viz fields if reportable - Biz Object SEARCH Index / getsearchresult code add unique text fields - Business rules port from v7 and new ones - ValidateCanDete MUST check if any foreign key constraints and return proper error rather than bombing on attempted delete - Do check constraint first then biz rule so can test down to db - ALL biz rules where possible must have mirror db constraint to avoid fuckery with direct modified data - Notification code if applicable - Controller routes and associated code - Translation keys - FormFieldReference for object if it posesses an customizable form - DataList if applicable (be minimal with the default fields) - Picklist - Seeder generate samples - If anything needs to be changed down the road then flag it in comment with //MIGRATE_OUTSTANDING - FRONT - AyaType / rights - front route - List form - Edit form (## TEST ALL INPUTS ON EDIT FORM, DON"T ASSSUME THEY WORK) - Add to smoke test !!! VERY IMPORTANT - DOCS (at back but with front links, maybe not fleshed out just placeholder ok for now) - REPORTING - Reportable & VIZ fields - DASHBOARD - Add widget if dashboardable https://docs.google.com/document/d/1cEesyryhM0zYkH0PEswiuOezUTA_Nv5Xn3jfBczdQmk/edit - IMPORT - imports and flows through to new front end viewable and searchable and printable etc - - - - - - -# V7 objects now TAGS, the following objects are imported as tags and suffixed with a period and then short versions of the object type in the tag name - - Region - - UnitModelCategory - - UnitServiceType - - WorkOrderItemType - - ClientGroup - - WorkorderCategory - - PartCategory - - DispatchZone - - ScheduleableUserGroup - - ClientNoteType - - VendorType ## LATE ADDITION - - - - - - ------------------------------------------------------------------------------------------- - -POST "REALITY" OR IN PARALLEL "REALITY" related items: - - -todo: can beta test at this point - See below, specific ideas about public beta test (User accounts not seperate installs maybe) - post installer, enlist trial users get feedback, don't get too down when they shit all over it as they will undoubtedly :) - remember, it's for the new customers primarily, new customers = new $$ - -todo: Document in user manual all form controls with instruction on how to use the various controls etc - - "Anatomy of a AyaNova Form" - - - -todo: Documentation POST "REALITY" - will already have placeholders from above - Need to think this through carefully - Need to get the critical bits in for onboarding and importing so people can get going - Most important stuff is anything non-obvious - Seems pointless to have one doc per form that just says "The name field is the name and must be unique" - maybe have that kind of stuff in the form basics and then have a doc per OBJECT instead with anything unique or interesting about the object - (and each object form has a link to formbasics so can link to the object form from UI and they get both) - Parts of it can be done post-release for sure - - - @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@ ROADMAP STAGE 7 - EXTENSIONS (was plugins) @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@