From 3c85de4c6c9b95bdafe7b66ae711813cd9532e51 Mon Sep 17 00:00:00 2001 From: Ben Mezger Date: Sat, 11 Apr 2026 13:35:31 +0200 Subject: [PATCH] Drop svn_root and use pkgbase for todos --- main/admin.py | 2 +- main/fixtures/repos.json | 12 ------------ main/migrations/0006_remove_repo_svn_root.py | 17 +++++++++++++++++ main/models.py | 2 -- templates/todolists/view.html | 5 +---- todolists/urls.py | 3 +-- todolists/views.py | 12 ++++-------- 7 files changed, 24 insertions(+), 29 deletions(-) create mode 100644 main/migrations/0006_remove_repo_svn_root.py diff --git a/main/admin.py b/main/admin.py index 34bb9ea7..3ca3cf88 100644 --- a/main/admin.py +++ b/main/admin.py @@ -17,7 +17,7 @@ class ArchAdmin(admin.ModelAdmin): class RepoAdmin(admin.ModelAdmin): - list_display = ('name', 'testing', 'staging', 'bugs_project', 'bugs_category', 'svn_root') + list_display = ('name', 'testing', 'staging', 'bugs_project', 'bugs_category') list_filter = ('testing', 'staging') search_fields = ('name',) diff --git a/main/fixtures/repos.json b/main/fixtures/repos.json index 4b315de0..d0590339 100644 --- a/main/fixtures/repos.json +++ b/main/fixtures/repos.json @@ -7,7 +7,6 @@ "staging": false, "name": "Extra-Testing", "bugs_project": 5, - "svn_root": "packages", "testing": true } }, @@ -19,7 +18,6 @@ "staging": true, "name": "Extra-Staging", "bugs_project": 5, - "svn_root": "packages", "testing": false } }, @@ -31,7 +29,6 @@ "staging": false, "name": "Core", "bugs_project": 1, - "svn_root": "packages", "testing": false } }, @@ -43,7 +40,6 @@ "staging": false, "name": "Extra", "bugs_project": 1, - "svn_root": "packages", "testing": false } }, @@ -55,7 +51,6 @@ "staging": true, "name": "Gnome-Unstable", "bugs_project": 1, - "svn_root": "packages", "testing": false } }, @@ -67,7 +62,6 @@ "staging": true, "name": "KDE-Unstable", "bugs_project": 1, - "svn_root": "packages", "testing": false } }, @@ -79,7 +73,6 @@ "staging": false, "name": "Multilib", "bugs_project": 5, - "svn_root": "community", "testing": false } }, @@ -91,7 +84,6 @@ "staging": true, "name": "Multilib-Staging", "bugs_project": 5, - "svn_root": "community", "testing": false } }, @@ -103,7 +95,6 @@ "staging": false, "name": "Multilib-Testing", "bugs_project": 5, - "svn_root": "community", "testing": true } }, @@ -115,7 +106,6 @@ "staging": true, "name": "Staging", "bugs_project": 1, - "svn_root": "packages", "testing": false } }, @@ -127,7 +117,6 @@ "staging": false, "name": "Core-Testing", "bugs_project": 1, - "svn_root": "packages", "testing": true } }, @@ -139,7 +128,6 @@ "staging": true, "name": "Core-Staging", "bugs_project": 1, - "svn_root": "packages", "testing": false } } diff --git a/main/migrations/0006_remove_repo_svn_root.py b/main/migrations/0006_remove_repo_svn_root.py new file mode 100644 index 00000000..4aa05545 --- /dev/null +++ b/main/migrations/0006_remove_repo_svn_root.py @@ -0,0 +1,17 @@ +# Generated by Django 5.2.13 on 2026-04-11 14:51 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0005_merge_0004_rebuilderdstatus_build_id_0004_soname'), + ] + + operations = [ + migrations.RemoveField( + model_name='repo', + name='svn_root', + ), + ] diff --git a/main/models.py b/main/models.py index e1da8fa8..86801e0e 100644 --- a/main/models.py +++ b/main/models.py @@ -74,8 +74,6 @@ class Repo(models.Model): default=1, help_text="Flyspray project ID for this repository.") bugs_category = models.SmallIntegerField( default=2, help_text="Flyspray category ID for this repository.") - svn_root = models.CharField( - max_length=64, help_text="SVN root (e.g. path) for this repository.") def __str__(self): return self.name diff --git a/templates/todolists/view.html b/templates/todolists/view.html index 5b08ab47..08d75adb 100644 --- a/templates/todolists/view.html +++ b/templates/todolists/view.html @@ -32,10 +32,7 @@

{{ list.kind_str | title }} Todo List {{ list.name }}

-

Link to lists of pkgbase values:

- +

List of pkgbase values

diff --git a/todolists/urls.py b/todolists/urls.py index bf00da1b..0a75a50a 100644 --- a/todolists/urls.py +++ b/todolists/urls.py @@ -25,8 +25,7 @@ permission_required('todolists.delete_todolist')(DeleteTodolist.as_view())), re_path(r'^(?P[-\w]+)/flag/(?P\d+)/$', permission_required('todolists.change_todolistpackage')(flag)), - re_path(r'^(?P[-\w]+)/pkgbases/(?P[a-z]+)/$', - list_pkgbases), + re_path(r'^(?P[-\w]+)/pkgbases/$', list_pkgbases), ] # vim: set ts=4 sw=4 et: diff --git a/todolists/views.py b/todolists/views.py index 5009ff23..84f4785b 100644 --- a/todolists/views.py +++ b/todolists/views.py @@ -5,13 +5,13 @@ from django.core.mail import send_mail from django.db import transaction from django.http import HttpResponse -from django.shortcuts import get_list_or_404, get_object_or_404, redirect, render +from django.shortcuts import get_object_or_404, redirect, render from django.template import loader from django.utils.timezone import now from django.views.decorators.cache import never_cache from django.views.generic import DeleteView, ListView -from main.models import Package, Repo +from main.models import Package from main.utils import find_unique_slug from packages.utils import PackageJSONEncoder, attach_maintainers @@ -59,8 +59,6 @@ def flag(request, slug, pkg_id): def view(request, slug): todolist = get_object_or_404(Todolist, slug=slug) - svn_roots = Repo.objects.values_list( - 'svn_root', flat=True).order_by().distinct() # we don't hold onto the result, but the objects are the same here, # so accessing maintainers in the template is now cheap attach_maintainers(todolist.packages()) @@ -69,20 +67,18 @@ def view(request, slug): repos = {tp.repo for tp in todolist.packages()} context = { 'list': todolist, - 'svn_roots': svn_roots, 'arches': sorted(arches), 'repos': sorted(repos), } return render(request, 'todolists/view.html', context) -def list_pkgbases(request, slug, svn_root): +def list_pkgbases(request, slug): '''Used to make bulk moves of packages a lot easier.''' todolist = get_object_or_404(Todolist, slug=slug) - repos = get_list_or_404(Repo, svn_root=svn_root) pkgbases = TodolistPackage.objects.values_list( 'pkgbase', flat=True).filter( - todolist=todolist, repo__in=repos, removed__isnull=True).order_by( + todolist=todolist, removed__isnull=True).order_by( 'pkgbase').distinct() return HttpResponse('\n'.join(pkgbases), content_type='text/plain')