Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Events MVP #136

Closed
willguv opened this issue Sep 23, 2020 · 6 comments · Fixed by #144
Closed

Events MVP #136

willguv opened this issue Sep 23, 2020 · 6 comments · Fixed by #144

Comments

@willguv
Copy link
Member

willguv commented Sep 23, 2020

Most councils need a basic Events solution in Q3, which use Brighton & Hove's 'Events as part of Directories' work as a starting point

Events MVP

Single list of events, that can be presented as multiple views at a later date

Check that facets functionality in directories can be re-used for Events

Sidebar

See Lambeth example

Plain text search
Facets created by content designers (eg location, event type, accessibility)

Fixed facets

Pick a date

  • Today
  • Tomorrow
  • Next 7 days
  • This month
  • Next month

Search between dates
From/ to

Fields we need (compared against existing BHCC events type)

Event Name
Event Summary
Event Body

Enquiries
Contact name
Job title
Email address
Phone number
Web addresses

Add a thumbnail image for use on the list page
Ability to add a video
Add multiple files

(Later pull in Campaign paragraphs eg video - dependency, are we pulling out Campaign paragraphs into a separate library?)

Date

Install "Date recur" module as BHCC

Pricing

  • Free
  • Paid (add price in a text field)

Venue

  • Use directories functionality (create a location entity, notes about opening times, notes about accessibility)
  • Optional link to directory entry (if directories is installed)
  • Only needs start venue, not end venue

####Tags

  • Replace with custom facets from directories

Permissions

Local offer examples @tom_steel @triciadever let's talk about this - who will be creating/ editing your events

Later

  • John: should appear in Google listings and Maps

  • Tom: we have two very different types of events eg council meetings, healthwalks

  • To hand out editing permissions to others, we create a custom event type eg Local Offer, or there's a permissions category within the event type

Brighton_events_top

Brighton_events_bottom

@willguv willguv created this issue from a note in Alpha Sprint 10 (To do) Sep 23, 2020
@willguv willguv moved this from To do to Ready for work in Alpha Sprint 10 Sep 23, 2020
@ekes
Copy link
Member

ekes commented Sep 23, 2020

Just some notes reading through the issue without discussing it - so might have the wrong end of some sticks - but as an aide memoir:

Pick a date

Needs checking about relative dates in the present facet (assuming search api).
Alternative that might be simpler for user, but a bit more dev, only a calendar widget to select day or days?

Venue

See the issue of a location having or not having a directory venue have already been addressed. Nice.
Reusing locations, even when they aren't venues, would also make sense (rather than creating new entities every time - you get access info etc.) [entity reference reuse or create new].

should appear in Google listings and Maps

From experience if you markup (schema.org in microdata, rdfa or json alternative) the pages of events with their locations times and some unit (like venue, city etc.) google presents the events in search results (with date) automagically after a while.
Automatically (rather than by submission) getting things into Google Maps - darker art that maybe Michael knows about.

@willguv
Copy link
Member Author

willguv commented Sep 23, 2020

Tom's User / Job Stories

As a council service
I need to publish information about events my team is running
So that they can be seen where users expect to find them - on the council website

Jenny: so that potential attendees can easily find the info they need

As a council employee who manages council meetings
I need the event information on ModernGov to show on the main council website
So that the information is available in an accessible and easy to find format.

Lambeth has ModernGov as well. Lots of council meetings so would need to pull in some - maybe not MVP

iCal feed that Drupal 7 in Croydon pulls in and publishes

When a council team needs to publish events on the council website
They need to separate the events from other council events
So that users see the events from just their team

As a disgruntled member of the public
I need to find the next public council meeting
So that I can attend and give my view

As a library goer
As a Healthwalk goer

Do we need channels for events?

When a user is browsing a list which contains many events
They need to be able to filter the events by facets (such as free/fee or audience age groups)
So that they only see the events which are most relevant to them

As a user interested in a particular event
I need to be able to filter by interest, location, cost, age, venue accessibility (other facets)
I need to be able to filter by the day of the week/ date
So that I can see the events which are most relevant to me

When a user is looking for an event they don't know the precise details of
They need to be able to search using approximate keywords
So that they can find the event they need

When a user wants to attend an event
They need to see what events occur on a particular day of the week (such as every Wednesday)
So that they can quickly identify events which match their availability

Can users see if event is a one off or recurring

Comparing fields on Brighton events and LGD directories

https://docs.google.com/spreadsheets/d/1Pc1ynwRKAnU9PVsDrYu1qjuf_Jal3E0Uim_A41VgcB8/edit?usp=sharing

@ekes
Copy link
Member

ekes commented Sep 23, 2020

Can users see if event is a one off or recurring

This one's structural to decide it's a different extended version of the date field.

At my last review (about 12 months ago mind) the best recurrence for dates was https://www.drupal.org/project/date_recur

@ekes
Copy link
Member

ekes commented Sep 23, 2020

For the neighbourhood section that's in Lambeth. If that correlates with a line of the the address this can be indexed directly and separately to use as a facet.

@stephen-cox stephen-cox moved this from Ready for work to In progress in Alpha Sprint 10 Sep 24, 2020
stephen-cox added a commit to localgovdrupal/localgov_events that referenced this issue Sep 24, 2020
stephen-cox added a commit to localgovdrupal/localgov_events that referenced this issue Sep 24, 2020
stephen-cox added a commit to localgovdrupal/localgov_events that referenced this issue Sep 25, 2020
@stephen-cox
Copy link
Member

