Merge branch 'master' into stable
code reviewed by xlfd
This commit is contained in:
commit
deb8fcc91a
2 changed files with 47 additions and 4 deletions
28
Makefile
28
Makefile
|
@ -1,4 +1,4 @@
|
||||||
.PHONY: clean_env init_env clean_virtualenv install_packages clean install run all schema_seminar.pdf schema_all.pdf
|
.PHONY: clean_env init_env clean_virtualenv install_packages clean install run all schema_seminar.pdf schema_all.pdf sync_test_media sync_test_db sync_test sync_local_media sync_local_db sync_local
|
||||||
PYTHON=python2.7
|
PYTHON=python2.7
|
||||||
VE_VER=13.1.2
|
VE_VER=13.1.2
|
||||||
LOCAL_PYTHON=bin/python
|
LOCAL_PYTHON=bin/python
|
||||||
|
@ -93,16 +93,36 @@ deploy_prod:
|
||||||
touch mamweb/wsgi.py
|
touch mamweb/wsgi.py
|
||||||
@echo Done.
|
@echo Done.
|
||||||
|
|
||||||
|
|
||||||
|
# Sync test media directory with production
|
||||||
|
sync_test_media:
|
||||||
|
@if [ ${USER} != "www-mam" ]; then echo "Only possible by user www-mam"; exit 1; fi
|
||||||
|
@if [ `pwd` != "/akce/MaM/WWW/mamweb-test" ]; then echo "Only possible in /akce/MaM/WWW/mamweb-test"; exit 1; fi
|
||||||
|
rsync -av /akce/MaM/WWW/mamweb-prod/media/ ./media
|
||||||
|
|
||||||
|
# Sync test database with production database
|
||||||
|
sync_test_db:
|
||||||
|
@if [ ${USER} != "www-mam" ]; then echo "Only possible by user www-mam"; exit 1; fi
|
||||||
|
pg_dump mam-test -U mam > dump-test-`date +"%Y%m%d_%H%M"`.sql
|
||||||
|
pg_dump -Fc mam-prod -U mam > dump-prod.sql
|
||||||
|
pg_restore -c -d mam-test -U mam dump-prod.sql
|
||||||
|
rm dump-prod.sql
|
||||||
|
@echo Done.
|
||||||
|
|
||||||
|
# Sync test with production
|
||||||
|
sync_test: sync_test_media sync_test_db
|
||||||
|
|
||||||
|
|
||||||
# Sync media directory with atrey. Useful for local development with production database
|
# Sync media directory with atrey. Useful for local development with production database
|
||||||
# Does not sync Galerie and CACHE (too huge).
|
# Does not sync Galerie and CACHE (too huge).
|
||||||
sync_media:
|
sync_local_media:
|
||||||
rsync -ave ssh --exclude Galerie --exclude CACHE\
|
rsync -ave ssh --exclude Galerie --exclude CACHE\
|
||||||
atrey.karlin.mff.cuni.cz:/akce/MaM/WWW/mamweb-prod/media/ ./media/
|
atrey.karlin.mff.cuni.cz:/akce/MaM/WWW/mamweb-prod/media/ ./media/
|
||||||
# Downloads and restores production database to local database. PostgreSQL only.
|
# Downloads and restores production database to local database. PostgreSQL only.
|
||||||
sync_db:
|
sync_local_db:
|
||||||
scp atrey.karlin.mff.cuni.cz:`ssh atrey.karlin.mff.cuni.cz 'ls -v /akce/MaM/WWW/backups/mam-prod-*\.pgdump | tail -n 1'` \
|
scp atrey.karlin.mff.cuni.cz:`ssh atrey.karlin.mff.cuni.cz 'ls -v /akce/MaM/WWW/backups/mam-prod-*\.pgdump | tail -n 1'` \
|
||||||
./last.pgdump
|
./last.pgdump
|
||||||
pg_restore -c -d mam -U mam last.pgdump
|
pg_restore -c -d mam -U mam last.pgdump
|
||||||
|
|
||||||
# Sync database and media. See above lines
|
# Sync database and media. See above lines
|
||||||
sync: sync_media sync_db
|
sync_local: sync_media sync_db
|
||||||
|
|
|
@ -77,6 +77,7 @@ class ResitelInline(admin.TabularInline):
|
||||||
fields = ['jmeno', 'prijmeni', 'skola', 'mesto', 'rok_maturity', ]
|
fields = ['jmeno', 'prijmeni', 'skola', 'mesto', 'rok_maturity', ]
|
||||||
readonly_fields = ['jmeno', 'prijmeni', 'skola', 'mesto', 'rok_maturity', ]
|
readonly_fields = ['jmeno', 'prijmeni', 'skola', 'mesto', 'rok_maturity', ]
|
||||||
extra = 0
|
extra = 0
|
||||||
|
view_on_site = False
|
||||||
|
|
||||||
def has_add_permission(self, req): return False
|
def has_add_permission(self, req): return False
|
||||||
|
|
||||||
|
@ -89,6 +90,7 @@ class CisloInline(admin.TabularInline):
|
||||||
formfield_overrides = {
|
formfield_overrides = {
|
||||||
models.TextField: {'widget': forms.TextInput},
|
models.TextField: {'widget': forms.TextInput},
|
||||||
}
|
}
|
||||||
|
view_on_site = Cislo.verejne_url
|
||||||
|
|
||||||
def has_add_permission(self, req): return False
|
def has_add_permission(self, req): return False
|
||||||
|
|
||||||
|
@ -100,9 +102,23 @@ class PrilohaReseniInline(admin.StackedInline):
|
||||||
formfield_overrides = {
|
formfield_overrides = {
|
||||||
models.TextField: {'widget': forms.TextInput},
|
models.TextField: {'widget': forms.TextInput},
|
||||||
}
|
}
|
||||||
|
view_on_site = False
|
||||||
|
|
||||||
extra = 0
|
extra = 0
|
||||||
|
|
||||||
|
|
||||||
|
class ProblemInline(admin.TabularInline):
|
||||||
|
model = Problem
|
||||||
|
fk_name = 'cislo_zadani'
|
||||||
|
fields = ['kod', 'typ', 'nazev', 'body', 'opravovatel', 'stav']
|
||||||
|
formfield_overrides = {
|
||||||
|
models.TextField: {'widget': forms.TextInput},
|
||||||
|
}
|
||||||
|
view_on_site = Problem.verejne_url
|
||||||
|
|
||||||
|
extra = 0
|
||||||
|
|
||||||
|
|
||||||
class ReseniKProblemuInline(admin.TabularInline):
|
class ReseniKProblemuInline(admin.TabularInline):
|
||||||
form = autocomplete_light.modelform_factory(Reseni, autocomplete_fields=['resitel'], fields=['resitel'])
|
form = autocomplete_light.modelform_factory(Reseni, autocomplete_fields=['resitel'], fields=['resitel'])
|
||||||
model = Reseni
|
model = Reseni
|
||||||
|
@ -112,6 +128,7 @@ class ReseniKProblemuInline(admin.TabularInline):
|
||||||
formfield_overrides = {
|
formfield_overrides = {
|
||||||
models.TextField: {'widget': forms.TextInput},
|
models.TextField: {'widget': forms.TextInput},
|
||||||
}
|
}
|
||||||
|
view_on_site = False
|
||||||
|
|
||||||
def get_queryset(self, request):
|
def get_queryset(self, request):
|
||||||
qs = super(ReseniKProblemuInline, self).get_queryset(request)
|
qs = super(ReseniKProblemuInline, self).get_queryset(request)
|
||||||
|
@ -134,6 +151,7 @@ class ReseniKResiteliInline(admin.TabularInline):
|
||||||
formfield_overrides = {
|
formfield_overrides = {
|
||||||
models.TextField: {'widget': forms.TextInput},
|
models.TextField: {'widget': forms.TextInput},
|
||||||
}
|
}
|
||||||
|
view_on_site = False
|
||||||
|
|
||||||
def has_add_permission(self, req): return False
|
def has_add_permission(self, req): return False
|
||||||
|
|
||||||
|
@ -191,6 +209,7 @@ class ResitelAdmin(VersionAdmin):
|
||||||
list_filter = ['pohlavi_muz', 'rok_maturity', 'zasilat']
|
list_filter = ['pohlavi_muz', 'rok_maturity', 'zasilat']
|
||||||
search_fields = ['jmeno', 'prijmeni', 'ulice', 'mesto', 'email']
|
search_fields = ['jmeno', 'prijmeni', 'ulice', 'mesto', 'email']
|
||||||
inlines = [ReseniKResiteliInline]
|
inlines = [ReseniKResiteliInline]
|
||||||
|
view_on_site = False
|
||||||
|
|
||||||
def get_queryset(self, request):
|
def get_queryset(self, request):
|
||||||
qs = super(ResitelAdmin, self).get_queryset(request)
|
qs = super(ResitelAdmin, self).get_queryset(request)
|
||||||
|
@ -216,6 +235,7 @@ class SkolaAdmin(VersionAdmin):
|
||||||
list_filter = ['stat', 'je_zs', 'je_ss']
|
list_filter = ['stat', 'je_zs', 'je_ss']
|
||||||
search_fields = ['nazev', 'mesto', 'ulice']
|
search_fields = ['nazev', 'mesto', 'ulice']
|
||||||
inlines = [ResitelInline]
|
inlines = [ResitelInline]
|
||||||
|
view_on_site = False
|
||||||
|
|
||||||
admin.site.register(Skola, SkolaAdmin)
|
admin.site.register(Skola, SkolaAdmin)
|
||||||
|
|
||||||
|
@ -236,6 +256,7 @@ class CisloAdmin(VersionAdmin):
|
||||||
make_set_action('verejna_vysledkovka', True, u'Zveřejnit výsledkovku'),
|
make_set_action('verejna_vysledkovka', True, u'Zveřejnit výsledkovku'),
|
||||||
make_set_action('verejna_vysledkovka', False, u'Skrýt (zneveřejnit) výsledkovku'),
|
make_set_action('verejna_vysledkovka', False, u'Skrýt (zneveřejnit) výsledkovku'),
|
||||||
]
|
]
|
||||||
|
inlines = [ProblemInline]
|
||||||
|
|
||||||
def get_queryset(self, request):
|
def get_queryset(self, request):
|
||||||
qs = super(CisloAdmin, self).get_queryset(request)
|
qs = super(CisloAdmin, self).get_queryset(request)
|
||||||
|
@ -288,6 +309,7 @@ class ReseniAdmin(VersionAdmin):
|
||||||
list_filter = ['body', 'timestamp', 'forma']
|
list_filter = ['body', 'timestamp', 'forma']
|
||||||
search_fields = []
|
search_fields = []
|
||||||
inlines = [PrilohaReseniInline]
|
inlines = [PrilohaReseniInline]
|
||||||
|
view_on_site = False
|
||||||
|
|
||||||
def get_queryset(self, request):
|
def get_queryset(self, request):
|
||||||
qs = super(ReseniAdmin, self).get_queryset(request)
|
qs = super(ReseniAdmin, self).get_queryset(request)
|
||||||
|
@ -307,6 +329,7 @@ class PohadkaAdminForm(forms.ModelForm):
|
||||||
|
|
||||||
class PohadkaAdmin(VersionAdmin):
|
class PohadkaAdmin(VersionAdmin):
|
||||||
form = PohadkaAdminForm
|
form = PohadkaAdminForm
|
||||||
|
view_on_site = False
|
||||||
|
|
||||||
def get_kod_ulohy(self, obj):
|
def get_kod_ulohy(self, obj):
|
||||||
return obj.uloha.kod_v_rocniku()
|
return obj.uloha.kod_v_rocniku()
|
||||||
|
|
Loading…
Reference in a new issue