dandi / dandi/dandi-archive

Refactor dandiset viewset

Open
#2,486 0 comments 0 reactions 0 assignees View on GitHub
API refactor technical debt
Dominant language
Python
Stars
26
Forks
21
Avg merge
4d 23h
Merged PRs (30d)
15

Description

The dandiset viewset is one of the most used set of endpoints in the application, and it is absurdly complicated and overloaded with functionality. At the very least the [`filter_queryset`](https://github.com/dandi/dandi-archive/blob/44937f963fad20bb46632eb5125ca4e8cb9a73a7/dandiapi/api/views/dandiset.py#L80-L131) and [`get_queryset`](https://github.com/dandi/dandi-archive/blob/44937f963fad20bb46632eb5125ca4e8cb9a73a7/dandiapi/api/views/dandiset.py#L167-L231) methods should be overhauled / refactored.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading dandiapi/api/views/dandiset.py, especially filter_queryset (lines 80-131) and get_queryset (lines 167-231), to understand how the dandiset endpoints currently combine functionality. Done means those methods are meaningfully refactored without changing the viewset's intended behavior; the issue does not name specific tests to run.

Written by the indexing model from the issue text.

Assessment

Tech stack
django, python
Domain
api, backend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.