Allow filtering by all possible statuses
This commit is contained in:
parent
0494382d00
commit
d069897062
@ -207,3 +207,7 @@ class Requests(object):
|
||||
comment = RequestInternalComment(request=request, text=comment_text, user=user)
|
||||
RequestsQuery.add_and_commit(comment)
|
||||
return request
|
||||
|
||||
@classmethod
|
||||
def possible_statuses(cls):
|
||||
return [s[1].value for s in RequestStatus.__members__.items()]
|
||||
|
@ -237,10 +237,6 @@ class Request(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
|
||||
else None
|
||||
)
|
||||
|
||||
@property
|
||||
def simple_status(self):
|
||||
return self.latest_status.simple_name
|
||||
|
||||
def __repr__(self):
|
||||
return "<Request(status='{}', name='{}', creator='{}', is_approved='{}', time_created='{}', id='{}')>".format(
|
||||
self.status_displayname,
|
||||
|
@ -56,21 +56,6 @@ class RequestStatusEvent(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
|
||||
else:
|
||||
return self.displayname
|
||||
|
||||
@property
|
||||
def simple_name(self):
|
||||
if self.new_status in [
|
||||
RequestStatus.CHANGES_REQUESTED,
|
||||
RequestStatus.CHANGES_REQUESTED_TO_FINVER,
|
||||
]:
|
||||
return "denied"
|
||||
elif self.new_status == [
|
||||
RequestStatus.PENDING_FINANCIAL_VERIFICATION,
|
||||
RequestStatus.APPROVED,
|
||||
]:
|
||||
return "accepted"
|
||||
else:
|
||||
return "pending"
|
||||
|
||||
def __repr__(self):
|
||||
return "<RequestStatusEvent(log_name='{}', request='{}', id='{}')>".format(
|
||||
self.log_name, self.request_id, self.id
|
||||
|
@ -15,10 +15,15 @@ class RequestsIndex(object):
|
||||
Permissions.REVIEW_AND_APPROVE_JEDI_WORKSPACE_REQUEST
|
||||
in self.user.atat_permissions
|
||||
):
|
||||
return self._ccpo_view(self.user)
|
||||
context = self._ccpo_view(self.user)
|
||||
|
||||
else:
|
||||
return self._non_ccpo_view(self.user)
|
||||
context = self._non_ccpo_view(self.user)
|
||||
|
||||
return {
|
||||
**context,
|
||||
"possible_statuses": Requests.possible_statuses(),
|
||||
}
|
||||
|
||||
def _ccpo_view(self, user):
|
||||
requests = Requests.get_many()
|
||||
@ -77,7 +82,6 @@ class RequestsIndex(object):
|
||||
"is_new": is_new,
|
||||
"is_approved": request.is_approved,
|
||||
"status": request.status_displayname,
|
||||
"simple_status": request.simple_status,
|
||||
"app_count": app_count,
|
||||
"last_submission_timestamp": request.last_submission_timestamp,
|
||||
"last_edited_timestamp": request.latest_revision.time_updated,
|
||||
|
@ -13,7 +13,7 @@ export default {
|
||||
},
|
||||
|
||||
props: {
|
||||
initialData: {
|
||||
requests: {
|
||||
type: Array,
|
||||
default: [],
|
||||
},
|
||||
@ -21,12 +21,14 @@ export default {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
statuses: {
|
||||
type: Array,
|
||||
default: [],
|
||||
},
|
||||
},
|
||||
|
||||
data: function () {
|
||||
const requests = this.initialData
|
||||
return {
|
||||
requests,
|
||||
searchValue: '',
|
||||
statusValue: '',
|
||||
}
|
||||
@ -52,7 +54,7 @@ export default {
|
||||
applyFilters: (requests, status) => {
|
||||
return requests.filter(
|
||||
(request) => status !== '' ?
|
||||
request.simple_status.toLowerCase() === status :
|
||||
request.status === status :
|
||||
true
|
||||
)
|
||||
},
|
||||
|
@ -5,7 +5,7 @@
|
||||
{% from "components/empty_state.html" import EmptyState %}
|
||||
|
||||
{% block content %}
|
||||
<requests-list inline-template v-bind:initial-data='{{ requests | tojson }}' v-bind:is-extended="{{ extended_view | boolean }}">
|
||||
<requests-list inline-template v-bind:requests='{{ requests | tojson }}' v-bind:is-extended='{{ extended_view | tojson }}' v-bind:statuses='{{ possible_statuses | tojson }}'>
|
||||
<div>
|
||||
|
||||
{% call Modal(name='pendingFinancialVerification', dismissable=True) %}
|
||||
@ -91,9 +91,7 @@
|
||||
<select v-model="statusValue" id="filter-status" name="filter-status">
|
||||
<option value="" selected disabled>Filter by status</option>
|
||||
<option value="">All</option>
|
||||
<option value="active">Active</option>
|
||||
<option value="pending">Pending</option>
|
||||
<option value="denied">Denied</option>
|
||||
<option v-for="status in statuses" :value="status">!{ status }</option>
|
||||
</select>
|
||||
</div>
|
||||
</form>
|
||||
|
Loading…
x
Reference in New Issue
Block a user