Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
H
hypha
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ots
hypha
Commits
041e7de3
Commit
041e7de3
authored
5 years ago
by
Vaibhav Mule
Browse files
Options
Downloads
Patches
Plain Diff
refactor admin dashboard view
parent
33af28b5
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
hypha/apply/dashboard/views.py
+51
-47
51 additions, 47 deletions
hypha/apply/dashboard/views.py
with
51 additions
and
47 deletions
hypha/apply/dashboard/views.py
+
51
−
47
View file @
041e7de3
...
@@ -23,27 +23,24 @@ from hypha.apply.projects.tables import (
...
@@ -23,27 +23,24 @@ from hypha.apply.projects.tables import (
from
hypha.apply.utils.views
import
ViewDispatcher
from
hypha.apply.utils.views
import
ViewDispatcher
class
Admin
DashboardView
(
TemplateView
):
class
Base
DashboardView
(
TemplateView
):
template_name
=
'
dashboard/dashboard.html
'
template_name
=
'
dashboard/dashboard.html
'
def
get_context_data
(
self
,
**
kwargs
):
def
awaiting_reviews
(
self
,
submissions
):
submissions
=
ApplicationSubmission
.
objects
.
all
().
for_table
(
self
.
request
.
user
)
submissions
=
submissions
.
in_review_for
(
self
.
request
.
user
).
order_by
(
'
-submit_time
'
)
count
=
submissions
.
count
()
extra_context
=
{
limit
=
5
'
active_payment_requests
'
:
self
.
get_my_active_payment_requests
(
self
.
request
.
user
),
return
{
'
awaiting_reviews
'
:
self
.
get_my_awaiting_reviews
(
self
.
request
.
user
,
submissions
),
'
active_statuses_filter
'
:
''
.
join
(
f
'
&status=
{
status
}
'
for
status
in
review_filter_for_user
(
self
.
request
.
user
)),
'
my_reviewed
'
:
self
.
get_my_reviewed
(
self
.
request
,
submissions
),
'
count
'
:
count
,
'
projects
'
:
self
.
get_my_projects
(
self
.
request
),
'
display_more
'
:
count
>
limit
,
'
projects_to_approve
'
:
self
.
get_my_projects_to_approve
(
self
.
request
.
user
),
'
table
'
:
SummarySubmissionsTableWithRole
(
submissions
[:
limit
],
prefix
=
'
my-review-
'
),
'
rounds
'
:
self
.
get_rounds
(
self
.
request
.
user
),
'
my_flagged
'
:
self
.
get_my_flagged
(
self
.
request
,
submissions
),
}
}
current_context
=
super
().
get_context_data
(
**
kwargs
)
return
{
**
current_context
,
**
extra_context
}
def
get_my_
active_payment_requests
(
self
,
user
):
def
active_payment_requests
(
self
):
payment_requests
=
PaymentRequest
.
objects
.
filter
(
payment_requests
=
PaymentRequest
.
objects
.
filter
(
project__lead
=
user
,
project__lead
=
self
.
request
.
user
,
).
in_progress
()
).
in_progress
()
return
{
return
{
...
@@ -51,10 +48,11 @@ class AdminDashboardView(TemplateView):
...
@@ -51,10 +48,11 @@ class AdminDashboardView(TemplateView):
'
table
'
:
PaymentRequestsDashboardTable
(
payment_requests
),
'
table
'
:
PaymentRequestsDashboardTable
(
payment_requests
),
}
}
def
get_my_
projects
(
self
,
request
):
def
projects
(
self
):
projects
=
Project
.
objects
.
filter
(
lead
=
request
.
user
).
for_table
()
projects
=
Project
.
objects
.
filter
(
lead
=
self
.
request
.
user
).
for_table
()
filterset
=
ProjectListFilter
(
data
=
request
.
GET
or
None
,
request
=
request
,
queryset
=
projects
)
filterset
=
ProjectListFilter
(
data
=
self
.
request
.
GET
or
None
,
request
=
self
.
request
,
queryset
=
projects
)
limit
=
10
limit
=
10
...
@@ -66,8 +64,8 @@ class AdminDashboardView(TemplateView):
...
@@ -66,8 +64,8 @@ class AdminDashboardView(TemplateView):
'
url
'
:
reverse
(
'
apply:projects:all
'
),
'
url
'
:
reverse
(
'
apply:projects:all
'
),
}
}
def
get_my_
projects_to_approve
(
self
,
user
):
def
projects_to_approve
(
self
):
if
not
user
.
is_approver
:
if
not
self
.
request
.
user
.
is_approver
:
return
{
return
{
'
count
'
:
None
,
'
count
'
:
None
,
'
table
'
:
None
,
'
table
'
:
None
,
...
@@ -80,55 +78,61 @@ class AdminDashboardView(TemplateView):
...
@@ -80,55 +78,61 @@ class AdminDashboardView(TemplateView):
'
table
'
:
ProjectsDashboardTable
(
data
=
to_approve
),
'
table
'
:
ProjectsDashboardTable
(
data
=
to_approve
),
}
}
def
get_my_awaiting_reviews
(
self
,
user
,
qs
):
def
my_reviewed
(
self
,
submissions
):
"""
Staff reviewer
'
s current to-review submissions.
"""
qs
=
qs
.
in_review_for
(
user
).
order_by
(
'
-submit_time
'
)
count
=
qs
.
count
()
limit
=
5
return
{
'
active_statuses_filter
'
:
''
.
join
(
f
'
&status=
{
status
}
'
for
status
in
review_filter_for_user
(
user
)),
'
count
'
:
count
,
'
display_more
'
:
count
>
limit
,
'
table
'
:
SummarySubmissionsTableWithRole
(
qs
[:
limit
],
prefix
=
'
my-review-
'
),
}
def
get_my_reviewed
(
self
,
request
,
qs
):
"""
Staff reviewer
'
s reviewed submissions for
'
Previous reviews
'
block
"""
"""
Staff reviewer
'
s reviewed submissions for
'
Previous reviews
'
block
"""
qs
=
q
s
.
reviewed_by
(
request
.
user
).
order_by
(
'
-submit_time
'
)
submissions
=
submission
s
.
reviewed_by
(
self
.
request
.
user
).
order_by
(
'
-submit_time
'
)
filterset
=
SubmissionFilterAndSearch
(
data
=
request
.
GET
or
None
,
request
=
request
,
queryset
=
qs
)
filterset
=
SubmissionFilterAndSearch
(
data
=
self
.
request
.
GET
or
None
,
request
=
self
.
request
,
queryset
=
submissions
)
limit
=
5
limit
=
5
return
{
return
{
'
filterset
'
:
filterset
,
'
filterset
'
:
filterset
,
'
table
'
:
SummarySubmissionsTable
(
q
s
[:
limit
],
prefix
=
'
my-reviewed-
'
),
'
table
'
:
SummarySubmissionsTable
(
submission
s
[:
limit
],
prefix
=
'
my-reviewed-
'
),
'
display_more
'
:
q
s
.
count
()
>
limit
,
'
display_more
'
:
submission
s
.
count
()
>
limit
,
'
url
'
:
reverse
(
'
funds:submissions:list
'
),
'
url
'
:
reverse
(
'
funds:submissions:list
'
),
}
}
def
get_
rounds
(
self
,
user
):
def
rounds
(
self
):
limit
=
6
limit
=
6
q
s
=
(
RoundsAndLabs
.
objects
.
with_progress
()
round
s
=
(
RoundsAndLabs
.
objects
.
with_progress
()
.
active
()
.
active
()
.
order_by
(
'
-end_date
'
)
.
order_by
(
'
-end_date
'
)
.
by_lead
(
user
))
.
by_lead
(
self
.
request
.
user
))
return
{
return
{
'
closed
'
:
q
s
.
closed
()[:
limit
],
'
closed
'
:
round
s
.
closed
()[:
limit
],
'
open
'
:
q
s
.
open
()[:
limit
],
'
open
'
:
round
s
.
open
()[:
limit
],
}
}
def
get_
my_flagged
(
self
,
request
,
q
s
):
def
my_flagged
(
self
,
submission
s
):
qs
=
q
s
.
flagged_by
(
request
.
user
).
order_by
(
'
-submit_time
'
)
submissions
=
submission
s
.
flagged_by
(
self
.
request
.
user
).
order_by
(
'
-submit_time
'
)
row_attrs
=
dict
({
'
data-flag-type
'
:
'
user
'
},
**
SummarySubmissionsTable
.
_meta
.
row_attrs
)
row_attrs
=
dict
({
'
data-flag-type
'
:
'
user
'
},
**
SummarySubmissionsTable
.
_meta
.
row_attrs
)
limit
=
5
limit
=
5
return
{
return
{
'
table
'
:
SummarySubmissionsTable
(
q
s
[:
limit
],
prefix
=
'
my-flagged-
'
,
attrs
=
{
'
class
'
:
'
all-submissions-table flagged-table
'
},
row_attrs
=
row_attrs
),
'
table
'
:
SummarySubmissionsTable
(
submission
s
[:
limit
],
prefix
=
'
my-flagged-
'
,
attrs
=
{
'
class
'
:
'
all-submissions-table flagged-table
'
},
row_attrs
=
row_attrs
),
'
display_more
'
:
q
s
.
count
()
>
limit
,
'
display_more
'
:
submission
s
.
count
()
>
limit
,
}
}
class
AdminDashboardView
(
BaseDashboardView
):
def
get_context_data
(
self
,
**
kwargs
):
submissions
=
ApplicationSubmission
.
objects
.
all
().
for_table
(
self
.
request
.
user
)
extra_context
=
{
'
active_payment_requests
'
:
self
.
active_payment_requests
(),
'
awaiting_reviews
'
:
self
.
awaiting_reviews
(
submissions
),
'
my_reviewed
'
:
self
.
my_reviewed
(
submissions
),
'
projects
'
:
self
.
projects
(),
'
projects_to_approve
'
:
self
.
projects_to_approve
(),
'
rounds
'
:
self
.
rounds
(),
'
my_flagged
'
:
self
.
my_flagged
(
submissions
),
}
current_context
=
super
().
get_context_data
(
**
kwargs
)
return
{
**
current_context
,
**
extra_context
}
class
ReviewerDashboardView
(
TemplateView
):
class
ReviewerDashboardView
(
TemplateView
):
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment