Completed
Push — master ( 7f4e92...f438f0 )
by Andrew
01:03
created

UserLocation   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 18
Duplicated Lines 0 %
Metric Value
dl 0
loc 18
rs 10
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A provider() 0 2 1
A country() 0 2 1
A city() 0 2 1
A region() 0 2 1
A username() 0 2 1
1
import inspect
2
import sys
3
4
from django.contrib import admin
5
6
from chat import models
7
from chat.models import UserJoinedInfo
8
9
10
exclude_auto = ('UserJoinedInfo',)
11
model_classes = (class_name[1] for class_name in inspect.getmembers(sys.modules[models.__name__], inspect.isclass)
12
		if class_name[1].__module__ == models.__name__ and class_name[0] not in exclude_auto)
13
for model in model_classes:
14
	fields = [field.name for field in model._meta.fields if field.name not in ("password")]
15
	admin.site.register(model, type('SubClass', (admin.ModelAdmin,), {'fields': fields, 'list_display': fields}))
16
17
@admin.register(UserJoinedInfo)
18
class UserLocation(admin.ModelAdmin):
19
	list_display = ['username', 'country', 'region','city','provider', 'time', 'ip']
20
21
	def region(self, instance):
22
		return instance.ip.region
23
24
	def country(self,instance ):
25
		return instance.ip.country
26
27
	def city(self, instance):
28
		return instance.ip.city
29
30
	def provider(self,instance):
31
		return instance.ip.isp
32
33
	def username(self, instance):
34
		return instance.anon_name or instance.user