Browse Source

Fáze tvorby čísla

remotes/origin/faze-tvorby-cisla
Matěj Kocián 8 years ago
parent
commit
9c37f43527
  1. 48
      seminar/admin.py
  2. 19
      seminar/migrations/0042_cislo_faze.py
  3. 19
      seminar/migrations/0043_uprava_faze.py
  4. 19
      seminar/migrations/0044_uprava_faze.py
  5. 20
      seminar/models.py

48
seminar/admin.py

@ -244,10 +244,28 @@ admin.site.register(Skola, SkolaAdmin)
class CisloAdmin(VersionAdmin): class CisloAdmin(VersionAdmin):
fieldsets = [ fieldsets = [
(None, {'fields': ['cislo', 'rocnik', 'verejne_db', 'verejna_vysledkovka', 'poznamka', 'pdf']}), (None, {
'fields': [
'cislo',
'rocnik',
'verejne_db',
'verejna_vysledkovka',
'faze',
'poznamka',
'pdf'
]
}),
(u'Data', {'fields': ['datum_vydani', 'datum_deadline']}), (u'Data', {'fields': ['datum_vydani', 'datum_deadline']}),
] ]
list_display = ['kod', 'rocnik', 'cislo', 'datum_vydani', 'datum_deadline', 'verejne', 'verejna_vysledkovka'] list_display = [
'kod',
'rocnik',
'cislo',
'datum_vydani',
'datum_deadline',
'verejne',
'verejna_vysledkovka'
]
list_filter = ['rocnik'] list_filter = ['rocnik']
view_on_site = Cislo.verejne_url view_on_site = Cislo.verejne_url
actions = [ actions = [
@ -339,7 +357,20 @@ class PohadkaAdmin(VersionAdmin):
return obj.uloha.cislo_zadani.rocnik.rocnik return obj.uloha.cislo_zadani.rocnik.rocnik
get_rocnik.short_description = u'Ročník' get_rocnik.short_description = u'Ročník'
list_display = ['__str__', 'get_rocnik', 'get_kod_ulohy', 'uloha', 'autor', 'timestamp'] def get_readonly_fields(self, request, obj=None):
if not obj:
return []
if obj.uloha.cislo_zadani.faze != 'admin':
return ['text']
list_display = [
'__str__',
'get_rocnik',
'get_kod_ulohy',
'uloha',
'autor',
'timestamp'
]
get_form = get_form_predvypln_autora get_form = get_form_predvypln_autora
@ -375,12 +406,21 @@ class ProblemAdmin(VersionAdmin):
(u'Vydání', {'fields': ['cislo_zadani', 'kod', 'cislo_reseni', 'opravovatel',]}), (u'Vydání', {'fields': ['cislo_zadani', 'kod', 'cislo_reseni', 'opravovatel',]}),
(None, {'fields': ['text_zadani', 'text_reseni', 'text_org',]}), (None, {'fields': ['text_zadani', 'text_reseni', 'text_org',]}),
] ]
readonly_fields = ['timestamp', 'import_dakos_id']
list_select_related = True list_select_related = True
search_fields = ['nazev', 'text_zadani', 'text_reseni', 'text_org'] search_fields = ['nazev', 'text_zadani', 'text_reseni', 'text_org']
view_on_site = Problem.verejne_url view_on_site = Problem.verejne_url
ordering = ['-timestamp'] ordering = ['-timestamp']
def get_readonly_fields(self, request, obj=None):
readonly_fields = ['timestamp', 'import_dakos_id']
if not obj:
return readonly_fields
if obj.cislo_zadani.faze != 'admin':
readonly_fields += ['nazev', 'text_zadani', 'body']
if obj.cislo_reseni.faze != 'admin':
readonly_fields += ['text_reseni']
return readonly_fields
def get_queryset(self, request): def get_queryset(self, request):
qs = super(ProblemAdmin, self).get_queryset(request) qs = super(ProblemAdmin, self).get_queryset(request)
return qs.select_related('autor', 'opravovatel', 'cislo_zadani', 'cislo_reseni') return qs.select_related('autor', 'opravovatel', 'cislo_zadani', 'cislo_reseni')

