-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Workflow enhancement - assignment and "ownership" logic to users via departments #51
Comments
A related issue is do we make explicit associations between departments and services. |
Thanks @pwalsh , Regarding ENFORCE_ASSIGNMENT_VIA_DEPARTMENT - I imagine this is an instance-level config? I think we might need to allow setting it for individual jurisdictions, and manage the setting in the DB, either in the Jurisdictions table in a new JurisdictionSettings table. And I'd like us to consider the following scenario: If a request is assigned to a department and a user, and we re-assign it to a different department, do we unassign the user? Do we "force" choosing a new assignee before updating the assigned department? |
Yes, you are right, this needs to be a jurisdiction setting and not an instance setting.
I meant to address with with my point 3 for the client in the original ticket:
So I think the flow is (i) change department, (ii) auto clear user assignment, and (iii) the person taking the action then (optionally) re-assigns to a user from the new department. If the same user is associated with both departments, we can leave the assignment. |
@pwalsh just to verify, what is the expected flow for changing an assigned user within the same department? |
@noamoss in that case there is no change from how it currently works in the UI we use (which is not currently open source), and there is no change from how it works at the API level (here in GovFlow). |
Hi @pwalsh
Did we hear about a user that works simultaneously in more than one department/unit?
If we don't know of a need to enable two stakeholders to be defined as a "lead", are not we just creating extra complications in terms of double assignment and notification for new tickets?
The offered implementation suggests that only a department leader has permission to assign the ticket to another worker from the same department. BUT I assume there are two extra configurations we will need to handle (maybe later): 3a. Can user X assign user Y to the ticket if they are from the same department? 3b. Can user X assign user Y to the ticket if they are from a different department? |
We talked about exactly this use case on Monday with @amirozer - that what we call a department currently is actually a unit that represents a function, and persons could perform/associate with to multiple functions.
According to the initial call with client X, we do need more than one stakeholder to be defined as a lead, hence the proposed implementation, but, as you know I'm sitting on the finalization of this implementation until we do a more formal discovery interview.
No, there is no suggestion that association with a department is a permission to perform assignment actions, only that it is an association to be a valid assignee when a request is associated with a given department.
As above, nothing here is about permissions to perform assignment actions - any user for a jurisdiction at present can perform assignment actions.
Does "they" refer to user X or Y? In either case though, see above, and also #51 (comment) for a description of the cascading relationship if a request department changes. |
Ok, sorry for the confusion, so it makes sense to enable a user to relate to two units+functions - assuming we do not want to separate levels of "units" and "functions". I think later we will have to rethink this; as a "Unit" (an organizational entity, and a more generic term for a department, including both internal and external groups of users) will become responsible for different functions (or services). I am just reminding we already know that a key difference between organizations is the way the main functions are organized between their units/departments.
I believe the permissions rules and restrictions will come as requests, and bringing it up now to approve nothing will prevent these kinds of implementation later, if needed. |
@noamoss ( cc @amirozer @idoivri )
I agree and I think, like services, we will need to remodel this as a tree #30 and then the simple jurisdictions have a depth of 0, and more complex scenarios have nested entities. In terms of data modeling, I don't think there is a clear distinction between a "unit", a "function", or a "department" - they are all, let's say, "units" and the differentiation is in how a given jurisdiction would use them.
So do I, and I think we will address it then. |
I guess we will discuss it, later on, #30, so for now, I will just comment that regarding
I believe there is a difference between unit/departments (which are organizational entities) and a service/function which are chains of 1+ actions in the real world, waiting to be applied and then logged in the system. |
Sure, there is nothing to disagree about there. But notice you say "service/function" - a service is a different entity altogether in GovFlow. In my understanding (using the current terms in GovFlow):
We discussed this week using a different term instead of |
... agreed, I believe Unit is a good term for a more abstract definition for a group of people (in the real world) in relation to an organization.
let's try to clarify what do we talk about
|
We are based on 311, so you can see some examples of services here (The "Operation" section): https://en.wikipedia.org/wiki/3-1-1 So, to take a nice example from there, "dead animal removal" is a service a jurisdiction (and more specifically, a jurisdiction via a department) performs, and refers to the "service type" that can be performed, and not the actual act (performance) of a person or machine going and removing a dead animal. |
ok, so 3-1-1 "operation" (which you described as a "type of action" or "action classifier") holds the same meaning as "functionalities". We should choose a unified term, I am would go with either "operation" or "functionality" - just because they are the shorter ones and more accessible. for non-techy users. Now, regarding the other part of "...the action itself", (or "the actual act (performance) of a person or a machine going and [doing stuff]...": will that be be represented in a separate instance? assuming the answer is yes, how would you name it? |
So, I just prefer to call it a "service" as it is now ( I just used the other terms in this disambiguation discussion :) ). I think service is the most appropriate term, and scales beyond 311, and, fits well with the idea of munis as "service delivery" organizations.
I don't think it is in our scope. |
and you are right, of course. agreed.
I am not sure it is, let's discuss (to verify I am not missing something) |
The open 311 scheme also includes a
Do we hold and/or use this field right now for service requests? |
merged in 8550b63 |
In #26 ( implemented in #29 ) we added basic support for departments in a jurisdiction, being the ability to associate a service request with a department. As noted in #26 (comment) there are several ways this feature can develop based on input we have from current users and potential users.
The current implementation optionally allows assigning a request to a department. This assignment has no impact or relation to the person assigned to the request at present. The department itself does have a primary contact name and email as metadata, but this is not a StaffUser object, and it just for display purposes, not for any use in the assignment of requests.
We have a new potential user with key user scenarios that we can support by iterating on the initial base.
Our current understanding of the user scenarios is as follows:
Supporting this in the GovFlow API server requires:
ENFORCE_ASSIGNMENT_VIA_DEPARTMENT
ENFORCE_ASSIGNMENT_VIA_DEPARTMENT
istrue
.Probable client changes required:
ENFORCE_ASSIGNMENT_VIA_DEPARTMENT
istrue
require assigning a department before assigning a staff user, and, if department changes, clear user assignmentThe text was updated successfully, but these errors were encountered: