Skip to content

Base/3.4.1#21

Open
nihaldas029-BU wants to merge 564 commits into
wip-update_symbiota_versionfrom
base/3.4.1
Open

Base/3.4.1#21
nihaldas029-BU wants to merge 564 commits into
wip-update_symbiota_versionfrom
base/3.4.1

Conversation

@nihaldas029-BU

Copy link
Copy Markdown

Pull Request Checklist:

Pre-Approval

  • There is a description section in the pull request that details what the proposed changes do. It can be very brief if need be, but it ought to exist.
  • Hotfixes should be branched off of the master branch and PR'd using the merge option (not squashed) into the hotfix branch.
  • Features and backlog bugs should be merged into the Development branch, NOT master
  • All new text is preferably internationalized (i.e., no end-user-visible text is hard-coded on the PHP pages), and the spreadsheet tracking internationalizations has been updated either with a new row or with checkmarks to existing rows.
  • There are no linter errors
  • New features have responsive design (i.e., look aesthetically pleasing both full screen and with small or mobile screens)
  • Symbiota coding standards have been followed
  • If any files have been reformatted (e.g., by an autoformatter), the reformat is its own, separate commit in the PR
  • Comment which GitHub issue(s), if any does this PR address
  • If this PR makes any changes that would require additional configuration of any Symbiota portals outside of the files tracked in this repository, make sure that those changes are detailed in this document.

Post-Approval

  • It is the code author's responsibility to merge their own pull request after it has been approved
  • If this PR represents a merge into the Development branch, remember to use the squash & merge option
  • If this PR represents a merge into the hotfix branch, remember to use the merge option (i.e., no squash).
  • If this PR represents a merge from the Development branch into the master branch, remember to use the merge option
  • If this PR represents a merge from the hotfix branch into the master branch use the squash & merge option
    • a subsequent PR from master into Development should be made with the merge option (i.e., no squash).
    • Immediately delete the hotfix branch and create a new hotfix branch
    • increment the Symbiota version number in the symbase.php file and commit to the hotfix branch.
  • If the dev team has agreed that this PR represents the last PR going into the Development branch before a tagged release (i.e., before an imminent merge into the master branch), make sure to notify the team and lock the Development branch to prevent accidental merges while QA takes place. Follow the release protocol here.
  • Don't forget to delete your feature branch upon merge. Ignore this step as required.

Thanks for contributing and keeping it clean!

MuchQuak and others added 30 commits October 29, 2025 12:55
….php (Symbiota#3019)

* Closes Symbiota#3017 Optimize slow queries collections/cleaning/index.php

# Issue Symbiota#3017

# Summary
Fixes some query optimization issues in getting coord stat counts. There
are some more options other than these fixes if needed, but are a bit
more involved.

It should be noted that the following sql will be added to the schema in
3.4 to help address some of these and should be applied if you looking
to solve this issue immediately

```sql
CREATE INDEX collid_verbatimCoordinates ON omoccurrences (collid,
verbatimCoordinates)
```

see [todo pr]

* Remove force index
# Summary
Moves minimalheader.php to .gitignore to be in line with the rest of the
templates.
* Login modification
- If password field is NULL, display message that explicitly states that password needs to be reset, thus helping to avoid confusion when password no longer works due to a forced reset. If password field is populated and wrong password is submitted, the old message will be displayed.
- Add password reset check to old authentication method
- bug associated with display of children taxa and misc other inconsistencies
bug associated with display of children taxa
- Only make geo term an actionable link if there are child geo terms available for target collection
- Only make family taxon term an actionable link if there are child taxa available
Resolves issue Symbiota#3024
* Adds support for Vouchervision-Go for OCR and transcription

This adds an OCR configuration box below the image in the occurrence editor. The user can pick the OCR engine, the large language model for transcribing the OCR data into data fields, and the prompt for transcription. Optionally, only OCR can be run on the image.

* Minor CSS formatting changes

* remove redundant VOUCHERVISION_OCR_ACTIVATED in favor of VOUCHERVISION_API_KEY

---------

Co-authored-by: James Mickley <james.mickley@oregonstate.edu>
Co-authored-by: Greg Post <gregory.post@ku.edu>
…s-bug

Geo and taxon stat display adjustments
* Update collections.editor.skeletal.js

Fix url path to securitycheck.php

* Update RpcOccurrenceEditor.php

Update comment with proper name of rpc file (securitycheck.php)
Fixes redacted portals that do not have a client root value. i.e. are on the root of the domain.
* Media loading bugs
- Remove from Taxon Profile Editor the option to link a new image import to an existing occurrence record. If this is needed, the image should be added via the occurrence editor, which does a better job policing permissions for given occurrence record.
- Media class: Only set image tid value if it is not set within input values AND occid is set thus allowing possibility to set via the occurrence:tidInterpreted.
- Media class: Fix bug interfering with removal of physical image from server. The image URL needs to be converted to a server path. And only images with relative path values can be deleted.
- Bug fix that incorrectly displayed first basisOfRecord value when value is null in the database.
- Bug fix that corrected display of PreservedSpecimen values are "non sactioned"
- Improved value matching to be case insensitive.
…ceeditor-basisofrecord

BasisofRecord adjustment
Update with changes to Hotfix workflow
* add missing translation content/lang/collections/download/index.foo.php file

* add second translation to array in load function

* add missing global invocation of LANG

* fix bug where missing secturity status was preventing taxon creation
Fix Symbiota/community-board#632 by making UTF-8 the default charset for backup data files.
* condense collection accordions, move acronyms to same line as name, add select/deselect all specimens and all observations, move the select all collections up to their same level

* respond to self code review

* DRY up the shared code in selectAllSpec and selectAllObs

* remove uneccessary selectAll method

* remove other uncessary functions

* remove unecessary doc block

* change variable names to make it make more sense

* relax regex because allspec and allobs are valid search terms, too

* fix bug where dballcb, dballspeccb, dballobscb are not clicked upon breadcrumb click

* fix bug where breadcrumb was not being respected

* implement Gregs recommendation to be more restrictive with the regex
# Issue None

# Summary
Adds support for image/bmp type.
Alters checkFileUpload function to check mime equality based on if they
generate the same extension rather than if they match exactly. This is
to accomodate other valid bmp mimes such as imag/x-bmp and
imag/x-ms-bmp. Should also work to fix other mimes of equivalent types
not matching.
MuchQuak and others added 29 commits February 27, 2026 10:07
Generalizing CAPTCHA language
fix form validation logic.
* Final schema adjustments

- Add needed column and indexes to dataset table
- Add default value for export table
- Place new paleo columns in front of initialTimestamp
- Group omoccurrences index modifications to reduce number of times table needs to be rebuilt
- Set datasetName as primary name for dataset
…iota#3390)

* move the pull request templates into the github directory instead

* remove old pull request template
Minor styling fix to restore top navigation & body responsive behavior
- Change wording to remove "corrected", since voucher specimens might be annotated incorrectly, at least to the perspective of author of the checklist. The IDs within the checklist and those associated with the specimens can differ due to competing, yet valid, hypothesis, and wording should not support one over the other.
- Fix mismatched LANG tags in French file
* Label Printing bug fix and extension

- Fix issue with unupdated field references associated adminproperties table
- Add kingdom to label output
- Add function that extracts and outputs higher taxonomic entities. Only taxon class and order for the moment, but code allows for additional ranks to be easily included upon request.

* Add Phylum to output

* Add Taxon Order to label JS GUI
…er-wording

Checklist voucher wording adjustment
API developments
- Add Occurrence Dataset endpoints
- Include ability to filter endpoints on title text (wildcard search)
- Modify OccurrenceDataset model to only display public datasets
- Update Swaggers documentation
- Remap "name" field to "datasetName"

User Interface
- Fix incorrect display of occurrence record count
- Adjust layout of pagination and record count
- Fix issue with record return limits (!= limit setting)
- Sanitation improvements
- Code formatting adjustments
- Fix that avoids warning when DONATE_LINK variable is not set within symbini
- Various adjustments to bring multimedia extension file in better alignment with AudioVisual Core standard
- Fix bug that was incorrectly labeling by-nc as Attribution-NonCommercial-ShareAlike
Update main.css. Fixes minor styling issue caused by updates to search UI.
* SQL queries compatible to older MySQL versions
- Add extra layer to subqueries to assist optimizer and avoid throwing error in certain versions of MySQL
* Update OccurrenceManager.php
- Bugfix that resolves locality search that contains tokens less than DB configures fulltext minimum token length ( < 3 for MariaDB)
- Allows for searching locality field for "fe de la" without fatal error


---------

Co-authored-by: Edward Gilbert <egbot@asu.edu>
* Label Print dev and bugs

- Add subclass and subfamily to label output
- Rename output to base names (remove "taxon" prefix). Originally included prefix due to class and order being reserved words, but the added complexity doesn't seems to be needed here.
- Add kingdom, phylum, class, subclass, order, subfamily to Label Maker GUI
- Remove conditional tests and default LANG values from labelmanager.php
- Adjust sanitation to use Sanitize class
- Fix issue where language values were being used as action variables, which introduced fragility due to tying submission to language text. This also fixed bug that caused csv download to fail in other languages
- Convert input button types to button elements.
- Removed deprecated file (labels.php) and associated LANG files

* misc fixes

- Add and fix missing or mis-tagged LANG variables
- Misc bug fixes
* added a check for image exceeding allowed size

* added  user readable size, added same exception to remoteDownload

* Add docs to size2Bytes and add seperate getter for max ini post size

* added a separate error handler for post size exceeding

* handle no file upload error

* added file errors checks, added no originalUrl check

* restore lost commit for remote upload fix

* Fix odd state issue with failures not having a correct referrer

* fix include

* added current file size to error message

* fix the switch for remote upload

---------

Co-authored-by: MuchQuak <loganpwilt@gmail.com>
* 3389 moves the pull request templates into the github directory (Symbiota#3390)

* Update main.css
Minor styling fix to restore top navigation & body responsive behavior

* Checklist voucher wording adjustment
- Change wording to remove "corrected", since voucher specimens might be annotated incorrectly, at least to the perspective of author of the checklist. The IDs within the checklist and those associated with the specimens can differ due to competing, yet valid, hypothesis, and wording should not support one over the other.
- Fix mismatched LANG tags in French file

* 3377 collprofile advanced search fix (Symbiota#3388)

* Label add taxon order (Symbiota#3398)

* Label Printing bug fix and extension
- Fix issue with unupdated field references associated adminproperties table
- Add kingdom to label output
- Add function that extracts and outputs higher taxonomic entities. Only taxon class and order for the moment, but code allows for additional ranks to be easily included upon request.

* Add Phylum to output

* Add Taxon Order to label JS GUI

* Add missing labelproject param to setLabelFieldArr method (Symbiota#3402)

* 3.4 dataset api endpoints (Symbiota#3386)
API developments
- Add Occurrence Dataset endpoints
- Include ability to filter endpoints on title text (wildcard search)
- Modify OccurrenceDataset model to only display public datasets
- Update Swaggers documentation
- Remap "name" field to "datasetName"

User Interface
- Fix incorrect display of occurrence record count
- Adjust layout of pagination and record count
- Fix issue with record return limits (!= limit setting)
- Sanitation improvements
- Code formatting adjustments

* Minor index_template adjustment
- Fix that avoids warning when DONATE_LINK variable is not set within symbini

* DwC-Archive Publishing adjustments
- Various adjustments to bring multimedia extension file in better alignment with AudioVisual Core standard
- Fix bug that was incorrectly labeling by-nc as Attribution-NonCommercial-ShareAlike

* SQL queries compatible to older MySQL versions (Symbiota#3408)
- Add extra layer to subqueries to assist optimizer and avoid throwing error in certain versions of MySQL

* Update OccurrenceManager.php (Symbiota#3393)
- Bugfix that resolves locality search that contains tokens less than DB configures full text minimum token length ( < 3 for MariaDB)
- Allows for searching locality field for a set of short tokens (e.x. "fe de la" ) without fatal error

* Label Print dev and bugs (Symbiota#3407)
- Add subclass and subfamily to label output
- Rename output to base names (remove "taxon" prefix). Originally included prefix due to class and order being reserved words, but the added complexity doesn't seems to be needed here.
- Add kingdom, phylum, class, subclass, order, subfamily to Label Maker GUI
- Remove conditional tests and default LANG values from labelmanager.php
- Adjust sanitation to use Sanitize class
- Fix issue where language values were being used as action variables, which introduced fragility due to tying submission to language text. This also fixed bug that caused csv download to fail in other languages
- Convert input button types to button elements.
- Removed deprecated file (labels.php) and associated LANG files

* misc fixes


Co-authored-by: Mark <mark.aaron.fisher@gmail.com>
Co-authored-by: Edward Gilbert <egbot@asu.edu>
Co-authored-by: Matthew Meshulam <meshu003@umn.edu>
Co-authored-by: NikitaSalikov <86389284+NikitaSalikov@users.noreply.github.com>
Co-authored-by: MuchQuak <loganpwilt@gmail.com>
@coderabbitai

coderabbitai Bot commented Apr 8, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (6)
  • dev
  • Dev
  • Develop
  • develop
  • Development
  • development

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ff351c95-4f53-4118-8fb3-47fa8a3daea7

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch base/3.4.1

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.