From 3066f7428eff8cc479c891d148fee94434718b81 Mon Sep 17 00:00:00 2001 From: Tomasz Knapik <hi@tmkn.org> Date: Mon, 14 Jan 2019 15:40:47 +0000 Subject: [PATCH] Refactor adding to the list --- opentech/api/__init__.py | 0 opentech/api/pagination.py | 6 ++++ .../src/components/SubmissionsByRoundList.js | 34 ++++++++++++------- .../app/src/redux/selectors/submissions.js | 1 + 4 files changed, 28 insertions(+), 13 deletions(-) create mode 100644 opentech/api/__init__.py create mode 100644 opentech/api/pagination.py diff --git a/opentech/api/__init__.py b/opentech/api/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/opentech/api/pagination.py b/opentech/api/pagination.py new file mode 100644 index 000000000..1382e5035 --- /dev/null +++ b/opentech/api/pagination.py @@ -0,0 +1,6 @@ +from rest_framework import pagination + + +class StandardResultsSetPagination(pagination.PageNumberPagination): + page_size_query_param = 'page_size' + max_page_size = 1000 diff --git a/opentech/static_src/src/app/src/components/SubmissionsByRoundList.js b/opentech/static_src/src/app/src/components/SubmissionsByRoundList.js index 379edd569..f564e03c2 100644 --- a/opentech/static_src/src/app/src/components/SubmissionsByRoundList.js +++ b/opentech/static_src/src/app/src/components/SubmissionsByRoundList.js @@ -2,23 +2,31 @@ import React from 'react'; import SubmissionsByRoundListHeading from '@components/SubmissionsByRoundListHeading'; import SubmissionsByRoundListItem from '@components/SubmissionsByRoundListItem'; -import './SubmissionsByRoundList.scss' +import './SubmissionsByRoundList.scss'; export default class SubmissionsByRoundList extends React.Component { renderListItems() { - return this.props.items.map(v => { - const submissions = v.submissions.map(v => { - return <SubmissionsByRoundListItem key={`submission-${v.id}`} title={v.title} />; - }); - return ( - <> - <SubmissionsByRoundListHeading key="status-{v.title}" title={v.title} count={v.submissions.length} /> - <ul> - {submissions} - </ul> - </> + const listItems = []; + for (const item of this.props.items) { + listItems.push( + <SubmissionsByRoundListHeading key={`status-${item.id}`} title={item.title} count={item.submissions.length} /> ); - }); + + const submissions = []; + for (const submission of item.submissions) { + + submissions.push( + <SubmissionsByRoundListItem key={`submission-${submission.id}`} title={submission.title} /> + ); + } + + listItems.push( + <ul key={`submissions-list-${item.id}`}> + {submissions} + </ul> + ); + } + return listItems; } render() { diff --git a/opentech/static_src/src/app/src/redux/selectors/submissions.js b/opentech/static_src/src/app/src/redux/selectors/submissions.js index 4b231e4e7..75a76bf06 100644 --- a/opentech/static_src/src/app/src/redux/selectors/submissions.js +++ b/opentech/static_src/src/app/src/redux/selectors/submissions.js @@ -22,6 +22,7 @@ const getCurrentRoundSubmissionsByStatus = createSelector( const formattedSubmissionsByStatus = []; for (const [submissionStatus, statusSubmissions] of Object.entries(submissionsByStatus)) { formattedSubmissionsByStatus.push({ + id: submissionStatus, title: submissionStatus, submissions: statusSubmissions, }); -- GitLab