Pets
Part of the IP4CMS portal. β All module guides
What it's for β Pets is a registry of the animals belonging to your members. Each pet record holds a name, a type (dog, cat, etc.), and optional breed, colour, gender, and a photo. Records are linked to the member who owns them, and β where the Properties module is enabled β can also be linked to the property the pet lives at. The registry feeds both your back-office views and the member-portal/resident app, where members can see and (if permitted) maintain their own pets.
Where to find it β In the portal sidebar under Members β Pets (route /app/members/pets). The catalog of pet types and the field-requirement settings live separately under Settings β Pets settings. (Menu labels may be renamed for your deployment.)
Before you start
- Your tenant licence must include the
petsmodule β without it the menu item is hidden. - You need a pet permission to see anything:
pets:read:all(every member's pets),pets:read:own(only the signed-in member's own pets), orpets:manage:types(the type catalog). - At least one pet type should exist before staff register pets β the type field is mandatory and is chosen from this catalog.
- To link a pet to a property, the Properties module must also be licensed and the member must have an approved claim on that property.
Key tasks
Define pet types
Pet types are the dropdown list (Dog, Cat, Birdβ¦) that every pet must be assigned to. Manage them in Settings β Pets settings, on the Pet types tab. (A maintenance list also exists at /app/members/pet-types.)
- Open Settings β Pets settings.
- On the Pet types tab, click Add type.
- Enter the Name (required, up to 255 characters) β e.g.
Dog. - Click Save.
- To rename or remove a type, use Edit / Delete on its row.
Only types that exist here appear in the pet registration form. Managing types requires pets:manage:types (or admin/settings access in the settings screen).
Deleting a type warns you it "may affect pets using this type" β existing pets keep their stored type, but you lose it as a selectable option.
Register a pet
- Go to Members β Pets and click Add Pet (visible only if you can create pets).
- Member β select the owning member from the dropdown (searchable, shows membership number). This field is required and is hidden when you are working in "My Pets" mode (see below), where it is filled automatically.
- Pet Name β required, up to 255 characters.
- Pet Type β required; pick from the type catalog.
- Breed, Colour, Gender β optional free-text fields (each up to 255 characters).
- Pet Photo β optional. Click to choose a JPEG, PNG, GIF, or WebP file up to 5 MB; a preview appears. Use Remove Photo to clear it.
- Click Add Pet. The record is saved first, then the photo is uploaded as a second step. If the photo upload fails, the pet is still saved and you'll be told to retry the image.
Field-policy-controlled fields
Your tenant can change which pet fields are required. On Settings β Pets settings β Field requirements, an administrator can mark fields such as Member, Property location, breed, colour, or gender as required for this tenant. These rules are enforced by the server every time a pet is created or edited β if a required field is blank, the save is rejected with a "β¦ is required" message, regardless of what the form lets you type. So if a save is refused even though the form looked complete, check the field-requirement settings.
Edit or remove a pet
- In the Pets list, use Edit on a row (needs update permission).
- Change any field. The owning member cannot be changed once a pet exists β the member selector is locked on edit. To re-home a pet to a different member, delete it and recreate it.
- You can replace or remove the photo here too.
- Click Save.
- Delete (needs delete permission) asks for confirmation, then removes the pet. Deletion is a soft delete β the record is hidden but retained for audit history, so the pet stops appearing in lists and counts but is not erased.
Find pets
The list supports searching by name (press Enter) and filtering by Member and Pet Type, plus column sorting and paging. Columns shown: Member, Name, Type, Breed, Colour, Gender, Created.
How the data connects
- What you enter β name, type, optional breed/colour/gender/photo, the owning member, and an optional property link β is stored as a pet record against your tenant, joined to the member and to the pet-type catalog.
- Photos are uploaded to your tenant's file storage; the portal shows them via temporary signed links generated on demand, so a stored image stays private but still displays.
- Member link β every pet hangs off a member profile. This is what powers the per-member pet list (
/members/{id}/pets) and the My Pets view members see in the member portal / resident app. - Property link β when Properties is licensed, a pet can be tied to one of the member's approved property locations. The system verifies the member actually holds that property before allowing the link, and the same link lets property/estate staff list pets by property.
- Pet types are a shared catalog: changing a type's name updates how it reads everywhere it's used.
- Audit trail β create, update, and delete actions are recorded in the tenant audit log (who changed what), viewable through the audit-log tooling.
Permissions & access
Access is governed by the pets licence module plus granular permissions:
| Capability | Permission(s) |
|---|---|
| See all members' pets | pets:read:all |
| See only own pets ("My Pets") | pets:read:own |
| Create pets | pets:create:all (anyone) / pets:create:own (own only) |
| Edit pets | pets:update:all / pets:update:own |
| Delete pets | pets:delete:all / pets:delete:own |
| Manage pet types & field requirements | pets:manage:types (types); admin/settings access for requirements |
| List pets by property | properties:claims:read, locations:read:all, or properties:settings:read |
admin:full:access grants everything. Buttons (Add / Edit / Delete) only appear when you hold the matching permission, and the server re-checks on every call.
Member-submitted vs admin β Staff with the *:all permissions manage the whole registry. A signed-in member who only has the *:own permissions sees the screen in My Pets mode: the member column and member filter disappear, the header reads "My Pets", and new pets are linked to their own profile automatically. This is the same path members use in the member portal to maintain their own pets.
Tips & gotchas
- Owner is permanent. The member can't be reassigned on edit β re-create the pet to move it. Plan member selection carefully at creation.
- Photo is a second save. The pet record commits before the image. A "Pet saved, but photo upload failed" message means the record exists β just edit it and re-add the photo.
- Photo rules. JPEG/PNG/GIF/WebP only, 5 MB max β enforced both in the form and on the server.
- Required-field surprises. The form marks only Member, Name, and Type as required, but the Field requirements policy can make breed/colour/gender/property mandatory tenant-wide; a rejected save that "looks complete" is usually this.
- Property links need the Properties module and an approved claim. Linking to a property the member doesn't hold (or without the licence) is refused.
- Deletes are soft. Deleted pets vanish from lists and totals but remain for audit; they are not permanently destroyed.
- Type catalog drives the dropdown. If staff can't find the right pet type when registering, add it under Settings β Pets settings first β the form refreshes the type list each time you open it.