From 40f33348f818507d28a6fae854f94efeac87b940 Mon Sep 17 00:00:00 2001 From: Oliver Marks Date: Thu, 18 Jun 2015 14:06:43 +0100 Subject: [PATCH] add competition page, fix banner, add favicon --- Dockerfile | 2 +- LICENSE | 0 requirements.txt | 1 + site/__init__.py | 0 site/constants.py | 1 + site/generate.py | 113 ++++++++++++++------- site/index.py | 7 +- site/static/images/favicon.png | Bin 0 -> 1329 bytes site/static/template/default.css | 3 + site/static/template/images/example-01.jpg | Bin site/static/template/images/example-02.jpg | Bin site/static/template/images/example-03.jpg | Bin site/static/template/images/hackspace.png | Bin site/static/template/images/hackspace.svg | 0 site/static/template/images/icon.png | Bin site/static/template/images/tile-01.jpg | Bin site/static/template/images/tile-02.jpg | Bin site/widgets/__init__.py | 0 site/widgets/__init__.pyc | Bin site/widgets/banner_slider.py | 5 +- site/widgets/banner_slider.pyc | Bin 2609 -> 2609 bytes site/widgets/columns.py | 23 +++++ site/widgets/example.py | 22 ++++ site/widgets/footer-content.pyc | Bin site/widgets/footer.pyc | Bin site/widgets/footer_content.py | 0 site/widgets/footer_content.pyc | Bin site/widgets/google_group.pyc | Bin site/widgets/google_groups.py | 0 site/widgets/google_groups.pyc | Bin site/widgets/google_hangout.py | 0 site/widgets/google_hangout.pyc | Bin site/widgets/header_strip.py | 20 ++-- site/widgets/header_strip.pyc | Bin 1278 -> 1469 bytes site/widgets/headerstrip.pyc | Bin site/widgets/loginbox.py | 0 site/widgets/loginbox.pyc | Bin site/widgets/readme | 0 38 files changed, 145 insertions(+), 52 deletions(-) mode change 100644 => 100755 LICENSE mode change 100644 => 100755 site/__init__.py create mode 100644 site/static/images/favicon.png mode change 100644 => 100755 site/static/template/images/example-01.jpg mode change 100644 => 100755 site/static/template/images/example-02.jpg mode change 100644 => 100755 site/static/template/images/example-03.jpg mode change 100644 => 100755 site/static/template/images/hackspace.png mode change 100644 => 100755 site/static/template/images/hackspace.svg mode change 100644 => 100755 site/static/template/images/icon.png mode change 100644 => 100755 site/static/template/images/tile-01.jpg mode change 100644 => 100755 site/static/template/images/tile-02.jpg mode change 100644 => 100755 site/widgets/__init__.py mode change 100644 => 100755 site/widgets/__init__.pyc create mode 100644 site/widgets/columns.py create mode 100644 site/widgets/example.py mode change 100644 => 100755 site/widgets/footer-content.pyc mode change 100644 => 100755 site/widgets/footer.pyc mode change 100644 => 100755 site/widgets/footer_content.py mode change 100644 => 100755 site/widgets/footer_content.pyc mode change 100644 => 100755 site/widgets/google_group.pyc mode change 100644 => 100755 site/widgets/google_groups.py mode change 100644 => 100755 site/widgets/google_groups.pyc mode change 100644 => 100755 site/widgets/google_hangout.py mode change 100644 => 100755 site/widgets/google_hangout.pyc mode change 100644 => 100755 site/widgets/header_strip.py mode change 100644 => 100755 site/widgets/headerstrip.pyc mode change 100644 => 100755 site/widgets/loginbox.py mode change 100644 => 100755 site/widgets/loginbox.pyc mode change 100644 => 100755 site/widgets/readme diff --git a/Dockerfile b/Dockerfile index f6c2e41..cb15e70 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ RUN \ apt-get update && \ apt-get upgrade -y && \ apt-get install -y software-properties-common python-software-properties && \ - apt-get install -y python-requests python-lxml python-flask + apt-get install -y python-requests python-lxml python-flask python-tz RUN add-apt-repository -y ppa:oly/ppa RUN apt-get update diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/requirements.txt b/requirements.txt index b745475..b74ecee 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ flask lxml requests +pytz pip install -e bzr+lp:scaffold#egg=scaffold diff --git a/site/__init__.py b/site/__init__.py old mode 100644 new mode 100755 diff --git a/site/constants.py b/site/constants.py index 323a17b..6f9b828 100644 --- a/site/constants.py +++ b/site/constants.py @@ -2,6 +2,7 @@ page_menu = [ ('Home', '/'), #('About', '#about'), + ('Competition', '/competition'), ('Contact', '#mailing-list-signup')] banner_images = [ diff --git a/site/generate.py b/site/generate.py index 3b18a28..87f651d 100644 --- a/site/generate.py +++ b/site/generate.py @@ -23,6 +23,7 @@ web.template.append('') web.template.javascript_includes.append('') web.template.javascript_includes.append('') - + web.template.header.append('') def footer(): web.footer_content.create().append( @@ -68,44 +76,60 @@ def footer(): def examples(): """ page for testing new components""" header() - web.page.create('examples') - web.twitter_feed.create(username='MHackspace', widget_id='606798560374484992') - web.page.section(web.twitter_feed.render()) - web.page.append( - web.google_groups.create( - ' and make yourself known','maidstone-hackspace' - ).set_id('mailing-list').render() - ) - - web.tiles.create() - #~ feed = feed_reader('') + #this is as simple as you can get + web.page.section('put some content on the page') - - feed = feed_reader(site.rss_feeds) - - for row in feed: - print row - print type(row.get('description')) - web.tiles.append( - title = '%s By %s' %(row.get('title'), row.get('author')), - link = row.get('url'), - image = row.get('image'), - description = row.get('description')) - web.div.append(row) - web.page.append(web.tiles.render()) - + #render to the template web.template.body.append(web.page.render()) + + #finish of the page return footer() +def competition(): + """ page for testing new components""" + header() + + web.page.create( + web.images.create( + image='/static/template/images/hackspace-banner.png', + title="Screw sorting competition banner").render()) + + web.paragraph.create( + """We are some friendly competitions, so if your not sure what to work on consider entering and win some swag.""") + web.paragraph.append( + """The First cometition will be to design a device which can sort a jar of screws by size, the winning entry we will attempt to build.""") + web.page.section(web.paragraph.render()) + + bullet_list = [ + ("Submit designs by some date here", ), + ("Images can be design in any software or on a piece of paper but must be submitted as a jpg on the mailing list.", ), + ("stick figures and crude line drawing are fine, we are not judge your artistic ability.",)] + + print bullet_list + web.list.create(ordered=False).set_classes('bullet-list') + web.list * bullet_list + web.page.section(web.list.render()) + + #render to the template + web.template.body.append(web.page.render()) + + #finish of the page + return footer() + + def blogs(): """ page for testing new components""" header() web.page.create('blogs') + web.columns.create() + web.columns.append('test1') + web.columns.append('test2') + web.page.section(web.columns.render()) + web.tiles.create() feed = feed_reader(site.rss_feeds) - for row in feed: print row.get('image') web.tiles.append( @@ -121,6 +145,7 @@ def blogs(): web.template.body.append(web.page.render()) return footer() + def index(): header() @@ -154,13 +179,11 @@ def index(): web.page.section(web.title.create('Proposed activities').render()) - bullet_list = [] - bullet_list.append( - ("""Workshop on building a mobile application which can run on ios and android, potentially game oriented for a bit of fun, but open to suggestions.""",)) - bullet_list.append( - ("""Build an interactive splash screen to feature on this site.""",)) - bullet_list.append( - (web.link.create('Suggest a new activity', 'Suggest a new activity', '#mailing-list-signup').render(),)) + bullet_list = [ + ("Workshop on building a mobile application which can run on ios and android," + "potentially game oriented for a bit of fun, but open to suggestions.", ), + ("Build an interactive splash screen to feature on this site.",), + (web.link.create('Suggest a new activity', 'Suggest a new activity', '#mailing-list-signup').render(),)] web.list.create(ordered=False).set_classes('bullet-list') web.list * bullet_list @@ -169,7 +192,24 @@ def index(): web.div.create('').set_classes('panel') web.twitter_feed.create(username='MHackspace', widget_id='606798560374484992') + + web.page.append(web.twitter_feed.render()) + + web.tiles.create() + feed = feed_reader(site.rss_feeds) + for row in feed: + print row.get('image') + web.tiles.append( + title = row.get('title'), + author = row.get('author'), + link = row.get('url'), + image = row.get('image'), + date = row.get('date'), + description = row.get('description')) + web.div.append(row) + web.page.append(web.tiles.render()) + web.template.body.append(web.page.render()) return footer() @@ -187,6 +227,9 @@ if __name__ == "__main__": with codecs.open('./html/blog.html', 'w', "utf-8") as fp: fp.write(blogs().decode('utf-8')) + with codecs.open('./html/competition.html', 'w', "utf-8") as fp: + fp.write(competition().decode('utf-8')) + #~ file = codecs.open("lol", "w", "utf-8") #~ file.write(u'\ufeff') #~ file.close() diff --git a/site/index.py b/site/index.py index e6fe3e3..89bab38 100644 --- a/site/index.py +++ b/site/index.py @@ -16,7 +16,7 @@ web_app = Flask(__name__, static_url_path='/static') def examples(): """temporary for testing / examples""" return make_response(pages.examples()) - + @web_app.route("/blogs/", methods=['GET']) def blogs(): """temporary for testing / examples""" @@ -27,5 +27,10 @@ def index(): """home page""" return make_response(pages.index()) +@web_app.route("/competition/", methods=['GET']) +def competition(): + """competition page""" + return make_response(pages.competition()) + if __name__ == '__main__': web_app.run(host='0.0.0.0', port=5000, debug=True) diff --git a/site/static/images/favicon.png b/site/static/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..54cfb85bd4dd827a292702301dcb8e31f028f122 GIT binary patch literal 1329 zcmV-11!1inc` zK~z}7t(R+TR8&0zRNreAEC5Nu_PJ>F)aBZlUe&y?d)p zve}z+=FI$O&diw^fgZ`S`cuDMzye@BP!22vYzfW*;5Xnh@HImGPD4W<0F8}MSEs2$ zXzuLY3tlhCaxTyctN`p7qcCs{lc}2e`UmXU14oahWR#Lt6h-}aIxQ&52f%$`!!(qW z;N3tp`WLd?gwtu6Bs;AK4jwEd7P|<{)m0OZC!~mUfc`|1-r&H2yV@QYN2e%@h{ZaM zC@;&)V`YB+6Cm0&k65e+MJaw9TPZ!DTHX!JN~e6W!@;GhDkLFTb>ak_eSJneF$6q^ zEZ>_9Kt+@VbO9bC%DZc7CM_>*X)y}oHYQUE;qWkCFA|N7;{e__s{B$_RnpeaJ9o0G zpuos=%q1Fq53d)Rni3v3bSRf-^!~rGe4JwOIO|TH9$6{fL%Y}E{I^FA#gy5;nOuB1oC~-PdT}QD5Sf@U(sq%cB&i3}Q*5l#q=FLop zE>%@gmX|jbgw@P6X~(i<>`1YG#_wk=8f9x~>9piYz{4k%L2xw?pxo!1mXMFHT%qCO zMJg98(Byg9=i_Q1Ff|SyO2Ey@1zO+_g;?C&%-@j+u{8O7#_#8|>(}WY9#$1hp}|Om zlICW*gTYim*lVJqVqsDm3PE^ihzob_aK`VaJU<^>R#r*?oxvc7SFdJ`$3x|*Qxwde z%~F@^@&1dgty&oX&@NDvSBb}e)N43qn9cZWYw=jEy59Ky_H8z`xAVo8ExcY>NV(6a zUm=BfO`s?);_*)1mMb2|X0h-~bv5(SfVdI}u&JX1yTw9pIILHgLckI!(Y;>Nl_~@S z!^0FGJH{Ua1G=nBoKD=cX3^WAb)3C7->gyjMM1zr2gOLc2Mn{v@AB~Q(w53HW+NT;*hb#w?~L^-`c3JhL{l0_-Il9;`%A!Jx_I!1 zLac3TV@+F|apgiRN0tNHZTXX#Fdz5Ffw%_NYadJP#&~_$lZg67I&-4{xD>00000NkvXXu0mjfLY8>y literal 0 HcmV?d00001 diff --git a/site/static/template/default.css b/site/static/template/default.css index bb178cc..2a2a136 100644 --- a/site/static/template/default.css +++ b/site/static/template/default.css @@ -130,3 +130,6 @@ button {margin-bottom:20px;background-color: #fff; height: 48px; width:100%; bor #footerbottom {background-color:#0087A8;height:300px;} #footerbottom div.container {margin:auto;background-color:#0087A8;height:250px;width:960px;} .twitter-feed {width:460px;margin:20px;} + + +.social {z-index:1;position:absolute;right:0px;top:0px;margin-top:25px;} diff --git a/site/static/template/images/example-01.jpg b/site/static/template/images/example-01.jpg old mode 100644 new mode 100755 diff --git a/site/static/template/images/example-02.jpg b/site/static/template/images/example-02.jpg old mode 100644 new mode 100755 diff --git a/site/static/template/images/example-03.jpg b/site/static/template/images/example-03.jpg old mode 100644 new mode 100755 diff --git a/site/static/template/images/hackspace.png b/site/static/template/images/hackspace.png old mode 100644 new mode 100755 diff --git a/site/static/template/images/hackspace.svg b/site/static/template/images/hackspace.svg old mode 100644 new mode 100755 diff --git a/site/static/template/images/icon.png b/site/static/template/images/icon.png old mode 100644 new mode 100755 diff --git a/site/static/template/images/tile-01.jpg b/site/static/template/images/tile-01.jpg old mode 100644 new mode 100755 diff --git a/site/static/template/images/tile-02.jpg b/site/static/template/images/tile-02.jpg old mode 100644 new mode 100755 diff --git a/site/widgets/__init__.py b/site/widgets/__init__.py old mode 100644 new mode 100755 diff --git a/site/widgets/__init__.pyc b/site/widgets/__init__.pyc old mode 100644 new mode 100755 diff --git a/site/widgets/banner_slider.py b/site/widgets/banner_slider.py index 94fca1e..3cd18d8 100644 --- a/site/widgets/banner_slider.py +++ b/site/widgets/banner_slider.py @@ -7,7 +7,6 @@ class control(www.default.html_ui): buttons = [] content = [] count = 0 - with open(os.path.abspath('./widgets/banner_slider.js')) as fp: script = [fp.read()] @@ -25,8 +24,8 @@ class control(www.default.html_ui): else: self.content.append(u'
%s
%s
' % (image, title, intro)) - def render(self): - self.count += 0 + def render(self): + self.count += 1 htm = u'
'.join(self.next_column()) diff --git a/site/widgets/example.py b/site/widgets/example.py new file mode 100644 index 0000000..5a1c2fd --- /dev/null +++ b/site/widgets/example.py @@ -0,0 +1,22 @@ +import os +from scaffold.web import www + +class control(www.default.html_ui): + """Image cycle widgets""" + buttons = [] + count = 0 + + with open(os.path.abspath('./widgets/banner_slider.js')) as fp: + js = [fp.read()] + + def create(self): + self.reset() + + def reset(self): + self.content = [] + + def append(self, text): + self.content.append(u'
%s
' % (text)) + + def render(self): + return u"".join(self.content) diff --git a/site/widgets/footer-content.pyc b/site/widgets/footer-content.pyc old mode 100644 new mode 100755 diff --git a/site/widgets/footer.pyc b/site/widgets/footer.pyc old mode 100644 new mode 100755 diff --git a/site/widgets/footer_content.py b/site/widgets/footer_content.py old mode 100644 new mode 100755 diff --git a/site/widgets/footer_content.pyc b/site/widgets/footer_content.pyc old mode 100644 new mode 100755 diff --git a/site/widgets/google_group.pyc b/site/widgets/google_group.pyc old mode 100644 new mode 100755 diff --git a/site/widgets/google_groups.py b/site/widgets/google_groups.py old mode 100644 new mode 100755 diff --git a/site/widgets/google_groups.pyc b/site/widgets/google_groups.pyc old mode 100644 new mode 100755 diff --git a/site/widgets/google_hangout.py b/site/widgets/google_hangout.py old mode 100644 new mode 100755 diff --git a/site/widgets/google_hangout.pyc b/site/widgets/google_hangout.pyc old mode 100644 new mode 100755 diff --git a/site/widgets/header_strip.py b/site/widgets/header_strip.py old mode 100644 new mode 100755 index ef4e719..637dc10 --- a/site/widgets/header_strip.py +++ b/site/widgets/header_strip.py @@ -1,23 +1,19 @@ +from scaffold.core.widget import base_widget -#from scaffold.web import web as html -from scaffold.web import www -#from scaffold.web import web as html -#from libs import html as customhtml - -class control(www.default.html_ui): +class control(base_widget): def create(self, params): self.params = params + self.social_html = [] return self + def social(self, htm): + self.social_html.append(htm) + def render(self): htm = '
' return htm diff --git a/site/widgets/header_strip.pyc b/site/widgets/header_strip.pyc index 280eddefb182685f3ea36f51f81b37ced39f7818..ba17e7780cfc0f2c0b8c8c703b66b18191e968a5 100644 GIT binary patch literal 1469 zcmc&!&5qMB5FR&eq2)&$(4MPui4fbI5SMPWg3Dg0P%4DjOXRiP*4-qoVpFtYxv;ze zkIDnU%p_?K+}R|ajAzE4`DVtBem@!i`u5|ag7%58mhk}1?H_z%fn0cme}z5G6`vtCL=!C7^zL2`%v56Y1EevnjHz)W7Z)w5r0a!lbm7JuTeYP1E;XfhQMTf#(T2NIjK@U9~G4z|%CK96S}a zHGIr0`b-;)Z$+!IhfGZY`=>}i48<7V6Q+Fn!$TD3c_mAe=V8o~ z(&;Y+PBXe5GBU{MW;mi??*ARKj5>|FjH@sdqroUz@VyeKXkN+H$`u-qbZutMLCsJO Uyzbtj=FHBUT&9G8&&{*mUy;6OHvj+t literal 1278 zcmcgrO^?$s5FIz!?zUnjB&3z#RC3Az8ZL-Sw_3r43l&O*5WPfR+iBfR;wp9J$@1)SNmGkF<%-h6l*{5&83$iycB?Gxbp3dO!cCGpRo04N!(7%({i#b7&t zZ2&m~8NhddZvbCbA;=Jx@d-NVU--lfkt4FEY1}Ekg{fR^iaro+c#C46p;AEn7!LVX z0}4tYfOHuT$d^oBKh*6HpE)gXg zQ>w%iwtcSnF3T1gjswn-&E<3VU?YqhXIudvw;L`_)lr zTgGDyw6HHw&!j#~w7iUtN&B3m`K;oHi72?Wml49&YF~E_?NXs~Hz{?cUlwLg6RK3>w75~Y(2_j;o225U>Q|}D z?ZzkF#x~DduQ$a1sIzyB-jHC0t>HKfbS5dysvp>mD<5b^YE|LfP)_y&6|f;2|MQD! zd>jo@mQnp#=IAuDtTb|8;Acu3QtHNi+8+I{`A%t$=}P;_9