2022-3-22 Bulk Edit Working Group Meeting Notes


Attendees (please add your name):

Magda Zacharska leeda.adkins@duke.edu Jennifer Eustis Amanda Ros Autumn Faulkner Donald Depoorter Christine Tobias (OLD ACCOUNT) Erin Nettifee Sara Colglazier Jenn Colt Thomas Trutt Erin Weller Scott Perry gongd@msu.edu Kimie Kester 

Note taker:

Robert Scheier

Meeting Recording:

Discussion:

TopicNotes 

Housekeeping

  • Please add your name to the attendees list
  • Please state your name while joining the conversation
  • Mada: Let's start with the housekeeping. Please add your name to the attendees list. And please state your name when joining the conversation so it's easier for Bob when he's taking notes.

Development updates

  • Magda: The development status, there is not much information on this because we are now mixing Lotus and Morning Glory builds.
  • Magda: We have added radio buttons instead of checkboxes. There is a bug. the drop-down should default to  "select record identifier." it should not default to barcode. Uploading the barcode file does not work just yet.

  • Magda: We get an error message when trying to upload barcodes.

  • Magda: We are working on that. There is some progress on the backend, but this is not visible to the UI. So please continue to be patient.
  • Magda: On the Scrum Board, you can see there are a lot of other issues. There is progress for items, mostly on the backend.  And front-end developers are working on addressing bugfest issues.
  • Magda: And this is the work on the backend on issues of displaying records and saving them.

Action menu - support for in-app and CSV approach  - continue the discussion to  review the behavior when both in-app an CSV approach are enabled.
  • Magda: The main part of the meeting today, I would like to return to our discussion from the last meeting about the behavior of the action menu, depending on the permissions that they use has. Their permissions will differ between the in-app and CSV approach. After that, I would like to walk again through user records in the in-app approach. I would like to get your feedback on priorities for the next steps. I would like to go back to our conversation regarding the apps with bug edit capabilities that we touched on. Erin mentioned that none of them are actually apps. We will need to either rename them or the options in the accordion. If time permits we will get to the pilot project UIT.
  •  Magda: So let me start the presentation. I'll start with a quick review of what we discussed last time. So we talk about the permissions that were introduced in Lotus, which were separate for edit, view, and delete.

  • Magda: And depending on the permissions you had, the behavior of the action menu, once you open the application and you have a CSV type of permission. You could see right away--start bug edit. Even before the preview was populated.

  • Magda: Once the preview was populated, you could download the matched errors or start bulk edit. And if the error accordion was populated, you would have the additional options of download errors in CSV format.


  • Magda: Please feel free to interrupt me at any moment, if you have an additional question.

  • Magda: And this is the last screen for a CSV approach. Once the edit has been completed we see the completed process and you can start another by uploading another CSV file. So this is how it works in Lotus.


  • Magda: Last week we also discussed that in the morning glory we will be introducing new permissions and we agreed that their names will need to be renamed in Lotus. The new ones in Lotus will be named
    • Bulk Edit: In-app- Edit 
    • Bulk Edit: In-app - View
    • Bulk Edit: In-app - Delete

  • Magda: With in-app permission enabled – Navigating to the landing page the action menu is not available because there is nothing the user can do.

  • Magda: Now we have uploaded the file. The preview is populated with errors. You see the following options:
    • Download matched records (CSV) - a copy of the preview of affected records
    • Download errors (CSV) - a copy of errors
    • Start bulk edit - will open a screen for in-app editing


  • Magda: Once the bulk edit is complete, what should be the actions displayed there? We discussed that it would have the option to save changed records in the CSV file and also saved errors.

  • Erin: I have a question about this screen Magda. The green box success toast. Is that going to behave like a success toast, where it appears on the screen and then it goes away? Or is that going to stay on the screen?

  • Magda: It will stay on the screen because I think you would like to have a longer notification, not something that will pass. And if you don't pay attention, you will not notice it. Do you have problems with this?

  • Erin: No, that's, that's fine with me. I mean, others can chime in. It just wasn't clear to me from the screenshot.
  • Magda: Yes this is the exact behavior we have right now. It does persist. And actually, there is a bug because it persists even into the next bulk edit.

  • Erin: But let's say I do an update and for some reason, 340 work, and 10 of them fail. Is it still a green box?

  • Magda: (summary of the discussion with Erin about this screen) Yes, but it will be a green box minus those that were not updated. So in this example, you submitted 250 entries. 248 records were matched, 1 was not updated because there was some error. And one was not matched. So you have here notification that one record was not updated of the 248 that has a match.

  • Erin: So the error that appears on the screen is found before I push the ...

  • Magda: Yes, but it's a matter of updating the mock-up. This actually should read instead invalid date for the status or something like that.

  • Erin: Yeah. You would get a better error message?
  • Magda: Exactly. And it will specify what went wrong and indicate the record identifier. And it will have the option to save those errors so you can go back to the records directly and see what went wrong? Okay. And the other questions?
  • Magda: So this was the easy part of the presentation. Now the hardest part starts. Now we will talk about the case where the user has both CSV and in-app permissions, so they can do both.

  • Magda: So the user has CSV and in-app approach. They are on the landing page. They have an action menu and they have start bulk edit (CSV). Does it make sense?

  • Erin: Yeah.

  • Magda: Okay. Now we are moving to a more complicated thing. We are in the inventory items and in inventory, we can only use the in-app approach edit. But they use it also have the permission to start bulk edit with the CSV approach, which is not fully applicable for items at this point. It's applicable only for users. So the question I have is, should this start bunk edit CSV approach display only when they are on the user tab, or should be displayed also on the inventory items tab when the user cannot do anything here with that?

  • Erin: So I think in an ideal world, you would go to that landing page and you have an option in the action menu, but you would document or train people to say that the first thing you're going to do is you're going to select the app that you're going to work with.
  • Erin: If I'm going to edit user records and I click that user users radio button, then I should see the action menus options that are applicable to users. If I choose inventory, I should see the option menu options that are applicable to inventory. And then my other thought is that those actions should be sorted based on whether it's CSV or in-app and not sort them alphabetically. So you would have a clump of CSV actions, and in-app actions. And maybe even playing around with labeling of the options because that'll make it even more clear that this is for in-app stuff and this is for CSV stuff.
  • Erin: I think the chatter in the chat is mostly in agreement with hiding the stuff that you don't need in places where you can hide it. And then clumping the actions by a CSV or in-app.

  • Magda: Great, thank you.

  • Magda: So another question is, let's assume then that we are in inventory items and I have both CSV and in-app permissions, but I will see start bulk edit. Right? And then when I click the link and I switched to users, I will see a start bulk edit CSV option. Is this what you are proposing are agreeing or not?
  • Erin: That makes sense to me (chat agreed).
  • Magda: Now we are in users and we have both permissions.

  • The summary of this section is best stated by Erin below after some back and forth with Magda.

  • Erin: That's a good question for the group. If you have just edited 500 item records and now you need to do another edit with a thousand item records, a separate record set, how do you want to start that process over again? You could go over to the record identifier and click upload your file. One of the questions I would have Magda is can I get to any of these files after I've started a new load?

  • Magda: All of them are stored in S3.  They should be in export manager. But I have not tested for how long they stay there.

  • Erin: That's okay. I think we just need to get some clarity on it.

  • Magda: But is that something that you would like to have?

  • Erin: What happens if I accidentally closed the tab or I have to walk away and I come back in 30 minutes and suddenly I can't get back here. How do I get to my files? I think that's the question.

  • Magda: They are stored. The matter is how do we make them accessible to you after a while. But when you are saying you want to access the files, you actually have those files on your local machine.

  • Erin: I might not have the error messages. And some staff might change machines over the course of time to go show somebody something. It would be nice to be able to get to the file through a tool, an export manager is certainly available as an option. We don't have to go totally down that road because I know we were talking about resetting. Thomas said in chat that he would favor having some sort of reset or start new, start new edit or something like that.

  • Magda: Should we have an option to start over>
  • Erin: I have a little bit of a hard time visualizing that at this point. So I'm not entirely sure. It might be interesting to make up a couple of options. Kimmy is favoring having some sort of reset button or reset option.
  • Magda: The other option would be just clicking on the bulk edit icon to clear everything on the screen.
  • Erin: I wouldn't want to do that because I would totally randomly do that adn screw myself over.
  • Magda: Okay. So an additional option in the action manual, right?
  • Erin: People in chat are preferring a button.
  • Erin: f you want to see an example, in the checkout app there's is an end session button. So there might be a pattern there that you could look you, your developers could look at.
  • This image was added post-meeting for convenience to illustrate the example referred to by Erin.

  • Magda: But the warning should not be end session?

  • Erin: I wouldn't call it end session. People seem to like reset.

  • Leeda: If you go to inventory, in the left pane, you see the reset all button underneath the search button there. Is that what we're talking about?
  • Erin: I don't like that because I think it's really easy to accidentally click that and get rid of the work that's on the screen.
  • Magda: With bulk edit, we will be resetting everything, not just the left pane but the main pane, the notification, preview, and errors if applicable. We can talk about this more. Personally, I like the button idea and start over which may not make sense to others.

  • Magda: So it looks like we are in agreement on the behavior of the actions menu, depending on the permissions.

  • We will discuss this reset button probably next time when we meet.

