prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Add back Active, Date joined, and last login in mezzanine listing of users
  In the 3/19/18 version of HydroShare when an admin listed users the fields listed were
  ![image](https://user-images.githubusercontent.com/3456833/41195757-d1268df2-6bf0-11e8-8279-a3fbe2f81f84.png)
  
  At present when an admin lists users the fields are
  ![image](https://user-images.githubusercontent.com/3456833/41195790-5abcbf32-6bf1-11e8-9544-b94c25e36777.png)
  
  
  The fields Active, Date joined and last login are needed so that when there are problems with users creating and activating accounts (as occurred this week) an admin can list recent account creations and account creation attempts to assess the extent of the problem, and contact users that may have been impacted.
  
  This regression was noted in https://github.com/hydroshare/hydroshare/pull/2677#issuecomment-374183106
  
  
  </issue>
  <code>
  [start of hs_core/admin.py]
  1 from django import forms
  2 from django.contrib.auth.admin import UserAdmin
  3 from django.contrib.auth.forms import UserCreationForm
  4 from django.contrib.auth.models import User
  5 from django.contrib.gis import admin
  6 from django.contrib.contenttypes.admin import GenericTabularInline
  7 from django.utils.translation import ugettext_lazy as _
  8 
  9 from mezzanine.pages.admin import PageAdmin
  10 
  11 from .models import *
  12 
  13 
  14 class UserCreationFormExtended(UserCreationForm):
  15     def __init__(self, *args, **kwargs):
  16         super(UserCreationFormExtended, self).__init__(*args, **kwargs)
  17         self.fields['email'] = forms.EmailField(label=_("E-mail"), max_length=75)
  18 
  19 UserAdmin.add_form = UserCreationFormExtended
  20 UserAdmin.add_fieldsets = (
  21     (None, {
  22         'classes': ('wide',),
  23         'fields': ('email', 'username', 'password1', 'password2',)
  24     }),
  25 )
  26 
  27 class InlineResourceFiles(GenericTabularInline):
  28     model = ResourceFile
  29 
  30 class GenericResourceAdmin(PageAdmin):
  31     inlines = PageAdmin.inlines + [InlineResourceFiles]
  32 
  33 admin.site.unregister(User)
  34 admin.site.register(User, UserAdmin)
  35 admin.site.register(GenericResource, GenericResourceAdmin)
  36
  [end of hs_core/admin.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/hs_core/admin.py b/hs_core/admin.py
  --- a/hs_core/admin.py
  +++ b/hs_core/admin.py
  @@ -23,6 +23,10 @@
           'fields': ('email', 'username', 'password1', 'password2',)
       }),
   )
  +UserAdmin.list_display = [
  +    'username', 'email', 'first_name', 'last_name', 'is_staff',
  +    'is_active', 'date_joined', 'last_login'
  +]
   
   class InlineResourceFiles(GenericTabularInline):
       model = ResourceFile
  
verification_info: {"golden_diff": "diff --git a/hs_core/admin.py b/hs_core/admin.py\n--- a/hs_core/admin.py\n+++ b/hs_core/admin.py\n@@ -23,6 +23,10 @@\n         'fields': ('email', 'username', 'password1', 'password2',)\n     }),\n )\n+UserAdmin.list_display = [\n+    'username', 'email', 'first_name', 'last_name', 'is_staff',\n+    'is_active', 'date_joined', 'last_login'\n+]\n \n class InlineResourceFiles(GenericTabularInline):\n     model = ResourceFile\n", "issue": "Add back Active, Date joined, and last login in mezzanine listing of users\nIn the 3/19/18 version of HydroShare when an admin listed users the fields listed were\r\n![image](https://user-images.githubusercontent.com/3456833/41195757-d1268df2-6bf0-11e8-8279-a3fbe2f81f84.png)\r\n\r\nAt present when an admin lists users the fields are\r\n![image](https://user-images.githubusercontent.com/3456833/41195790-5abcbf32-6bf1-11e8-9544-b94c25e36777.png)\r\n\r\n\r\nThe fields Active, Date joined and last login are needed so that when there are problems with users creating and activating accounts (as occurred this week) an admin can list recent account creations and account creation attempts to assess the extent of the problem, and contact users that may have been impacted.\r\n\r\nThis regression was noted in https://github.com/hydroshare/hydroshare/pull/2677#issuecomment-374183106\r\n\n", "before_files": [{"content": "from django import forms\nfrom django.contrib.auth.admin import UserAdmin\nfrom django.contrib.auth.forms import UserCreationForm\nfrom django.contrib.auth.models import User\nfrom django.contrib.gis import admin\nfrom django.contrib.contenttypes.admin import GenericTabularInline\nfrom django.utils.translation import ugettext_lazy as _\n\nfrom mezzanine.pages.admin import PageAdmin\n\nfrom .models import *\n\n\nclass UserCreationFormExtended(UserCreationForm):\n    def __init__(self, *args, **kwargs):\n        super(UserCreationFormExtended, self).__init__(*args, **kwargs)\n        self.fields['email'] = forms.EmailField(label=_(\"E-mail\"), max_length=75)\n\nUserAdmin.add_form = UserCreationFormExtended\nUserAdmin.add_fieldsets = (\n    (None, {\n        'classes': ('wide',),\n        'fields': ('email', 'username', 'password1', 'password2',)\n    }),\n)\n\nclass InlineResourceFiles(GenericTabularInline):\n    model = ResourceFile\n\nclass GenericResourceAdmin(PageAdmin):\n    inlines = PageAdmin.inlines + [InlineResourceFiles]\n\nadmin.site.unregister(User)\nadmin.site.register(User, UserAdmin)\nadmin.site.register(GenericResource, GenericResourceAdmin)\n", "path": "hs_core/admin.py"}]}