Skip to content

Commit 37153f7

Browse files
committed
rm unused fields, GetOrNoneManager, AdminManager
1 parent d45031b commit 37153f7

File tree

5 files changed

+49
-9
lines changed

5 files changed

+49
-9
lines changed

arcgis/models.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
# Create your models here.
77
from tgbot.models import Location
8-
from utils.models import CreateTracker
8+
from utils.models import CreateTracker, GetOrNoneManager
99

1010

1111
class Arcgis(CreateTracker):
@@ -38,6 +38,8 @@ class Arcgis(CreateTracker):
3838
lng = models.DecimalField(max_digits=21, decimal_places=18)
3939
lat = models.DecimalField(max_digits=21, decimal_places=18)
4040

41+
objects = GetOrNoneManager()
42+
4143
def __str__(self):
4244
return f"{self.location}, city: {self.city}, country_code: {self.country_code}"
4345

tgbot/admin.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from django.contrib import admin
22
from django.http import HttpResponseRedirect
33
from django.shortcuts import render
4-
from telegram import ParseMode
54

65
from dtb.settings import DEBUG
76

@@ -20,7 +19,7 @@ class UserAdmin(admin.ModelAdmin):
2019
'language_code', 'deep_link',
2120
'created_at', 'updated_at', "is_blocked_bot",
2221
]
23-
list_filter = ["is_blocked_bot", "is_moderator"]
22+
list_filter = ["is_blocked_bot", ]
2423
search_fields = ('username', 'user_id')
2524

2625
actions = ['broadcast']
+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Generated by Django 3.2.6 on 2021-12-01 17:47
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('tgbot', '0002_alter_user_user_id'),
10+
]
11+
12+
operations = [
13+
migrations.RemoveField(
14+
model_name='user',
15+
name='is_banned',
16+
),
17+
migrations.RemoveField(
18+
model_name='user',
19+
name='is_moderator',
20+
),
21+
]

tgbot/models.py

+14-6
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
from __future__ import annotations
22

3-
from typing import Union, Optional, Tuple, Dict
3+
from typing import Union, Optional, Tuple
44

55
from django.db import models
6-
from django.db.models import QuerySet
6+
from django.db.models import QuerySet, Manager
77
from telegram import Update
88
from telegram.ext import CallbackContext
99

1010
from dtb.settings import DEBUG
1111
from tgbot.handlers.utils.info import extract_user_data_from_update
12-
from utils.models import CreateUpdateTracker, nb, CreateTracker
12+
from utils.models import CreateUpdateTracker, nb, CreateTracker, GetOrNoneManager
13+
14+
15+
class AdminUserManager(Manager):
16+
def get_queryset(self):
17+
return super().get_queryset().filter(is_admin=True)
1318

1419

1520
class User(CreateUpdateTracker):
@@ -21,11 +26,12 @@ class User(CreateUpdateTracker):
2126
deep_link = models.CharField(max_length=64, **nb)
2227

2328
is_blocked_bot = models.BooleanField(default=False)
24-
is_banned = models.BooleanField(default=False)
2529

2630
is_admin = models.BooleanField(default=False)
27-
is_moderator = models.BooleanField(default=False)
28-
31+
32+
objects = GetOrNoneManager() # user = User.objects.get_or_none(user_id=<some_id>)
33+
admins = AdminUserManager() # User.admins.all()
34+
2935
def __str__(self):
3036
return f'@{self.username}' if self.username is not None else f'{self.user_id}'
3137

@@ -74,6 +80,8 @@ class Location(CreateTracker):
7480
latitude = models.FloatField()
7581
longitude = models.FloatField()
7682

83+
objects = GetOrNoneManager()
84+
7785
def __str__(self):
7886
return f"user: {self.user}, created at {self.created_at.strftime('(%H:%M, %d %B %Y)')}"
7987

utils/models.py

+10
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from django.core.exceptions import ObjectDoesNotExist
12
from django.db import models
23

34

@@ -17,3 +18,12 @@ class CreateUpdateTracker(CreateTracker):
1718

1819
class Meta(CreateTracker.Meta):
1920
abstract = True
21+
22+
23+
class GetOrNoneManager(models.Manager):
24+
"""returns none if object doesn't exist else model instance"""
25+
def get_or_none(self, **kwargs):
26+
try:
27+
return self.get(**kwargs)
28+
except ObjectDoesNotExist:
29+
return None

0 commit comments

Comments
 (0)