Bulk edit - user records - in-app  approach
  • Magda: I would like to work on the bulk edit user records in-app. Something that we discussed in early days of bulk edit.
  • Magda: So the behavior right now, it's the same as we have implemented. The identifiers.

  • Magda: Uploading the file

  • Magda: Populating the preview

  • Magda: And then start bulk edit.

  • Magda: And here comes the in-app. 
  • Magda: Select an option and it will be email, expiration date, patron group, and probably others that we have prioritized a long time ago with the users SIG. Permissions will be a separate feature because it is complicated. If we do the permissions, and I understand how important they are, we will need to do it in a separate story. It cannot be a part of user records. So please disregard permission, this row here (in the drop-down).

  • Magda: Here's the list of the actions.
    • Find
    • Add to existing
    • Clear field
    • Replace with all
    • Find and remove these
  • Magda: If we select find, It means you are searching for a string within a field. And then when we are replacing it with another string

  • Magda: So that would build something similar to what we are planning to do for items, but it's more advance because of the find and replace option. We have that clear field and replace it with some other value. We can have replace with another value. And please disregard the permissions for now. Any comments?

  • Erin: The options listed there are the fields that you can change?
  • Magda: Yes.
  • Magda: We may also take the approach that we will be implementing, starting with replace, clear field, with those two options that we will be supporting item and then other two existing, but under the existing will be applicable only for the repeatable fields. 

  • Erin: I'm not sure about what the distinction is between find and remove, and clear field.


  • Magda: Clear field is where you clear, whatever it is, it doesn't matter. Find will find these values and remove them. It's more like a conditional.

  • Sara: So I was also just needing to get a better handle on the different nuances of the differences because this is actually quite remarkable. To be able to find something in a field and replace it so discreetly is quite wonderful. And so you're suggesting that this will also be possible for items at the item level.

  • Magda: In stages.

  • Sara: Because find and remove these, if we could get this, this would be so wonderful. I have to do tortures things to be able to do this when I bulk edit certain fields.

  • Magda: So we also may then discuss the priorities about that because we can start adding these actions to items to those fields that we have. And then once we have this action within one record type, we can easily use it for other record types. So we will need to determine what is a higher priority, this in-app functionality for users, or build up the complexity of the bulk edits for items, holdings, and other inventory records. But we can have this prioritizing exercise later.

  • Magda: But what I'm getting from you is that you like it, right?

  • Sara: This is really wonderful. And I guess one other question. Would "add to existing" mean at the end of existing? 

  • Magda: Yea at the end.

  • Sara: So, maybe we need to just be really specific, like append to existing or something.

  • Magda: But does it really matter? This was actually "append existing." I added it when I was still thinking of having the permissions where order does not matter. But to have it for other fields where the order matters, can you give me an example where the order would matters for items like for inventory?

  • Sara: For inventory, I would say in my note fields. Very often I want to have the most recent one first. Or I want to know that this is always going to be the last note or always be the first note, because then if I dump it down in Excel or something and I'm chopping up my columns, I want to know where that certain bit of information is. 

  • Magda: I don't know if the notes contain the timestamp when the note was added?

  • Erin: It depends on the type of note you're talking about. Because most of the notes in inventory are just free text fields on the record. So they have the metadata of the overall record. But if you're talking about the notes modal, like it's used in users, then that note object has its own metadata.
  • Sara: I'm talking about notes within records, in different note fields.
  • Erin: Jen is pointing out in the chat too, that we're also talking about kind of two different types of fields that you want to work with. You want to work with a free text field like Sara is describing, and then you also want to be able to work with controlled vocabulary fields, which is what permissions are because you want to use the controlled vocabulary of the names of the permissions. And so you might need to define if there is a controlled vocabulary field where the order matters? There shouldn't be because with JSON it shouldn't matter versus a text field where the order matters, which I think are the examples Sara is getting at where she might expect notes on her records to be in a certain order versus other kinds of records and things like that.
  • Magda: It will also be applicable for the custom fields. The way I see append or add to existing is for everything that is on the backend is an array. It's something repeatable and it assumes the order of the elements of the array does not play a role. But this is something important to keep in mind.
  • Erin: This really increases the complexity of some of this each app involved. You have to determine the fields that can be touched and the options that can be used in the order, that those options can be applied, and things like that. So there's a lot of requirements work here.
  • Magda: Once we get to "add to existing" this can definitely be a separate longer discussion about expected behavior. We can also do this again in stages. The first approach would be to assume that whatever we are adding to the existing is appending. So this will be the last one on the list. And at least it will be a consistent behavior. And then, and then we can tweak it.
  • Erin: And Jen is wanting to suggest also that a comparison be made to the language that the data import app uses because you don't want to have different meanings in different apps. So that's an excellent point.
  • Sara did you have other thoughts? I know that your hand is still up, so I wasn't sure if you had anything else you wanted to add there. So that was good feedback. Okay.
  • Magda: So I think we are good with what I have presented so far. We will need to come back and talk about priorities. Do you want this additional action support in inventory, or do you want to implement some elements in the users? We will come back to this.
  • Magda: The last is the downloading preview, saving the preview of the records that are not updated yet. This is how they would look once you click save and close.

  • Magda: And here's a notification that 300 records have been successfully changed. This is the original first mock-up. It has changed obviously. This is moved on top. We'll need to update those to include the changes we've made so far.

  • Magda: This is the downloaded updated records, downloading errors, and downloading matching records.

  • Magda: This is an example of saving and the naming convention. It's the naming convention that we already implemented: year, month, date, and the name of the file that was used to trigger the bulk edit.