@willguv @lbcwebmaster @finnlewis

I have deployed the events work so far to the UAT site for mid-sprint testing: https://localgovdrupal.agile.coop/events

To see events you will need to add some categories and neighbourhoods

And then some events

As discussed on localgovdrupal/localgov_events/issues/3 recurring dates and text search don't integrate properly. There is a search with facets, but this is a different page to the main event listing page. Does this look okay? I can drop the search if the UX of this is odd.

There are a few things that are still to do:

  • Adding a location and map displays (you and try adding a location, but I need to sort this out).
  • Event views on the listing page need tidying up.
  • Dates in the date filter need to be add as YYYY-MM-DD (next up is to create a nice date search widget).

Please raise any issues or improvements as tickets here: https://github.com/localgovdrupal/localgov_events/issues

@willguv
Copy link
Member Author

willguv commented Oct 6, 2020

##Events feedback

Hi @stephen-cox, I've taken in John Edwards feedback too. There's a lot here, so how about discussing at the end of standup and I can break the work we decide to do today into cards? We can park the rest until later.

In priority order

The website encountered an unexpected error. Please try again later.

Drupal\Core\Entity\EntityStorageException: End date must not occur before start date. in Drupal\Core\Entity\Sql\SqlContentEntityStorage->save() (line 846 of core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php).
Drupal\date_recur\DateRange->__construct(Object, Object) (Line: 29)
Drupal\date_recur\DateRecurNonRecurringHelper->__construct(Object, Object) (Line: 36)
Drupal\date_recur\DateRecurNonRecurringHelper::createInstance('', Object, Object) (Line: 446)
Drupal\date_recur\Plugin\Field\FieldType\DateRecurItem->getHelper() (Line: 365)
Drupal\date_recur\Plugin\Field\FieldType\DateRecurItem->preSave() (Line: 233)
Drupal\Core\Field\FieldItemList->delegateMethod('preSave') (Line: 191)
Drupal\Core\Field\FieldItemList->preSave() (Line: 881)
Drupal\Core\Entity\ContentEntityStorageBase->invokeFieldMethod('preSave', Object) (Line: 831)
Drupal\Core\Entity\ContentEntityStorageBase->invokeHook('presave', Object) (Line: 500)
Drupal\Core\Entity\EntityStorageBase->doPreSave(Object) (Line: 700)
Drupal\Core\Entity\ContentEntityStorageBase->doPreSave(Object) (Line: 454)
Drupal\Core\Entity\EntityStorageBase->save(Object) (Line: 837)
Drupal\Core\Entity\Sql\SqlContentEntityStorage->save(Object) (Line: 395)
Drupal\Core\Entity\EntityBase->save() (Line: 294)
Drupal\node\NodeForm->save(Array, Object)
call_user_func_array(Array, Array) (Line: 114)
Drupal\Core\Form\FormSubmitter->executeSubmitHandlers(Array, Object) (Line: 52)
Drupal\Core\Form\FormSubmitter->doSubmitForm(Array, Object) (Line: 593)
Drupal\Core\Form\FormBuilder->processForm('node_localgov_event_form', Array, Object) (Line: 321)
Drupal\Core\Form\FormBuilder->buildForm(Object, Object) (Line: 91)
Drupal\Core\Controller\FormController->getContentResult(Object, Object)
call_user_func_array(Array, Array) (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber{closure}() (Line: 151)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)

When entering date it would be great to pre-populate the end date to be the same as the start date and the same for time

Error message when someone does this?


GOOD TO HAVE

  • Remove seconds field from start time and end time

  • Can you explain what "multiple days" does? When I pick "2" I'm expecting to see a second set of date fields, but nothing happens

  • The only way I can see of adding an enquiries phone number is by associating a provider. Is this OK for now? Or should it have enquiries tab from directory venue?

  • Related to above: The "Location" tab sets provider and location. Two things: The tab needs renaming eg "Provider and location" to reflect this. Is "organiser" a better word than "provider"?

  • How does it pick "This week" dates? I was thinking "next 7 days" is more accurate

  • When events expire, are they removed from the Events list? (haven't checked this)

  • Photo needs a caption field


LATER

  • Summary event listings – would be good to show which facet(s), neighbourhood(s), price with each event that are clickable to execute a fresh search for events tagged with that element

  • Featured events – we talked about the idea of being able to create event landing pages for different campaigns or engagement activities. We need a way of tagging an event so that is can be featured. More than one event could be featured. The could be a primary featured and several secondary featured. Maybe this could be done with facets?
    How do we surface pre-filtered events elsewhere eg Library events in library landing page?

stephen-cox added a commit to localgovdrupal/localgov_events that referenced this issue Oct 6, 2020
stephen-cox added a commit to localgovdrupal/localgov_events that referenced this issue Oct 6, 2020
stephen-cox added a commit to localgovdrupal/localgov_events that referenced this issue Oct 6, 2020
@stephen-cox stephen-cox linked a pull request Oct 6, 2020 that will close this issue
Alpha Sprint 10 automation moved this from In progress to Done Oct 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging a pull request may close this issue.

3 participants