# About

This module aims to showcase the features of Drupal 8's Entity API by providing
an _Event_ entity type.


## Branches

The different branches in this repository showcase the process of creating a
custom entity type step by step.

* `00-empty-module`: Only the basic module info file to register this module is
  provided.

* `01-minimal-entity-type`: Provides a minimal _Event_ entity type with the least
  amount of code possible while still providing full CRUD support.

* `02-base-field-definitions`: Adds some basic field definitions to the entity
  type so the entity type can actually store information that makes up an event.

* `03-interface`: Adds getter and setter methods and an accompanying interface
  for better developer experience.

* `04-view-builder`: Adds a view builder so events can be rendered.

* `05-forms`: Adds add, edit, and delete forms.

* `06-list-builder`: Adds a list builder so events can be managed in the
  administration area.

* `07-views-data`: Adds _Views_ data for events and an administrative view to
  replace the list builder and make the event administration more powerful and
  flexible.

* `08-admin-links`: Adds menu links, local tasks, local actions, and contextual
  links, and form redirects to provide a usable event administration interface.

* `09-access`: Adds permissions for events so administration can be done more
  granular and role-based.

* `10-additional-fields`: Adds a path field and an attendees fields to
  demonstrate multiple-value fields.

* `11-bundles`: Adds an _Event type_ configuration entity type that acts as a
  bundle for events.

* `12-field-ui`: Enables _Field UI_ integration so that fields, view displays
  and form displays can be managed in the user interface.

* `13-revisions`: Enables revisions including a view of revisions per event and
  a page to display a particular event revision.

* `14-translation`: Enables translation of events.

* `15-rest`: Enables customized RESTful out- and input.

* `16-validation`: Adds a custom validation constraint that is used both for
  RESTful web services and forms.

When switching branches you need to update entity/field definitions and rebuild
the cache. Because configuration is provided in some of the branches you may
want to reinstall the module for a better out-of-the-box experience.


## Event Development Helper

The _Event Development Helper_ module that is provided is part of this
can aid in the development of the entity type. See the accompanying README.txt
in the `event_devel` directory.