From b743d1af89ac416e7905a2b86c1749530e5829c8 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Tue, 27 Nov 2012 21:29:22 +0100 Subject: [PATCH] very rough layout with header/content-main/content-related --- Makefile | 43 +++++++++++++++++- README | 46 ++++++++++++++++++++ auth/templates/{auth.html => login.html} | 0 auth/views.py | 2 +- myslice/static/css/mymenu.css | 19 +++++++- myslice/static/css/myslice.css | 28 ++++++++++++ myslice/static/img/myslice-logo.png | Bin 4595 -> 4384 bytes myslice/templates/mymenu.html | 14 ++++-- myslice/templates/myslice-base.html | 37 ---------------- myslice/templates/myslice.html | 53 +++++++++++++++++++++++ myslice/urls.py | 1 + slice/templates/slice.html | 5 +-- slice/views.py | 8 ++++ templates/myslice.html | 28 ------------ 14 files changed, 208 insertions(+), 76 deletions(-) create mode 100644 README rename auth/templates/{auth.html => login.html} (100%) create mode 100644 myslice/static/css/myslice.css delete mode 100644 myslice/templates/myslice-base.html create mode 100644 myslice/templates/myslice.html delete mode 100644 templates/myslice.html diff --git a/Makefile b/Makefile index 80fcc4f1..d18ae06d 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,10 @@ -all: tags +### +all: + @echo no default target force: +#################### compute emacs tags # in general it's right to rely on the contents as reported by git tags: force git ls-files | xargs etags @@ -10,8 +13,46 @@ tags: force ftags: force find . -type f | fgrep -v '/.git/' | xargs etags +#################### manage static contents (extract from all the modules into the single all-static location) static: force ./manage.py collectstatic --noinput clean-static: force rm -rf ./all-static/ + +#################### sync : push current code on a (devel) box running myslice +SSHURL:=root@$(MYSLICEBOX):/ +SSHCOMMAND:=ssh root@$(MYSLICEBOX) + +### rsync options +# the config file should probably not be overridden +LOCAL_RSYNC_EXCLUDES := --exclude '*.pyc' --exclude settings.py --exclude devel +# usual excludes +RSYNC_EXCLUDES := --exclude .git --exclude '*~' --exclude TAGS --exclude .DS_Store $(LOCAL_RSYNC_EXCLUDES) +# make -n will propagate as rsync -n +RSYNC_COND_DRY_RUN := $(if $(findstring n,$(MAKEFLAGS)),--dry-run,) +# putting it together +RSYNC := rsync -a -v $(RSYNC_COND_DRY_RUN) $(RSYNC_EXCLUDES) + +# xxx until we come up with a packaging this is going to be a wild guess +INSTALLED=/usr/share/myslice + +sync: +ifeq (,$(MYSLICEBOX)) + @echo "you need to set MYSLICEBOX, like in e.g." + @echo " $(MAKE) MYSLICEBOX=debian04.pl.sophia.inria.fr "$@"" + @exit 1 +else + +$(RSYNC) ./ $(SSHURL)/$(INSTALLED)/ +endif + +# xxx likewise until we run this under apache it's probably hard to restart from here +restart: +ifeq (,$(MYSLICEBOX)) + @echo "you need to set MYSLICEBOX, like in e.g." + @echo " $(MAKE) MYSLICEBOX=debian04.pl.sophia.inria.fr "$@"" + @exit 1 +else + @echo "$@" target not yet implemented; exit; @$(SSHCOMMAND) /etc/init.d/apache2 restart +endif + diff --git a/README b/README new file mode 100644 index 00000000..a956b99a --- /dev/null +++ b/README @@ -0,0 +1,46 @@ +The contents of this module: + +==================== 1st level subdirs +* myslice: + this is the sjango project', where to look for + . settings + . urls + . common static files + +* insert_above: + a third-party django app for adding on-the-fly mentions to css or js files that need to go in the header + much like our past drupal_set_html_head() + +* auth: + a django 'app' that deals with authentication + +* slice: + a django app for dealing with slice views + +* devel: + only for various notes and other utiliy scripts + +* all-static: (generated, no need to source-control) + this is where 'manage.py collectstatic' will gather all your static contents if you run a local server + make has convenience targets to refresh this area + $ make clean-static + $ make static +==================== conventions + +* templates: + we store this under templates/ within the corresponding app, e.g. + auth/templates/login.html + for now this is only about html, but the engine can be used for rendering anything including json or whatever.. + +* static files: + we chose to have all static files (images, but also javascript and stylesheets) in the various + proj or app where they belong, under a static/ subdir that has this structure: + where-it-belongs/ + static/ + img/ + css/ + js/ + the stuff I have so far is in myslice/ because it looks common to all apps.. + + + diff --git a/auth/templates/auth.html b/auth/templates/login.html similarity index 100% rename from auth/templates/auth.html rename to auth/templates/login.html diff --git a/auth/views.py b/auth/views.py index 3004c2eb..11f773bb 100644 --- a/auth/views.py +++ b/auth/views.py @@ -21,5 +21,5 @@ def login_user(request): else: state = "Your username and/or password were incorrect." - return render_to_response('auth.html',{'state':state, 'username': username}, + return render_to_response('login.html',{'state':state, 'username': username}, context_instance=RequestContext(request)) diff --git a/myslice/static/css/mymenu.css b/myslice/static/css/mymenu.css index cddbfe8e..06e37819 100644 --- a/myslice/static/css/mymenu.css +++ b/myslice/static/css/mymenu.css @@ -1,8 +1,23 @@ -ul#mymenu { +ul#mymenu { display: block; } +ul#mymenu>li { display: block; + float: left; + padding: 5px; +} + +/* +div.mymenu { position: fixed; display: block; padding:0; margin:0; - bottom: 10px; + top: 10px; right: 10px; + background-color: #abc; +} + +ul.mymenu { + list-style-type: none; + margin: 0; + padding: 0; } +*/ diff --git a/myslice/static/css/myslice.css b/myslice/static/css/myslice.css new file mode 100644 index 00000000..4173ccc4 --- /dev/null +++ b/myslice/static/css/myslice.css @@ -0,0 +1,28 @@ +#header { + position: fixed; + display: block; + margin:0; + top: 0px; + left: 0px; + right: 0px; + height: 60px; + background-color: #fc9; +} + +#column-wrap { + margin-top: 60px; + display: table; + table-layout: fixed; + border-collapse: collapse; +} +#content-main, #content-related { + display: table-cell; + position: static; + padding: 10px; +} +#content-main { + width: 100%; +} +#content-related { + width: 200px; +} diff --git a/myslice/static/img/myslice-logo.png b/myslice/static/img/myslice-logo.png index f6b5de4fa3616f5c03b6da23a5210d4a703c5f03..74413e51f72ca2d616d1779bafc8c3fcb3565721 100644 GIT binary patch literal 4384 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 XS5_GK8TH^X005v(ZA==Cd=mc$Sv7>r diff --git a/myslice/templates/mymenu.html b/myslice/templates/mymenu.html index 990b6a77..d19b19d1 100644 --- a/myslice/templates/mymenu.html +++ b/myslice/templates/mymenu.html @@ -1,13 +1,21 @@ {% insert_str prelude "js/mymenu.js" %} {% insert_str prelude "css/mymenu.css" %} {# this shows how to add raw js code #} -{% insert raw_js %} "some script useful for mymenu" {% endinsert %} +{# {% insert raw_js %} "some script useful for mymenu" {% endinsert %} #} {# use the raw_css container for css style #} - +
+
diff --git a/myslice/templates/myslice-base.html b/myslice/templates/myslice-base.html deleted file mode 100644 index 26dda516..00000000 --- a/myslice/templates/myslice-base.html +++ /dev/null @@ -1,37 +0,0 @@ -{# This is required by insert_above #} -{% insert_handler %} - - - MySlice - slice page with python var foo = {{ foo }} -{# This is where insert_str will end up #} -{% media_container prelude %} - - - - -{# let's add this one no matter what #} -{% insert_str prelude "css/miscell.css" %} - - -{% block menu %} {% endblock %} - -{% block left %} -
- {{ left|default:"The left area" }} -
-{% endblock %} - -{% block main %} -

Again, python var foo = {{ foo }}

- {{ main }} -
-
-{% block content %} and more stuff if needed {% endblock %} -{% endblock %} - - - diff --git a/myslice/templates/myslice.html b/myslice/templates/myslice.html new file mode 100644 index 00000000..1a49a393 --- /dev/null +++ b/myslice/templates/myslice.html @@ -0,0 +1,53 @@ +{# This is required by insert_above #} +{% insert_handler %} + + + MySlice - slice page with python var foo = {{ foo|default:"foo is undefined"}} +{# This is where insert_str will end up #} +{% media_container prelude %} + + + + +{# let's add this one no matter what #} +{% insert_str prelude "css/myslice.css" %} +{% insert_str prelude "css/miscell.css" %} + + + +{% block container %} +
+ + + + {% block column_wrap %} +
+
+ {% block content_main %} + "The main content area (set block 'content_main')" + {% endblock content_main %} +
+ + +
+ {% endblock column_wrap %} + +
+{% endblock container %} + + + diff --git a/myslice/urls.py b/myslice/urls.py index 21681ea0..91c81457 100644 --- a/myslice/urls.py +++ b/myslice/urls.py @@ -22,4 +22,5 @@ urlpatterns = patterns( (r'^login/?$', 'auth.views.login_user'), (r'^slice/?$', 'slice.views.fake_view'), (r'^slice/(?P\w+)/?$', 'slice.views.fake_view'), + (r'^sample/?$', 'slice.views.sample'), ) diff --git a/slice/templates/slice.html b/slice/templates/slice.html index 3ca50c87..2d4aa335 100644 --- a/slice/templates/slice.html +++ b/slice/templates/slice.html @@ -1,10 +1,7 @@ -{% extends 'myslice-base.html' %} +{% extends 'myslice.html' %} {% block content %}

The URL variable name= {{ name }}

{{ content_string|safe }} {% endblock content %} -{% block menu %} -{% include 'mymenu.html' %} -{% endblock menu %} diff --git a/slice/views.py b/slice/views.py index e55e06e8..8eefd1d3 100644 --- a/slice/views.py +++ b/slice/views.py @@ -19,3 +19,11 @@ Lorem ipsum dolor sit amet, consectetuer adipiscing el context_instance=RequestContext(request)) return result + +def sample (request): + return render_to_response ('sample.html', + { 'menu_items': + [ { 'label':'Some label', 'href': '/url1/','current':True, }, + { 'label':'Another topic ', 'href': '/other/'}, + ]}, + context_instance=RequestContext(request)) diff --git a/templates/myslice.html b/templates/myslice.html deleted file mode 100644 index ff08592e..00000000 --- a/templates/myslice.html +++ /dev/null @@ -1,28 +0,0 @@ - - - {{ title }} -{{ - - - -
- -
- {% block top %} -
- -
- {% endblock top %} -
- -
- {% block content %} - Welcome... - {% endblock content %} -
-
- -- 2.47.0