From 39abc0bbb28dd9f0dd559e39570b469b1eb7d2e5 Mon Sep 17 00:00:00 2001 From: Oana Sipos Date: Fri, 24 Jun 2016 13:15:11 +0200 Subject: [PATCH 1/5] Update markerclusterer - moved to GitHub from SVN. Added also images m1-m5. --- static/img/m1.png | Bin 0 -> 3003 bytes static/img/m2.png | Bin 0 -> 3259 bytes static/img/m3.png | Bin 0 -> 3956 bytes static/img/m4.png | Bin 0 -> 5705 bytes static/img/m5.png | Bin 0 -> 6839 bytes static/js/markerclusterer.js | 75 +++++++++++++++++++---------------- 6 files changed, 40 insertions(+), 35 deletions(-) create mode 100644 static/img/m1.png create mode 100644 static/img/m2.png create mode 100644 static/img/m3.png create mode 100644 static/img/m4.png create mode 100644 static/img/m5.png diff --git a/static/img/m1.png b/static/img/m1.png new file mode 100644 index 0000000000000000000000000000000000000000..329ff524c59e4ac6ba91db135e2257106253d7b9 GIT binary patch literal 3003 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 literal 0 HcmV?d00001 diff --git a/static/img/m2.png b/static/img/m2.png new file mode 100644 index 0000000000000000000000000000000000000000..b999cbcf69441f194768157d79a113b0fae03e3c GIT binary patch literal 3259 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 O0000KLZ*U+=)p!fv7f#TG` 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 literal 0 HcmV?d00001 diff --git a/static/img/m5.png b/static/img/m5.png new file mode 100644 index 0000000000000000000000000000000000000000..61387d2ab5c8d22efef4846617567a3b1ae6d72e GIT binary patch literal 6839 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 literal 0 HcmV?d00001 diff --git a/static/js/markerclusterer.js b/static/js/markerclusterer.js index d6c4dce3..554fcece 100644 --- a/static/js/markerclusterer.js +++ b/static/js/markerclusterer.js @@ -1,11 +1,11 @@ // ==ClosureCompiler== // @compilation_level ADVANCED_OPTIMIZATIONS -// @externs_url http://closure-compiler.googlecode.com/svn/trunk/contrib/externs/maps/google_maps_api_v3_3.js +// @externs_url https://raw.githubusercontent.com/google/closure-compiler/master/contrib/externs/maps/google_maps_api_v3.js // ==/ClosureCompiler== /** * @name MarkerClusterer for Google Maps v3 - * @version version 1.0.1 + * @version version 1.0 * @author Luke Mahe * @fileoverview * The library creates and manages per-zoom-level clusters for large amounts of @@ -17,6 +17,9 @@ */ /** + * @license + * Copyright 2010 Google Inc. All Rights Reserved. + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -43,7 +46,7 @@ * cluster. * 'zoomOnClick': (boolean) Whether the default behaviour of clicking on a * cluster is to zoom into it. - * 'averageCenter': (boolean) Wether the center of each cluster should be + * 'averageCenter': (boolean) Whether the center of each cluster should be * the average of all markers in the cluster. * 'minimumClusterSize': (number) The minimum number of markers to be in a * cluster before the markers are hidden and a count @@ -56,6 +59,7 @@ * 'textColor': (string) The text color. * 'textSize': (number) The text size. * 'backgroundPosition': (string) The position of the backgound x, y. + * 'iconAnchor': (Array) The anchor position of the icon x, y. * @constructor * @extends google.maps.OverlayView */ @@ -161,12 +165,7 @@ function MarkerClusterer(map, opt_markers, opt_options) { // Add the map event listeners var that = this; google.maps.event.addListener(this.map_, 'zoom_changed', function() { - // Determines map type and prevent illegal zoom levels var zoom = that.map_.getZoom(); - var minZoom = that.map_.minZoom || 0; - var maxZoom = Math.min(that.map_.maxZoom || 100, - that.map_.mapTypes[that.map_.getMapTypeId()].maxZoom); - zoom = Math.min(Math.max(zoom,minZoom),maxZoom); if (that.prevZoom_ != zoom) { that.prevZoom_ = zoom; @@ -179,7 +178,7 @@ function MarkerClusterer(map, opt_markers, opt_options) { }); // Finally, add the markers - if (opt_markers && (opt_markers.length || Object.keys(opt_markers).length)) { + if (opt_markers && opt_markers.length) { this.addMarkers(opt_markers, false); } } @@ -191,9 +190,7 @@ function MarkerClusterer(map, opt_markers, opt_options) { * @type {string} * @private */ -MarkerClusterer.prototype.MARKER_CLUSTER_IMAGE_PATH_ = - 'http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/' + - 'images/m'; +MarkerClusterer.prototype.MARKER_CLUSTER_IMAGE_PATH_ = '../images/m'; /** @@ -404,14 +401,8 @@ MarkerClusterer.prototype.getCalculator = function() { * @param {boolean=} opt_nodraw Whether to redraw the clusters. */ MarkerClusterer.prototype.addMarkers = function(markers, opt_nodraw) { - if (markers.length) { - for (var i = 0, marker; marker = markers[i]; i++) { - this.pushMarkerTo_(marker); - } - } else if (Object.keys(markers).length) { - for (var marker in markers) { - this.pushMarkerTo_(markers[marker]); - } + for (var i = 0, marker; marker = markers[i]; i++) { + this.pushMarkerTo_(marker); } if (!opt_nodraw) { this.redraw(); @@ -1052,12 +1043,14 @@ function ClusterIcon(cluster, styles, opt_padding) { /** * Triggers the clusterclick event and zoom's if the option is set. + * + * @param {google.maps.MouseEvent} event The event to propagate */ -ClusterIcon.prototype.triggerClusterClick = function() { +ClusterIcon.prototype.triggerClusterClick = function(event) { var markerClusterer = this.cluster_.getMarkerClusterer(); // Trigger the clusterclick event. - google.maps.event.trigger(markerClusterer, 'clusterclick', this.cluster_); + google.maps.event.trigger(markerClusterer, 'clusterclick', this.cluster_, event); if (markerClusterer.isZoomOnClick()) { // Zoom into the cluster. @@ -1082,8 +1075,18 @@ ClusterIcon.prototype.onAdd = function() { panes.overlayMouseTarget.appendChild(this.div_); var that = this; - google.maps.event.addDomListener(this.div_, 'click', function() { - that.triggerClusterClick(); + var isDragging = false; + google.maps.event.addDomListener(this.div_, 'click', function(event) { + // Only perform click when not preceded by a drag + if (!isDragging) { + that.triggerClusterClick(event); + } + }); + google.maps.event.addDomListener(this.div_, 'mousedown', function() { + isDragging = false; + }); + google.maps.event.addDomListener(this.div_, 'mousemove', function() { + isDragging = true; }); }; @@ -1097,8 +1100,14 @@ ClusterIcon.prototype.onAdd = function() { */ ClusterIcon.prototype.getPosFromLatLng_ = function(latlng) { var pos = this.getProjection().fromLatLngToDivPixel(latlng); - pos.x -= parseInt(this.width_ / 2, 10); - pos.y -= parseInt(this.height_ / 2, 10); + + if (typeof this.iconAnchor_ === 'object' && this.iconAnchor_.length === 2) { + pos.x -= this.iconAnchor_[0]; + pos.y -= this.iconAnchor_[1]; + } else { + pos.x -= parseInt(this.width_ / 2, 10); + pos.y -= parseInt(this.height_ / 2, 10); + } return pos; }; @@ -1194,6 +1203,7 @@ ClusterIcon.prototype.useStyle = function() { this.anchor_ = style['anchor']; this.textSize_ = style['textSize']; this.backgroundPosition_ = style['backgroundPosition']; + this.iconAnchor_ = style['iconAnchor']; }; @@ -1224,6 +1234,10 @@ ClusterIcon.prototype.createCss = function(pos) { this.anchor_[0] < this.height_) { style.push('height:' + (this.height_ - this.anchor_[0]) + 'px; padding-top:' + this.anchor_[0] + 'px;'); + } else if (typeof this.anchor_[0] === 'number' && this.anchor_[0] < 0 && + -this.anchor_[0] < this.height_) { + style.push('height:' + this.height_ + 'px; line-height:' + (this.height_ + this.anchor_[0]) + + 'px;'); } else { style.push('height:' + this.height_ + 'px; line-height:' + this.height_ + 'px;'); @@ -1299,12 +1313,3 @@ Cluster.prototype['getMarkers'] = Cluster.prototype.getMarkers; ClusterIcon.prototype['onAdd'] = ClusterIcon.prototype.onAdd; ClusterIcon.prototype['draw'] = ClusterIcon.prototype.draw; ClusterIcon.prototype['onRemove'] = ClusterIcon.prototype.onRemove; - -Object.keys = Object.keys || function(o) { - var result = []; - for(var name in o) { - if (o.hasOwnProperty(name)) - result.push(name); - } - return result; -}; From c38a367c363b28fbad6e808ea6b062d643e2e0b8 Mon Sep 17 00:00:00 2001 From: Oana Sipos Date: Sun, 26 Jun 2016 00:07:14 +0200 Subject: [PATCH 2/5] Correct path to markers. --- static/js/markerclusterer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/js/markerclusterer.js b/static/js/markerclusterer.js index 554fcece..5fe8862e 100644 --- a/static/js/markerclusterer.js +++ b/static/js/markerclusterer.js @@ -190,7 +190,7 @@ function MarkerClusterer(map, opt_markers, opt_options) { * @type {string} * @private */ -MarkerClusterer.prototype.MARKER_CLUSTER_IMAGE_PATH_ = '../images/m'; +MarkerClusterer.prototype.MARKER_CLUSTER_IMAGE_PATH_ = '../img/m'; /** From 354b2d9bb0fd97d5dfec83b0639927cf8cf83b57 Mon Sep 17 00:00:00 2001 From: Oana Sipos Date: Sun, 26 Jun 2016 20:27:43 +0200 Subject: [PATCH 3/5] Remove 'sensor=false' option for maps - warning thrown that it is not needed. Use spaces instead of tabs. --- web/templates/layout/all_events.html | 36 +- web/templates/pages/add_event.html | 528 +++++++++++++------------- web/templates/pages/guide.html | 12 +- web/templates/pages/index.html | 184 ++++----- web/templates/pages/map.html | 104 ++--- web/templates/pages/view_event.html | 548 +++++++++++++-------------- 6 files changed, 704 insertions(+), 708 deletions(-) diff --git a/web/templates/layout/all_events.html b/web/templates/layout/all_events.html index b9c4e54e..eda7acdc 100644 --- a/web/templates/layout/all_events.html +++ b/web/templates/layout/all_events.html @@ -1,30 +1,30 @@ {% load endless %} {% paginate 6 latest_events %} - {% for event in latest_events %} -
-
- - - - + {% for event in latest_events %} +
+
+ + + + -
-

