Commit 3ec66786 authored by Luuk Scholten's avatar Luuk Scholten Committed by Sébastiaan Versteeg

Add calendar page

parent 5dc12c68
This diff was suppressed by a .gitattributes entry.
......@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-09-14 21:48+0200\n"
"PO-Revision-Date: 2016-09-14 21:45+0200\n"
"POT-Creation-Date: 2016-09-16 08:38+0200\n"
"PO-Revision-Date: 2016-09-16 08:40+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: nl\n"
......@@ -16,178 +16,178 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.8\n"
"X-Generator: Poedit 1.8.7.1\n"
#: admin.py:36
#: admin.py:37
msgid "order"
msgstr "volgorde"
#: admin.py:71
#: admin.py:72
msgid "Edit"
msgstr "Aanpassen"
#: admin.py:81
#: admin.py:82
msgid "Number of participants"
msgstr "Aantal deelnemers"
#: admin.py:85
#: admin.py:86
msgid "Publish selected events"
msgstr "Publiceer geselecteerde evenementen"
#: admin.py:89
#: admin.py:90
msgid "Unpublish selected events"
msgstr "Publicatie van geselecteerde evenementen ongedaan maken"
#: models.py:12
#: models.py:13
msgid "No registration required"
msgstr "Geen registratie vereist"
#: models.py:14 templates/events/admin/details.html:47
#: models.py:17 templates/events/admin/details.html:47
msgid "title"
msgstr "titel"
#: models.py:16 models.py:157
#: models.py:21 models.py:167
msgid "description"
msgstr "beschrijving"
#: models.py:18
#: models.py:23
msgid "start time"
msgstr "starttijd"
#: models.py:20
#: models.py:25
msgid "end time"
msgstr "eindtijd"
#: models.py:26 templates/events/admin/details.html:51
#: models.py:31 templates/events/admin/details.html:51
msgid "organiser"
msgstr "organisator"
#: models.py:30
#: models.py:35
msgid "registration start"
msgstr "start registratie"
#: models.py:36
#: models.py:41
msgid "registration end"
msgstr "einde registratie"
#: models.py:42
#: models.py:47
msgid "cancel deadline"
msgstr "afmelddeadline"
#: models.py:47 templates/events/admin/details.html:55
#: models.py:54 templates/events/admin/details.html:55
msgid "location"
msgstr "locatie"
#: models.py:50
#: models.py:59
msgid "location for minimap"
msgstr "locatie voor minimap"
#: models.py:52
#: models.py:61
msgid "Location of Huygens: Heyendaalseweg 135, Nijmegen. Not shown as text!!"
msgstr ""
"Locatie van ’t Huygens: Heyendaalseweg 135, Nijmegen. Dit veld wordt niet "
"getoond als tekst!!"
#: models.py:57 templates/events/admin/details.html:57
#: models.py:66 templates/events/admin/details.html:57
msgid "price"
msgstr "prijs"
#: models.py:65 templates/events/admin/details.html:59
#: models.py:74 templates/events/admin/details.html:59
msgid "cost"
msgstr "kosten"
#: models.py:69
#: models.py:78
msgid "Actual cost of event."
msgstr "werkelijke kosten van het evenement"
#: models.py:74
#: models.py:83
msgid "maximum number of participants"
msgstr "maximum aantal deelnemers"
#: models.py:80
#: models.py:90
msgid "message when there is no registration"
msgstr "bericht dat getoond wordt wanneer er geen registratie nodig is"
#: models.py:84
#: models.py:94
msgid "Default: "
msgstr "Standaard: "
#: models.py:88
#: models.py:98
msgid "published"
msgstr "gepubliceerd"
#: models.py:98
#: models.py:108
msgid "Can't have an event travel back in time"
msgstr "Een evenement kan niet terugreizen in de tijd"
#: models.py:103
#: models.py:113
msgid "Doesn't make sense to have this if you require registrations."
msgstr "Het is niet logisch om dit te hebben als je registratie vereist."
#: models.py:108
#: models.py:118
msgid "If registration is required, you need a start of registration"
msgstr ""
"Als registratie vereist is, dan heb je een starttijd voor de registratie "
"nodig"
#: models.py:113
#: models.py:123
msgid "If registration is required, you need an end of registration"
msgstr ""
"Als registratie vereist is, dan heb je een eindtijd voor de registratie nodig"
#: models.py:117
#: models.py:127
msgid "Registration start should be before registration end"
msgstr "De starttijd voor de registratie moet voor de eindtijd liggen"
#: models.py:139
#: models.py:149
msgid "checkbox"
msgstr "checkbox"
#: models.py:140
#: models.py:150
msgid "text field"
msgstr "tekstveld"
#: models.py:141
#: models.py:151
msgid "integer field"
msgstr "integerveld"
#: models.py:146
#: models.py:156
msgid "field type"
msgstr "veldtype"
#: models.py:152
#: models.py:162
msgid "field name"
msgstr "veldnaam"
#: models.py:194 templates/events/admin/registrations_table.html:6
#: models.py:204 templates/events/admin/registrations_table.html:6
msgid "name"
msgstr "naam"
#: models.py:196
#: models.py:206
msgid "Use this for non-members"
msgstr "Gebruikt dit voor niet-leden"
#: models.py:201
#: models.py:211
msgid "registration date"
msgstr "registratiedatum"
#: models.py:202
#: models.py:212
msgid "cancellation date"
msgstr "afmelddatum"
#: models.py:207 templates/events/admin/registrations_table.html:11
#: models.py:217 templates/events/admin/registrations_table.html:11
msgid "present"
msgstr "aanwezig"
#: models.py:211 templates/events/admin/registrations_table.html:12
#: models.py:221 templates/events/admin/registrations_table.html:12
msgid "paid"
msgstr "betaald"
#: models.py:224 models.py:225
#: models.py:234 models.py:235
msgid "Either specify a member or a name"
msgstr "Geef een lid of een naam op"
#: models.py:247
#: models.py:257
msgid "last changed"
msgstr "laatst aangepast"
......@@ -255,6 +255,23 @@ msgstr "toevoegen"
msgid "Nobody %(verb)s yet"
msgstr "Niemand heeft zich %(verb)s"
#: templates/events/index.html:13
msgid "Calendar"
msgstr "Agenda"
#: templates/events/index.html:44 templates/events/index.html:46
#: templates/events/index.html:52
msgid "hide birthdays"
msgstr "Verberg verjaardagen"
#: templates/events/index.html:44 templates/events/index.html:47
msgid "show birthdays"
msgstr "Toon verjaardagen"
#: templates/events/index.html:64
msgid "list"
msgstr "Lijst"
#~ msgid "Present"
#~ msgstr "Aanwezig"
......
This diff is collapsed.
/*!
* FullCalendar v2.4.0 Print Stylesheet
* Docs & License: http://fullcalendar.io/
* (c) 2015 Adam Shaw
*/
/*
* Include this stylesheet on your page to get a more printer-friendly calendar.
* When including this stylesheet, use the media='print' attribute of the <link> tag.
* Make sure to include this stylesheet IN ADDITION to the regular fullcalendar.css.
*/
.fc {
max-width: 100% !important;
}
/* Global Event Restyling
--------------------------------------------------------------------------------------------------*/
.fc-event {
background: #fff !important;
color: #000 !important;
page-break-inside: avoid;
}
.fc-event .fc-resizer {
display: none;
}
/* Table & Day-Row Restyling
--------------------------------------------------------------------------------------------------*/
th,
td,
hr,
thead,
tbody,
.fc-row {
border-color: #ccc !important;
background: #fff !important;
}
/* kill the overlaid, absolutely-positioned common components */
.fc-bg,
.fc-bgevent-skeleton,
.fc-highlight-skeleton,
.fc-helper-skeleton {
display: none;
}
/* don't force a min-height on rows (for DayGrid) */
.fc tbody .fc-row {
height: auto !important; /* undo height that JS set in distributeHeight */
min-height: 0 !important; /* undo the min-height from each view's specific stylesheet */
}
.fc tbody .fc-row .fc-content-skeleton {
position: static; /* undo .fc-rigid */
padding-bottom: 0 !important; /* use a more border-friendly method for this... */
}
.fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td { /* only works in newer browsers */
padding-bottom: 1em; /* ...gives space within the skeleton. also ensures min height in a way */
}
.fc tbody .fc-row .fc-content-skeleton table {
/* provides a min-height for the row, but only effective for IE, which exaggerates this value,
making it look more like 3em. for other browers, it will already be this tall */
height: 1em;
}
/* Undo month-view event limiting. Display all events and hide the "more" links
--------------------------------------------------------------------------------------------------*/
.fc-more-cell,
.fc-more {
display: none !important;
}
.fc tr.fc-limited {
display: table-row !important;
}
.fc td.fc-limited {
display: table-cell !important;
}
.fc-popover {
display: none; /* never display the "more.." popover in print mode */
}
/* TimeGrid Restyling
--------------------------------------------------------------------------------------------------*/
/* undo the min-height 100% trick used to fill the container's height */
.fc-time-grid {
min-height: 0 !important;
}
/* don't display the side axis at all ("all-day" and time cells) */
.fc-agenda-view .fc-axis {
display: none;
}
/* don't display the horizontal lines */
.fc-slats,
.fc-time-grid hr { /* this hr is used when height is underused and needs to be filled */
display: none !important; /* important overrides inline declaration */
}
/* let the container that holds the events be naturally positioned and create real height */
.fc-time-grid .fc-content-skeleton {
position: static;
}
/* in case there are no events, we still want some height */
.fc-time-grid .fc-content-skeleton table {
height: 4em;
}
/* kill the horizontal spacing made by the event container. event margins will be done below */
.fc-time-grid .fc-event-container {
margin: 0 !important;
}
/* TimeGrid *Event* Restyling
--------------------------------------------------------------------------------------------------*/
/* naturally position events, vertically stacking them */
.fc-time-grid .fc-event {
position: static !important;
margin: 3px 2px !important;
}
/* for events that continue to a future day, give the bottom border back */
.fc-time-grid .fc-event.fc-not-end {
border-bottom-width: 1px !important;
}
/* indicate the event continues via "..." text */
.fc-time-grid .fc-event.fc-not-end:after {
content: "...";
}
/* for events that are continuations from previous days, give the top border back */
.fc-time-grid .fc-event.fc-not-start {
border-top-width: 1px !important;
}
/* indicate the event is a continuation via "..." text */
.fc-time-grid .fc-event.fc-not-start:before {
content: "...";
}
/* time */
/* undo a previous declaration and let the time text span to a second line */
.fc-time-grid .fc-event .fc-time {
white-space: normal !important;
}
/* hide the the time that is normally displayed... */
.fc-time-grid .fc-event .fc-time span {
display: none;
}
/* ...replace it with a more verbose version (includes AM/PM) stored in an html attribute */
.fc-time-grid .fc-event .fc-time:after {
content: attr(data-full);
}
/* Vertical Scroller & Containers
--------------------------------------------------------------------------------------------------*/
/* kill the scrollbars and allow natural height */
.fc-scroller,
.fc-day-grid-container, /* these divs might be assigned height, which we need to cleared */
.fc-time-grid-container { /* */
overflow: visible !important;
height: auto !important;
}
/* kill the horizontal border/padding used to compensate for scrollbars */
.fc-row {
border: 0 !important;
margin: 0 !important;
}
/* Button Controls
--------------------------------------------------------------------------------------------------*/
.fc-button-group,
.fc button {
display: none; /* don't display any button-related controls */
}
.fc-unthemed .fc-today {
background: #fff9fc;
}
.fc-highlight {
background: #f1bcdc;
}
.fc-state-default.fc-corner-left { /* non-theme */
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
}
.fc-state-default.fc-corner-right { /* non-theme */
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
}
.fc-state-default {
background: black;
color: white;
border-radius: 0;
border: none;
text-shadow: none;
box-shadow: none;
}
.fc-state-hover,
.fc-state-down,
.fc-state-active,
.fc-state-disabled {
color: black;
background-color: #e62272;
}
.fc-state-disabled {
color: white;
}
.fc-state-down,
.fc-state-active {
background-color: #2F2F2F;
color:white;
background-image: none;
box-shadow: none;
}
.fc-row .fc-content-skeleton tbody td, /* cells with events inside (so NOT the day number cell) */
.fc-row .fc-helper-skeleton tbody td {
padding: 3px;
}
.fc-event {
background-color:black;
border-radius: 0px;
border: none;
}
a.fc-event:active,
a.fc-event:hover {
color: #fff;
text-decoration: none;
}
.fc-event:hover a {
color: white;
}
.fc-event .fc-content {
padding: 2px 4px;
}
.fc-event .fc-bg {
background:inherit;
opacity:1;
filter: alpha(opacity=25, enabled=false) !important; /* for IE */
}
.fc-time-grid-event .fc-content {
padding: 4px;
}
@media (max-width:767px) {
.fc-toolbar .fc-right {
float: left;
clear: both;
margin-top: 10px;
}
.fc-toolbar .fc-right > * {
float: left;
clear: both;
margin-left: 0;
margin-top: 5px;
}
}
\ No newline at end of file
.registration-unsaved-changes {
color: #E62272;
}
\ No newline at end of file
var FC = $.fullCalendar; // a reference to FullCalendar's root namespace
var View = FC.View; // the class that all views must inherit from
var CardView; // our subclass
CardView = View.extend({ // make a subclass of View
title: 'Aankomende evenementen',
months: ['Jan', 'Feb', 'Maa', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],
updateTitle: function() {
// this space intentionally left blank
},
computeRange: function(date) {
var range = View.prototype.computeRange.call(this, date);
range.end.add(1, 'years');
return range;
},
renderEvents: function(events) {
wrapperDiv = $('<div>').addClass('blog');
wrapperUl = $('<ul>').addClass('row');
if (this.opt('maxEvents') != undefined) {
events = events.slice(0, this.opt('maxEvents'));
}
events.forEach(function (event) {
html =
'<li class="post span6 has-overlay event">' +
'<a href="'+ event.url +'">' +
'<div class="post-inner">' +
'<div class="post-body">' +
'<h2>' + event.title + '</h2>' +
'<div class="post-date circle">' +
'<div class="circle-border"></div>' +
'<div class="circle-inner">' + event.start.date() +
'<span>' + this.months[event.start.month()] + '</span>'+
'</div>' +
'</div>'+
'<div class="post-excerpt">' +
'<p>' + this.trimDescription(event.description, 135) + '</p>' +
'</div>' +
'</div>' +
'</div>' +
'</a>' +
'</li>';
wrapperUl.append($(html));
}.bind(this));
wrapperDiv.append(wrapperUl);
this.el.html(wrapperDiv);
},
trimDescription: function(description, maxLength) {
description += " ";
var trimmedString = description.substr(0, maxLength);
// retrim if possibly in middle of a word
if (trimmedString != description) {
trimmedString = trimmedString.substr(0, Math.min(trimmedString.length, trimmedString.lastIndexOf(" ")));
trimmedString += "...";
}
return trimmedString.trim();
}
});
FC.views.card = CardView; // register our class with the view system
var FC = $.fullCalendar; // a reference to FullCalendar's root namespace
var View = FC.View; // the class that all views must inherit from
var ListView; // our subclass
ListView = View.extend({ // make a subclass of View
</