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