Add Patents Section to Profile - #221
Open
betsyecastro wants to merge 25 commits into
Open
betsyecastro wants to merge 25 commits into
betsyecastro wants to merge 25 commits into
Conversation
betsyecastro
marked this pull request as draft
June 22, 2026 19:37
…ker attribute for day-level
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Faculty Patents Grouping and Display
Adds a faculty patents section to the profiles app: imports raw patent data from a CSV, groups country filings into patent families, and renders editable patent records with hierarchical members on the profile edit view.
Includes:
Backend
ReadsPatentSpreadsheetstrait using native PHPfgetcsv().PatentFamilyGrouperservice groups raw patent rows into curated families by(NetID, normalized_title, family_prefix). Includes special handling for MTI portfolio patents (Kilgard/McIntyre/Rennaker03-026MTI-*) and collapses European countries sharing a patent number into a single EPO entry.patents:importArtisan command reads a CSV, groups via the service, and bulk-inserts curated families intoprofile_datawithtype='patents'. Destructive per profile — wipes existing patents rows before inserting.(prefix, country, patent_no), names are formatted (F. Last) and stored on the record.ProfileData::getCitationAttribute()accessor generates citations at display time, formatted asTitle - Jurisdiction - Number (MM/DD/YYYY), ... - co-inventors: F. Last. EPO collapsing applied for European jurisdictions sharing a patent number.Frontend
profiles.edit.patentswith parent patent records and expandable member sub-records.jurisdiction,published_date).Operational notes
Testing
profile_datarows wheretype='patents'.php artisan patents:import storage/app/patents.csv --dry-runand verify counts.--dry-runto persist.