Skip to content
This repository has been archived by the owner on Sep 10, 2020. It is now read-only.

[general] added abstract models #13

Merged
merged 31 commits into from Jun 25, 2017
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
1e42ae1
[general] added abstract models
lillopaco Jun 16, 2017
429b3ff
[clean] clean code
lillopaco Jun 16, 2017
da630dc
Added requested changes
lillopaco Jun 16, 2017
d1aa9e3
[admin] added get_readonly_fields method
lillopaco Jun 17, 2017
8e34e85
[models] delete base.py and added model
lillopaco Jun 17, 2017
e91c461
[requirements] added django-model-utils
lillopaco Jun 17, 2017
9929df9
[migrations] added new migrations
lillopaco Jun 17, 2017
62b5e4d
[migrations] added a new migrations
lillopaco Jun 17, 2017
c5acf30
[clean] clean models
lillopaco Jun 17, 2017
b73dd97
[general] added swapper
lillopaco Jun 17, 2017
c6c4f16
swapper
lillopaco Jun 17, 2017
bd2319b
[general] clean code
lillopaco Jun 17, 2017
2fe3bd8
[sample_radius] added application test
lillopaco Jun 20, 2017
bf8c4d6
[django-swapper] added changes
lillopaco Jun 20, 2017
7039ed5
[general] clean code
lillopaco Jun 20, 2017
a854e1b
[general] added swapper import
lillopaco Jun 20, 2017
79d5d2d
[general] added modifications to test application
lillopaco Jun 21, 2017
7c29a4d
[general] clean code
lillopaco Jun 21, 2017
eaf974c
[general] clean code
lillopaco Jun 22, 2017
270fb5f
[general] added skipIf
lillopaco Jun 22, 2017
9cd859b
[tests] Correct error
lillopaco Jun 24, 2017
685ec3c
[general] added clean code
lillopaco Jun 24, 2017
c04348d
[general] correct import
lillopaco Jun 24, 2017
40d0baf
[general] correct error
lillopaco Jun 24, 2017
59b8f65
[general] clean code
lillopaco Jun 24, 2017
02290da
[general] code clean
lillopaco Jun 24, 2017
e36c42c
[general]correct error
lillopaco Jun 24, 2017
3103a95
[test] correct import
lillopaco Jun 24, 2017
8700250
[general] correct import
lillopaco Jun 24, 2017
1539552
[general] correct import
lillopaco Jun 24, 2017
1e40453
[runtests] added sample_radius to runtests
lillopaco Jun 24, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
68 changes: 38 additions & 30 deletions django_freeradius/admin.py
Expand Up @@ -4,52 +4,60 @@
RadiusGroupCheck, RadiusGroupReply, RadiusGroupUsers,
RadiusPostAuthentication, RadiusReply, RadiusUserGroup)

from .base.admin import (AbstractRadiusGroupAdmin, AbstractRadiusGroupUsersAdmin,
AbstractRadiusCheckAdmin, AbstractRadiusAccountingAdmin,
AbstractRadiusReplyAdmin, AbstractNasAdmin,
AbstractRadiusGroupCheckAdmin, AbstractRadiusGroupReplyAdmin,
AbstractRadiusPostAuthenticationAdmin, AbstractRadiusUserGroupAdmin)

@admin.register(RadiusGroup)
class RadiusGroupAdmin(admin.ModelAdmin):
pass

class RadiusGroupAdmin(AbstractRadiusGroupAdmin):
model = RadiusGroup

@admin.register(RadiusGroupUsers)
class RadiusGroupUsers(admin.ModelAdmin):
pass

class RadiusGroupUsersAdmin(AbstractRadiusGroupUsersAdmin):
model = RadiusGroupUsers

@admin.register(RadiusCheck)
class RadiusCheck(admin.ModelAdmin):
pass

class RadiusCheckAdmin(AbstractRadiusCheckAdmin):
model = RadiusCheck

@admin.register(RadiusReply)
class RadiusReply(admin.ModelAdmin):
pass

class RadiusReplyAdmin(AbstractRadiusReplyAdmin):
model = RadiusReply