Revisit naming convention for Apps with bulk edit capabilities accordion

  • Magda: So we have 10 minutes left. I would like to go back to and spend a little bit more time on the accordion for the apps and bulk edit capabilities. So this is what we have right now.

  • Magda: For now we have users and inventory items. Later we'll have probably in the in-app approach we will be going with inventory, holdings, then inventory items. And then I remember someone said there is no circulation. And there is no acquisition.

  • Erin: Can it just be a list of like record types? Cause that's really what you're talking about. It's with circulation, it'll be loans requests. Uh, et cetera, with acquisitions, I assume it would be orders, invoices things like that. You're really talking about record types. And I think that's clearer verbiage than apps here, but, I don't know what others think.

  • Jen says. Yes.

  • Sara: That's really important because you can't just say order app. There are orders and there are POLs. And that's a huge difference.

  • Magda: And then the permissions. We will have hopefully have permissions eventually. And then the link between user permissions, the link between users and inventory, and all those things coming down the road.

  • Magda: So you are suggesting we rename it to the records with the bulk edit capabilities instead of apps?

  • Erin: I would just call it record types. I don't even think you need the phrase with bulk edit. You are in the bulk edit app. People know that you're in that app. So I would just call it record types. I think that's clear.


  • Erin: The chat seems to be in agreement with that.

  • Sara: When you were listing them earlier, you said holdings and then items. I thought we were doing items next and then holdings.

  • Magda: When I holdings, I was assuming that items are already done.

  • Magda: Going back to record types. So users, inventory items, inventory holdings, then requests, then loans then orders, etc.

  • Erin: I wouldn't put the record types in there until there's functionality.

  • Magda: I absolutely agree. Right now we are using gray-out to show what's coming. But this is a teaser for everyone. And I agree we'll update this.

