Pridana administratorska poznamka k uzivateli

This commit is contained in:
Jarmil 2019-11-13 11:23:40 +01:00
parent d9b5570d90
commit 3542228559
5 changed files with 52 additions and 32 deletions

View File

@ -20,7 +20,7 @@ class AppUserForm(ModelForm):
model = models.AppUser
fields = ['first_name','last_name',
'city', 'postcode', 'district', 'kind',
'email', 'email_contact', 'email_contact_active', 'dc_stamp']
'email', 'email_contact', 'email_contact_active', 'dc_stamp', 'admin_note']
def clean_postcode(self):
data = self.cleaned_data['postcode']

View File

@ -0,0 +1,24 @@
# Generated by Django 2.0.3 on 2019-11-13 11:14
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('nalodeni', '0056_appuser_county'),
]
operations = [
migrations.AddField(
model_name='appuser',
name='admin_note',
field=models.TextField(blank=True, verbose_name='Administrátorská poznámka'),
),
migrations.AlterField(
model_name='appuser',
name='county',
field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='nalodeni.County', verbose_name='Okres'),
),
]

View File

@ -147,55 +147,45 @@ class AppUser(AbstractUser, DataAudited):
KIND_ALREADY_OTHER: _('již pirátím jinak'),
}
##
# User self-editable fields
##
# User self-editable fields
postcode = IntegerField(_('PSČ'), blank=False, null=True)
city = CharField(_(u'Město'), max_length=120, default=None,
blank=True, null=True)
district = IntegerField(_('Kraj'), blank=True, null=True,
choices=DISTRICT_CHOICES, default=None)
city = CharField(_(u'Město'), max_length=120, default=None, blank=True, null=True)
district = IntegerField(_('Kraj'), blank=True, null=True, choices=DISTRICT_CHOICES, default=None)
# Stav KIND_MEMBER se nastavuje dle skutečného členství, a bude
# pravidelně aktualizován synchronizací s DB členů.
kind = IntegerField(_('Chci'), blank=False, null=False,
default = KIND_NEWSLETTER, choices=KIND_CHOICES)
# Stav KIND_MEMBER se nastavuje dle skutečného členství, a bude
# pravidelně aktualizován synchronizací s DB členů.
# Stav KIND_MEMBER se nastavuje dle skutečného členství, a bude
# pravidelně aktualizován synchronizací s DB členů.
interestedIn = CharField(_('Moje dovednosti (chci pomoci s)'), blank=True, null=True,
max_length=150)
# Stav KIND_MEMBER se nastavuje dle skutečného členství, a bude
# pravidelně aktualizován synchronizací s DB členů.
# Kontaktni email, ktery slouzi ke skryti emailu registrovaneho na SSO
# a pouziteho napr. v prihlasce o clenstvi.
# SSO bude dalsim aplikacim, krome nalodeni, predavat pouze kontaktni email, bude-li nastaven.
email_contact = EmailField(_('Kontaktní e-mail'),max_length=100,
default='', blank=True, null=True)
# Kontaktni email, ktery slouzi ke skryti emailu registrovaneho na SSO
# a pouziteho napr. v prihlasce o clenstvi.
# SSO bude dalsim aplikacim, krome nalodeni, predavat pouze kontaktni
# email, pokud bude nastaven.
email_contact_token = CharField(_('Ověřovací token pro kontaktní e-mail.'),
# Token pro ověření kontaktního emailu. Má tvat timestamp - token,
# kde timestamp se neposílá emailem, ale slouží pro vypršení platnosti.
email_contact_token = CharField(_('Ověřovací token pro kontaktní e-mail.'),
max_length=150, default=None, blank=True, null=True)
# Token pro ověření kontaktního emailu. Má tvat timestamp - token,
# kde timestamp se neposílá emailem, ale slouží pro vypršení platnosti.
email_contact_verified = BooleanField(_('Kontaktní e-mail byl ověřen.'),
default=False, blank=True)
# Kontaktni email je potřeba ověřit zaslání ověřovacího emailu.
# Kontaktni email je potřeba ověřit zaslání ověřovacího emailu.
email_contact_verified = BooleanField(_('Kontaktní e-mail byl ověřen.'), default=False, blank=True)
# Kontaktni email, který je ověřen a zapsán v LDAP. Vyplňováno při přihlášení z SSO.
email_contact_active = EmailField(_('Kontaktní e-mail aktivní'),max_length=100,
default='', blank=True, null=True)
# Kontaktni email, který je ověřen a zapsán v LDAP.
# pole je vyplňováno při přihlášení z SSO.
# Datum a čas poslední změny údajů, které se mají propisovat do LDAP.
# Podle tohoto údaje se v synchronizačním skriptu pozná, jaké záznamy je třeba aktualizovat v LDAP
ts_for_ldap_sync = DateTimeField(_('Timestamp pro LDAP synchronizaci'),
default=datetime.datetime.now, blank=True, null=True)
# Datum a čas poslední změny údajů, které se mají propisovat do LDAP.
# Podle tohoto údaje se v synchronizačním skriptu pozná, jaké
# záznamy je potřeba aktualizovat v LDAP.
dc_stamp = DateTimeField(_('Data consent timestamp'),
default=None, blank=True, null=True)
dc_stamp = DateTimeField(_('Data consent timestamp'), default=None, blank=True, null=True)
# dotaznik pro uzivatele
userform = ForeignKey('UserForm', on_delete=CASCADE, verbose_name=_('dotazník'),
@ -204,8 +194,10 @@ class AppUser(AbstractUser, DataAudited):
# stav uzivatele - jaky? proc? ceho? boha jeho...
status = IntegerField(_('Stav'), blank=False, null=False, default = STATUS_NEW, choices=STATUS_CHOICES)
# Okres. Prirazuje se automaticky pri zmene postcode (PSC)
county = ForeignKey('County', on_delete=SET_NULL, verbose_name=_('dotazník'), blank=True, null=True, default=None)
# Okres, prirazuje se automaticky pri zmene postcode (PSC) ve fci UserModel_presave
county = ForeignKey('County', on_delete=SET_NULL, verbose_name=_('Okres'), blank=True, null=True, default=None)
admin_note = TextField(_('Administrátorská poznámka'), blank=True)
# pro kompatibilitu kodu a modelu

View File

@ -68,6 +68,9 @@ $(document).ready(function(){
<a href="{% url 'nalodeni:person_edit' p.id%}">upravit</a>
</td>
</tr>
<tr>
<td colspan=12>{{p.admin_note}}</td>
</tr>
{% endfor %}
</table>
{% if newOnly %}

View File

@ -40,6 +40,7 @@
<tr><td colspan="2">&nbsp;</td></tr>
<tr><th>Datum registrace</th><td>{{obj.createdStamp}}</td></tr>
<tr><th>Datum souhlasu os. údajů</th><td>{{obj.dc_stamp|default_if_none:'-'}}</td></tr>
<tr><th>Administrátorská poznámka</th><td>{{obj.admin_note}}</td></tr>
</table>
</section>
</div>