Filter out old events for smaller page payloads
This commit is contained in:
1 parent
d008c75a93
commit
af1bc9d332
4 files changed
+61
-11
No files matched your search
@@ -2,10 +2,17 @@ const _ = require('lodash')
|
|||||||
const path = require('path')
|
const path = require('path')
|
||||||
const { createFilePath } = require('gatsby-source-filesystem')
|
const { createFilePath } = require('gatsby-source-filesystem')
|
||||||
const { paginate } = require('gatsby-awesome-pagination')
|
const { paginate } = require('gatsby-awesome-pagination')
|
||||||
|
const moment = require('moment')
|
||||||
|
|
||||||
const getOnlyPublished = edges =>
|
const getOnlyPublished = edges =>
|
||||||
_.filter(edges, ({ node }) => node.status === 'publish')
|
_.filter(edges, ({ node }) => node.status === 'publish')
|
||||||
|
|
||||||
|
// Used to filter out older events from queries
|
||||||
|
const eventsNotBefore = moment()
|
||||||
|
.startOf('day')
|
||||||
|
.subtract(1, 'days')
|
||||||
|
.toISOString()
|
||||||
|
|
||||||
exports.createPages = ({ actions, graphql }) => {
|
exports.createPages = ({ actions, graphql }) => {
|
||||||
const { createPage } = actions
|
const { createPage } = actions
|
||||||
|
|
||||||
@@ -275,6 +282,7 @@ exports.createPages = ({ actions, graphql }) => {
|
|||||||
slug: eventOrganizer.slug,
|
slug: eventOrganizer.slug,
|
||||||
description: eventOrganizer.description,
|
description: eventOrganizer.description,
|
||||||
association: eventOrganizer.association,
|
association: eventOrganizer.association,
|
||||||
|
after: eventsNotBefore,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -440,3 +448,22 @@ exports.onCreateNode = ({ node, actions, getNode }) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exports.onCreatePage = ({ page, actions }) => {
|
||||||
|
const { createPage, deletePage } = actions
|
||||||
|
|
||||||
|
// We need to add context to a few pages
|
||||||
|
const pagesWithContext = ['/', '/program/']
|
||||||
|
if (!pagesWithContext.includes(page.path)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
deletePage(page)
|
||||||
|
createPage({
|
||||||
|
...page,
|
||||||
|
context: {
|
||||||
|
...page.context,
|
||||||
|
after: eventsNotBefore,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
+24
-7
@@ -23,12 +23,23 @@ export default class IndexPage extends React.Component {
|
|||||||
<section className="front-page-info">
|
<section className="front-page-info">
|
||||||
<div className="visit-us">
|
<div className="visit-us">
|
||||||
<h2 className="section-title">Besøk oss</h2>
|
<h2 className="section-title">Besøk oss</h2>
|
||||||
<p>Chateau Neuf ligger på Majorstua i Oslo, i <a href="https://www.google.no/maps/place/Slemdalsveien+15,+0369+Oslo/data=!4m2!3m1!1s0x46416dc4ab53aa7d:0x5629681f36c1c8af?sa=X&ved=2ahUKEwjR94re3unjAhUj4aYKHRLOAuwQ8gEwAHoECBQQAQ" target="_blank">Slemdalsveien 15</a>.</p>
|
<p>
|
||||||
|
Chateau Neuf ligger på Majorstua i Oslo, i{' '}
|
||||||
|
<a
|
||||||
|
href="https://www.google.no/maps/place/Slemdalsveien+15,+0369+Oslo/data=!4m2!3m1!1s0x46416dc4ab53aa7d:0x5629681f36c1c8af?sa=X&ved=2ahUKEwjR94re3unjAhUj4aYKHRLOAuwQ8gEwAHoECBQQAQ"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
Slemdalsveien 15
|
||||||
|
</a>
|
||||||
|
.
|
||||||
|
</p>
|
||||||
<div className="visit-us_links">
|
<div className="visit-us_links">
|
||||||
<Link to="/bli-aktiv/" className="button button-small">
|
<Link to="/praktisk/" className="button button-small">
|
||||||
Praktisk informasjon
|
Praktisk informasjon
|
||||||
</Link><br />
|
</Link>
|
||||||
<Link to="/bli-aktiv/" className="button button-small">
|
<br />
|
||||||
|
<Link to="/aapningstider/" className="button button-small">
|
||||||
Åpningstider
|
Åpningstider
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
@@ -39,7 +50,10 @@ export default class IndexPage extends React.Component {
|
|||||||
Bli frivillig
|
Bli frivillig
|
||||||
</Link>
|
</Link>
|
||||||
<p>
|
<p>
|
||||||
Chateau Neuf drives i stor grad av frivillige. Vil du være med å arrangere greier på studentersamfundet? Sjekk ut de ulike <Link to="/bli-aktiv/">foreningene</Link> som holder til på huset for å finne ut hva som passer for deg.
|
Chateau Neuf drives i stor grad av frivillige. Vil du være med å
|
||||||
|
arrangere greier på studentersamfundet? Sjekk ut de ulike{' '}
|
||||||
|
<Link to="/bli-aktiv/">foreningene</Link> som holder til på
|
||||||
|
huset for å finne ut hva som passer for deg.
|
||||||
</p>
|
</p>
|
||||||
<Link to="/bli-aktiv/" className="button button-small">
|
<Link to="/bli-aktiv/" className="button button-small">
|
||||||
Les mer om å bli frivillig
|
Les mer om å bli frivillig
|
||||||
@@ -65,8 +79,11 @@ IndexPage.propTypes = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const pageQuery = graphql`
|
export const pageQuery = graphql`
|
||||||
query {
|
query IndexPage($after: Date!) {
|
||||||
allWordpressWpEvents(sort: { fields: start_time, order: ASC }) {
|
allWordpressWpEvents(
|
||||||
|
sort: { fields: start_time, order: ASC }
|
||||||
|
filter: { start_time: { gt: $after } }
|
||||||
|
) {
|
||||||
edges {
|
edges {
|
||||||
node {
|
node {
|
||||||
...EventListFields
|
...EventListFields
|
||||||
|
|||||||
@@ -34,8 +34,11 @@ EventProgram.propTypes = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const pageQuery = graphql`
|
export const pageQuery = graphql`
|
||||||
query {
|
query ProgramPage($after: Date!) {
|
||||||
allWordpressWpEvents(sort: { fields: start_time, order: ASC }) {
|
allWordpressWpEvents(
|
||||||
|
filter: { start_time: { gt: $after } }
|
||||||
|
sort: { fields: start_time, order: ASC }
|
||||||
|
) {
|
||||||
edges {
|
edges {
|
||||||
node {
|
node {
|
||||||
...EventListFields
|
...EventListFields
|
||||||
|
|||||||
@@ -59,9 +59,12 @@ EventOrganizerPage.propTypes = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const pageQuery = graphql`
|
export const pageQuery = graphql`
|
||||||
query EventOrganizerPage($slug: String!) {
|
query EventOrganizerPage($slug: String!, $after: Date!) {
|
||||||
allWordpressWpEvents(
|
allWordpressWpEvents(
|
||||||
filter: { event_organizers: { elemMatch: { slug: { eq: $slug } } } }
|
filter: {
|
||||||
|
event_organizers: { elemMatch: { slug: { eq: $slug } } }
|
||||||
|
start_time: { gt: $after }
|
||||||
|
}
|
||||||
sort: { fields: date, order: DESC }
|
sort: { fields: date, order: DESC }
|
||||||
) {
|
) {
|
||||||
totalCount
|
totalCount
|
||||||
|
|||||||
Reference in new issue
Block a user