@admin.register(RadiusAccounting)
class RadiusAccounting(admin.ModelAdmin):
pass

class RadiusAccountingAdmin(AbstractRadiusAccountingAdmin):
model = RadiusAccounting

@admin.register(Nas)
class Nas(admin.ModelAdmin):
pass

class NasAdmin(AbstractNasAdmin):
model = Nas

@admin.register(RadiusUserGroup)
class RadiusUserGroup(admin.ModelAdmin):
pass

class RadiusUserGroupAdmin(AbstractRadiusUserGroupAdmin):
model = RadiusUserGroup

@admin.register(RadiusGroupReply)
class RadiusGroupReply(admin.ModelAdmin):
pass

class RadiusGroupReplyAdmin(AbstractRadiusGroupReplyAdmin):
model = RadiusGroupReply

@admin.register(RadiusGroupCheck)
class RadiusGroupCheck(admin.ModelAdmin):
pass

class RadiusGroupCheckAdmin(AbstractRadiusGroupCheckAdmin):
model = RadiusGroupCheck

@admin.register(RadiusPostAuthentication)
class RadiusPostAuthentication(admin.ModelAdmin):
pass

class RadiusPostAuthenticationAdmin(AbstractRadiusPostAuthenticationAdmin):
model = RadiusPostAuthentication


admin.site.register(RadiusPostAuthentication, RadiusPostAuthenticationAdmin)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer the decorator version @admin.register of registration

admin.site.register(RadiusGroupCheck, RadiusGroupCheckAdmin)
admin.site.register(RadiusGroupReply, RadiusGroupReplyAdmin)
admin.site.register(RadiusUserGroup, RadiusUserGroupAdmin)
admin.site.register(Nas, NasAdmin)
admin.site.register(RadiusAccounting, RadiusAccountingAdmin)
admin.site.register(RadiusReply, RadiusReplyAdmin)
admin.site.register(RadiusCheck, RadiusCheckAdmin)
admin.site.register(RadiusGroupUsers, RadiusGroupUsersAdmin)
admin.site.register(RadiusGroup, RadiusGroupAdmin)
Empty file.
50 changes: 50 additions & 0 deletions django_freeradius/base/admin.py
@@ -0,0 +1,50 @@
from django.contrib.admin import ModelAdmin


class TimeStampedEditableAdmin(ModelAdmin):
"""
ModelAdmin for TimeStampedEditableModel
"""
def __init__(self, *args, **kwargs):
self.readonly_fields += ('modified')
super(TimeStampedEditableAdmin, self).__init__(*args, **kwargs)


class AbstractRadiusGroupAdmin(ModelAdmin):
pass


class AbstractRadiusGroupUsersAdmin(ModelAdmin):
pass


class AbstractRadiusCheckAdmin(ModelAdmin):
pass


class AbstractRadiusReplyAdmin(ModelAdmin):
pass


class AbstractRadiusAccountingAdmin(ModelAdmin):
pass


class AbstractNasAdmin(ModelAdmin):
pass


class AbstractRadiusUserGroupAdmin(ModelAdmin):
pass


class AbstractRadiusGroupReplyAdmin(ModelAdmin):
pass


class AbstractRadiusGroupCheckAdmin(ModelAdmin):
pass


class AbstractRadiusPostAuthenticationAdmin(ModelAdmin):
pass
15 changes: 15 additions & 0 deletions django_freeradius/base/base.py
@@ -0,0 +1,15 @@
from django.db import models
from django.utils.translation import ugettext_lazy as _
from model_utils.fields import AutoLastModifiedField


class TimeStampedEditableAdmin(models.Model):

# An abstract base class model that provides self-updating
# modified fields.

id = models.UUIDField(primary_key=True, editable=False)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed, probably UUIDField is not useful for freeradius-native models. And it's definitely too "heavy" (sizewise) for highly populated tables like AbstractRadiusAccounting
I would keep this base model without the id and I'd just use standard numeric primary keys
I would also add a created = AutoCreatedField(_('created'))
Check the class name too (it should be TimeStampedEditableModel)

modified = AutoLastModifiedField(_('modified'), editable=True)

class Meta:
abstract = True