Compare commits
No commits in common. "36a7a5af5dee6b2f930ce491ea15d82d43d12393" and "2cf4d87c6b9dd16b89a6f92d08ca22cc14204664" have entirely different histories.
36a7a5af5d
...
2cf4d87c6b
2 changed files with 2 additions and 54 deletions
|
|
@ -21,6 +21,7 @@ class OsobaAdmin(admin.ModelAdmin):
|
||||||
|
|
||||||
def udelej_orgem(self,request,queryset):
|
def udelej_orgem(self,request,queryset):
|
||||||
org_group = Group.objects.get(name='org')
|
org_group = Group.objects.get(name='org')
|
||||||
|
print(queryset)
|
||||||
for o in queryset:
|
for o in queryset:
|
||||||
if m.Organizator.objects.filter(osoba=o).exists(): continue
|
if m.Organizator.objects.filter(osoba=o).exists(): continue
|
||||||
user = o.user
|
user = o.user
|
||||||
|
|
@ -29,7 +30,7 @@ class OsobaAdmin(admin.ModelAdmin):
|
||||||
user.save()
|
user.save()
|
||||||
org = m.Organizator.objects.create(osoba=o, organizuje_od=datetime.now())
|
org = m.Organizator.objects.create(osoba=o, organizuje_od=datetime.now())
|
||||||
org.save()
|
org.save()
|
||||||
udelej_orgem.short_description = "Udělej z vybraných osob organizátory"
|
udelej_orgem.short_description = "Udělej vybraných osob organizátory"
|
||||||
|
|
||||||
class OsobaInline(admin.TabularInline):
|
class OsobaInline(admin.TabularInline):
|
||||||
model = m.Osoba
|
model = m.Osoba
|
||||||
|
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
from django.test import TestCase
|
|
||||||
|
|
||||||
from django.contrib.auth.models import User, Group
|
|
||||||
# Tohle bude peklo, až jednou ty modely fakt rozstřelíme… Možná vyrobit various.all_models, které půjdou importovat jako m? :-)
|
|
||||||
import seminar.models as m
|
|
||||||
|
|
||||||
import logging
|
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
class DelaniOrguTest(TestCase):
|
|
||||||
def setUp(self):
|
|
||||||
self.org_group = Group.objects.get(name='org')
|
|
||||||
|
|
||||||
novy_user = User.objects.create(username='osoba')
|
|
||||||
self.nova_osoba = m.Osoba.objects.create(
|
|
||||||
jmeno='Milada',
|
|
||||||
prijmeni='Von Kolej',
|
|
||||||
user = novy_user,
|
|
||||||
# Snad nic dalšího nepotřebujeme, kdyžtak se doplní…
|
|
||||||
)
|
|
||||||
stary_user = User.objects.create(username='stary_user')
|
|
||||||
stara_osoba = m.Osoba.objects.create(user=stary_user)
|
|
||||||
self.stary_org = m.Organizator.objects.create(osoba=stara_osoba)
|
|
||||||
|
|
||||||
def test_pridani_orga(self):
|
|
||||||
# Nejdřív to není org…
|
|
||||||
self.assertFalse(m.Organizator.objects.filter(osoba=self.nova_osoba).exists())
|
|
||||||
self.assertNotIn(self.org_group, self.nova_osoba.user.groups.all())
|
|
||||||
self.assertFalse(self.nova_osoba.user.has_perm('auth.org'))
|
|
||||||
self.assertFalse(self.nova_osoba.user.is_staff)
|
|
||||||
breakpoint
|
|
||||||
|
|
||||||
# Pak orga uděláme…
|
|
||||||
from personalni.admin import OsobaAdmin
|
|
||||||
qs = m.Osoba.objects.filter(id=self.nova_osoba.id)
|
|
||||||
OsobaAdmin.udelej_orgem(None, None, qs)
|
|
||||||
|
|
||||||
# A pak už to org má být.
|
|
||||||
logger.info(f'Nová osoba je staff: {self.nova_osoba.user.is_staff}')
|
|
||||||
self.assertTrue(self.nova_osoba.user.is_staff)
|
|
||||||
self.assertTrue(self.nova_osoba.user.has_perm('auth.org'))
|
|
||||||
self.assertIn(self.org_group, self.nova_osoba.user.groups.all())
|
|
||||||
self.assertTrue(m.Organizator.objects.filter(osoba=self.nova_osoba).exists())
|
|
||||||
novy_org = m.Organizator.objects.get(osoba=self.nova_osoba)
|
|
||||||
self.assertIsNotNone(novy_org.organizuje_od)
|
|
||||||
|
|
||||||
def test_pridani_stareho_orga(self):
|
|
||||||
from personalni.admin import OsobaAdmin
|
|
||||||
OsobaAdmin.udelej_orgem(None, None, m.Osoba.objects.filter(id=self.stary_org.osoba.id)) # Ugly
|
|
||||||
# Když to spadne, tak jsem se to dozvěděl, takže už nepotřebuju nic kontrolovat.
|
|
||||||
# Jestli to funguje správně má řešit jiný test.
|
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in a new issue