Pilot Project UAT 
  • Magda: So the last part of this meeting is about the pilot UIT. We continue to struggle with environments. I was really hoping to have it done for today. We discovered another issue that is being worked on. So I don't have an environment where we can do UIT. In addition to that, the whole environment was reset a couple of times. And to be honest, I'm not sure that the users we have set before are still there. So we need to rely on you to go through this exercise again. And I truly apologize for this, but we all are learning and the circumstances shift responsibilities and many engineers that were working in other areas are contributing to help others. So please bear with me. But the link that is here, is still the acceptance testing survey that I would like you to review and provide your feedback once you start playing with that. If you have a chance can take a look at this survey and let me know if the questions are clear or if you would like to make any changes.


  • Magda: We have four minutes left. We can spend those four minutes going through those questions and it will give me some sense if this makes sense to you.

  • Magda: So the first question is "please upload a file with the identifiers of records that you would like to edit. Please try different types of supported identifies (User barcodes, external Ids, usernames ore User UUIDs). How was the experience?" Does it make sense or it's not clear?

  • Jennifer: I might leave out "of records." "Please upload a file with identifiers." I don't know if there might be confusion there. But you do list them out so maybe it doesn't matter, I'm just thinking out loud,

  • Magda: But this is good. For me, this is like identifying as you need to say, what do you identify as, but if this is redundant for you.

  • Jennifer: Or maybe "please upload a file with identifiers for the records you want to edit."

  • Magda: I really appreciate the feedback and I will make the change, but I just want to make sure that what I'm asking is clear. I know that the English may be better, but the question is, is it clear what I'm asking or it's not.


  • Jennifer: Yeah, I think it's clear. It's fine.


  • Magda: So then the next one is about the query. We support a simple query, for example, status active or patron group. And you specify the name of the patron group. If you can run those, that would be really helpful and also provide if it worked as expected.

  • Leeda:  I think in that instance, that upload would be better than identity, like please upload the records that you would like to edit by the query. I just think that might be clearer.


  • Magda: Actually, you're not uploading here. You are running the query.

  • Magda: This is about changing the columns in the display, downloading the matching records, modifying the records locally and uploading the file again, and then overall experience. And if you have any screenshots that you would like to share, please upload them. Unfortunately, I have to run to another meeting and you probably have other meetings as well. We will get back to this next time. Hopefully, we will be able to do an exercise together, and then you will be able to run those tests by yourself at your convenience. Thank you very much for your feedback. This was another great meeting and thank you all. I see. I see you in two weeks.

Chat Log
00:05:19	Erin Weller:	feels like a Monday
00:05:28	Autumn Faulkner (she/her):	agreeeeee
00:06:08	Magda Zacharska:	Can the host unmute me please :-)
00:06:41	Jenn Colt:	We were Voyager
00:24:44	Thomas Trutt:	id say only on the user tab.. just to cut back on confusion.
00:24:49	Kimie Matsudo Kester:	Only on Users, IMO
00:24:54	Jennifer Eustis (she/her):	+1
00:24:59	Ros, Amanda L:	+1
00:25:04	Jennifer Eustis (she/her):	Otherwise it could be confusing
00:25:14	Sara Colglazier (MHC/5C):	+1
00:25:53	Sara Colglazier (MHC/5C):	& clumps are then alpha ? Erin, right
00:28:39	Thomas Trutt:	that makes sense
00:28:45	Kimie Matsudo Kester:	Yes, on Users, have Start bulk edit (CSV)
00:28:47	Thomas Trutt:	:) ..
00:28:49	Ros, Amanda L:	I think it sounds good
00:29:17	Thomas Trutt:	the more explaining you do Erin the less we have to.. :D
00:31:16	Thomas Trutt:	id do a start over button or reset, seems clearer to the user
00:33:00	Thomas Trutt:	someone may change machines
00:33:14	Thomas Trutt:	go to work with a co-worker.
00:34:23	Kimie Matsudo Kester:	Reset
00:34:34	Autumn Faulkner (she/her):	+1
00:34:35	Ros, Amanda L:	start new
00:35:02	Jennifer Eustis (she/her):	I would prefer a reset button
00:35:22	Jennifer Eustis (she/her):	+1
00:35:25	Kimie Matsudo Kester:	On other apps we use a “Reset all” in the left pane
00:35:31	Thomas Trutt:	or the rest button in inventory search
00:35:46	Thomas Trutt:	true
00:45:24	Leeda Adkins:	I agree Sara, it looks like a great feature
00:45:53	Ros, Amanda L:	yes, looks very nice
00:47:44	Jenn Colt:	You’re talking about 2 different things
00:47:50	Jenn Colt:	Text vs controlled vocab
00:48:11	Erin Nettifee:	Right - a free text field like notes versus a controlled vocab like permissions names
00:51:09	Jenn Colt:	I think a review of the language used in data import could be valuable as well so the same words don’t mean different things in the two apps
00:52:05	Erin Nettifee:	Agreed Jenn
00:55:23	Jenn Colt:	Yes!
00:55:29	Jennifer Eustis (she/her):	+1
00:55:39	Christine L Tobias:	That makes sense. +1
00:56:41	Scott Perry (he/him):	+1
00:56:53	Ros, Amanda L:	+1
00:57:38	Jennifer Eustis (she/her):	Jupiter
00:58:35	Erin Nettifee:	i need to run to another meeting - thanks all!
00:58:36	Christine L Tobias:	+1 Erin...makes it so much easier to write documentation.
01:02:51	Sara Colglazier (MHC/5C):	Sorry I got to run

Future discussion topic (time permitting):

Bulk Edit of the linked records

Scheduling edits