19
seminar/migrations/0042_cislo_faze.py

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('seminar', '0041_konfery'),
]
operations = [
migrations.AddField(
model_name='cislo',
name='faze',
field=models.CharField(default='admin', help_text='B\u011bhem f\xe1ze "admin" se obsah \u010d\xedsla vytv\xe1\u0159\xed (a p\u0159\xedpadn\u011b komentuje) ve webov\xe9m rozhran\xed. B\u011bhem f\xe1ze "tex" u\u017e obsah ve webov\xe9m rozhran\xed editovat nelze. N\xe1vrhy na \xfapravy se pak p\xed\u0161\xed do korekturov\xe1tka a zan\xe1\u0161ej\xed do gitu. Z n\u011bj se pak generuje verze pro web.', max_length=32, verbose_name='F\xe1ze vytv\xe1\u0159en\xed obsahu'),
),
]

19
seminar/migrations/0043_uprava_faze.py

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('seminar', '0042_cislo_faze'),
]
operations = [
migrations.AlterField(
model_name='cislo',
name='faze',
field=models.CharField(default='admin', help_text='B\u011bhem f\xe1ze "admin" se obsah \u010d\xedsla vytv\xe1\u0159\xed (a p\u0159\xedpadn\u011b komentuje) ve webov\xe9m rozhran\xed. B\u011bhem f\xe1ze "tex" u\u017e obsah ve webov\xe9m rozhran\xed editovat nelze. N\xe1vrhy na \xfapravy se pak p\xed\u0161\xed do korekturov\xe1tka a zan\xe1\u0161ej\xed do gitu. Z n\u011bj se pak generuje verze pro web.', max_length=32, verbose_name='F\xe1ze vytv\xe1\u0159en\xed obsahu', choices=[('admin', 'Zad\xe1v\xe1n\xed \xfaloh do webu'), ('tex', '\xdapravy \xfaloh v TeXov\xe9m repozit\xe1\u0159i')]),
),
]

19
seminar/migrations/0044_uprava_faze.py

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('seminar', '0043_auto_20161106_1951'),
]
operations = [
migrations.AlterField(
model_name='cislo',
name='faze',
field=models.CharField(default='admin', help_text='B\u011bhem f\xe1ze "\xdapravy na webu" se obsah \u010d\xedsla vytv\xe1\u0159\xed (a p\u0159\xedpadn\u011b komentuje) ve webov\xe9m rozhran\xed. B\u011bhem f\xe1ze "\xdapravy na webu" u\u017e obsah ve webov\xe9m rozhran\xed editovat nelze a n\xe1vrhy na \xfapravy se p\xed\u0161\xed do korekturov\xe1tka a zan\xe1\u0161ej\xed do gitu. Z n\u011bj se pak generuje verze pro web.', max_length=32, verbose_name='F\xe1ze vytv\xe1\u0159en\xed obsahu', choices=[('admin', '\xdapravy na webu'), ('tex', '\xdapravy v TeXu')]),
),
]

20
seminar/models.py

@ -349,6 +349,26 @@ class Cislo(SeminarModelBase):
pdf = models.FileField(u'pdf', upload_to=cislo_pdf_filename, null=True, blank=True, pdf = models.FileField(u'pdf', upload_to=cislo_pdf_filename, null=True, blank=True,
help_text=u'Pdf čísla, které si mohou řešitelé stáhnout') help_text=u'Pdf čísla, které si mohou řešitelé stáhnout')
FAZE_ADMIN = u'admin'
FAZE_TEX = u'tex'
FAZE_CHOICES = [
(FAZE_ADMIN, u'Úpravy na webu'),
(FAZE_TEX, u'Úpravy v TeXu'),
]
faze = models.CharField(
u'Fáze vytváření obsahu',
max_length=32,
default=FAZE_ADMIN,
choices=FAZE_CHOICES,
help_text=(
u'Během fáze "{}" se obsah čísla vytváří (a případně '
u'komentuje) ve webovém rozhraní. Během fáze "{}" už obsah ve '
u'webovém rozhraní editovat nelze a návrhy na úpravy se píší '
u'do korekturovátka a zanášejí do gitu. Z něj se pak generuje '
u'verze pro web.'
).format(FAZE_CHOICES[0][1], FAZE_CHOICES[0][1])
)
def kod(self): def kod(self):
return u'%s.%s' % (self.rocnik.rocnik, self.cislo) return u'%s.%s' % (self.rocnik.rocnik, self.cislo)
kod.short_description = u'Kód čísla' kod.short_description = u'Kód čísla'

Loading…
Cancel
Save