WIP - Beginnings of eventless contacts #3892
WIP - Beginnings of eventless contacts #3892
WIP - More work toward #3892
WIP - Eventless contacts in Contact History #3892
Addressed failing tests #3892, #3285

- Tests take into account that an `event_id` is now required for contacts in
  order to tell if they point to an event or are eventless
Logic and view changes for #3285

- removed previous thoughts around basing my conditional logic around the presence of `params[:event_id]`, since those were ultimately wrong
- added some logic to return nil for @event assignment if the event_id is passed in as -1, which indicates that an eventless contact should be established
- added a comment about how `nil` gets converted to an integer in `app/controllers/contacts_controller.rb#event_for_person` so that people would understand why I wrote the case statement that appears after that
- the case statement in `app/controllers/contacts_controller.rb#event_for_person` handles the change from two scenarios to now three. Previously we needed to conditionally return a specified event or the next event for the participant. Now, since we have eventless contacts we need to handle a special code for event_id such that a contact without an event is created, which in this case really means returning `nil` so that NO event gets associated with the contact being created/udpated
- corrected a typo of the use of `row` where it should have been row, which was causing a 500 error on line 31 of `app/controllers/people_controller.rb`
- in `app/controllers/people_controller.rb:36` - moved the initialization of `@events_and_contact_links` until after a dependent variable was initialized, avoiding a bug that I'd introduced in an earlier commit
- `app/views/contacts/_form_fields...(et al) - split this partial into two versions, one for eventful contacts and one for eventless contacts, injecting an explicit `-1` for the eventless case. This is a bit ugly as there's quite a nasty copy/paste job going on here, but that's really not such a sin in this case since we're going to retire this code soon.
- similar changes to partials that render various contact forms
- more view-level changes to handle conditional displays depending on whether an event is involved or not
- added a few specs to cover the new and existing behavior for event lookup
- renamed a variable in `spec/controllers/participants_controller_spec.rb` to match a name change in the controller under test
Merge pull request #274 from NUBIC/3285-eventless_contacts_pbs

3285 eventless contacts pbs