Properties and input fields followed by a "+" may occur more than once. If they are followed by a "*" they are required.
An Event is represents something of interest happening at a certain time and place or places; the same Event may occur in more than one location. In the UCBCN, these Events are displayed on publicly available web-based calendars. Note: Event DateTime has not been completely defined here, but it will be defined very soon, and mappable to the iCalendar specification (RFC 2445).
Event.ID
Event.Title*
Event.Subtitle
EventType.ID (enumerated list)*
Event.OtherType
Event.SubType
Event.Description
Event.ShortDescription
Event.Refreshments
Event.NetworkClassification (Public, Private)
Event.ApprovedForCirculation
Event.Status
Event.OwnerID - this is the Account.ID of the Event's Primary Sponsor
Event.PrivateComment
Keyword+.ID
Event.OtherKeyword
Event.ImageTitle
Event.ImageURL
Event.WebPageURL
Event.ListingContactCalNetUID*
Event.DateCreated*
Event.CalNetUIDCreated*
Event.DateLastUpdated*
Event.CalNetUIDLastUpdated*
DateTime.(to be decided)*
Sponsor+.ID
Location+.ID
Performer+.ID
PublicContact+.ID
RelatedEvent+.ID
AttendanceRestriction+.ID
AdmissionInfoGroup+.ID
Document+.ID
Webcast+.ID
FeatureType+.ID
Account+.ID
All of the following methods except SEARCH_EVENTS assume that the User is logged in (so the User's Account ID and CalNetUID can be determined). All input is assumed to be a new value unless "(current value)" is specified. All functions may only performed from within the Calendar & Event Management Application unless otherwise specified.
Allows a User to add an Event to the database. This action may also be performed from the Live Calendar.
Precondition:
If using the Calendar & Event Management Application, User must have CreateEvent permission for the Account represented by Event.OwnerID and User.Account_ID (which should usually be the same--they are usually creating an Event for their Account). All Users with CalNetUIDs have CreateEvent permission from the External form.
Potential Input:
User.Account_ID (current value)*
User.CalNetUID (current value)*
Event.Title*
Event.Subtitle
Event_Type.ID*
Event.OtherType
Event.SubType
Event.Description
Event.ShortDescription
Event.Refreshments
Event.NetworkClassification (Public, Private)
Event.Status
Event.PrivateComment
Keyword+.Name
Event.OtherKeyword
Event.ImageTitle
Event.ImageURL
Event.WebPageURL
Event.ListingContactCalNetUID*
Event.DateCreated* (this is not entered by the User, but generated by the system)
Event.CalNetUIDCreated* (this is not entered by the User, but generated by the system)
Event.DateLastUpdated* (this is not entered by the User, but generated by the system)
Event.CalNetUIDUpdated* (this is not entered by the User, but generated by the system)
DateTime.(to be decided)*
Sponsor+.ID (if chosen from enumerated list) or Sponsor+.Name (if text was entered) (entering a primary Sponsor, who will be the Event owner, is required)*
Sponsor+.Level
Sponsor+.LogoTitle
Sponsor+.LogoURL
Sponsor+.Description
Sponsor+.WebPageURL
Location+.ID (if chosen from enumerated list) or Location+.Name (if text was entered)*
Location+.StreetAddress1
Location+.StreetAddress2
Location+.Room
Location+.City
Location+.State
Location+.Zip
Location+.MapURL
Location+.Hours
Location+.AdditionalPublicInfo
Location+.Type
Location+.Phone
PerformerType+.ID (if chosen from enumerated list) or PerformerType.Name (if text was entered)
Performer+.Name
Performer+.OtherPerformerType
Performer+.JobTitle
Performer+.OrganizationName
Performer+.PersonalWebPageURL
Performer+.OrganizationWebPageURL
PublicContact+.Name
PublicContact+.JobTitle
PublicContact+.Organization
PublicContact+.AddressLine1
PublicContact+.AddressLine2
PublicContact+.City
PublicContact+.State
PublicContact+.Zip
PublicContact+.EmailAddress
PublicContact+.Phone
PublicContact+.Fax
PublicContact+.WebPageURL
RelatedEvent+.RelatedEventID
RelatedEvent+.RelationType
AttendanceRestriction+.Name
AdmissionInfoGroup+.TicketPolicy
AdmissionInfoGroup+.TicketContactName
AdmissionInfoGroup+.TicketContactPhone
AdmissionInfoGroup+.TicketContactURL
AdmissionInfoGroup+.TicketsOnSaleDate
AdmissionInfoGroup+.TicketAdditionalInfo
AdmissionInfoGroup+.ReservationPolicy
AdmissionInfoGroup+.ReservationContactName
AdmissionInfoGroup+.ReservationContactPhone
AdmissionInfoGroup+.ReservationContactURL
AdmissionInfoGroup+.Audience+.ID (if chosen from enumerated list) or AdmissionInfoGroup+.Audience+.Name (if text was entered)
AdmissionInfoGroup+.ReservationAdditionalInfo
AdmissionInfoGroup+.FreeEvent
AdmissionInfoGroup+.SoldOut
AdmissionInfoGroup+.ReservationOtherAudience
AdmissionInfoGroup+.AdmissionCharge+.Price
AdmissionInfoGroup+.AdmissionCharge+.Description
Document+.Name
Document+.URL
Webcast+.Title
Webcast+.Status
Webcast+.DateAvailable
Webcast+.PlayerType
Webcast+.URL+
Webcast+.SequenceNumber+
FeatureType+.ID
Account+.ID
$Status - Variable saying whether User of Calendar & Event Management Application wants Event to be "posted" or put in their "pending" queue. Status may only be set to "pending" for Events coming from an External Form.
$Source - Variable that has been assigned based on where the Event was entered (e.g. "InternalForm", "ExternalForm")
Post-Conditions:
Users attempting to enter Events with the same Location.Name, Location.StreetAddress1, Location.StreetAddress2, Location.Room, Location.City, Location.State, Location.Zip, and DateTime as an Event already in the system must receive a confirmation message letting them know an Event with the same date, time and location is already in the database, populating the Create Event screen with that data, and asking them if they really want to continue before accepting the new Event.
Event.ID has been assigned by the database
All of the input fields which were entered (except those marked "current value") have been added to the corresponding in the database columns. However, if user is entering Event from an External form, FeatureType.ID is not available. In addition:
Event.DateCreated = the current DateTime
Event.CalNetUIDCreated = User.CalNetUID
Event.DateLastUpdated = Timestamp with the current DateTime
Event.CalNetUIDLastUpdated = User.CalNetUID
Event.OwnerID = Sponsor.ID of the Sponsor for which Sponsor.Level = "Primary" (this will be limited to one Sponsor in the user interface). If this Account does not exist in the system, assign the Event to Public Affairs.
A record has been added to the Account_has_Event table where Account_ID = Event.OwnerID, Event_ID = (Event.ID that was assigned by the database), Status = $Status, and Source = $Source, DateCreated = Timestamp with current date & time, CalNetUIDCreated = User.CalNetUID, DateLastUpdated = Timestamp with current date & time, CalNetUIDLastUpdated = User.CalNetUID
If Event.NetworkStatus = "public" and Account.EventReleasePreference of Event.OwnerID = "immediate", update Event.ApprovedForCirculation="true". Otherwise Event.ApprovedForCirculation = "false" (and will remain "false" until the Event is posted by the Event Owner). A record is added to the Account_has_Event table for all Event.AccountIDs where Account_ID = Event.AccountID (except the Account.ID = Event.OwnerID, which was added above), Event_ID = (Event.ID that was assigned by the database), Source = $Source, DateCreated = Timestamp with current date & time, CalNetUIDCreated = User.CalNetUID, DateLastUpdated = Timestamp with current date & time, CalNetUIDLastUpdated = User.CalNetUID. If Event.ApprovedForCirculation = "true", Account_has_Event.Status = "pending". If Event.ApprovedForCirculation = "false", Account_has_Event.Status = "onhold". Events with NetworkStatus="private" should be limited in the interface to only entering one Primary Sponsor, who will also be the Event Owner.
Allows a User to update information on a particular Event information in the database.
Pre-Conditions:
Event.ID must exist
User.Account_ID = Event.OwnerID
User must have EditEvent permission for the Account represented by Event.OwnerID
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
Event.ID (current value)*
All input fields in CREATE_EVENT (same fields that are required in CREATE_EVENT are required here) except Event.DateCreated and Event.CalNetUIDCreated, which never change after the Event is initially entered
Post-Conditions:
All of the input fields which were entered (except those marked "current value") have been updated in the corresponding database columns
Event.DateLastUpdated = Timestamp with the current DateTime
Event.CalNetUIDLastUpdated = User.CalNetUID
Allows a User to make a copy of an Event to use as a template for a new Event.
Pre-Conditions:
Event.ID must exist
User must have CreateEvent permission for User.Account_ID
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
Event.ID (current value)*
All input fields in CREATE_EVENT except Event.DateCreated, Event.CalNetUIDCreated, Event.DateLastUpdated, Event.CalNetUIDLastUpdated
Post-Conditions:
All information originally entered in CREATE_EVENT or subsequently added in EDIT_EVENT (except Event.DateCreated, Event.CalNetUIDCreated, Event.DateLastUpdated, Event.CalNetUIDLastUpdated) from the Event being used as a template is populated into the Create Event form. Event.OwnerID, however, is changed to User.Account.ID.
Allows a User to make create copies of an Event in the database which follow a particular repetition pattern; thus, the dates and/or times will all be different. These repetition patterns will be defined in the DateTime section which is still being designed.
Pre-Conditions:
Event.ID of initial Event defining the repetition must exist
User must have CreateEvent permission for User.Account_ID
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
Event.ID (current value)*
All input fields in CREATE_EVENT except Event.DateCreated, Event.CalNetUIDCreated, Event.DateLastUpdated, Event.CalNetUIDLastUpdated
Post-Conditions:
After User enters repetition pattern, they are shown all the dates that will be created based on this pattern. When the Event is saved, the additional database records for all the Events in the series are created.
All information originally entered in CREATE_EVENT or subsequently added in EDIT_EVENT (except Event.DateCreated, Event.CalNetUIDCreated, Event.DateLastUpdated, Event.CalNetUIDLastUpdated) is copied from the initial Event defining the repetition to database records which represent all the Events in the series specified by the User. All records, however, will have a Date or Time different from the original record.
When a User specifies that they would like to create a parent Event, after this Event is created they are taken to a Create Event form that is mostly blank, but is tied to the parent event as one of its children.
Pre-Conditions:
Event.ID of parent Event must exist
User must have CreateEvent permission for User.Account_ID
User.Account_ID = Event.OwnerID of parent Event
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
Event.ID of parent Event (current value)*
Post-Conditions:
After User saves the parent Event, they are taken to a Create Event form that is mostly blank, but is populated with the parent Event.ID as RelatedEvent.RelationType = "parent"
For the child event, a record is created in RelatedEvent where Event_ID = (ID of the child Event assigned by the database), Event.RelatedEvent.RelationType = "child", and Event.RelatedEvent.RelatedEventID = Event.ID of the parent Event.
At the bottom of the Create Event form for each child Event, or the Edit Event form if the User accesses the parent event later, the user is asked to check a box before saving the Event if they would like to "Create another child Event?" From the Edit Event form for the parent Event, the User also gets a box asking if they would like to "Edit child Events?" and then a set of check boxes next to the name of each child Event. When the parent Event is saved, the User is taken to the child Event(s) for the box(es) they checked.
Allows a User to change an Event's NetworkClassification to "deleted" and remove it from their calendar. An Event is never really deleted from the database. Note: At application developer's discretion, we may want to move deleted Events to their own tables, which will simply be copies of all tables related to Events.
Pre-Conditions:
Event.ID must exist
User.Account_ID = Event.OwnerID
User must have DeleteEvent permission for the Account represented by Event.OwnerID
Event must not be in use on any other calendar: "Select * from Account_has_Event a, Event e where a.Event_ID = (Event.ID of the Event being deleted) and a.User.Account_ID != e.OwnerID" must return NULL. Users should not see the "Delete" button if the Event is in use by another Account.
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
Event.ID (current value)*
Post-Conditions:
If the any of the Events are in Pending or Posted queue of another calendar, User receives error message stating that Event could not be deleted because it is in use on another calendar & suggesting that they remove it instead.
If the User did not come from a confirmation screen, they will be shown a confirmation screen displaying all information originally entered in CREATE_EVENT or subsequently added in EDIT_EVENT, and asked to confirm the Event being deleted before it is actually deleted.
The Account_has_Event table is updated where Account_ID = User.Account.ID and Event_ID = (Event.ID of the Event being deleted), Status = "viewed", DateLastUpdated = Timestamp with current date & time, CalNetUIDLastUpdated = User.CalNetUID
Event.NetworkClassification = "deleted"
Event.DateLastUpdated = Timestamp with the current DateTime
Event.CalNetUIDLastUpdated = User.CalNetUID
Returns information on Events in the pending queue for the active Account. Note: This function may be combined with VIEW_POSTED_EVENTS and/or VIEW_ARCHIVED_EVENTS at the application developer's discretion.
Pre-Conditions:
User must have ViewEvents Permission
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
$SortOrder (default is EventDate&Time)
Post-Conditions:
Search results sorted by $SortOrder including Event Date & Time, Event.Title, Event.Owner.Name, Event.Account_has_Event.Source, Event.Account_has_Event.DateCreated where Event have been returned to the screen for all Events in Account_has_Event where Status = "pending" and Account_ID = User.Account.ID
If there are any Events with DateLastUpdated < 7 days ago, put them at the top of the queue and make them a distinctive color or use an icon to indicate that they have changed.
If there are no pending Events for this Account, a message stating "There are no pending events at this time" will be displayed to the User.
Returns information on Events in the posted queue for the active Account. Note: This function may be combined with VIEW_PENDING_EVENTS and/or VIEW_ARCHIVED_EVENTS at the application developer's discretion.
Pre-Conditions:
User must have ViewEvents Permission
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
$SortOrder (default is EventDate&Time)
Post-Conditions:
Search results sorted by $SortOrder including Event Date & Time, Event.Title, Event.Owner.Name, Event.Account_has_Event.Source, Event.Account_has_Event.DateLastUpdated have been returned to the screen for all Events in Account_has_Event where Status = "pending" and Account_ID = User.Account.ID
If there are any Events with DateLastUpdated < 7 days ago, put them at the top of the queue and make them a distinctive color or use an icon to indicate that they have changed.
If there are no posted Events for this Account, a message stating "There are no posted events at this time" will be displayed to the User.
Returns information on Events in the archived queue for the active Account. Note: This function may be combined with VIEW_PENDING_EVENTS and/or VIEW_POSTED_EVENTS at the application developer's discretion.
Pre-Conditions:
User must have ViewEvents Permission
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
$SortOrder (default is EventDate&Time)
Post-Conditions:
Search results sorted by $SortOrder including Event Date & Time, Event.Title, Event.Owner.Name, Event.Account_has_Event.Source, have been returned to the screen for all Events in Account_has_Event where Status = "archived" and Account_ID = User.Account.ID
If there are no archived Events for this Account, a message stating "There are no archived events at this time" will be displayed to the User.
Allows a User to view detailed information on a particular Event in the database. It also gives Users a list of the different operations they can perform on a particular Event in the form of displayed buttons.
Pre-Conditions:
Event.ID must exist
User must have ViewEvents permission for User.Account_ID
If User.Account.ID != Event.OwnerID, Event.ApprovedForCirculation must = "true" and Event.NetworkClassification must = "public"
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
Event.ID (current value)*
$ScreenUserCameFrom
Post-Conditions:
All information originally entered in CREATE_EVENT or subsequently added in EDIT_EVENT are displayed to the User.
If Account owns Event (User.Account.ID = Event.OwnerID) & Event.Account_has_Event.Status = "pending", the user sees the following buttons: Edit, Post, Remove from Pending, and, if "Select * from Account_has_Event a, Event e where a.Event_ID = (Event.ID of the Event being deleted) and a.User.Account_ID != e.OwnerID" returns NULL", Delete from System
If Account does not own Event (User.Account.ID != Event.OwnerID), Event.Account_has_Event.Status = "pending", and $ScreenUserCameFrom = "SearchCampusEvents" the user sees the following buttons: Post and Recommend
If Account does not own Event (User.Account.ID != Event.OwnerID) and Event.Account_has_Event.Status = "pending" the user sees the following buttons: Post, Recommend, and Remove from Pending
If Account owns Event (User.Account.ID = Event.OwnerID) & Event.Account_has_Event.Status = "posted", the user sees the following buttons: Edit, Recommend, Remove from Calendar, and, if "Select * from Account_has_Event a, Event e where a.Event_ID = (Event.ID of the Event being deleted) and a.User.Account_ID != e.OwnerID" returns NULL", Send Back to Pending and Delete from System
If Account does not own Event (User.Account.ID != Event.OwnerID) and Event.Account_has_Event.Status = "posted", the user sees the following buttons: Recommend, Send Back to Pending, Remove from Calendar
If $ScreenUserCameFrom = "Archived", User sees no buttons
Allows a User to post an Event or Events located in their Pending queue to their Account's calendar.
Precondition:
Event.ID(s) must exist.
User must have PostEvent permission for User.Account_ID
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
Event.ID(s) (current value)*
PostCondition:
The Account_has_Event table is updated where Account_ID = User.Account.ID and Event_ID = (Event.ID(s) of the Event(s) being posted), Status = "posted", DateLastUpdated = Timestamp with current date & time, CalNetUIDLastUpdated = User.CalNetUID
If User.Account.ID = Event.OwnerID and Event.NetworkClassification = "public", update Event.ApprovedForCirculation="true". Then check to see if there are any Accounts with this Event "onhold". Select * from Account_has_Event a Event e where a.Event_ID = (Event.ID(s) of the Event(s) being posted) and a.Account_ID = e.AccountID and a.Status = "onhold". If so, update it/them with Status = "pending", DateLastUpdated = Timestamp with current date & time, and CalNetUIDLastUpdated = User.CalNetUID.
Allows a User to put an Event that was previously "posted" back in their Account's Pending queue.
Precondition:
Event.ID must exist
User must have RemoveEvent permission for User.Account_ID
If User.Account_ID = Event.OwnerID (if this Account owns Event) and Account.EventReleasePreference of Account owning Event = "approval", Event must not be in the Pending or Posted queue of any other calendar: "Select * from Account_has_Event a, Event e where a.Event_ID = (Event.ID of the Event being moved to pending) and a.Account_ID != e.OwnerID" must return NULL. Users should not see the "Send Back to Pending" button if the Event is in use by another Account.
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
Event.ID(s) (current value)*
PostCondition:
If the any of the Events are in Pending or Posted queue of another calendar, User receives error message stating that Event could not be sent back to Pending because it is in use on another calendar.
The Account_has_Event table is updated where Account_ID = User.Account.ID and Event_ID = (Event.ID of the Event being moved to pending), Status = "pending", DateLastUpdated = Timestamp with current date & time, CalNetUIDLastUpdated = User.CalNetUID
Event.ApprovedForCirculation="false"
Allows a User to post an Event found in a Search to their Account's calendar. Note: This function may be combined with POST_EVENT or PEND_EVENT_SEARCH at the application developer's discretion.
Precondition:
Event.ID must exist
User must have PostEvent permission for User.Account_ID
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
Event.ID (current value)*
PostCondition:
A record has been added to the Account_has_Event table where Account_ID = User.Account.ID, Event_ID = (Event.ID of the Event being moved to posted), Status = "posted", and Source = "search", DateCreated = the current date & time, CalNetUIDCreated = User.CalNetUID, DateLastUpdated = Timestamp with current date & time, CalNetUIDLastUpdated = User.CalNetUID
Allows a User to put an Event found in a Search into their Account's Pending queue. Note: This function may be combined with PEND_EVENT or POST_EVENT_SEARCH at the application developer's discretion.
Precondition:
Event.ID must exist
User must have PendEvent permission for User.Account_ID
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
Event.ID (current value)*
PostCondition:
A record has been added to the Account_has_Event table where Account_ID = User.Account.ID, Event_ID = (Event.ID of the Event being moved to pending), Status = "pending", and Source = "search", DateCreated = the current date & time, CalNetUIDCreated = User.CalNetUID, DateLastUpdated = Timestamp with current date & time, CalNetUIDLastUpdated = User.CalNetUID
Allows a User to remove an Event from their calendar without actually deleting it. It may be necessary for a User to use this function instead of deleting an Event that they own if it is in use by another Account. Note: This function may be split into two: REMOVE_EVENT_POSTED & REMOVE_MULTIPLE_EVENTS_POSTED, at the application developer's discretion.
Pre-Conditions:
Event.ID(s) must exist
User must have RemoveEventPosted permission for User.Account_ID
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
Event.ID(s) (current value)*
Post-Conditions:
The Account_has_Event table is updated where Account_ID = User.Account.ID and Event_ID = (Event.ID(s) of the Event(s) being removed), Status = "viewed", DateLastUpdated = Timestamp with current date & time, CalNetUIDLastUpdated = User.CalNetUID
Users will be shown a confirmation screen displaying all information originally entered in CREATE_EVENT or subsequently added in EDIT_EVENT, and asked to confirm the Event(s) being removed before they are actually removed. If any of these Events are not in use by any other Account ( "Select * from Account_has_Event a, Event e where a.Event_ID = (Event.ID of the Event being deleted) and a.User.Account_ID != e.OwnerID" must return NULL) and User.Account.ID = Event.OwnerID, they will be asked if they would like to Delete the Event from the system instead. If the User selects any of these Events for Deletion, DELETE_EVENT method should be followed for that Event or those Events.
Allows a User to remove an Event from their Pending queue without actually deleting it.
Pre-Conditions:
Event.ID must exist
User must have RemoveEventPending permission for User.Account_ID
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
Event.ID (current value)*
Post-Conditions:
The Account_has_Event table is updated where Account_ID = User.Account.ID and Event_ID = (Event.ID of the Event being removed), Status = "viewed", DateLastUpdated = Timestamp with current date & time, CalNetUIDLastUpdated = User.CalNetUID
Allows a User to recommend an Event to another Account.
Pre-Conditions:
Event.ID must exist
User must have RecommendEvent permission for User.Account_ID
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
Event.ID (current value)*
Account.ID to which the User would like to recommend the Event (current value)*
Post-Conditions:
A record has been added to the Account_has_Event table where Account_ID = (Account.ID receiving recommendation), Event_ID = (Event.ID of the Event being recommended), Status = "pending", and Source = "recommend", DateCreated = the current date & time, CalNetUIDCreated = User.CalNetUID, DateLastUpdated = Timestamp with current date & time, CalNetUIDLastUpdated = User.CalNetUID
Allows a User to search all public Events which are approved for circulation. This action may be performed from the Live Calendar. It may also be performed when the User selects the "Preview Results" button when setting up a Subscription in the Calendar & Event Management Application. At the discretion of the application developer, this function may be separated into a Quick Search and Advanced Search.
Pre-Conditions:
None
Input:
$TitleDescription
$[]Sponsor.ID (array)
$OtherSponsorName
$[]EventType.ID (array)
$OtherEventType
$[]Audience.ID (array)
$OtherAudience
$PerformerName
$[]Location.ID (array)
$OtherLocationName
$EventFromDate
$EventToDate
$[]Keyword.ID (array)
$OtherKeyword
User.Account.ID (current value) (required if performed from in the Calendar & Event Management Application)*
Post-Conditions:
Search results including Event date & time, Event.Title, Event.OwnerID.Name, and, if inside the Calendar & Event Management Application, an indication of whether each Event is currently live on the calendar of the Account of the User doing the search, have been returned to the screen for all Events meeting the Search criteria where Event.NetworkClassification = "public" and Event.ApprovedForCirculation="true"
Allows a User to search all Events within a particular queue of their Account. At the discretion of the application developer, this function may be separated into a Quick Search and Advanced Search.
Pre-Conditions:
User must have ViewEventQueue Permission
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
$TitleDescription
$[]Sponsor.ID (array)
$OtherSponsorName
$[]EventType.ID (array)
$OtherEventType
$[]Audience.ID (array)
$OtherAudience
$PerformerName
$[]Location.ID (array)
$OtherLocationName
$EventFromDate
$EventToDate
$[]Keyword.ID (array)
$OtherKeyword
$Queue - the queue the User is searching in (e.g. "pending", "posted", "archived")
Post-Conditions:
Search results including the fields which are normally displayed in the queue the User is searching in have been returned to the screen for all Events meeting the Search criteria where Account_ID = User.Account.ID and Event.NetworkClassification = $Queue
Allows a User to export Events from their Pending, Posted, or Archived queue. These exported Events may be further limited by Search criteria and may be exported to several different file types. All of the file types are still being determined, but will at least include an RSS file, a tab-separated text file and a file validating against the UCBEvents.xsd W3C Schema.
Pre-Conditions:
User must have ExportEvent Permission
Input:
User.Account.ID (current value)*
User.CalNetUID (current value)*
$DataSet (Pending, Posted, and/or Archived)
$TitleDescription
$[]Sponsor.ID (array)
$OtherSponsorName
$[]EventType.ID (array)
$OtherEventType
$[]Audience.ID (array)
$OtherAudience
$PerformerName
$[]Location.ID (array)
$OtherLocationName
$EventFromDate
$EventToDate
$[]Keyword.ID (array)
$OtherKeyword
$FileType
Post-Conditions:
A file containing data to be determined when file types are chosen (most likely to include all information originally entered in CREATE_EVENT or subsequently added in EDIT_EVENT) which meets the above criteria, and for which Account_ID = User.Account.ID is created. The User is then asked where they would like to save it on their computer.
A job that runs nightly and puts all Events for a particular Account for which the Event Date is beyond the range of the display calendar into the archive. At the application developer's discretion, if it helps performance we may want to move these Events out of the Events table into an ArchivedEvents table.
Pre-Conditions:
None
Input:
All Account.IDs (current value)*
Post-Conditions:
A query has been run to determine the oldest date a non-archived Event should have ($OldestDate) in each Account using Account.CalendarDateRange.
A query has been run to determine the Event.ID of any Events where Event.DateTime is older than $OldestDate for that Account.
The Account_has_Event table is updated where Account_ID = Event.Account.ID and Event_ID = (Event returned from >$OldestDate query), Status = "archived", DateLastUpdated = Timestamp with current date & time, CalNetUIDLastUpdated = "system"
Allows a User upload an XML file of Events to the database. Note: this function may be combined with CREATE_EVENT at the application developer's discretion.
Precondition:
User must have UploadEvents Permission.
Uploaded document must validate against the UCBEvents.xsd W3C Schema.
Events must have only one Primary Sponsor (which will become the Event Owner)
Events in the uploaded document must not be Events sent in previously by the same Account. This function accepts new Events only; editing of Events must be done through the Calendar & Event Management Application. Events with the same Location.Name, Location.StreetAddress1, Location.StreetAddress2, Location.Room, Location.City, Location.State, Location.Zip, and DateTime as an Event already in the system will be rejected.
Potential Input:
User.Account_ID (current value)*
User.CalNetUID (current value)*
Event.Title*
Event.Subtitle
Event_Type.ID*
Event.OtherType
Event.SubType
Event.Description
Event.ShortDescription
Event.Refreshments
Event.NetworkClassification (Public, Private)
Event.Status
Event.PrivateComment
Keyword+.Name
Event.OtherKeyword
Event.ImageTitle
Event.ImageURL
Event.WebPageURL
Event.ListingContactCalNetUID*
Event.DateCreated* (this is not included in the input file, but generated by the system)
Event.CalNetUIDCreated* (this is not included in the input file, but generated based on the User.CalNetUID of the User uploading the file)
Event.DateLastUpdated* (this is not included in the input file, but generated by the system)
Event.CalNetUIDUpdated* (this is not included in the input file, but generated based on the User.CalNetUID of the User uploading the file)
DateTime.(to be decided)*
Sponsor+.ID (if chosen from enumerated list) or Sponsor+.Name (if text was entered)
Sponsor+.Level
Sponsor+.LogoTitle
Sponsor+.LogoURL
Sponsor+.Description
Sponsor+.WebPageURL
Location+.ID (if chosen from enumerated list) or Location+.Name (if text was entered)*
Location+.StreetAddress1
Location+.StreetAddress2
Location+.Room
Location+.City
Location+.State
Location+.Zip
Location+.MapURL
Location+.Hours
Location+.AdditionalPublicInfo
Location+.Type
Location+.Phone
PerformerType+.ID (if chosen from enumerated list) or PerformerType.Name (if text was entered)
Performer+.Name
Performer+.OtherPerformerType
Performer+.JobTitle
Performer+.OrganizationName
Performer+.PersonalWebPageURL
Performer+.OrganizationWebPageURL
PublicContact+.Name
PublicContact+.JobTitle
PublicContact+.Organization
PublicContact+.AddressLine1
PublicContact+.AddressLine2
PublicContact+.City
PublicContact+.State
PublicContact+.Zip
PublicContact+.EmailAddress
PublicContact+.Phone
PublicContact+.Fax
PublicContact+.WebPageURL
RelatedEvent+.RelatedEventID
RelatedEvent+.RelationType
AttendanceRestriction+.Name
AdmissionInfoGroup+.TicketPolicy
AdmissionInfoGroup+.TicketContactName
AdmissionInfoGroup+.TicketContactPhone
AdmissionInfoGroup+.TicketContactURL
AdmissionInfoGroup+.TicketsOnSaleDate
AdmissionInfoGroup+.TicketAdditionalInfo
AdmissionInfoGroup+.ReservationPolicy
AdmissionInfoGroup+.ReservationContactName
AdmissionInfoGroup+.ReservationContactPhone
AdmissionInfoGroup+.ReservationContactURL
AdmissionInfoGroup+.Audience.ID+
AdmissionInfoGroup+.ReservationAdditionalInfo
AdmissionInfoGroup+.FreeEvent
AdmissionInfoGroup+.SoldOut
AdmissionInfoGroup+.ReservationOtherAudience
AdmissionInfoGroup+.AdmissionCharge+.Price
AdmissionInfoGroup+.AdmissionCharge+.Description
Document+.Name
Document+.URL
Webcast+.Title
Webcast+.Status
Webcast+.DateAvailable
Webcast+.PlayerType
Webcast+.URL+
Webcast+.SequenceNumber+
FeatureType+.ID
Account+.ID
$Status - Variable saying whether User wants uploaded Events to be "posted", put in their "pending" queue, or marked "none" to indicate that they were simply uploaded to the database to be shared
Post-Conditions:
Event.ID has been assigned by the database
All of the input fields which were entered (except those marked "current value") have been added to the corresponding in the database columns. In addition:
Event.DateCreated = the current DateTime
Event.CalNetUIDCreated = User.CalNetUID
Event.DateLastUpdated = Timestamp with the current DateTime
Event.CalNetUIDLastUpdated = User.CalNetUID
Event.OwnerID = Sponsor.ID of the Sponsor for which Sponsor.Level = "Primary" (this will be limited to one Sponsor in the user interface)
If $Status != "none," a record for each Event has been added to the Account_has_Event table where Account_ID = User.Account_ID, Event_ID = (Event.ID that was assigned by the database), Status = $Status, and Source = "xmlfeed", DateCreated = Timestamp with current date & time, CalNetUIDCreated = User.CalNetUID, DateLastUpdated = Timestamp with current date & time, CalNetUIDLastUpdated = User.CalNetUID
For each Event, if Event.NetworkStatus = "public" and Account.EventReleasePreference of Event.OwnerID = "immediate", Event.ApprovedForCirculation="true". Otherwise, Event.ApprovedForCirculation="false".
A job that runs nightly and creates 4 RSS Event feeds for a each Account: Today's Events, This Week's Events, This Month's Events, and Events (all future Events and Events held during the past 6 months). We believe we will use RSS 2.0, but this may change. If possible, we would also like to put an RSS link on each page of the calendar (except EventDetails pages), allowing users to view each page either as HTML or an RSS feed. These pages would probably be created as users asked for them, and not in a nightly batch job.
Pre-Conditions:
None
Input:
All Account.IDs (current value)*
Event.Title
Event.DateTime
Event.Location.Name
Event.ShortDescription or (if not avail) Event.Descripition
$Link - Link to Event within the Event Owner's calendar
Post-Conditions:
Today's Events, This Week's Events, This Month's Events, and Events RSS feeds have been created for all Accounts and placed in the appropriate location so that they can be linked to from the corresponding links on that calendar's home page.
In the RSS feeds, Event.Title = RSS.title, $Link = RSS.link, Event.DateTime = dc:date, Event.ShortDescription or (if not avail) Event.Description = RSS.description.
Account.ID
Account.Name*
Account.ShortName*
Account.StreetAddress1*
Account.StreetAddress2*
Account.City*
Account.State*
Account.Zip*
Account.Phone*
Account.Fax
Account.Email*
Account.EventReleasePreference*
Account.AccountStatus*
Account.CalendarDateRange*
Account.FormatCalendarData
Account.EmailLists*
Account.DateCreated*
Account.CalNetUIDCreated*
Account.DateLastUpdated*
Account.CalNetUIDLastUpdated*
Event+.ID
Subscription+.ID
User.ID*
A Subscription is a set of saved search criteria used to search for public Events that have been approved for circulation which meet this criteria every time a User logs into the Calendar & Event Management Application. Certain Subscription queries are also run in a nightly batch job.
Subscription.ID
Subscription.Name*
Subscription.AutomaticApproval*
Subscription.TimePeriod*
Subscription.SearchCriteria*
Subscription.DateCreated*
Subscription.CalNetUIDCreated*
Subscription.DateLastUpdated*
Subscription.CalNetUIDLastUpdated*
All of the following methods assume that the User is logged in (so the User's Account ID and CalNetUID can be determined). All input is assumed to be a new value unless "(current value)" is specified. All functions may only performed from within the Calendar & Event Management Application unless otherwise specified.
Allows a User to create a Subscription for their Account. The search criteria may be entered directly onto the Subcription screen or the Search Campus Events screen when the User chooses to "Save Search as a Subscription."
Pre-Conditions:
User must have CreateSubscription Permission
Input:
User.Account.ID (current value)*
$TitleDescription
$[]Sponsor.ID (array)
$OtherSponsorName
$[]EventType.ID (array)
$OtherEventType
$[]Audience.ID (array)
$OtherAudience
$PerformerName
$[]Location.ID (array)
$OtherLocationName
$EventFromDate
$EventToDate
$[]Keyword.ID (array)
$OtherKeyword
$Approval
$TimePeriod
$ExpirationDate
$SubscriptionName
Post-Conditions:
All Subscription Data above has been saved into the Data column of the Subscriptions table with Account_ID = User.Account.ID.
Allows a User to edit a Subscription for their Account.
Pre-Conditions:
Subscription.ID must exist
User must have EditSubscription Permission
User.Account.ID = Subscription.Account_ID
Input:
User.Account.ID (current value)*
Subscription.ID (current value)*
$TitleDescription
$[]Sponsor.ID (array)
$OtherSponsorName
$[]EventType.ID (array)
$OtherEventType
$[]Audience.ID (array)
$OtherAudience
$PerformerName
$[]Location.ID (array)
$OtherLocationName
$EventFromDate
$EventToDate
$[]Keyword.ID (array)
$OtherKeyword
$Approval
$TimePeriod
$ExpirationDate
$SubscriptionName
Post-Conditions:
All Subscription Data above (except those marked "current value") has been saved into the Data column of the Subscriptions table for this Subscription.ID.
Allows a User to delete a Subscription or Subscriptions for their Account.
Pre-Conditions:
Subscription.ID(s) must exist
User must have DeleteSubscription Permission
User.Account.ID = Subscription.Account_ID
Input:
User.Account.ID (current value)*
Subscription.ID (current value)*
Post-Conditions:
The User will be shown a confirmation screen displaying Subscription.Name, Subscription.AutomaticApproval, Subscription.TimePeriod, and Subscription.ExpirationDate, and asked to confirm the Subscription(s) being removed before they are actually removed
The row for the Subscription.ID(s) is/are deleted from the Subscriptions table.
Returns information on current Subscriptions for the active Account to the Subscriptions screen.
Pre-Conditions:
User must have ViewSubscriptions Permission
Input:
User.Account.ID (current value)*
Post-Conditions:
Search results including Subscription.Name, Subscription.AutomaticApproval, Subscription.TimePeriod, and Subscription.ExpirationDate have been returned to the screen for all Subcriptions for the User.Account.ID
If there are no Subscriptions for this Account, a message stating "There are no subscriptions at this time" will be displayed to the User.
Every time a User logs on to the Calendar & Event Management Application, all Events meeting the Subscription criteria for all Subscriptions for User.Account.ID are put into the Account's Pending queue.
Pre-Conditions:
At least 1 Account.Subscription.ID must exist
Input:
User.Account.ID (current value)*
Post-Conditions:
All Subscription queries have been run and Events meeting the Subscription criteria where Event.NetworkClassification = "public" and Event.ApprovedForCirculation="true" are returned.
A record has been added to the Account_has_Event table for each Event returned from the Subscription queries where Account_ID = (Account.Subscription.ID), Event_ID = (Event.ID returned from query), Status = "pending", and Source = "subscription", DateCreated = the current date & time, CalNetUIDCreated = "system", DateLastUpdated = Timestamp with current date & time, CalNetUIDLastUpdated = "system"
A job that runs nightly and posts all Events meeting the Subscription criteria for a particular Account if Subscription.AutomaticApproval = "true". This means these Events will be posted to the Account automatically, without review by any User.
Pre-Conditions:
At least 1 Account.Subscription with Subscription.AutomaticApproval = "true" must exist
Input:
All Account.IDs (current value)*
Post-Conditions:
All Subscription queries where Subscription.AutomaticApproval = "true" have been run. Only Events meeting the Subscription criteria where Event.NetworkClassification = "public" and Event.ApprovedForCirculation="true" are returned.
A record has been added to the Account_has_Event table for each Event returned from the Subscription queries where Account_ID = (Account.Subscription.ID), Event_ID = (Event.ID returned from query), Status = "posted", and Source = "subscription", DateCreated = the current date & time, CalNetUIDCreated = "system", DateLastUpdated = Timestamp with current date & time, CalNetUIDLastUpdated = "system"