{{ event.description|truncatewords:20 }}

+
+

{{ event.description|truncatewords:20 }}

- View + View - - {% include 'layout/time_to_event.html' %} - + + {% include 'layout/time_to_event.html' %} + -
-
+
+
- {% endfor %} + {% endfor %}
{% show_more "More Events" %} diff --git a/web/templates/pages/add_event.html b/web/templates/pages/add_event.html index 5fc69bfe..92771473 100644 --- a/web/templates/pages/add_event.html +++ b/web/templates/pages/add_event.html @@ -5,274 +5,274 @@ {% block title %}- Add Event{% endblock title %} {% block custom_css %} - - + + {% endblock %} {% block content %} -
-
-

{% if editing %}Edit{% else %}Add {% endif %} your #codeEU event

- -
-

Required fields are marked with an * asterisk. Feel free to add the event listing in your local language.

- - - -
{% csrf_token %} -
-
-
- - -
- {{ form.title }} -
- {% if form.title.errors %} - {{ form.title.errors }} - {% endif %} -
- -
- - -
- {{ form.organizer }} -
- {% if form.organizer.errors %} - {{ form.organizer.errors }} - {% endif %} -
- -
- - -
- {{ form.description }} -
- {% if form.description.errors %} - {{ form.description.errors }} - {% endif %} -
- -
- {{ form.audience.help_text }} - - -
- {{ form.audience }} -
- {% if form.audience.errors %} - {{ form.audience.errors }} - {% endif %} -
- -
- {{ form.theme.help_text }} - - -
- {{ form.theme }} -
- {% if form.theme.errors %} - {{ form.theme.errors }} - {% endif %} -
- - -
-
- -
- - -
- {{ form.location }} -
- {% if form.location.errors or form.country.errors %} - {{ form.location.errors }}{{form.country.errors}} - {% endif %} -
-
-
-
- -
- - -
- - {{ form.start_date }} -
- {% if form.start_date.errors %} - {{ form.start_date.errors }} - {% elif form.start_date.help_text %} - {{ form.start_date.help_text }} - {% endif %} -
- -
- - -
- - {{ form.end_date }} -
- {% if form.end_date.errors %} - {{ form.end_date.errors }} - {% elif form.end_date.help_text %} - {{ form.end_date.help_text }} - {% endif %} -
-
- {{ form.event_url.help_text }} - - -
- {{ form.event_url }} -
- {% if form.event_url.errors %} - {{ form.event_url.errors }} - {% endif %} -
- -
- {{ form.contact_person.help_text }} - - -
- {{ form.contact_person }} -
- {% if form.contact_person.errors %} - {{ form.contact_person.errors }} - {% endif %} -
- -
- - -
- {{ form.tags }} -
- {% if form.tags.errors %} - {{ form.tags.errors }} - {% elif form.tags.help_text %} - {{ form.tags.help_text }} - {% endif %} -
- -
- - -
- -
- Image Placeholder -
-
- {% if picture_url %} - {{ form.picture.name }} Image - {% endif %} -
-
- {{ form.picture.help_text }} - - Select image - Change - - Remove -
-
-
-
- - -
-
-

Your contact information

-
- This information will only be visible to - EU Code Week Ambassadors and Code Week organizers, who will check your event before it appears on the map and might contact you if edits are necessary or for administering surveys for statistical purposes after the event. -
-
-
- {{ form.user_email.help_text }} - -
- {{ form.user_email }} -
- {% if form.user_email.errors %} - {{ form.user_email.errors }} - {% endif %} -
-
-
-
-
-
- -
-
-
-
-
+
+
+

{% if editing %}Edit{% else %}Add {% endif %} your #codeEU event

+ +
+

Required fields are marked with an * asterisk. Feel free to add the event listing in your local language.

+ + + +
{% csrf_token %} +
+
+
+ + +
+ {{ form.title }} +
+ {% if form.title.errors %} + {{ form.title.errors }} + {% endif %} +
+ +
+ + +
+ {{ form.organizer }} +
+ {% if form.organizer.errors %} + {{ form.organizer.errors }} + {% endif %} +
+ +
+ + +
+ {{ form.description }} +
+ {% if form.description.errors %} + {{ form.description.errors }} + {% endif %} +
+ +
+ {{ form.audience.help_text }} + + +
+ {{ form.audience }} +
+ {% if form.audience.errors %} + {{ form.audience.errors }} + {% endif %} +
+ +
+ {{ form.theme.help_text }} + + +
+ {{ form.theme }} +
+ {% if form.theme.errors %} + {{ form.theme.errors }} + {% endif %} +
+ + +
+
+ +
+ + +
+ {{ form.location }} +
+ {% if form.location.errors or form.country.errors %} + {{ form.location.errors }}{{form.country.errors}} + {% endif %} +
+
+
+
+ +
+ + +
+ + {{ form.start_date }} +
+ {% if form.start_date.errors %} + {{ form.start_date.errors }} + {% elif form.start_date.help_text %} + {{ form.start_date.help_text }} + {% endif %} +
+ +
+ + +
+ + {{ form.end_date }} +
+ {% if form.end_date.errors %} + {{ form.end_date.errors }} + {% elif form.end_date.help_text %} + {{ form.end_date.help_text }} + {% endif %} +
+
+ {{ form.event_url.help_text }} + + +
+ {{ form.event_url }} +
+ {% if form.event_url.errors %} + {{ form.event_url.errors }} + {% endif %} +
+ +
+ {{ form.contact_person.help_text }} + + +
+ {{ form.contact_person }} +
+ {% if form.contact_person.errors %} + {{ form.contact_person.errors }} + {% endif %} +
+ +
+ + +
+ {{ form.tags }} +
+ {% if form.tags.errors %} + {{ form.tags.errors }} + {% elif form.tags.help_text %} + {{ form.tags.help_text }} + {% endif %} +
+ +
+ + +
+ +
+ Image Placeholder +
+
+ {% if picture_url %} + {{ form.picture.name }} Image + {% endif %} +
+
+ {{ form.picture.help_text }} + + Select image + Change + + Remove +
+
+
+
+ + +
+
+

Your contact information

+
+ This information will only be visible to + EU Code Week Ambassadors and Code Week organizers, who will check your event before it appears on the map and might contact you if edits are necessary or for administering surveys for statistical purposes after the event. +
+
+
+ {{ form.user_email.help_text }} + +
+ {{ form.user_email }} +
+ {% if form.user_email.errors %} + {{ form.user_email.errors }} + {% endif %} +
+
+
+
+
+
+ +
+
+
+
+
{% endblock content %} {% block custom_js %} - - {% compress js %} - - - - - - {% endcompress %} - -{% endblock custom_js %} \ No newline at end of file + + {% compress js %} + + + + + + {% endcompress %} + +{% endblock custom_js %} diff --git a/web/templates/pages/guide.html b/web/templates/pages/guide.html index ad160dbf..11c4346b 100644 --- a/web/templates/pages/guide.html +++ b/web/templates/pages/guide.html @@ -7,15 +7,11 @@
- +

How to organize your own event?

-
- - - - +

Download the complete #codeEU Toolkit in PDF

#codeEU guidelines

@@ -41,7 +37,7 @@

What you need for a #codeEU event

Promotion materials

Unless you're organizing an event for a closed group of students, coworkers or friends, you will need to do some promotion to attract participants. Social media is a good promotional tool, and you can also get in touch with local media outlets. Feel free to use any parts of the following press releases for that purpose:

+
{% endblock content %} diff --git a/web/templates/pages/index.html b/web/templates/pages/index.html index 2a997cfe..8545b280 100644 --- a/web/templates/pages/index.html +++ b/web/templates/pages/index.html @@ -5,114 +5,114 @@ {% block title %}- Map of Events{% endblock title %} {% block social %} - + - - - - - + + + + + - - - - + + + + {% endblock social %} {% block messages %}{% endblock %} {% block content %} - {% endblock content %} {% block custom_js %} - - {% compress js %} - - - - - - {% endcompress %} + + {% compress js %} + + + + + + {% endcompress %} - + {% endblock %} diff --git a/web/templates/pages/map.html b/web/templates/pages/map.html index 12ea8a09..7f173959 100644 --- a/web/templates/pages/map.html +++ b/web/templates/pages/map.html @@ -7,65 +7,65 @@ {% block messages %}{% endblock %} {% block content %} -
-
-
-
- -
-
-
+
+
+
+
+ +
+
+
-
-
- -
+
+
+ +
+
+ {{ each_country.0 }} +
+
+ {% endfor %} +
+
+ +
+ {% endblock content %} {% block custom_js %} - - {% compress js %} - - - - - - {% endcompress %} + + {% compress js %} + + + + + + {% endcompress %} - + {% endblock %} diff --git a/web/templates/pages/view_event.html b/web/templates/pages/view_event.html index 2e4ba0e1..bdbdfee2 100644 --- a/web/templates/pages/view_event.html +++ b/web/templates/pages/view_event.html @@ -5,309 +5,309 @@ {% block title %}- {{ event.title }} ({{ event.country.name }}){% endblock title %} {% block social %} - + - - - {% if event.picture %} - - {% else %} - - {% endif %} - - + + + {% if event.picture %} + + {% else %} + + {% endif %} + + - - - - - {% if event.picture %} - - {% else %} - - {% endif %} + + + + + {% if event.picture %} + + {% else %} + + {% endif %} {% endblock social %} {% block content %} -
-
-
- {% if event.creator.id == request.user.id or user.is_staff %} - {% if event.is_certificate_generated %} -
-

- Your Code Week certificate is ready. - Feel free to download it or share it directly. - View your certificate here. -

-
- {% elif event.is_reporting_allowed %} -
-

- Submit a report for this event and claim your Code Week certificate. - Report event and claim certificate -

-
- {% endif %} - {% endif %} +
+
+
+ {% if event.creator.id == request.user.id or user.is_staff %} + {% if event.is_certificate_generated %} +
+

+ Your Code Week certificate is ready. + Feel free to download it or share it directly. + View your certificate here. +

+
+ {% elif event.is_reporting_allowed %} +
+

+ Submit a report for this event and claim your Code Week certificate. + Report event and claim certificate +

+
+ {% endif %} + {% endif %} - {% if user.profile.is_ambassador %} - {% if user.profile.country == event.country or user.is_staff %} -
- {% if event.status == 'PENDING' %} -
- This event is stil Pending. - If it looks good then -
- {% csrf_token %} - -
+ {% if user.profile.is_ambassador %} + {% if user.profile.country == event.country or user.is_staff %} +
+ {% if event.status == 'PENDING' %} +
+ This event is stil Pending. + If it looks good then +
+ {% csrf_token %} + +
- it - {% if event.creator.email %} or contact the event creator - - by email - {% endif %}. + it + {% if event.creator.email %} or contact the event creator + + by email + {% endif %}. - Otherwise -
- {% csrf_token %} - -
- it. + Otherwise +
+ {% csrf_token %} + +
+ it. - {% if next_event%} - - {% endif %} -
- {% elif event.status == 'APPROVED' %} -
- This event is nice and approved. You can revert it to -
- {% csrf_token %} - -
+ {% if next_event%} + + {% endif %} +
+ {% elif event.status == 'APPROVED' %} +
+ This event is nice and approved. You can revert it to +
+ {% csrf_token %} + +
- {% if event.creator.email %}, contact the event creator - - by email - {% endif %} + {% if event.creator.email %}, contact the event creator + + by email + {% endif %} - or check other - - pending events - . - {% if next_event%} - - {% endif %} -
- {% elif event.status == 'REJECTED' %} -
- This event is rejected. You can revert it to -
- {% csrf_token %} - -
+ or check other + + pending events + . + {% if next_event%} + + {% endif %} +
+ {% elif event.status == 'REJECTED' %} +
+ This event is rejected. You can revert it to +
+ {% csrf_token %} + +
- or check other - - pending events - . - {% if next_event%} - - {% endif %} -
- {% endif %} -
- {% endif %} - {% endif %} + or check other + + pending events + . + {% if next_event%} + + {% endif %} +
+ {% endif %} +
+ {% endif %} + {% endif %} - {% if event.creator.id == request.user.id %} - - Edit event - {% if event.status == 'PENDING' %} -
- NOTE: This event is stil being reviewed by moderators. -
- {% endif %} - {% endif %} -
+ {% if event.creator.id == request.user.id %} + + Edit event + {% if event.status == 'PENDING' %} +
+ NOTE: This event is stil being reviewed by moderators. +
+ {% endif %} + {% endif %} +
-
-
-

{{ event.title }}

- Organized by: +
+
+

{{ event.title }}

+ Organized by: -

{{ event.organizer }}

- {% if event.contact_person %} - Contact email:
-

{{ event.contact_person }}

- {% endif %} -
- Happening at:
- {{ event.location }} -
-

- From {{ event.start_date|date:"l, F j, Y" }} at {{ event.start_date|date:"H:i" }} - to {{ event.end_date|date:"l, F j, Y" }} at {{ event.end_date|date:"H:i" }} -

- Description: +

{{ event.organizer }}

+ {% if event.contact_person %} + Contact email:
+

{{ event.contact_person }}

+ {% endif %} +
+ Happening at:
+ {{ event.location }} +
+

+ From {{ event.start_date|date:"l, F j, Y" }} at {{ event.start_date|date:"H:i" }} + to {{ event.end_date|date:"l, F j, Y" }} at {{ event.end_date|date:"H:i" }} +

+ Description: -

- {{ event.description|linebreaksbr }} -

- {% if event.event_url %} - More information: -

{{ event.event_url }}

- {% endif %} - This event is for: +

+ {{ event.description|linebreaksbr }} +

+ {% if event.event_url %} + More information: +

{{ event.event_url }}

+ {% endif %} + This event is for: -

{% for entry in event.audience.all %} - {% if forloop.last %} - {{ entry.name }} - {% else %} - {{ entry.name }}, - {% endif %} - {% endfor %}

- Main themes: +

{% for entry in event.audience.all %} + {% if forloop.last %} + {{ entry.name }} + {% else %} + {{ entry.name }}, + {% endif %} + {% endfor %}

+ Main themes: -

{% for entry in event.theme.all %} - {% if forloop.last %} - {{ entry.name }} - {% else %} - {{ entry.name }}, - {% endif %} - {% endfor %}

- {% if event.tags %} - Tags: -

- {% for tag in event.tags.all %} - {% if forloop.last %} - {{ tag.name }} - {% else %} - {{ tag.name }}, - {% endif %} - {% endfor %} -

- {% endif %} +

{% for entry in event.theme.all %} + {% if forloop.last %} + {{ entry.name }} + {% else %} + {{ entry.name }}, + {% endif %} + {% endfor %}

+ {% if event.tags %} + Tags: +

+ {% for tag in event.tags.all %} + {% if forloop.last %} + {{ tag.name }} + {% else %} + {{ tag.name }}, + {% endif %} + {% endfor %} +

+ {% endif %} - Share the event: - -
- {% if event.picture %} -
- {{ event.title }} Cover Image -
- {% endif %} -
- {{ event.start_date|render_calendar:event.end_date }} -
-
-
-
-
-
-
-
-
-
-
-
- {% if nearby %} -
-

Nearby events:

-
- {% for event in nearby %} - {% include 'layout/near_event_tile.html' %} - {% endfor %} -
-
- {% endif %} -
+
+ +
+
+
+ {% if event.picture %} +
+ {{ event.title }} Cover Image +
+ {% endif %} +
+ {{ event.start_date|render_calendar:event.end_date }} +
+
+
+
+
+
+
+
+
+
+
+
+ {% if nearby %} +
+

Nearby events:

+
+ {% for event in nearby %} + {% include 'layout/near_event_tile.html' %} + {% endfor %} +
+
+ {% endif %} +
{% endblock content %} {% block custom_js %} - {% load static %} + {% load static %} - - - - - + + + + + - + -{% endblock %} \ No newline at end of file +{% endblock %} From c1612e8f049bfc2cb19663c23e20d997d9c6134b Mon Sep 17 00:00:00 2001 From: Oana Sipos Date: Wed, 29 Jun 2016 22:56:22 +0200 Subject: [PATCH 4/5] Update date for this year: 15-23 October 2016. --- web/templates/base.html | 182 ++++++++++++++++----------------- web/templates/min.html | 96 ++++++++--------- web/templates/pages/index.html | 6 +- 3 files changed, 142 insertions(+), 142 deletions(-) diff --git a/web/templates/base.html b/web/templates/base.html index 1d8d06f2..702292ce 100644 --- a/web/templates/base.html +++ b/web/templates/base.html @@ -4,110 +4,110 @@ - - - - - - - - - - - - - - - - {% compress css %} - - - - - {% block custom_css %}{% endblock %} - {% endcompress %} - - - - - - - - - - - - - - - - - - - - - - {% block social %}{% endblock %} - Europe Code Week {% block title %}{% endblock title %} + + + + + + + + + + + + + + + + {% compress css %} + + + + + {% block custom_css %}{% endblock %} + {% endcompress %} + + + + + + + + + + + + + + + + + + + + + + {% block social %}{% endblock %} + Europe Code Week {% block title %}{% endblock title %} - -
+ +
- {% block main_navigation %} - {% include 'layout/top_navigation.html' %} - {% endblock %} + {% block main_navigation %} + {% include 'layout/top_navigation.html' %} + {% endblock %} - {% block messages %} - {% include 'layout/messages.html' %} - {% endblock messages %} + {% block messages %} + {% include 'layout/messages.html' %} + {% endblock messages %} - {% block content %} {% endblock content %} + {% block content %} {% endblock content %} -
+
- {% include 'layout/footer.html' %} + {% include 'layout/footer.html' %} - - - + + + - {% compress js %} + {% compress js %} - - - - - {% endcompress %} - - {% block custom_js %}{% endblock custom_js %} - - - + + + + + {% endcompress %} + + {% block custom_js %}{% endblock custom_js %} + + + diff --git a/web/templates/min.html b/web/templates/min.html index da1e75ba..8315ab21 100644 --- a/web/templates/min.html +++ b/web/templates/min.html @@ -3,75 +3,75 @@ - - - - - - - - - - {% compress css %} - - {% block custom_css %}{% endblock %} - {% endcompress %} + + + + + + + + + + {% compress css %} + + {% block custom_css %}{% endblock %} + {% endcompress %} - + + - - - - - {% block social %}{% endblock %} - Europe Code Week {% block title %}{% endblock title %} + + + + {% block social %}{% endblock %} + Europe Code Week {% block title %}{% endblock title %} - -
+ +
- {% block content %} {% endblock content %} + {% block content %} {% endblock content %} -
+
- - - {% compress js %} + + + {% compress js %} - {% endcompress %} + {% endcompress %} - {% block custom_js %}{% endblock custom_js %} + {% block custom_js %}{% endblock custom_js %} - - + + diff --git a/web/templates/pages/index.html b/web/templates/pages/index.html index 8545b280..92e12ce1 100644 --- a/web/templates/pages/index.html +++ b/web/templates/pages/index.html @@ -5,18 +5,18 @@ {% block title %}- Map of Events{% endblock title %} {% block social %} - + - + - + {% endblock social %} From 74b15dd7595814c26814cf5616a817b0265a8ccf Mon Sep 17 00:00:00 2001 From: Oana Sipos Date: Wed, 29 Jun 2016 23:23:10 +0200 Subject: [PATCH 5/5] Use absolute paths for displaying the markers for the map. --- static/js/markerclusterer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/js/markerclusterer.js b/static/js/markerclusterer.js index 5fe8862e..b7677fc6 100644 --- a/static/js/markerclusterer.js +++ b/static/js/markerclusterer.js @@ -190,7 +190,7 @@ function MarkerClusterer(map, opt_markers, opt_options) { * @type {string} * @private */ -MarkerClusterer.prototype.MARKER_CLUSTER_IMAGE_PATH_ = '../img/m'; +MarkerClusterer.prototype.MARKER_CLUSTER_IMAGE_PATH_ = '/static/img/m'; /**