Event Coverage Plugin – System Overview
Two-Tab Interface
📅 Tab 1: Select From Schedule
Purpose: Choose events from the Cal Athletics schedule to assign yourself
How it works:
- Pulls all upcoming events from
klc_cal_schedule table (master schedule)
- Checks
as_galleries_v2 table to see if you already have coverage assigned
- If NOT assigned: Opens blank form with schedule data auto-populated
- If assigned: Opens your existing coverage details for editing
- Shows multi-photographer badges (who else is covering same event)
➕ Tab 2: Add New Event
Purpose: Manually add events not in the Cal schedule (other clients, special assignments)
How it works:
- Clean form for manual event creation
- No schedule reference – creates standalone coverage record
- Saves directly to
as_galleries_v2 table
Form Fields & Auto-Population
Dropdown Team 1 (Sport)
- Auto-populated from:
klc_sport_codes table
- Shows: Sport name with emoji (e.g., 🏀 Cal Mens Basketball)
- User selects: The sport/home team
Dropdown Team 2 (Opponent)
- Auto-populated from:
klc_teams table
- Shows: All opponent teams with abbreviations
- User selects: Away team/opponent
- Searchable: Uses Select2 for easy searching
Auto-Fill Auto-Filled Fields (When Selecting from Schedule)
These fields automatically populate when you click on a schedule event:
- Date – From schedule
- Location/Venue – From schedule (e.g., “Haas Pavilion”)
- City – From schedule
- State – From schedule
- Sport Code – From schedule (e.g., “MBB”)
- Client – Pre-set based on event type
Required Manual Entry Fields (Always Required)
- Photographer – Defaults to your name
- Gallery Name – For your file organization
- Gallery URL – Link to published gallery
- Cover Image – Upload event cover photo
Required Assignment Status (Must Select)
- 💰 Paid Assignment – Commercial work
- 🤝 Volunteer Assignment – Free coverage
Data Flow Summary
┌─────────────────────────┐
│ klc_cal_schedule │ ← Master schedule (all Cal events)
│ (Schedule Source) │
└───────────┬─────────────┘
│ Displays in Tab 1
↓
┌─────────────────────────┐
│ Event Selection UI │
│ (Filter: All/Paid/etc) │
└───────────┬─────────────┘
│ User clicks event
↓
┌─────────────────────────┐
│ Check Coverage Status │ ← Query: Do I have coverage for this?
└───────────┬─────────────┘
│
┌────────┴────────┐
↓ ↓
[NOT ASSIGNED] [ASSIGNED]
│ │
↓ ↓
New Form Edit Form
Auto-filled Your data
from schedule from as_galleries_v2
│ │
└────────┬────────┘
↓
┌─────────────────────────┐
│ User Completes Form │
│ – Uploads cover image │
│ – Adds gallery URL │
│ – Selects Paid/Vol │
└───────────┬─────────────┘
│
↓
┌─────────────────────────┐
│ as_galleries_v2 │ ← Your coverage records
│ (Your Assignments) │ + Auto-generated XMP
└─────────────────────────┘
TLDR – Quick Summary
Select From Schedule Tab:
- Shows Cal Athletics schedule from
klc_cal_schedule
- Click event → form auto-fills with schedule data (location, teams, date)
- You add: gallery URL, cover image, assignment status
- Saves to
as_galleries_v2 with link to schedule event
Add New Event Tab:
- Manual entry for non-Cal events
- Team dropdowns auto-populate from
klc_sport_codes and klc_teams
- You fill everything manually
- Saves to
as_galleries_v2 without schedule link
Behind the Scenes:
- Multi-photographer support: Multiple photographers can cover same event
- Auto-generates XMP metadata for photo captioning
- Saves XMP to database for later download
- Filters: View all events, only your coverage, events needing URLs, etc.
User Action Required:
- Select event (or add new)
- Upload cover image
- Add gallery URL
- Choose Paid/Volunteer status
- Submit → XMP auto-generates and saves
📸 XMP Metadata: Every time you save an event, the system automatically generates professional XMP metadata files that can be downloaded and used in PhotoMechanic for photo captioning. This includes all event details, location info, photographer credits, and more.