From 8c1ae21e86a83a9f7b9ca1445b6d0d5c73a142b1 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sat, 27 Nov 2010 13:12:11 -0600 Subject: Remove print statement Signed-off-by: Dan McGee --- devel/management/commands/reporead.py | 1 - 1 file changed, 1 deletion(-) diff --git a/devel/management/commands/reporead.py b/devel/management/commands/reporead.py index 6f7fd958..d8287ee0 100644 --- a/devel/management/commands/reporead.py +++ b/devel/management/commands/reporead.py @@ -139,7 +139,6 @@ def find_user(userstring): for token in name.split(): # ignore quoted parts; e.g. nicknames in strings if re.match(r'^[\'"].*[\'"]$', token): - print "token match:", token continue name_q &= (Q(first_name__icontains=token) | Q(last_name__icontains=token)) -- cgit v1.2.3-2-g168b From a52a46cee2befbf23513c2289f00bcca7115cde4 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sat, 27 Nov 2010 14:42:11 -0600 Subject: Ignore other sqlite3 created files by default If using the defaults, this will ignore archweb.db-journal, and we can also ignore the files created when in WAL mode. Signed-off-by: Dan McGee --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 0e28f9f1..fea51cc3 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ *.swo local_settings.py archweb.db +archweb.db-* testing/ -- cgit v1.2.3-2-g168b From 21c48f9fbcdc6c42d664a09bda85285cbc7d72ec Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sat, 27 Nov 2010 14:43:01 -0600 Subject: Add less-than methods for Repo and Arch These are the methods guaranteed to be used by the python sort functions; define them so we can simplify sorting code elsewhere as needed. Signed-off-by: Dan McGee --- main/models.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/main/models.py b/main/models.py index 6fdb862f..51cf89a8 100644 --- a/main/models.py +++ b/main/models.py @@ -67,6 +67,9 @@ class Arch(models.Model): def __unicode__(self): return self.name + def __lt__(self, other): + return self.name < other.name + class Meta: db_table = 'arches' ordering = ['name'] @@ -85,6 +88,9 @@ class Repo(models.Model): def __unicode__(self): return self.name + def __lt__(self, other): + return self.name < other.name + class Meta: db_table = 'repos' ordering = ['name'] -- cgit v1.2.3-2-g168b From 9acae339ffefa1193b25e28efc3dc4c3533b7188 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sat, 27 Nov 2010 14:56:15 -0600 Subject: Simplify sorting attrgetter calls Don't use dotted notation now that we have less-than implemented methods on the respective objects (which also allows this code to work under PyPy). Switch a lambda call to use attrgetter as well. Signed-off-by: Dan McGee --- public/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/utils.py b/public/utils.py index 2801c939..81f589f7 100644 --- a/public/utils.py +++ b/public/utils.py @@ -13,7 +13,7 @@ def get_recent_updates(): # grab a few extra so we can hopefully catch everything we need pkgs += list(Package.objects.select_related( 'arch', 'repo').filter(arch=arch).order_by('-last_update')[:50]) - pkgs.sort(key=lambda q: q.last_update) + pkgs.sort(key=attrgetter('last_update')) updates = [] ctr = 0 while ctr < 15 and len(pkgs) > 0: @@ -22,7 +22,7 @@ def get_recent_updates(): is_same = lambda q: p.is_same_version(q) and p.repo == q.repo samepkgs = filter(is_same, pkgs) samepkgs.append(p) - samepkgs.sort(key=attrgetter('arch.name')) + samepkgs.sort(key=attrgetter('arch')) updates.append(samepkgs) for q in samepkgs: if p != q: pkgs.remove(q) -- cgit v1.2.3-2-g168b From 14c8833cf0e1e2e6bd2b59f9da9944757aa47c70 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sat, 27 Nov 2010 15:04:44 -0600 Subject: Fix feeds for case-sensitive databases This worked in MySQL because of it's case-insensitive matching, but does not work in other databases unless we coerce the value. Signed-off-by: Dan McGee --- feeds.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feeds.py b/feeds.py index e7462bc8..cbcccd77 100644 --- a/feeds.py +++ b/feeds.py @@ -71,7 +71,7 @@ class PackageFeed(Feed): obj['arch'] = a if repo != '': # feed for a single arch AND repo - r = Repo.objects.get(name=repo) + r = Repo.objects.get(name__iexact=repo) qs = qs.filter(repo=r) obj['repo'] = r obj['qs'] = qs[:50] -- cgit v1.2.3-2-g168b From f2147cdeec3daafbdbbf3172fd4cc94ef24ee851 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Tue, 30 Nov 2010 11:42:44 -0600 Subject: Make dev dashboard columns a bit prettier We don't need to force widths on the upper tables, and ensure the todo list description can wrap if it is a long one. Signed-off-by: Dan McGee --- templates/devel/index.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/templates/devel/index.html b/templates/devel/index.html index baad92e4..cb9b92ae 100644 --- a/templates/devel/index.html +++ b/templates/devel/index.html @@ -11,7 +11,7 @@ - + @@ -42,7 +42,7 @@ - + @@ -78,10 +78,10 @@ {% for todo in todos %} - - + {% empty %} -- cgit v1.2.3-2-g168b From 1b826f3e12b66d9e2d3a90b1dddf5170ab48dc12 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Fri, 3 Dec 2010 19:38:50 -0600 Subject: Display flag date in package search and allow sorting This exposes something we added a while back, and has been shown elsewhere, but will now be available for everyone to see. Also change the default search order to just be by pkgname; we don't need to do a multi-column search by default. Signed-off-by: Dan McGee --- packages/views.py | 4 ++-- templates/packages/search.html | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/views.py b/packages/views.py index 40e8a08e..283f9cec 100644 --- a/packages/views.py +++ b/packages/views.py @@ -199,7 +199,7 @@ def search(request, page=None): if packages.count() == 1: return redirect(packages[0]) - allowed_sort = ["arch", "repo", "pkgname", "last_update"] + allowed_sort = ["arch", "repo", "pkgname", "last_update", "flag_date"] allowed_sort += ["-" + s for s in allowed_sort] sort = request.GET.get('sort', None) # TODO: sorting by multiple fields makes using a DB index much harder @@ -208,7 +208,7 @@ def search(request, page=None): request.GET['sort'], 'repo', 'arch', 'pkgname') page_dict['sort'] = sort else: - packages = packages.order_by('repo', 'arch', '-last_update', 'pkgname') + packages = packages.order_by('pkgname') return list_detail.object_list(request, packages, template_name="packages/search.html", diff --git a/templates/packages/search.html b/templates/packages/search.html index c3f70fa6..4a779aa0 100644 --- a/templates/packages/search.html +++ b/templates/packages/search.html @@ -84,6 +84,8 @@ + @@ -103,6 +105,7 @@ {% endif %} + {% endfor %} -- cgit v1.2.3-2-g168b From be3080f912e7379ae9f6b6e78126a941c2534fe4 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Tue, 7 Dec 2010 11:55:08 -0600 Subject: Don't require country on mirrorlist submission Signed-off-by: Dan McGee --- mirrors/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mirrors/views.py b/mirrors/views.py index fb7d3361..b9df6ba1 100644 --- a/mirrors/views.py +++ b/mirrors/views.py @@ -34,7 +34,7 @@ class MirrorlistForm(forms.Form): @csrf_exempt def generate_mirrorlist(request): - if request.REQUEST.get('country', ''): + if request.method == 'POST' or len(request.GET) > 0: form = MirrorlistForm(data=request.REQUEST) if form.is_valid(): countries = form.cleaned_data['country'] -- cgit v1.2.3-2-g168b From d37b15327690f0f436fc25ac856d20df73447c7d Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Tue, 7 Dec 2010 12:14:30 -0600 Subject: Update public todo list template Add a TOC as suggested in FS#20720. Fix closing tag span/a mixup that snuck in from the private developer template, and finally use a different div box for each todo list which should make them stand out better. Signed-off-by: Dan McGee --- templates/todolists/public_list.html | 92 ++++++++++++++++++++++-------------- 1 file changed, 56 insertions(+), 36 deletions(-) diff --git a/templates/todolists/public_list.html b/templates/todolists/public_list.html index fe5ffb5d..d84a548f 100644 --- a/templates/todolists/public_list.html +++ b/templates/todolists/public_list.html @@ -5,44 +5,64 @@ {% block content %}

