From 543249335f31685674f52eaf650133def547ace8 Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Thu, 17 Aug 2023 22:17:41 +0000 Subject: [PATCH 1/7] Sort newest members by start date --- apiserver/apiserver/api/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apiserver/apiserver/api/views.py b/apiserver/apiserver/api/views.py index 824c1ec..57a3900 100644 --- a/apiserver/apiserver/api/views.py +++ b/apiserver/apiserver/api/views.py @@ -99,9 +99,9 @@ class SearchViewSet(Base, Retrieve): queryset = queryset.order_by('-vetted_date', '-id') elif sort == 'newest_active': queryset = queryset.filter(paused_date__isnull=True) - queryset = queryset.order_by('-application_date', '-id') + queryset = queryset.order_by('-current_start_date', '-id') elif sort == 'newest_overall': - queryset = queryset.order_by('-application_date', '-id') + queryset = queryset.order_by('-current_start_date', '-id') elif sort == 'oldest_active': queryset = queryset.filter(paused_date__isnull=True) queryset = queryset.order_by('application_date', 'id') From c713b7e3e1a2666dc1bb53a44840c08fb037ac96 Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Sun, 20 Aug 2023 03:17:00 +0000 Subject: [PATCH 2/7] Show start date when sorting by newest --- webclient/src/Members.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/webclient/src/Members.js b/webclient/src/Members.js index 08b3a6e..16e375a 100644 --- a/webclient/src/Members.js +++ b/webclient/src/Members.js @@ -250,7 +250,11 @@ export function Members(props) { 'None' } - Joined: {x.member.application_date || 'Unknown'} + {sort === 'newest_active' ? + Started: {x.member.current_start_date || 'Unknown'} + : + Joined: {x.member.application_date || 'Unknown'} + } } From 7e588170f6f0cfeb535807b8f69bce57af185154 Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Sun, 20 Aug 2023 03:43:58 +0000 Subject: [PATCH 3/7] Remove storage "save and edit next" --- webclient/src/Storage.js | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/webclient/src/Storage.js b/webclient/src/Storage.js index 1f08d54..7e43328 100644 --- a/webclient/src/Storage.js +++ b/webclient/src/Storage.js @@ -47,7 +47,6 @@ function EditStorage(props) { const [loading, setLoading] = useState(false); const [success, setSuccess] = useState(false); const { id } = useParams(); - const history = useHistory(); const handleSubmit = (e) => { if (loading) return; @@ -69,25 +68,11 @@ function EditStorage(props) { }); }; - const saveAndNext = (e) => { - e.preventDefault(); - - handleSubmit(e) - .then(res => { - setStorage(false); - history.push('/storage/' + (parseInt(id) + 1)); - }); - }; - return (
Edit Storage {storage.shelf_id}
- - Save and edit next - - From cbd17ea0b6fb602bca136c74a1afb3a76bd7488e Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Sun, 20 Aug 2023 03:44:38 +0000 Subject: [PATCH 4/7] Remove storage from Debug --- webclient/src/Debug.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/webclient/src/Debug.js b/webclient/src/Debug.js index ac74ff6..c6125ae 100644 --- a/webclient/src/Debug.js +++ b/webclient/src/Debug.js @@ -2,7 +2,6 @@ import React, { useState, useEffect } from 'react'; import { Link, useParams, useHistory } from 'react-router-dom'; import './light.css'; import { MembersDropdown } from './Members.js'; -import { StorageList } from './Storage.js'; import { isAdmin, BasicTable, requester } from './utils.js'; import { Button, Container, Form, Grid, Header, Message, Segment, Table } from 'semantic-ui-react'; @@ -35,11 +34,6 @@ export function Debug(props) {

LCARS2 Display

-
Storage
- - - - ); }; From 835e24a027e48c292cec47fe07902be70e4af973 Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Sun, 20 Aug 2023 03:54:13 +0000 Subject: [PATCH 5/7] Truncate printer job name to 100 chars --- apiserver/apiserver/api/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apiserver/apiserver/api/views.py b/apiserver/apiserver/api/views.py index 57a3900..74f78e9 100644 --- a/apiserver/apiserver/api/views.py +++ b/apiserver/apiserver/api/views.py @@ -1605,7 +1605,7 @@ class ProtocoinViewSet(Base): memo = 'Protocoin - Purchase spent ₱ {} printing {}'.format( total_cost, - request.data['job_name'], + request.data['job_name'][:100], ) tx = models.Transaction.objects.create( From 342c6f018930d927ce712533c1eea80cfd2398e5 Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Sun, 20 Aug 2023 21:39:03 +0000 Subject: [PATCH 6/7] Add Storage to Space menu dropdown --- webclient/src/App.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/webclient/src/App.js b/webclient/src/App.js index 58ca07b..892e72b 100644 --- a/webclient/src/App.js +++ b/webclient/src/App.js @@ -198,6 +198,11 @@ function App() { as={Link} to='/classes' /> + Date: Sun, 20 Aug 2023 22:08:17 +0000 Subject: [PATCH 7/7] Allow searching members by shelf, prefetch_related search strings utils.gen_search_strings() times before: 1.4 s after member shelves: 2.6 s after prefetch_related: 0.7 s --- apiserver/apiserver/api/utils.py | 11 +++++++++-- webclient/src/Members.js | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/apiserver/apiserver/api/utils.py b/apiserver/apiserver/api/utils.py index 1d54865..9440d6b 100644 --- a/apiserver/apiserver/api/utils.py +++ b/apiserver/apiserver/api/utils.py @@ -157,7 +157,7 @@ def gen_search_strings(): start = time.time() search_strings = {} - for m in models.Member.objects.order_by('-expire_date'): + for m in models.Member.objects.order_by('-expire_date').prefetch_related('user__storage'): string = '{} {} | {} {}'.format( m.preferred_name, m.last_name, @@ -166,11 +166,18 @@ def gen_search_strings(): ) string += ' | ' + m.user.email - string += ' | ' + m.discourse_username + + if m.discourse_username: + string += ' | ' + m.discourse_username + string += ' | ' + str(m.id) + for s in m.user.storage.all(): + string += ' | ' + s.shelf_id + string = string.lower() search_strings[string] = m.id + cache.set('search_strings', search_strings) logger.info('Generated search strings in %s s.', time.time() - start) diff --git a/webclient/src/Members.js b/webclient/src/Members.js index 16e375a..1deab4f 100644 --- a/webclient/src/Members.js +++ b/webclient/src/Members.js @@ -178,7 +178,7 @@ export function Members(props) {
Member List
-

Search by name, email, Spacebar username, or member ID:

+

Search by name, email, Spacebar username, member ID, or member shelf: