From f2bdb970ab06e6f080856a910dbd1acec125a7f1 Mon Sep 17 00:00:00 2001 From: "Bc. Petr Pecha" Date: Fri, 3 Jul 2015 10:54:13 +0200 Subject: [PATCH 01/13] soustredeni +action zverejnit soustredeni --- seminar/admin.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/seminar/admin.py b/seminar/admin.py index 6ca5d238..9036592f 100644 --- a/seminar/admin.py +++ b/seminar/admin.py @@ -298,6 +298,12 @@ create_modeladmin(ProblemZadanyAdmin, Problem, 'ProblemZadany', verbose_name=u'P ### Soustredeni +def zverejnit_soustredeni(modeladmin, request, queryset): + for soustredeni in queryset: + soustredeni.verejne_db = True + soustredeni.save() +zverejnit_soustredeni.short_description = 'Zveřejnit soustředění' + class SoustredeniAdminForm(forms.ModelForm): text = forms.CharField(widget=CKEditorWidget(), required=False, **field_labels(Soustredeni, 'text')) class Meta: @@ -314,6 +320,7 @@ class SoustredeniAdmin(reversion.VersionAdmin): inlines = [Soustredeni_UcastniciInline] list_filter = ['rocnik'] view_on_site = Soustredeni.verejne_url + actions = [zverejnit_soustredeni,] admin.site.register(Soustredeni, SoustredeniAdmin) From 82cf4c6a64712caa6843bb189d225a0ed8db6d3a Mon Sep 17 00:00:00 2001 From: "Bc. Petr Pecha" Date: Fri, 3 Jul 2015 11:13:46 +0200 Subject: [PATCH 02/13] soustredeni | Neverejna soustredeni viditelna pro prihlasene --- .../seminar/soustredeni/seznam_soustredeni.html | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/seminar/templates/seminar/soustredeni/seznam_soustredeni.html b/seminar/templates/seminar/soustredeni/seznam_soustredeni.html index 4864290f..6485fc92 100644 --- a/seminar/templates/seminar/soustredeni/seznam_soustredeni.html +++ b/seminar/templates/seminar/soustredeni/seznam_soustredeni.html @@ -7,8 +7,15 @@ {# Projdi vsechna soustredeni #} {% for soustredeni in object_list %} {# Kdyz je verejne -> zobraz #} - {% if soustredeni.verejne_db %} - {# misto a cas soustredeni TODO upravit#} + {% if soustredeni.verejne_db or user.is_authenticated %} + {% if user.is_authenticated %} + Groups of user: {{user.groups.all}}
+ + Toto soustředění není veřejné, vidíte ho jen proto, + že jste přihlášení.
+ {% endif %} + {# misto soustredeni TODO upravit#} {% if soustredeni.misto %}

Soustředění v {{soustredeni.misto}} @@ -29,9 +36,6 @@
  • Nic! {% endfor %} - {# Kdyz neni verejne, tak TODO zobraz jen pro prihlasene orgy #} - {% else %} - {# TODO if org je prihlaseny, predelat na (verejne OR jsem_org) #} {% endif %} {% empty %} Žádná soustředění zatím neproběhla! From b5dda32fee7156fbc935b01a555af4babcdb6886 Mon Sep 17 00:00:00 2001 From: "Bc. Petr Pecha" Date: Fri, 3 Jul 2015 11:18:32 +0200 Subject: [PATCH 03/13] soustredeni +action skryti soustredeni --- seminar/admin.py | 8 +++++++- .../templates/seminar/soustredeni/seznam_soustredeni.html | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/seminar/admin.py b/seminar/admin.py index 9036592f..29954951 100644 --- a/seminar/admin.py +++ b/seminar/admin.py @@ -304,6 +304,12 @@ def zverejnit_soustredeni(modeladmin, request, queryset): soustredeni.save() zverejnit_soustredeni.short_description = 'Zveřejnit soustředění' +def skryt_soustredeni(modeladmin, request, queryset): + for soustredeni in queryset: + soustredeni.verejne_db = False + soustredeni.save() +skryt_soustredeni.short_description = 'Skrýt soustředění (Zneveřjnit)' + class SoustredeniAdminForm(forms.ModelForm): text = forms.CharField(widget=CKEditorWidget(), required=False, **field_labels(Soustredeni, 'text')) class Meta: @@ -320,7 +326,7 @@ class SoustredeniAdmin(reversion.VersionAdmin): inlines = [Soustredeni_UcastniciInline] list_filter = ['rocnik'] view_on_site = Soustredeni.verejne_url - actions = [zverejnit_soustredeni,] + actions = [zverejnit_soustredeni, skryt_soustredeni, ] admin.site.register(Soustredeni, SoustredeniAdmin) diff --git a/seminar/templates/seminar/soustredeni/seznam_soustredeni.html b/seminar/templates/seminar/soustredeni/seznam_soustredeni.html index 6485fc92..1159f9e6 100644 --- a/seminar/templates/seminar/soustredeni/seznam_soustredeni.html +++ b/seminar/templates/seminar/soustredeni/seznam_soustredeni.html @@ -8,7 +8,7 @@ {% for soustredeni in object_list %} {# Kdyz je verejne -> zobraz #} {% if soustredeni.verejne_db or user.is_authenticated %} - {% if user.is_authenticated %} + {% if not soustredeni.verejne_db and user.is_authenticated %} Groups of user: {{user.groups.all}}
    From 7542adb996f142b6a9eb8afd86a7641a0dbe4081 Mon Sep 17 00:00:00 2001 From: Tomas Gavenciak Date: Fri, 3 Jul 2015 17:50:35 +0200 Subject: [PATCH 04/13] Fix cislo URL --- Makefile | 2 +- mamweb/settings.py | 11 +++++++++-- seminar/urls.py | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 495e6bfc..972ab3f6 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,7 @@ push_test: (chown -Rf :mam . || true ) && \ (chmod -Rf g+w . || true ) && \ echo 'Reloading apache ... (You may have to start it manually on error!)' && \ - ~/etc/apache2/apache2ctl -k reload && \ + ~/etc/apache2/apache2ctl -k restart && \ echo Done." @echo "Test pushed to ${TEST_SERVER}:${TEST_DIR} successfully." diff --git a/mamweb/settings.py b/mamweb/settings.py index e1b17817..6ea87900 100644 --- a/mamweb/settings.py +++ b/mamweb/settings.py @@ -23,8 +23,15 @@ ALLOWED_HOSTS = ['127.0.0.1'] DATABASES = { 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': os.path.join(BASE_DIR, 'db-local.sqlite3'), +# 'ENGINE': 'django.db.backends.sqlite3', +# 'NAME': os.path.join(BASE_DIR, 'db-local.sqlite3'), + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'mam-prod', + 'USER': 'mam', + 'TEST': { + 'NAME': 'mam-test', + } + } } diff --git a/seminar/urls.py b/seminar/urls.py index 3be2970f..fc401f2a 100644 --- a/seminar/urls.py +++ b/seminar/urls.py @@ -8,7 +8,7 @@ urlpatterns = patterns('', url(r'^archiv/cisla/$', views.CislaView.as_view()), url(r'^rocnik/(?P\d+)/$', views.RocnikView.as_view(), name='seminar_rocnik'), - url(r'^cislo/(?P\d+).(?P\d+)/$', views.CisloView.as_view(), name='seminar_cislo'), + url(r'^cislo/(?P\d+)\.(?P\d+)/$', views.CisloView.as_view(), name='seminar_cislo'), url(r'^problem/(?P\d+)/$', views.ProblemView.as_view(), name='seminar_problem'), url(r'^soustredeni/$', views.SoustredeniListView.as_view(), From c75fe27a60d9f5d0f4b4931f76cf5b7a6dc4d8b7 Mon Sep 17 00:00:00 2001 From: Tomas Gavenciak Date: Fri, 3 Jul 2015 17:55:39 +0200 Subject: [PATCH 05/13] Komentare k pocitani vysledkovky --- seminar/views.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/seminar/views.py b/seminar/views.py index 46e1390a..12fc1650 100644 --- a/seminar/views.py +++ b/seminar/views.py @@ -74,23 +74,31 @@ class CisloView(generic.DetailView): def get_context_data(self, **kwargs): context = super(CisloView, self).get_context_data(**kwargs) + # Vysledky k cislu: seznam objektu typu (cislo, resitel, body [v tom cisle], body_celkem [od zac. rocniku]) vysledky = VysledkyKCislu.objects.filter(cislo = context['cislo']).order_by('-body_celkem').select_related("resitel") + reseni = Reseni.objects.filter(cislo_body = context['cislo']).select_related("resitel") + # seznam problemu s nejakymi body v tomto cisle problemy = sorted(list(set([r.problem for r in reseni])), key=lambda x:(0 if x.typ==Problem.TYP_ULOHA else 1,x.kod)) + # cislo sloupecku pro problem (inverzni funkce) problem_index = {} for i in range(len(problemy)): problem_index[problemy[i].id] = i + # pomocna mapa Resitel: RadekVysledkovky vysledky_resitele = {} + # radky vysledkovky, seznam objektu RadekVysledkovky vysledkovka = [] + # posledni pocet bodu, pro detekci stejnych mist posledni_body = 100000 + for vi in range(len(vysledky)): v = vysledky[vi] tv = RadekVysledkovky() tv.resitel = v.resitel tv.vysledek = v - tv.body = ['']*len(problemy) + tv.body = ['']*len(problemy) # misto pro body za jednotlive uloy tv.poradi = '' if posledni_body > v.body_celkem: posledni_body = v.body_celkem @@ -98,6 +106,7 @@ class CisloView(generic.DetailView): vysledky_resitele[v.resitel.id] = tv vysledkovka.append(tv) + # doplneni bodu za jednotliva reseni lidi do RadekVysledkovky.body for r in reseni: vysledky_resitele[r.resitel.id].body[problem_index[r.problem.id]] = r.body From da64ec12a0a803b3698c10381196a6ef38135430 Mon Sep 17 00:00:00 2001 From: Tomas Gavenciak Date: Fri, 3 Jul 2015 17:50:35 +0200 Subject: [PATCH 06/13] Fix: vraceni nastaveni lokalni DB --- mamweb/settings.py | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/mamweb/settings.py b/mamweb/settings.py index 6ea87900..e1b17817 100644 --- a/mamweb/settings.py +++ b/mamweb/settings.py @@ -23,15 +23,8 @@ ALLOWED_HOSTS = ['127.0.0.1'] DATABASES = { 'default': { -# 'ENGINE': 'django.db.backends.sqlite3', -# 'NAME': os.path.join(BASE_DIR, 'db-local.sqlite3'), - 'ENGINE': 'django.db.backends.postgresql_psycopg2', - 'NAME': 'mam-prod', - 'USER': 'mam', - 'TEST': { - 'NAME': 'mam-test', - } - + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db-local.sqlite3'), } } From 09b8b7c0df4ed9b7fb5a83aaf2a15661bbf95aa9 Mon Sep 17 00:00:00 2001 From: "Bc. Petr Pecha" Date: Sun, 5 Jul 2015 09:49:00 +0200 Subject: [PATCH 07/13] organizatori | admin | list_display --- seminar/admin.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/seminar/admin.py b/seminar/admin.py index 29954951..8e6d8a96 100644 --- a/seminar/admin.py +++ b/seminar/admin.py @@ -346,7 +346,18 @@ admin.site.register(Novinky, NovinkyAdmin) ### Organizator +def jmeno_organizatora(obj): + return ('%s \"%s\" %s' % + (obj.user.first_name, obj.prezdivka, obj.user.last_name)) +jmeno_organizatora.short_description = 'Jméno organizátora' + +def je_organizator_aktivni(obj): + return obj.user.is_active +je_organizator_aktivni.short_description = 'Aktivní' +je_organizator_aktivni.boolean = True + @admin.register(Organizator) class OrganizatorAdmin(admin.ModelAdmin): list_filter = ['organizuje_do_roku'] + list_display = [jmeno_organizatora, je_organizator_aktivni,] From b19cbe60325d254ff6307c8d0a4d15b6b216c4bd Mon Sep 17 00:00:00 2001 From: "Bc. Petr Pecha" Date: Sun, 5 Jul 2015 10:12:47 +0200 Subject: [PATCH 08/13] organizatori | admin | actions --- seminar/admin.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/seminar/admin.py b/seminar/admin.py index 8e6d8a96..6a491766 100644 --- a/seminar/admin.py +++ b/seminar/admin.py @@ -347,17 +347,35 @@ admin.site.register(Novinky, NovinkyAdmin) ### Organizator def jmeno_organizatora(obj): + ''' vraci jmeno organizatora ''' return ('%s \"%s\" %s' % (obj.user.first_name, obj.prezdivka, obj.user.last_name)) jmeno_organizatora.short_description = 'Jméno organizátora' def je_organizator_aktivni(obj): + ''' zjisti, zda-li je organizator aktivni ''' return obj.user.is_active je_organizator_aktivni.short_description = 'Aktivní' je_organizator_aktivni.boolean = True +def zaktivovat_organizatory(modeladmin, request, queryset): + ''' vybrane organizatory oznaci jako aktivni ''' + for org in queryset: + org.user.is_active = True + org.user.save() +zaktivovat_organizatory.short_description = 'Zaktivovat organizátory' + +def deaktivovat_organizatory(modeladmin, request, queryset): + ''' deaktivuje vybrane organizatory ''' + for org in queryset: + org.user.is_active = False + org.user.save() +deaktivovat_organizatory.short_description = 'Deaktivovat organizátory' + + @admin.register(Organizator) class OrganizatorAdmin(admin.ModelAdmin): list_filter = ['organizuje_do_roku'] list_display = [jmeno_organizatora, je_organizator_aktivni,] + actions = [zaktivovat_organizatory, deaktivovat_organizatory,] From e2edab52f873dc080f11d82f94059102d84914c6 Mon Sep 17 00:00:00 2001 From: "Bc. Petr Pecha" Date: Sun, 5 Jul 2015 10:21:19 +0200 Subject: [PATCH 09/13] organizatori | admin | oprava zobrazovani "" navic --- seminar/admin.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/seminar/admin.py b/seminar/admin.py index 6a491766..738225a1 100644 --- a/seminar/admin.py +++ b/seminar/admin.py @@ -348,8 +348,11 @@ admin.site.register(Novinky, NovinkyAdmin) def jmeno_organizatora(obj): ''' vraci jmeno organizatora ''' - return ('%s \"%s\" %s' % - (obj.user.first_name, obj.prezdivka, obj.user.last_name)) + jmeno = obj.user.first_name + if obj.prezdivka: + jmeno = jmeno + ' "' + obj.prezdivka + '"' + jmeno = jmeno + ' ' + obj.user.last_name + return jmeno jmeno_organizatora.short_description = 'Jméno organizátora' def je_organizator_aktivni(obj): From bc3cbf1c410d53a75d97934edbb880f646929b93 Mon Sep 17 00:00:00 2001 From: "Bc. Petr Pecha" Date: Sun, 5 Jul 2015 10:31:35 +0200 Subject: [PATCH 10/13] organizatori | admin | zobrazeni bezejmennych orgu --- seminar/admin.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/seminar/admin.py b/seminar/admin.py index 738225a1..39e38a70 100644 --- a/seminar/admin.py +++ b/seminar/admin.py @@ -352,6 +352,9 @@ def jmeno_organizatora(obj): if obj.prezdivka: jmeno = jmeno + ' "' + obj.prezdivka + '"' jmeno = jmeno + ' ' + obj.user.last_name + print jmeno + if jmeno == ' ': # zobrazeni bezejmennych orgu + return 'org' return jmeno jmeno_organizatora.short_description = 'Jméno organizátora' From 1ab486d15ff1f5536d4d5af320f9a33915ae12e9 Mon Sep 17 00:00:00 2001 From: "Bc. Petr Pecha" Date: Sun, 5 Jul 2015 10:34:49 +0200 Subject: [PATCH 11/13] organizatori | zapomenuty vypis --- seminar/admin.py | 1 - 1 file changed, 1 deletion(-) diff --git a/seminar/admin.py b/seminar/admin.py index 39e38a70..de4c800d 100644 --- a/seminar/admin.py +++ b/seminar/admin.py @@ -352,7 +352,6 @@ def jmeno_organizatora(obj): if obj.prezdivka: jmeno = jmeno + ' "' + obj.prezdivka + '"' jmeno = jmeno + ' ' + obj.user.last_name - print jmeno if jmeno == ' ': # zobrazeni bezejmennych orgu return 'org' return jmeno From 66c92b4520fadfd74cbdfc31d1bab94f41202159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Mus=C3=ADlek?= Date: Sun, 5 Jul 2015 15:41:30 +0200 Subject: [PATCH 12/13] =?UTF-8?q?Prvn=C3=AD=20hrub=C3=BD=20n=C3=A1st=C5=99?= =?UTF-8?q?el=20vzhledu.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 128 +++++++++++++++++- mamweb/static/images/logocb.png | Bin 0 -> 4471 bytes mamweb/templates/base.html | 44 +++++- mamweb/templates/menu.html | 4 +- seminar/templates/seminar/zadani/submenu.html | 2 +- 5 files changed, 164 insertions(+), 14 deletions(-) create mode 100644 mamweb/static/images/logocb.png diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 1e6f003b..9c2f0a6a 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1,6 +1,8 @@ -.header { - font-size: 200%; - background: #ea3; +@import url(http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,400,300,600&subset=latin,latin-ext); + +body { + font-family: 'Open Sans', sans-serif; + font-weight: 300; } .org-logged-in .mam-text-plugin { @@ -39,4 +41,124 @@ table .border-b { height: 6em; } +/* Headline & Header */ + +#headline { + padding: 6px 10px; + font-size: 150%; + font-weight: 400; + background: #00c322; /* @mamgreen */ +} + +#header { + position: relative; + z-index: -1; +} + +.header-lg { + font-size: 250%; + background-color: rgba(255,195,0,0.8); + height: 220px; + position: relative; +} +.header-md { + font-size: 250%; + background-color: rgba(255,195,0,0.8); + height: 220px; + position: relative; +} + +#header img.logo { + position: absolute; + top: 25px; + left: 25px; + height: 110px; +} +#header h1 { + font-size: 130%; + position: absolute; + top: 125px; + left: 30px; + height: 110px; +} +#header img.header { + margin: -25px 20px 0px 0px; + height: 145px; + float: right; + visibility: hidden; +} + +/* Menu */ +#menu { + background: #00c322; /* @mamgreen */ + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; +} +#menu ul { + padding: 0px; + margin: 0px; +} +#menu li { + display: inline-block; + border-radius: 0px; + + padding: 0px; + width: 16.66%; + min-width: 140px; + text-align: center; + + font-size: 150%; + font-weight: 400; + font-variant: small-caps; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; +} +#menu a { + display: block; + padding: 8px 10px; + color: black; +} +#menu a:hover { + background: #ffb000; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + text-decoration: none; +} + +#submenu { + /*border: 1px solid black;*/ +} +#submenu ul { + padding: 0px 0px; + margin: 20px 0px 20px 0px; + background: #00c322; /* @mamgreen */ + border-radius: 8px; + list-style-position: inside; + width: 100%; +} +#submenu li { + border-radius: 0px; + padding: 6px 15px; + margin-right: 0px; + font-size: 120%; +} +#submenu li:hover { + background: #ffb000; +} +#submenu li:first-child { + border-top-left-radius: 7px; + border-top-right-radius: 7px; + padding-top: 8px; +} +#submenu li:last-child { + border-bottom-left-radius: 7px; + border-bottom-right-radius: 7px; + padding-bottom: 8px; +} +#submenu li>a { + color: #000; +} +#submenu li>a:hover { + text-decoration: none; +} diff --git a/mamweb/static/images/logocb.png b/mamweb/static/images/logocb.png new file mode 100644 index 0000000000000000000000000000000000000000..a35150a521e22e42cd0e9028b884bbb4a2216664 GIT binary patch literal 4471 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 JPDHLkV1hAFinss( literal 0 HcmV?d00001 diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index 5812ccfc..e43a837a 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -30,16 +30,46 @@ {% endif %}
    -
    - Korespondenční seminář M&M +
    +
    +
    + Studentský korespondenční seminář a časopis MFF UK +
    +
    +
    +
    +
    + +
    -
    - {% include "menu.html" %} - {% block submenu %} - {% endblock %} +
    + +
    +
    +
    +
    +
    -
    +
    {% block content %} {% endblock content %}
    diff --git a/mamweb/templates/menu.html b/mamweb/templates/menu.html index 76958171..aa2a570d 100644 --- a/mamweb/templates/menu.html +++ b/mamweb/templates/menu.html @@ -1,15 +1,13 @@ {% load i18n cache mam_menu %} {% aktualni_rocniky as rs %} -

    MENU

    -