Developer Todo Lists

-
- {% for list in todo_lists %} -

{{list.name}}

-
-

{{list.description|safe|linebreaks}}

-
NameName Repo Version Arch
Todo ListNameName Repo Arch Maintainer(s)
{{ todo.name }} {{ todo.date_added }}{{ todo.description|safe }}{{ todo.description|safe }}
No package todo lists to display
Description Last UpdatedFlag Date
{{ pkg.pkgdesc }} {{ pkg.last_update|date }}{{ pkg.flag_date|date }}
- - - - - - - - - - - {% for pkg in list.packages %} - - - - - - - - {% endfor %} - -
NameArchRepoMaintainerStatus
{{ pkg.pkg.pkgname }}{{ pkg.pkg.arch.name }}{{ pkg.pkg.repo.name|capfirst }}{{ pkg.pkg.maintainers|join:', ' }} - {% if pkg.complete %} - Complete - {% else %} - Incomplete - {% endif %} -
- - {% endfor %} +
+

Open Developer Todo Lists

+

Todo lists are used by the developers when a rebuild of a set of + packages is needed. This is common when a library has an .so version + bump; during a toolchain rebuild, or a general cleanup of packages in + the repositories. The progress can be tracked here. Only todo lists + with currently incomplete packages are shown.

+ {% if todo_lists %}{% else %} +

There are currently no incomplete developer todo lists.

+ {% endif %}
+{% if todo_lists %} +
+ {% for list in todo_lists %} +
+ +

{{ list.name }}

+
+
{{ list.description|safe|linebreaks }}
+ + + + + + + + + + + + {% for pkg in list.packages %} + + + + + + + + {% endfor %} + +
NameArchRepoMaintainerStatus
{{ pkg.pkg.pkgname }}{{ pkg.pkg.arch.name }}{{ pkg.pkg.repo.name|capfirst }}{{ pkg.pkg.maintainers|join:', ' }} + {% if pkg.complete %} + Complete + {% else %} + Incomplete + {% endif %} +
+
+
+ {% endfor %} +
+{% endif %} {% load cdn %}{% jquery %}