prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  The non-wg list view contains things that do not belong.
  The list contains things that do not belong.  For example, 'geopriv' is listed as a non-wg list, but it is a concluded wg.  Maybe this should be a separate issue.
  
  _Originally posted by @russhousley in https://github.com/ietf-tools/datatracker/issues/3675#issuecomment-1075013354_
  
  </issue>
  <code>
  [start of ietf/mailinglists/views.py]
  1 # Copyright The IETF Trust 2007, All Rights Reserved
  2 
  3 import re
  4 
  5 from django.shortcuts import render
  6 
  7 import debug                            # pyflakes:ignore
  8 
  9 from ietf.group.models import Group
  10 from ietf.mailinglists.models import List
  11 
  12 def groups(request):
  13     groups = Group.objects.filter(type__features__acts_like_wg=True, list_archive__startswith='http').exclude(state__in=('bof', 'conclude')).order_by("acronym")
  14 
  15     return render(request, "mailinglists/group_archives.html", { "groups": groups } )
  16 
  17 def nonwg(request):
  18     groups = Group.objects.filter(type__features__acts_like_wg=True).exclude(state__in=['bof', 'conclude']).order_by("acronym")
  19 
  20     #urls = [ g.list_archive for g in groups if '.ietf.org' in g.list_archive ]
  21 
  22     wg_lists = set()
  23     for g in groups:
  24         wg_lists.add(g.acronym)
  25         match = re.search(r'^(https?://mailarchive.ietf.org/arch/(browse/|search/\?email-list=))(?P<name>[^/]*)/?$', g.list_archive)
  26         if match:
  27             wg_lists.add(match.group('name').lower())
  28 
  29     lists = List.objects.filter(advertised=True)
  30     #debug.show('lists.count()')
  31     lists = lists.exclude(name__in=wg_lists).order_by('name')
  32     #debug.show('lists.count()')
  33     return render(request, "mailinglists/nonwg.html", { "lists": lists } )
  34
  [end of ietf/mailinglists/views.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/ietf/mailinglists/views.py b/ietf/mailinglists/views.py
  --- a/ietf/mailinglists/views.py
  +++ b/ietf/mailinglists/views.py
  @@ -1,4 +1,4 @@
  -# Copyright The IETF Trust 2007, All Rights Reserved
  +# Copyright The IETF Trust 2007-2022, All Rights Reserved
   
   import re
   
  @@ -15,7 +15,7 @@
       return render(request, "mailinglists/group_archives.html", { "groups": groups } )
   
   def nonwg(request):
  -    groups = Group.objects.filter(type__features__acts_like_wg=True).exclude(state__in=['bof', 'conclude']).order_by("acronym")
  +    groups = Group.objects.filter(type__features__acts_like_wg=True).exclude(state__in=['bof']).order_by("acronym")
   
       #urls = [ g.list_archive for g in groups if '.ietf.org' in g.list_archive ]
  
verification_info: {"golden_diff": "diff --git a/ietf/mailinglists/views.py b/ietf/mailinglists/views.py\n--- a/ietf/mailinglists/views.py\n+++ b/ietf/mailinglists/views.py\n@@ -1,4 +1,4 @@\n-# Copyright The IETF Trust 2007, All Rights Reserved\n+# Copyright The IETF Trust 2007-2022, All Rights Reserved\n \n import re\n \n@@ -15,7 +15,7 @@\n     return render(request, \"mailinglists/group_archives.html\", { \"groups\": groups } )\n \n def nonwg(request):\n-    groups = Group.objects.filter(type__features__acts_like_wg=True).exclude(state__in=['bof', 'conclude']).order_by(\"acronym\")\n+    groups = Group.objects.filter(type__features__acts_like_wg=True).exclude(state__in=['bof']).order_by(\"acronym\")\n \n     #urls = [ g.list_archive for g in groups if '.ietf.org' in g.list_archive ]\n", "issue": "The non-wg list view contains things that do not belong.\nThe list contains things that do not belong.  For example, 'geopriv' is listed as a non-wg list, but it is a concluded wg.  Maybe this should be a separate issue.\r\n\r\n_Originally posted by @russhousley in https://github.com/ietf-tools/datatracker/issues/3675#issuecomment-1075013354_\n", "before_files": [{"content": "# Copyright The IETF Trust 2007, All Rights Reserved\n\nimport re\n\nfrom django.shortcuts import render\n\nimport debug                            # pyflakes:ignore\n\nfrom ietf.group.models import Group\nfrom ietf.mailinglists.models import List\n\ndef groups(request):\n    groups = Group.objects.filter(type__features__acts_like_wg=True, list_archive__startswith='http').exclude(state__in=('bof', 'conclude')).order_by(\"acronym\")\n\n    return render(request, \"mailinglists/group_archives.html\", { \"groups\": groups } )\n\ndef nonwg(request):\n    groups = Group.objects.filter(type__features__acts_like_wg=True).exclude(state__in=['bof', 'conclude']).order_by(\"acronym\")\n\n    #urls = [ g.list_archive for g in groups if '.ietf.org' in g.list_archive ]\n\n    wg_lists = set()\n    for g in groups:\n        wg_lists.add(g.acronym)\n        match = re.search(r'^(https?://mailarchive.ietf.org/arch/(browse/|search/\\?email-list=))(?P<name>[^/]*)/?$', g.list_archive)\n        if match:\n            wg_lists.add(match.group('name').lower())\n\n    lists = List.objects.filter(advertised=True)\n    #debug.show('lists.count()')\n    lists = lists.exclude(name__in=wg_lists).order_by('name')\n    #debug.show('lists.count()')\n    return render(request, \"mailinglists/nonwg.html\", { \"lists\": lists } )\n", "path": "ietf/mailinglists/views.py"}]}