Forum Archive

Below are all the posts from the sheltermanager forum that was previously hosted on muut.com. As of 6th November 2023, we have switched to github discussions.

Use the find facility in your browser (usually CTRL+F) to search this page.

Animal Code not generating properly

@abbied: 2023-05-03 19:52:51
Hi, towards the end of last year I noticed as we added cats to our shelter it would generate the shelter code in correctly sometimes. Jumping up from code 22C50 )where it should be and instead make is 22C185. I thought maybe it was because someone was pushing a wrong button, or if a cat was put in wrong but I was not able to find the problem. Starting this year everything was moving smoothly until this past week. Again only with adding cats not dogs. instead of assigning where the last cat left off at 23C111 it made the cat 23C190, we then added in another litter of cats and it made it 23C111 where it should have been, and then messed up another litter again. I'm not sure what to do to fix this, but it makes it very difficult having to go in changing case numbers back and forth. My animal code settings are set to YYSNN shortcode SNN.

@jimdunne: 2023-05-04 09:45:55
I've had this, usually occurs when record numbers have been changed manually, or records deleted. Go to Settings>Trigger Batch Process>Reset NNN animal codes for this year - that sorted mine out.


animal_view_adoptable_js problem with mobile

@lisazorn: 2023-04-29 03:31:16
Hello - Our Wordpress website uses animal_view_adoptable_js to display rabbits and it looks like it's not working on mobile. The web page is here: https://saveabunny.org/adopt-help/saveabunny-adoptable-rabbits/ When I load it in a browser on my computer, it works fine. When I load it in a browser on my phone, the div doesn't load. I can also reproduce the problem if I use Safari on my computer with the iPhone user agent. Is there something special I need to do to make it work for mobile? Thank you! -Lisa

@robinrt: 2023-04-30 10:43:27
Sorry, I don't know why the div isn't appearing on mobile. Your site seems to be doing some kind of useragent detection to change the layout rather than using responsive media queries. When I use responsive layout on a desktop to reduce the resolution to mobile size 480px wide (and where I have access to developer tools), it works ok. All our code does is populate the #asm3-adoptables div in the DOM, it does not supply any styles, so it's your page hiding it - it's probably hiding the parent container that the asm3-adoptables div is in.

@lisazorn: 2023-05-01 04:49:59
Thank you for the quick response! I dug into it further and it seemed like a Wordpress module was the culprit; when I disabled it, the issue is resolved.


Cage Card with Weight

@hunterstubb: 2023-04-29 01:33:52
Hello, my shelter is looking to add weight to our cage cards and we are unsure of how to do that. We have looked at Settings -> Reports but none of us know SQL or HTML. Any help is greatly appreciated.

@adoptamutt: 2023-04-29 03:14:25
The weight is stored in a field called ‘weight’ so you can just add that to your select statement like animal.weight or a.weight depending on your FROM statement.

@hunterstubb: 2023-04-29 05:10:55
I tried adding animal.weight and it says the syntax is good but it still doesn't appear on the card. I believe this is because I have no HTML code to format it into the card itself.

@adoptamutt: 2023-04-29 13:42:44
Oh, okay. I thought maybe you had a Cage Card already set up you wanted to just add the weight to. If you don't already have something set up, I would recommend using Settings > Document templates. It works more like a word processor. If you want, once in a template, click Tools > Source Code and copy and paste this in. Also, come join us at ASM Rocks! Facebook page. <p style="text-align: center;"><span style="font-size: 14pt;"><strong><<Organization>><br /><span style="font-size: 10pt;">If I'm in a kennel/condo, please ask a staff member for assistance.</span><br /></strong></span></p> <table style="height: 33px;" border="2" width="742"> <tbody> <tr> <td style="width: 50%;" colspan="2"> <p><span style="font-size: 13.3333px;">Name:  <span style="font-size: 14pt;"><strong><<AnimalName>></strong></span></span><br /><br /></p> </td> <td style="width: 43.5441%; text-align: right;" colspan="2"><span style="font-size: 10pt;">Animal Number: <strong><<ShelterCode>></strong></span><br /><span style="font-size: 10pt;">Internal Loca tion: <<LocationName>></span></td> </tr> <tr> <td style="width: 25%;"><span style="font-size: 13.3333px;">Admitted: <span style="font-size: 10pt;"><strong><<DateBroughtIn>></strong></span></span></t d> <td style="width: 25%;"><span style="font-size: 10pt;">Est. DOB:  <<DateOfBirth>></span></td> <td style="width: 25%;"><span style="font-size: 10pt;">Sex:  <<Sex>></span></td> <td style="width: 18.5441%;"><span style="font-size: 10pt;">Fixed: <<Neutered>></span></td> </tr> </tbody> </table> <table style="height: 317px;" border="2" width="742"> <tbody> <tr style="height: 176px;"> <td style="width: 247px; height: 176px;"><<DocumentImgLink>></td> <td style="width: 477px; height: 176px;"> <p><span style="font-size: 10pt;">Breed: <<BreedName>><br />Color: <<BaseColorName>><br />Markings: <<Features>><br /></span><span style="font-size: 10pt;">Adult Size:  <<Size>><br />Microchip #: <<MicrochipNumber>><br />Weight: <<Weight>><br />Good with dogs? <<GoodWithDogs>><br />Good with cats? <<GoodWithCats>><br />Good with children?  <<GoodWithChildren>><br />Housetrained? <<HouseTrained>><br /></span></p> </td> </tr> <tr style="height: 13px;"> <td style="height: 13px;" colspan="2"><span style="font-size: 10pt;">Comments: <<AnimalComments>></span></td> </tr> <tr style="height: 15px;"> <td style="height: 15px;" colspan="2"><span style="font-size: 10pt;"><strong>TEST HISTORY:</strong></span></td> </tr> <tr style="height: 15px;"> <td style="height: 15px;" colspan="2"><span style="font-size: 10pt;"><strong><<AnimalTests>></strong></span></td> </tr> <tr style="height: 10px;"> <td style="width: 238px; vertical-align: top; height: 10px;" colspan="2"> <p><span style="font-size: 6pt;"><strong>Heartworm Disease</strong> is very prevalent in the South and is a serious and potentially fatal disease contracted through mosquitoe bites. Adult heartworms live in the heart of infected dogs. They survive up to five years and produce millions of young. <strong>It is VERY IMPORTANT to provide MONTHLY heartworm preventative for all dogs.</strong></span></p> </td> </tr> <tr style="height: 13px;"> <td style="height: 13px;" colspan="2"><span style="font-size: 10pt;"><strong>VACCINATIONS/PREVENTATIVES/WORMERS:</strong></span></td > </tr> <tr style="height: 15px;"> <td style="height: 15px;" colspan="2"><span style="font-size: 10pt;"><strong><<AnimalVaccinations>></strong></span></td> </tr> <tr style="height: 15px;"> <td style="height: 15px;" colspan="2"><span style="font-size: 10pt;"><strong>MEDICAL HISTORY:</strong></span></td> </tr> <tr style="height: 15px;"> <td style="width: 730px; height: 15px;" colspan="2"><span style="font-size: 10pt;"><strong><<AnimalMedicals>></strong></span></td> </tr> <tr style="height: 15px;"> <td style="height: 15px;" colspan="2"><span style="font-size: 10pt;"><strong> HEALTH PROBLEMS:</strong></span></td> </tr> <tr style="height: 15px;"> <td style="width: 730px; height: 15px;" colspan="2"><span style="font-size: 10pt;"><strong><<HealthProblems>></strong></span></td> </tr> </tbody> </table> <p> </p>

@hunterstubb: 2023-04-29 16:11:15
What about connecting it the SQL code so all the boxes are filled in such as when I go to Reports -> Auditing -> Cage Card with Vaccination, Medical and Test History I just type in the dog or cat's name and it will automatically fill in the information from their shelter profile.

@adoptamutt: 2023-04-29 16:18:49
All the fields are populated using Document templates. But if you are using the 'Cage Card with Vaccination, Medical and Test History', then you do have HTML code in the HTML box. Just add "Weight: <b>$Weight</b><br />" right under "Size: <b>$Size</b><br />" or whereever you wish the size to be.

@hunterstubb: 2023-04-29 16:30:24
Awesome! Thank you so much


Date of Birth field in the Person table

@jhirizarry: 2023-04-28 13:07:54
I noticed a DOB field pop up in the person form. This seems like a recently added field. I created an additional DOB and linked it in the Names and Address section of the form. Now I have two DOB fields. I would like to remove the Additional DOB field and use the native one in the table. Is there an easy way to do that with an Update query? [DOB](//muut.com/u/sheltermanager/s1/:sheltermanager:uBKb:dob.png.jpg)

@robinrt: 2023-04-28 13:29:26
As long as your additional field is of type date, yes. You can use a query like this to populate the person DOB from your additional field: ``` UPDATE owner SET DateOfBirth=(SELECT asm_to_date(Value, 'MM/DD/YYYY') FROM additional WHERE AdditionalFieldID=XXX AND LinkID=owner.ID) ``` This relies on your date field format being MM/DD/YYYY (ie. a US locale, change it for other locales) and XXX being the ID of your date of birth field in the table additionalfield. Once you've done that and verified it works, you can delete your additional field.

@jhirizarry: 2023-04-28 14:02:48
Worked like a champ!! Thank you, as always!!!!


New ID and Date of Birth Owner Fields Advice

@mmover: 2023-04-27 16:36:09
I'm happy to see that ASM added an ID and date of birth field to the owner records. But I'm in anyone else is in a similar boat to us. We created custom ID and DOB fields a couple years back which means we now have duplicate fields. 1. Is there a way to bulk upload the ID and DOB fields from the custom fields we created. I have a report that pulls the owner ID number and our two custom fields but have never bulk imported changes before. The new DOB field is specifically a date field which means for records that have more than one person (like a married couple) it wouldn't allow for us to label the DOB for which person it goes to or to add more than one DOB. Currently if we have more than one person on a record we will indicate whose DOB or DL goes to whom by labelling it with their first initial or name. Examples: "Megan: 00-00-0000" or "00-00-0000 (M); 00-00-0000 (B)" 2. If we are able to bulk upload will the custom DOB fields with non-date data upload or will they remain blank because the data doesn't fit the criteria? 3. If we wanted to is there a way to disable the new DOB field so that it cannot be utilized? I think what we will likely end up doing given the DOB date field restriction is keeping both the fields we created and the ones ASM added and just change the name of the custom fields to 'Secondary DOB' and 'Secondary DL' so that we can still have records of both. But I wondered if anyone had any other thoughts.

@robinrt: 2023-04-27 16:46:47
You can now mark a record as a couple. That gives you a second DOB field for the other person. It also gives you second fields for name and other contact info. While you can run a query to copy values from your additional field to the new built-in DOB field, you are right that your string date of births with extra data can't copy because they won't parse to dates. You can turn off both new fields if you don't want them - like all other hide options, they're under Settings->Options->Remove.

@mmover: 2023-04-27 17:52:26
That's great, I will look at the Couple function. Thank you so much for clarifying!


Adding new Outcomes to Animal Control Incidents.

@joani: 2023-04-26 16:19:27
We need to add several new outcomes to Animal Control Incidents. Often it is a simple RTO, or No Animal Found. I added these under Settings/System/Additional Fields, but they do not show up in our drop down choices. How do I get them to show?

@jonno: 2023-04-26 17:55:48
Hi, you need to select Settings->Look up data, then from the drop down box in the right top corner select "Incident completed types" and add your new ones here.


Date Format in Reports

@jhirizarry: 2023-04-08 16:15:20
So I am using CURRENT_DATE as Date for a report. It displays in the report as 04/08/2023 00:00:00. How can I 1. Just display the day of the week, for example Saturday or 2. just display the data as 04/08/2023 without the 00:00:00

@robinrt: 2023-04-08 16:21:10
use the to char function to format dates. https://www.postgresqltutorial.com/postgresql-string-functions/postgresql-to_char/

@jhirizarry: 2023-04-08 16:39:53
That worked!! Thank you!!!!


Keeping on top of animals in care

@rainrescue: 2023-04-06 15:34:52
How do you all manage to keep up with the medical needs? We seem to spend ages updating and making sure everything has had what it should have had. Making sure everything is flead and wormed when needed. It's almost a full-time job and we are a small rescue doing about 350 cats and dogs a year. You with much bigger centres - how do you do it? Do you have a dedicated person auditing it all the time like a vet nurse or receptionist or do you expect your supervisor/animal carers to do it? We have 1 manager and 3 carers but they are very hands-on - and so it is not easy for them to notice that something is missing. So - do any of you have a process for animals in care is what I'm saying I suppose.

@adoptamutt: 2023-04-06 16:00:21
Are you utilizing "Template Animals" to set up initial vaccinations and medicals due? Then monitoring the "Vaccination Book" and "Medical Book" for what needs to be given on a daily basis? And then utilizing the "Give" feature to rescedule vaccinations?


logo.jpg

@jhirizarry: 2023-03-29 20:22:59
I am having a strange problem updating my logo.jpg file. I have renamed ,y original one to logo1.jpg and created a new one using the same size parameters. When I upload the logo.jpg file the icon on the top left changes to a ?. see pic attached [Screenshot 2023-03-29 at 3](//muut.com/u/sheltermanager/s1/:sheltermanager:L5C3:screenshot20230329at3.18.06pm.png.jpg) However, when I changed the name to this file to say logo2.jpg and click on it, the image shows up in my browser. Change it back to logo.jpg, the image is back to a ? mark. Any thoughts on why this may be happening? I have have similar issues with Splash and Watermark images.

@robinrt: 2023-03-29 22:02:29
Sounds like you might have a previous image cached in your browser as logo.jpg. Does it correct itself if you refresh with CTRL+F5 ?

@jhirizarry: 2023-03-30 01:37:00
Yes.... I should have thought of that!! Thanks for your assistance!!

@jhirizarry: 2023-04-05 15:34:19
This is a really strange problem... We are rebranding and I have changed the logo.jpg and splash.jpg images. All my online forms still display the old splash image even though the splash image when clicked on in Extra Images displays the correct image. I have tried this on multiple computers, deleted the cache, even tried it on my work computer which has never logged into ASM and the old image is displayed. Is there anyway you can see this on your end?

@robinrt: 2023-04-05 15:40:57
are you a customer? If so, email your account number and the name of the form with the problem to us at help@sheltermanager.com and I'll take a look. Maybe you had your online forms point at your website rather than extra image links or something?

@jhirizarry: 2023-04-05 16:56:23
Yes, I am a customer. I'll send you the data you requested now. Thanks! So you are aware, I am copying the link from the Extra Images page and pasting it directly into the online forms.


Document Template

@jhirizarry: 2023-03-27 03:25:23
I am using a document template for the animals Medical Record. In the template I am using the following fields (See Pic) [Image 3-26-23 at 10](//muut.com/u/sheltermanager/s3/:sheltermanager:CC7v:image32623at10.15pm.jpeg.jpg) The problem I am having is that only the first instance of the medical is being reported. (see pic) [Image 3-26-23 at 10](//muut.com/u/sheltermanager/s3/:sheltermanager:BfJ2:image32623at10.19pm.jpeg.jpg) Even though there are 3 listed in the record (see pic) [Image 3-26-23 at 10](//muut.com/u/sheltermanager/s2/:sheltermanager:aY2C:image32623at10.18pm.jpeg.jpg) Any ideas what I am doing wrong? Thanks! John

@robinrt: 2023-03-27 08:22:13
The 3 listed items are treatments in the same regimen. The animal has 1 "Dewormer" medical regimen. The document template shows regimens, not individual treatments.

@jhirizarry: 2023-03-27 19:21:09
Thanks! Anyway to split those out or is that done via a report? Also, trying to add <<DateofBirth>> to template, however; when I select the document from the animal record, the DOB value does not display. Am I using the wrong field>

@jhirizarry: 2023-03-27 21:29:04
Disregard. I figured it out. Read the MANUAL!!! LOL


User documentation / video or other resources

@njcunliffe: 2023-03-23 10:41:10
Hi, I wondered if there were any user manual, youtube videos or other online materials? I have recently joined joined an RSPCA branch and I am trying to understand the system capability, map across what we actually use and make a plan to implement any key missing processes. I looked on the home page but couldn't find anything. Please send a link if I missed it. Appreciate your help. Nic

@robinrt: 2023-03-23 11:11:07
Hi, click on your username at the top right of the screen when logged in. There are links to the manual and training videos.

@pearsos: 2023-04-19 15:26:50
Hi Nic, We use ASM at RSPCA Oak & Furrows Wildlife Rescue (for a year now, big fans!). I've recently put out feelers to see if there's any way of RSPCA users having an online community and apparently one is in development! In the meantime, if I can help in any small way: asm@rspcaoandf.org.uk Also, the ASM Rocks! Facebook group is useful. Simon


Does TemplateSpecies template also look at Type?

@adoptamutt: 2023-03-20 19:30:57
If you have two "TemplateSpecies" templates, both of the Species of "Cat" does the system then look at Animal Type? I know that the "TemplateType" templates take precedence over "TemplateSpecies". If I'm testing correctly, "TemplateSpecies" looks like it also looks at Animal Type if multple templates are in place with the same species.

@robinrt: 2023-03-21 09:14:00
I think that's just coincidence. If you've got two TemplateSpecies with the same species, then the first one to be entered is used.


Internal server error after update

@titnono: 2023-03-14 09:04:09
Hello, I'm getting an error after updating our server from version 46 (VERSION = "46 [Mon 30 Jan 11:02:07 GMT 2023]"; BUILD = "01301102"), to the current version on the git (VERSION = "47u [Sat 11 Mar 08:17:30 GMT 2023]"; BUILD = "03110817"). When I want to view an animal, I get an internal error message. Here is what the log says: Mar 14 07:46:53 shelter CRITICAL ASM Database.query (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(PARTITION BY m.animalid ORDER BY CASE WHEN m.returndate IS NULL THEN 0 ELSE 1 E' at line 1") File "/usr/lib/sheltermanager3/asm3/dbms/base.py", line 552, in query#012 s.execute(sql, params) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 250, in execute#012 self.errorhandler(self, exc, value) File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler#012 raise errorvalue File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 247, in execute#012 res = self._que ry(query) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 411, in _query#012 rowcount = self._do_query(q) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 374, in _do_query#012 db.query(q) File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 292, in query#012 _mysql.connection Mar 14 07:46:53 shelter CRITICAL ASM Database.query failing sql: SELECT ea.ID, owner.OwnerName AS EventOwnerName, ea.ArrivalDate, ea.Comments, a.id AS AnimalID, a.animalname, a.SHORTCODE, a.SHELTERCODE, a.MOSTRECENTENTRYDATE, a.LASTCHANGEDDATE, a.LASTCHANGEDBY, a.AcceptanceNumber AS LitterID, a.AnimalAge, a.Sex, s.SpeciesName, a.DisplayLocation, a.AgeGroup, a.Sex, s.SpeciesName, a.displaylocation, bc.BaseColour AS BaseColourName, sx.Sex AS SexName, bd.BreedName AS BreedName, ea.EventID, ma.MediaName AS WebsiteMediaName, ma.Date AS WebsiteMediaDate, CASE WHEN EXISTS (SELECT * FROM adoption ad WHERE ad.eventid = ea.eventid AND ad.movementtype = 1 AND ad.animalid = ea.animalid) THEN 1 ELSE 0 END AS Adopted, lastfosterer.ownerid as LastFostererID, lastfosterer.ownername AS LastFostererName, lastfosterer.returndate AS LastFostererReturnDate, lastfosterer.mobiletelephone AS LastFostererMobileTelephone, lastfosterer.hometelephone AS LastFostererHomeTelephone, lastfosterer.worktelephone AS LastFostererWorkTelephone, ev.STARTDATE I don't know if this is related to my MySQL version, I'm still with ubuntu 18.04 and MySQL 5.7.41. Thank you for your help!

@robinrt: 2023-03-14 10:00:22
Hi, yes, it's your old version of MySQL that's the issue as it doesn't support window functions/PARTITION BY. The code that does that was contributed recently and it's unnecessary in my opinion for it to be using that function for what it's doing. I've written out that code now and committed. If you pull from git again, the problem should be fixed.

@titnono: 2023-03-14 13:15:27
Hello, thank you very much for the quick answer and the fix. It works! I know I don't really have a choice to upgrade the server anymore, the OS is at the end of its life. Regards


Adding javascript to manipulate online forms

@adoptamutt: 2023-03-09 18:51:32
The manual mentions that we can add a javascript funtion called "asm3_onlineform_submit" into the footer of a form to "tranform the values" before submitting to ASM. Is it possible to set the Entry Category to a specific value when processing the form using Create > Animal? If so, could you provide an example?

@robinrt: 2023-03-10 08:08:00
The javascript runs on the client, it can only change the value of something in the form before it is submitted. You can change a value like this: ``` function asm3_onlineform_submit() { $("#f999").val("New Value"); } ``` Change f999 for the id attribute of the field you want to change - you'll have to lookup what that is by right clicking on it in the form and choosing "Inspect". I don't think this is what you want. Entry category can't be set by create animal at the backend. The only way to influence what value it gets is to update the default entry category under Settings->Options->Defaults


SQL 'Like'

@jhirizarry: 2023-03-05 17:14:47
I have a SQL statement that yields no results. It seems like the Additionalflags field is not a standard table field. I don't quit understand the structure. Results show the AdditonalFlags field with Adopter|Volunteer, etc. select * from owner WHERE AdditionalFlags LIKE '%Applicant%' This statement for example, yields no results. Yet, I have the flags set for Applicants. I'm trying to do a bulk update on the AdditionalFlags field to update all Applicants to Volunteers. Thoughts? What am I missing?

@robinrt: 2023-03-05 18:20:02
AdditionalFlags is a varchar. I don't see why your SQL isn't working - the only thing I can think of is that LIKE is case sensitive and your flag is "applicant" rather than "Applicant" or something. If you want to replace one flag for another, use a REPLACE call (and make sure that the flag being replaced is not a component of another flag name). Note that the built in flags all have their own column as well which will be 1 for set or 0 for not set, eg: owner.IsVolunteer, owner.IsStaff ``` UPDATE owner SET AdditionalFlags=REPLACE(AdditionalFlags, 'Applicant', 'volunteer'), IsVolunteer=1 WHERE AdditionalFlags LIKE '%Applicant%' ```

@jhirizarry: 2023-03-05 19:41:57
Let me give this a try!! Thanks!

@jhirizarry: 2023-03-05 20:48:15
Nice! Thank you!!! That worked!


Additional Field Question

@jhirizarry: 2023-03-05 16:11:33
I created an Additional field, DateofBirth. I want to collect that info in an online form for a person (Volunteer). Is that possible? I created the field and mapped it to the Name and Address section of the person form. Instead of manually adding the data, it would be nice to collect it from the online form.

@robinrt: 2023-03-05 18:20:28
Yes. Call your online form field additionalDateOfBirth

@jhirizarry: 2023-03-05 19:21:21
You are a genius! Thanks, worked perfectly. Thank you!!!!!!


Retailer Movements and Reservations

@jhirizarry: 2023-03-05 00:50:47
We adopt animals through Petsmart and use the Retailer feature. What I have noticed when we have a Reservation for an animal at the Retailer is that when using the To Adoption button in the Reservation Book, is throws an error that says "An animal cannot have multiple open movements." In the manual it states "If you use Move ‣ Out ‣ Adopt an animal and the animal is at a retailer, ASM will take care of this for you." Is this only the case when you select Move>Out>Adopt an animal? There appears to be a difference when using the To Adoption action from the Reservation Book. Can the To Adoption function not have the same functionality as the Adopt an Animal function in the Move menu?

@robinrt: 2023-03-05 09:33:08
The validation when saving movements does close foster movements and cancels reservations, so it should be able to close retailer movements. I'll put this on our dev list to investigate as I'm not sure why it's only done from move->adopt an animal.

@jhirizarry: 2023-03-05 13:52:57
Ok, Thanks. Please let me know as we have a lot of animals that get adopted at the retailer through a reservation. Also, just to clarify, this is for the Retailer movement, not Foster. Although, I have seen this happen with Fosters as well what using the To Adoption feature in the Reservation Book.

@robinrt: 2023-03-05 18:21:26
Yes, confirm the dev instruction is for retailer movements.

@jhirizarry: 2023-03-05 20:51:36
Ok, thanks.. I'm at an adoption event now and it happened again with one of my animals at the Retailer location.

@robinrt: 2023-03-10 08:08:36
This is in production now.


I can't make asm work in my new computer

@montserratbc: 2023-03-02 22:39:12
Hi, I have been trying for several months now to have ASM3 work in my new compter. It is just impossible and I urgently need to access the software. The problem is that 127.0.0.1 rejects connection. Help is much appreciated.


Help with Centos 7 install

@michael-5302: 2023-02-22 02:23:02
I am total newbie to using linux (Centos 7), and don't really understand it yet. Is it possible for someone to provide me steps and possibly commands to get it installed and running? Ive tried to use the readme file, but i am having no luck. We have been using the windows and web versions of 2, and would like to switch to 3 on our local system and still use mysql.

@robinrt: 2023-02-22 10:18:11
The instructions provided are for Debian and derived distributions, such as Debian, Ubuntu, Mint, etc.

@ccsoh: 2023-02-22 11:12:04
So which version of asm3 should I use for centos? I've tried on ubuntu 22.04, and it constantly was saying files couldn't be found.

@ccsoh: 2023-02-23 01:40:39
Do you think it would be better to use Debian or derived distribution? If so, which would you recommend.

@ccsoh: 2023-02-24 17:18:25
I have it some what installed, but now it says it can't connect to mysql. I have mysql setup with a blank database named asm, firewall is off.

@michael-5302: 2023-02-25 04:10:15
I ended up installing Mint, it still says there are files it cant find, so i installed them manually. when i get to npm install, i get errors. Here is a copy of what it says. gelbart@Server:~$ sudo npm install npm ERR! code ENOENT npm ERR! syscall open npm ERR! path /home/mgelbart/package.json npm ERR! errno -2 npm ERR! enoent ENOENT: no such file or directory, open '/home/mgelbart/package.json' npm ERR! enoent This is related to npm not being able to find a file. npm ERR! enoent npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2023-02-25T03_47_52_870Z-debug-0.log I know the file cant be found, but where would i find it or create it? Any help would be greatly appreciated.

@robinrt: 2023-02-25 08:04:49
There's no need to run npm install, that's only if you're doing development. If you're using Mint, you can install the sheltermanager3 Debian package and follow the instructions in the README starting at "Configuring ASM"

@ccsoh: 2023-02-25 08:08:09
I did that, but it not connecting to any database. When it goes to connect, sometimes it says it can't connect and sometime it says internal server error.

@robinrt: 2023-02-25 08:13:20
What error do you get in /var/log/syslog when it fails to connect? What have you set for your database values in /etc/asm3.conf ?

@ccsoh: 2023-02-25 08:16:32
I left everything the way it was, except for the location of the database. I believe it's a firewall block, it says UFW BLOCK, but if it's firewall, I have it disabled.

@ccsoh: 2023-02-25 08:18:06
Database is set to mysql, localhost, 3306, username, pwd, asm

@ccsoh: 2023-02-25 08:18:39
Database is setup in mysql as the same name, asm.

@robinrt: 2023-02-25 08:33:21
If you're getting block messages then you clearly can't have it disabled? Try "ufw status" to check whether it's running and "ufw disable" to disable it. Both commands need to be run as root.

@robinrt: 2023-02-25 08:34:35
You can also use SQLite instead of MySQL which is a lot more straightforward. Set the db type to SQLITE in asm3.conf and for the db name parameter, set a path to a file for it to create, eg: /tmp/asm3.db

@michael-5302: 2023-02-25 08:37:15
mgelbart@Server:~$ sudo ufw status Status: inactive mgelbart@Server:~$ can i import a database from MYSQL to SQLLITE?

@robinrt: 2023-02-25 08:56:00
if you have an old ASM2 that's working with MySQL there's a dump tool that will output the data as generic SQL that will load into any database (System->Database->Dump Database - I think). You can run that against the Settings->SQL interface tool in a new ASM3 database to import the data.

@ccsoh: 2023-02-25 10:29:39
Thank you, I will see how it goes and let you know.

@michael-5302: 2023-02-25 21:56:39
Okay, I did as you suggested, and I still have the same problem of not connecting, but here is the new errors. I do not see any firewall errors now. -Error #1: CRITICAL shelte Database.execute unable to open database file File "/usr/lib/sheltermanager3/asm3/dbms/base.py", line 284, in execute c, s = self.cursor_open() File "/usr/lib/sheltermanager3/asm3/dbms/base.py", line 148, in cursor_open c = self.connect() File "/usr/lib/sheltermanager3/asm3/dbms/sqlite.py", line 18, in connect return sqlite3.connect(self.database, detect_types=sqlite3.PARSE_DECLTYPES | sqlite3.PARSE_COLNAMES) sqlite3.OperationalError: unable to open database file -Error #2: CRITICAL shelte Database.execute failing sql: select count(*) from animal None

@michael-5302: 2023-02-26 01:00:37
if i type 'http://localhost/asm3/database', the "create your database" page loads.

@robinrt: 2023-02-26 08:27:16
systemd has given your Apache a private tmp folder, stopping it from reading your database file in /tmp. Either move the database to another folder that isn't tmp, or allow Apache to read the global tmp with these commands (note that the line that starts with echo up to privatetmp.conf is one line - this forum is adding a break): ``` mkdir /etc/systemd/system/apache2.service.d echo -e "[Service]\nPrivateTmp=no" > /etc/systemd/system/apache2.service.d/privatetmp.conf systemctl restart apache2 ```

@ccsoh: 2023-02-26 08:30:27
Thank you, I will give it a try and let you know the results.

@michael-5302: 2023-02-26 17:30:43
Still getting the same error. CRITICAL asm Database.execute unable to open database file File "/usr/lib/sheltermanager3/asm3/dbms/base.py", line 284, in execute c, s = self.cursor_open() File "/usr/lib/sheltermanager3/asm3/dbms/base.py", line 148, in cursor_open c = self.connect() File "/usr/lib/sheltermanager3/asm3/dbms/sqlite.py", line 18, in connect return sqlite3.connect(self.database, detect_types=sqlite3.PARSE_DECLTYPES | sqlite3.PARSE_COLNAMES) sqlite3.OperationalError: unable to open database file

@michael-5302: 2023-02-26 17:31:15
CRITICAL asm Database.execute failing sql: select count(*) from animal None

@michael-5302: 2023-03-01 18:53:26
Any other ideas/suggestions?


HomeAgain Registration

@jhirizarry: 2023-02-18 01:11:48
I noticed an error when trying to register my microchips with Homeagain. The site http://homeagain.4act.com is not available when I click on it and the log says "ALERT: received HomeAgain 54101 'account not found' response header - abandoning run and disabling publisher" I went to the Homeagain site and tried my user account and it worked, although the url for the site is different than the one listed in SM. Is this feature no longer supported? Thanks! John

@robinrt: 2023-02-18 08:03:55
The username and password for HomeAgain integration is a pair of machine generated UUIDs that they generate and send to you. The login for their site will not work. You'll need to get in touch with HomeAgain to ask for an API user/password.

@jhirizarry: 2023-02-18 13:24:23
Thanks! I'll get in touch with them.


Incoming forms wont stay deleted

@jessrescue: 2023-02-14 15:51:34
I had it set to delete incoming forms manually as a precaution by system admins. problem is after I delete them they come back.

@robinrt: 2023-02-14 16:19:21
Hi, how are you deleting the forms? Are you using the "Delete Processed" button, the regular "Delete" button or are you relying on them being deleted automatically when you leave the screen.

@jessrescue: 2023-02-14 16:48:07
I have used the delete processed and they came back & the delete button

@robinrt: 2023-02-15 08:32:35
That sounds very odd, are you a sheltermanager.com user? If so, please email us at help@sheltermanager.com and let us know your account number so I can take a look.

@robinrt: 2023-02-15 08:36:50
I have just noticed that the screen doesn't check you have delete incoming form permissions, so the buttons always appear, but will not delete forms if you don't have permission. I'm applying a fix for that now, but you should check that your users have permission to delete incoming forms. Do that by checking what role they have for their accounts under Settings->System user accounts. Edit the role and grant it permission under Settings->User Roles. Note that users need to log out and back in again when their permissions change.

@jessrescue: 2023-02-15 14:10:09
I will recheck it for our account I have system admin privileges so that is why it was odd it wasn't doing it.


Request: add publishing options for shelter animals count data

@ibesky: 2023-02-12 11:00:52
Request if it's feasible (unless I'm missing something, which is also entirely possible). We're using the automatic publishing to SAC which is AWESOME - thank you for making it happen. I was wondering if in the publishing options, we could have the ability to set the categories for seized animals and transfers, like we do for strays, surrenders, or TNR. All of our seized animals show up as "other" in the database and I don't see where to link the categories on the ASM backend.

@robinrt: 2023-02-12 12:18:40
Animals with the "Cruelty Case" flag go in the impound/seized count. There's no need for entry categories for transfers as we use the transfer in tickbox on the entry slider. It's only strays and surrenders that we don't have built in flags or fields for, so that's why they can be configured from entry categories.

@ibesky: 2023-02-12 16:24:20
Ok, thank you, I'll have to look at my settings since ours aren't showing up!

@ibesky: 2023-03-18 10:00:57
Hi Robin, I updated the animals in question to have the cruelty case flag on their listing, and I still have the animals showing up in SAC as "other". The only thing that I can think of is that the flag is supposed to have a specific ID number (ours is 7 and I'm in lookups -> animalflags) and that's making it not behave properly. Any insight you can give would be appreciated.

@robinrt: 2023-03-18 10:07:55
Cruelty case is built in - it can't have an ID because it doesn't appear in lkanimalflags. Have you added a flag called cruelty case and used that instead of the built in one or something?

@ibesky: 2023-03-18 10:52:21
And that would be our problem! Thank you, time to fix it O.o

@ibesky: 2023-03-18 10:59:33
Adding that we can't use the built in flag to animals that aren't on shelter so this may have been the issue when we went back to "fix" the reporting issue. We have an entry category for cruelty cases but I don't think they ever used the flag - now we know for going forward!


Transfer Movement not working correctly

@mdeprima1964: 2023-02-07 22:42:32
I've used the transfer movement in the past to transfer animals from our rescue to another shelter. It worked well. I tried to do that today, but when I try to select the "transfer to" entity, it's no longer presenting organizations as an option. Only people. Help!

@robinrt: 2023-02-08 08:12:32
It doesn't only show organisations - it looks for people with the "Other Shelter" flag.

@mdeprima1964: 2023-02-08 11:09:09
Resolved. Mostly user error. Thank you.


Looking for a catio/ adoption room hybrid

@lifescoutn: 2023-02-06 16:25:46
Sorry to bother everyone here, but I'm looking for advice for an Eagle Scout project at a local shelter. The original idea was to build a 3' x 5' catio inside a larger free roaming room to allow extra cats in. The possibilities include either all FIV cats or cycling caged cats in every few weeks so they can run free (most every cat gets out of their cage daily). -The volunteers wanted cats to get space to run, with beds and shelves. -The director was hoping for a small adoption area. -A worker suggested that you wouldn't want people walking into a small enclosure with cats, so the catio would work best. -The director then said a smaller catio on wheels to push them around as necessary. -Someone in charge of cats said that it would cause too much stress to get them in and out (in carriers to another room). We're thinking of a small catio with a side door to the cats running in and out to the adoption space, maybe with doors in the catio to guide them into the adoption room. But there's nothing even close to this online. The large plexiglass ones look amazing but the space is a little limited, and affording it is definitely an issue (shelter will offer donation request letters, but not funding). Has anyone seen an idea that works?

@adoptamutt: 2023-02-06 16:33:33
I would suggest going to the "ASM Rocks!" Facebook or the "Animal Shelter/Rescue Workers Network" Facebook page and ask that question. I bet either one of these would give you a ton of suggestions.

@lifescoutn: 2023-02-07 20:19:00
Thank you! I had no idea where to start, and this will be great! Have a good day!


DB Error after upgrade

@rementis2: 2023-01-31 19:53:09
After upgrade from 45 to 46 I can't publish and I get this error in asm3.log: Jan 31 12:46:06 lightningtournament CRITICAL asm Database.query (1525, "Incorrect DATETIME value: ''2023-01-31 06:25:36''") File "/usr/lib/sheltermanager3/asm3/dbms/base.py", line 552, in query#012 s.execute(sql, params) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 209, in execute#012 res = self._query(query) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 315, in _query#012 db.query(q) File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 239, in query#012 _mysql.connection.query(self, query) MySQLdb._exceptions.OperationalError: (1525, "Incorrect DATETIME value: ''2023-01-31 06:25:36''") Jan 31 12:46:06 lightningtournament CRITICAL asm Database.query failing sql: SELECT ID FROM animal WHERE LastChangedDate > %s UNION SELECT ID FROM adoption WHERE LastChangedDate > %s UNION SELECT ID FROM media WHERE Date > %s UNION SELECT LinkID FROM audittrail WHERE TableName='configuration' AND Action=1 AND Audit Date > %s ["'2023-01-31 06:25:36'", "'2023-01-31 06:25:36'", "'2023-01-31 06:25:36'", "'2023-01-31 06:25:36'"]

@robinrt: 2023-02-01 11:11:23
Which publisher are you using when this happens? Have you got a log excerpt before this point so we know what the query is?


Search function on the Forum

@mdeprima1964: 2023-01-30 23:02:20
Doesn't seem to work

@robinrt: 2023-01-31 09:52:19
The forum isn't our software so I have no way of fixing it, but I'll report it to the provider if you can give me some details. When I use the search box it seems to work for me? If I search for "search function" I get this post.


Zeroing out accounts at beginning of the year

@mdeprima1964: 2023-01-30 22:59:29
We're trying to use the accounts function this year. We've been playing around with it to get ready and have balances in some of the accounts. How do you zero them out to start the year? How do you save the data before you do that? On another area... How do you create the beginning balances? Like your bank account balance etc? This section could use more documentation. Since most examples are dealing with physical inventory and I'm dealing with cats, it's really hard to grasp how to translate that. If you have a recommendation in terms of a book or website that would help me with the double entry bookkeeping for a rescue, that would be great. We have few physical assets that we'll track.

@robinrt: 2023-01-31 09:48:17
Hi, you can set the accounting period start date under Settings->Options->Accounts - this resets the totals from that date. No need to manually zero anything out. Opening balances are usually set by having an Income::OpeningBalances nominal income account that you withdraw from into your bank type accounts. I don't really have any specific recommendations for learning double entry book keeping but I'm sure there must be lots of resources online.

@mdeprima1964: 2023-02-07 22:43:10
This was very helpful and got me on the right track. Thank you


Events?

@willhsnba: 2023-01-30 19:53:58
I love checking out the patch notes at the bottom to keep an eye out for cool new features and little tweaks that might change things to get a jump on staff questions. It looks like Saggi has been working on some events framework and it should have been recently implemented, but I can't find it anywhere. Is it still brewing? It is so cool seeing ASM evolve!

@robinrt: 2023-01-31 09:49:51
It's not finished yet so the UI isn't complete/active in production. It will allow shelters to track fundraising events that they hold and which animals participated in things like adoption events.

@willhsnba: 2023-02-02 18:42:11
Exciting! Thanks for the preview blurb :)


Error When Trying to Open Attached Media (PDF)

@vikib: 2023-01-24 18:43:31
On at least one of my animals, I'm getting this error when I try to open an attached PDF file. DBFS Error Failed retrieving vb0822/48245.pdf from S3 (endpoint=https://684ca8c9fe0c90d51af061fedaa7ffbd.r2.cloudflarestorage.com): An error occurred (InternalError) when calling the GetObject operation (reached max retries: 4): We encountered an internal error. Please try again. Have I lost access to this file or is it a back-end error that will be resolved at some point? Thank you

@robinrt: 2023-01-31 09:50:45
Hi, I think this was transient, no files were lost. We saw it happen on a few customers for a short time and then it cleared up. Is this still happening for you?


Bulk Vaccination

@jhirizarry: 2023-01-19 03:19:16
This is a great feature and an easy way to enter vaccinations for multiple animals at one time...Until the vaccination you want to enter is Rabies. I took 15 kittens for FVRCP and Rabies vaccinations today. I entered the FVRCP using the Bulk Vaccination feature, however; when doing the same for Rabies I selected the 15 kittens and I got stuck when I needed to enter the 15 unique Rabies tag numbers. I ended up having to go to each record and enter the tab number, which defeated the purpose of the Bulk entry. Any thoughts on how to get around this or is the Bulk Vaccination feature just not going to work for Rabies. Thanks!

@robinrt: 2023-01-19 09:07:01
Hi, you're right, bulk can't really help when you need to enter 15 different values. At least if you do it on the Vaccination Book screen they should still be on screen so you can edit them all quickly.


Animals Reclaimed by owner with owner DOB and fees paid

@mmover: 2023-01-17 19:04:43
I'm trying to create a report that pulls the intake date, outcome date (redemption date) , animal information, owner information, and the amount of redemption fees collected. The two things I want in the report are the owner's date-of-birth and the fees collected for that movement/redemption (donationtypeID = 196). Owner's DOB which is a custom field. I think I need the below line but I don't know where to put it in order for it to work. My limited understanding is making me guess that because I'm pulling information from the 'animal a' table and not the owner that it might not work? I've used this line to pull DOB for a report but it was doing it from the 'ownerdonation' table COALESCE((SELECT af.Value FROM additional af INNER JOIN additionalfield aff ON aff.ID = af.AdditionalFieldID WHERE af.LinkID = owner.ID AND aff.FieldName = 'DateofBirth'), '') AS DOB This is what I currently have: Current Report: SELECT a.AnimalName, a.ShortCode, s.SpeciesName, atp.AnimalType, a.BreedName, e.ReasonName, o.OwnerName, a.DateBroughtIn, m.MovementDate, a.NeuteredDate, o.OwnerAddress AS OAddress, o.OwnerTown AS OTown, o.OwnerCounty AS OCounty, o.OwnerPostcode AS OPostcode, pl.LocationName, a.PickUpAddress, a.BroughtinbyOwnerID, basecolour.basecolour, CASE WHEN a.DeceasedDate Is Not Null THEN 'Died' WHEN a.ActiveMovementDate Is Not Null THEN (SELECT MovementType FROM lksmovementtype WHERE ID = a.ActiveMovementType) ELSE 'On Shelter' END AS OutcomeName, CASE WHEN a.DeceasedDate Is Not Null THEN a.DeceasedDate WHEN a.ActiveMovementDate Is Not Null THEN a.ActiveMovementDate ELSE Null END AS OutcomeDate, CASE WHEN a.DeceasedDate Is Not Null THEN (SELECT ReasonName FROM deathreason WHERE ID = a.PTSReasonID) WHEN a.ActiveMovementDate Is Not Null THEN o.OwnerName ELSE '' END AS OutcomeQualifier FROM animal a INNER JOIN basecolour ON basecolour.ID=a.basecolourID INNER JOIN species s ON a.SpeciesID = s.ID INNER JOIN animaltype atp ON a.AnimalTypeID = atp.ID LEFT OUTER JOIN adoption m ON m.ID = a.ActiveMovementID LEFT OUTER JOIN owner o ON m.OwnerID = o.ID LEFT OUTER JOIN owner oo ON a.OriginalOwnerID = oo.ID INNER JOIN entryreason e ON a.EntryReasonID = e.ID INNER JOIN pickuplocation pl ON a.PickupLocationID = pl.ID WHERE MovementDate between '$ASK DATE Left between$' AND '$ASK DATE and$' AND (EntryReasonID IN (1,2,8,11,13) OR IsDOA=1) AND NonShelterAnimal = 0 AND ActiveMovementType = 5 ORDER BY pl.LocationName, a.DateBroughtIn Any help would be greatly appreciated.

@mmover: 2023-01-17 20:29:34
One thing I forgot to mention is that I have a report that pulls the animal's info, the fees collected, and the person who paid the fee's info. In most cases the owner of the animal and the one who paid the fees are the same person but not always. So this report doesn't give me the information I need because it doesn't give me the owners info every time. I don't need to know who paid the fees, I just need to know how much they paid along with the owner's info and the animal's info. Hopefully that helps clarify.

@adoptamutt: 2023-01-24 16:52:12
I believe if you add something like "(SELECT af.Value FROM additional af INNER JOIN additionalfield aff ON aff.ID = af.AdditionalFieldID WHERE af.LinkID = o.ID AND aff.FieldName = 'dateofbirth') AS DOB" to your select statement you can pull the dob. Also if you add "INNER JOIN ownerdonation ON ownerdonation.MOVEMENTID = a.ActiveMovementID" you would get the donations for only that activemovement. Then you could add "ownerdonation.donation" to your select statement to get the donation regardless of who made it. Of course, test test test.

@mmover: 2023-02-25 21:57:11
Thank you so much! I will try that.


Hidden people notes

@leannec: 2023-01-16 13:14:16
Is there a way to have notes for a person that are hidden from view from most people, and only give access to some people? I can't see anywhere.

@robinrt: 2023-01-16 14:56:00
You could use the investigation tab for person records, it allows dated notes to be recorded and users must have the view investigation permission to see them. If you don't see the investigation tab, make sure animal control is not ticked under Settings->Options->Remove (and make sure your user has permission to view investigation notes).

@leannec: 2023-01-17 00:14:57
Thanks. This seems to work!


Using Square for payments and donations

@jhirizarry: 2023-01-11 19:17:21
Hello, is there a way to use Square as a payment processor? If not, are their plans to? We use Square for Adoptions and donations and have to create an addition client record in Square to keep track of payments and donations types.

@robinrt: 2023-01-13 08:59:33
Hi, there isn't a way at the moment, but it is on our list for future development as Square seem quite popular.


Overview non-shelter animals

@9inchnacho: 2023-01-10 09:41:35
Is there a possibility to show the non-shelter animals? Even better would be per site and unit.

@robinrt: 2023-01-10 11:04:41
Sorry, no, I can't see how that would make any sense? They are public-owned animals that are not in the care of the shelter. You can get a list of them from the advanced find animals screen by setting Location to (all) and Flags to Non-Shelter.

@9inchnacho: 2023-01-11 14:46:31
As we use the program for our clinics treating also street animals, this question came up. However, your input of the advanced search is great. Thank you very much.


Signature screen not staying in place

@mdeprima1964: 2023-01-01 02:56:16
I first noticed this last week and it was a problem this weekend when we did adoptions: When taking signatures on screen, the signature pad won't stay in place, making it very difficult to sign. Same problem on an Android and an iPhone.

@robinrt: 2023-01-01 16:47:51
Is it the signing pad screen in the mobile interface that you're using? Or the "sign on screen" option under the media tab of the desktop interface?

@robinrt: 2023-01-10 11:06:25
I think we found and fixed this a week ago if you'd like to check?

@mdeprima1964: 2023-01-30 22:59:53
Much better! Thank you!


Importing Cats

@jhirizarry: 2022-12-30 15:24:55
We are taking on 27 cats from our county shelter. They use Sheltermanager as well. I asked them to Export the records using the the "All Photos, Documents, PDF's selection under the Media dropdown. When I Import the file, the pictures and documents do not transfer over. At least I do not see them associated with each cat record. I am missing a step in the Import process?

@jhirizarry: 2023-01-02 15:12:58
I figured it out. Thanks!


Audit retention length should be customizable

@mattatmickaboo: 2022-12-28 21:02:08
Hi all! I'll attempt to submit a code fix for this to the open source github repo, but want to log this in case I get pulled away to other things and am unable to. Our organization has a lot of volunteers and has occasionally had to look back through audit records for a year or two to straighten out administrative issues. The default audit record retention is 6 months and that's hardcoded into audit.py I've manually changed it but lost records when we did an upgrade and I forgot to go back in and change the hardcoded value. (I restored them from backup). Would you consider having a days value set in the configuration instead, where audit.py will pull in an organizationally-defined audit record period?

@mattatmickaboo: 2022-12-28 21:05:03
I saw some replies below concerned with performance of larger audit record lengths. Another alternative would be to implement a "cold storage" for audit logs in a separate table, and only index UI / Animal records off the "recent" audit events. That sounds like more complex and more difficult logic though - I'd be happy to just have the ability to customize it a bit and decide how to optimize performance on my end

@robinrt: 2022-12-29 09:07:09
Yep, it should have been a sitedef. I've commited a fix so you can override it in asm3.conf with db-retain-audit-days (default 182). I would worry about performance later if reporting on that table becomes an issue - no point trying to pre-optimise something that might turn out to be fine.


Save in work document or Auto Save

@mhs_jeff: 2022-12-28 20:28:09
Maybe a silly question. We have started processing all of our applications in ASM which has been great for our paper usage. We created a application processing cover sheet document template which gets generated and saved in the person's media tab. When we are doing background checks, references calls, etc we go into the media tab and edit this document. We have had a lot of issues with people forgetting to save after they have made several changes to the document and then their changes are lost. When asking why they don't save as much it is because when you hit the save button it saves but also closes the document making it hard to save as part of the work flow. So two questions. Is there a way to enable an auto save feature and if not is there a way to make it that saving does not close the document? Thank you!


127.0.0.1:5000

@montbatcol: 2022-12-26 17:36:11
I have changed my computer which is running on Windows 10. I have used version ASM 3-3.2.1 on the old computer and it ran perfectly. Now, it seems impossible to make ASM work because it can't reach 127.0.0.1:5000 Anyone able to help? Many thanks Montserrat


Location for Good Samaritan and Rescue Partner Intakes

@mhs_jeff: 2022-12-22 19:31:35
Hey all, We have been on a path of trying to make our data as good as possible and I could use some help. We intake animals in a variety of ways, owner surrender, good Samaritan surrender, rescue partner, etc. When owners surrender we list them as the original owner along with their address so when we pull a report on intake animals we can easily track origin town and city. The problem we are having is with other types of intakes. We work with several partners including trappers who cover multiple areas. We still want to obviously list that they were brought in by the rescue partner but are trying to figure out a way to track origin city / state for each that way when we pull an intake report that way we can better track all the communities we serve. My first thought was to create a generic "person" for each town and have that be the original owner but I thought that might cause confusion. Is there any better way? Thanks! Jeff

@robinrt: 2022-12-23 11:25:02
There's a Jurisdiction field/dropdown on animal records. You could create each town as a jurisdiction (Settings->Lookup Data) and assign it to the animals. There are many reports in the repository that will break down by jurisdiction.

@mhs_jeff: 2022-12-28 20:14:51
Thank you for the reply. In order to use the same report that we have been using, we just created a generic "person" for each town.


Create Database fails

@asmcodehelp: 2022-12-22 06:39:32
Did a fresh install of latest github code (12/21/2022 commit# 8b79978) on Ubuntu 22.04 + MySQL. Create Database begins, but fails with 'internal server error'. Last few lines in asm3.log show: INFO asm_de dbupdate.install_default_data creating default database schema CRITICAL asm_de Database.execute (1170, "BLOB/TEXT column 'EventAddress' used in key specification without a key length") File "/usr/lib/sheltermanager3/asm3/dbms/base.py", line 289... CRITICAL asm_de Database.execute failing sql: CREATE INDEX event_EventAddress ON event (EventAddress) None Any ideas? Thanks.

@robinrt: 2022-12-22 08:10:33
It's a mismatch in the new table definition - EventAddress should be VARCHAR not TEXT. I've committed a fix now. Thanks for letting us know.


Media tab PDF no longer viewable in app

@ketalabama: 2022-12-15 00:09:14
Used to be i could click on a PDF attached to an animal's record from the media tab when in the app and it would display a view of the document. For about the past week, from an iphone, when I click on an attached pdf it brings up a blank screen. I'm able to open PDFs attached in messages and such so I don't think it is the iphone. Anyone else experience this issue?

@robinrt: 2022-12-15 08:35:37
I think Apple have broken the PDF.js we bundle for use with the app. We're retiring the app as it's no longer needed. The easy fix is to stop using the app, and login with https://m.sheltermanager.com in your mobile browser (you can still bookmark this page with your phone and make it act like an app).

@ketalabama: 2022-12-15 19:42:59
When is the app and support for the app being retired?

@robinrt: 2022-12-15 21:28:28
It will disappear from the app store next November. The mobile interface is still available at m.sheltermanager.com and always will be (we're also most of the way through a much improved new version of it) - there's just no need for the actual app itself any more and it's a pain to maintain.


Repeated Diary

@9inchnacho: 2022-12-14 08:36:00
I am looking for a way to repeat the Diaries. Is this already possible?

@9inchnacho: 2023-01-10 09:41:50
bump

@robinrt: 2023-01-10 11:05:26
Sorry, it isn't. As long as you don't need the full completion history, you could simply re-diarise them as they come up by moving the diary date on.

@9inchnacho: 2023-01-11 14:41:47
ok, thank you


Keyword for AnimalAge truncated in documents?

@ketalabama: 2022-12-05 10:17:25
We use the keyword <<Age>> in printed documents. I'm noticing that while the animalage in the database shows as "2 years 8 months" in the printed document it shows as just 2 years. I played with using <<DisplayAge>> as well in case that behaved differently but it does not. Is this a bug or just how it works or should I be using a different keyword? Thanks!

@robinrt: 2022-12-15 08:37:12
It's just how it works for document output.


Audit Trail

@bkrodle: 2022-12-01 14:02:19
We were looking up a dog from April 2022 in our database and noticed that the audit trail was blank. We checked several other animals and noticed the same thing. Is there a time limit on how long the audit trail stays populated?

@robinrt: 2022-12-01 14:15:43
Yes, it's kept for a rolling 6 months for performance reasons (it would quickly grow to a huge size and be slow to report on and retrieve data from otherwise).


Screens on my mobile

@mdeprima1964: 2022-11-27 17:35:43
Ever since I've had a mobile phone, I've used the desktop version of ASM3 via my phone and it's worked well. Yesterday I went to use it and the screens seem reformatted and the text is very small. Is there a setting I've inadvertently changed, or did a release come out with a change? The last screenshot is what the first menu used to look like. I'm sad. [Screenshot_20221127-112147](//muut.com/u/sheltermanager/s3/:sheltermanager:dnYJ:screenshot_20221127112147.png.jpg) [Screenshot_20221127-111501](//muut.com/u/sheltermanager/s3/:sheltermanager:1YFp:screenshot_20221127111501.png.jpg) [Screenshot_20221127-110926](//muut.com/u/sheltermanager/s3/:sheltermanager:VOa2:screenshot_20221127110926.png.jpg) [Screenshot_20221127-113353](//muut.com/u/sheltermanager/s1/:sheltermanager:dAov:screenshot_20221127113353.png.jpg)

@adoptamutt: 2022-11-27 19:28:36
My desktop screen looks normal (like your ..113353) on iPhone.

@mdeprima1964: 2022-11-27 21:30:00
Hmmm.... Then what have I done I wonder?

@mdeprima1964: 2022-11-27 21:42:49
Ok, I figured it out. I had an option called "Desktop Site" selected in my browser drop-down (see screenshot). When I unchecked it, all returned to normal. Thank you for checking Karen, that helped. [Screenshot_20221127-153654](//muut.com/u/sheltermanager/s3/:sheltermanager:rMv4:screenshot_20221127153654.png.jpg)


Hide or Ghost out Submit button until form is filled out

@jhirizarry: 2022-11-25 15:13:18
So I have setup an online form with Show if statements to display a Warning, for example, if the answer to a question does not favor an adoption. The problem is that the Submit Botton is active and the adopter can still submit the form even if the form is not completely filled out or and answer to a question Yes|No is not favorable. If No, cannot adopt, for example.

@jhirizarry: 2022-12-05 18:26:50
Maybe there is a workaround for this? I am trying to use mandatory fields, however; when the field is not visible yet, due to a show if condition, the submitter can still hit the submit button. I have it setup so that when submit is entered, it creates the people record and reserves the animal, provided they got that far in the online form. I am trying to streamline the adoption process and having the Person record created automatically is extremely helpful.

@robinrt: 2022-12-15 08:39:18
It's deliberate behaviour - if a field is hidden by showif then it is not mandatory. Mandatory only applies to fields the user can see. Otherwise, fields the user can't see/fill out would block them from submitting the form.

@jhirizarry: 2022-12-30 15:13:11
Thanks, Robin. What I was hoping to do was to hide or ghost out the Submit button until the entire form was filled out. This prevents, for example, someone answering the question, "Are you 18?", answering "NO" and then submitting the form.


Mobile format for online forms

@jhirizarry: 2022-11-24 23:37:31
I have tried to figure this one out based on all the forum responses but fall short each time. The online forms are coming together, however, when viewed on an iPhone, for example, the size is huge. See attached. I see there is code to account for this in the Header, but it seems to not work for me. Thoughts? [PNG image](//muut.com/u/sheltermanager/s3/:sheltermanager:0jGl:pngimage.png.jpg)

@robinrt: 2022-11-25 08:42:00
It looks like it's working as expected? You can adjust the font size for the small screen media query in this section of the CSS. Change font-size: 110% to a smaller value, eg: 100% or 90% ``` @media screen and (max-device-width:480px) { body { font-family: sans-serif; } * { font-size: 110%; } ```

@jhirizarry: 2022-11-25 14:27:26
That worked!! Thanks again.

@jhirizarry: 2022-11-25 14:39:48
Actually, take that back. Looks great on an iPhone, but on an iPad it messed the formatting up.

@jhirizarry: 2022-11-25 17:13:43
All good now. Thanks again for your help! I forgot about the server side delays. :-)


Formatting for Online Form

@jhirizarry: 2022-11-24 17:03:47
Is there a way to format the check boxes so they are left adjusted? See attachment. [Left adjust](//muut.com/u/sheltermanager/s3/:sheltermanager:DxLf:leftadjust.jpg.jpg)

@robinrt: 2022-11-24 17:27:39
Sorry, there isn't an easy way to do that.

@jhirizarry: 2022-11-24 17:38:41
No worries! Thanks for the quick response. I saw another user in the forum ask about the font size on the mobile device. I am trying to understand how to resolve that for the form I am working on. [PNG image](//muut.com/u/sheltermanager/s3/:sheltermanager:tImk:pngimage.png.jpg)


App Crash when trying to take photo

@jhirizarry: 2022-11-24 14:03:52
I just discovered and installed the ASM iPhone App. Noticed the Animal Photo Uploader and got really excited. However, when I select the animal and tap Take Photo, the app crashes. I found that I could take the photo using the phone and the Select from Gallery option works. I have a lot of cats to photo so being able to take the photo from the app would be far easier. I also tried this on my iPad and the app crashed there as well.

@robinrt: 2022-11-24 15:32:54
Hi, the app is being retired due to unreliability and issues like this. If you login to the mobile interface with your phone browser at m.sheltermanager.com you should be able to take a photo from within an animal record.

@jhirizarry: 2022-11-24 16:26:20
I see. That worked! Thank you!


How to add an emergency/alternate contact to the adoption record?

@ken2950: 2022-11-23 04:30:54
Our rescue would like to add an emergency contact to each new adopter record, complete with the emergency contact's first & last name, email, and phone number. As a bit of additional background, our adoption application asks for this information. We would like to have it automatically inserted into the correct fields upon being transmitted to ASM(similar to how the adopter's details are posted to ASM). How would we go about doing this?

@ken2950: 2022-11-23 05:54:23
Update: I ended up creating "additional fields" for all of the emergency contact information we want to have with each new person record (e.g., name, address, phone, email, etc.). I then ensured that in our online forms, the field names matched (e.g., if I named the field for the emergency contact's phone number "emergencycontactphone," I made sure to use the same field name for the online form). I thought it would help ASM know how to map the fields received in the online form to the new person record if the field names matched. Unfortunately, that seems not to be the case, as ASM does not bring in the data from any of the additional fields when a new person record is created from the "view incoming forms" page. Am I doing something wrong? Any help is appreciated.

@robinrt: 2022-11-23 07:31:21
Hi, yes, in your online form fields they need to start with the word "additional" followed by the name of your additional field. Eg: if your additional field is named emergencycontactphone, then on your form it must be named additionalemergencycontactphone

@ken2950: 2022-11-24 05:17:42
That worked! Follow-up question: Our form collects the address in two separate fields (e.g., address line 1 and address line 2 are separate fields). Not all addresses have a second line, but for those that do, we want to be able to capture it. How would I get ASM to take the values from address line 1 & 2 and insert it sequentially into a single field (ideally with a line break in between) in the new person record like it does by default when a new adopter is created?

@robinrt: 2022-11-24 08:39:12
Sorry, the short answer is that there's no way to do that. Your address must be a single field. If you use the notes type the submitter can include line breaks.

@ken2950: 2022-11-24 21:23:01
Thanks for letting me know. One more question: I've noticed a potential bug. Every time I change the online form and then proceed to preview the form in ASM, my changes are not shown. In fact, I just made a change to the form where I changed the field type from "text" to "lookup, multiple select," and the changes are not appearing on the form. I've noticed this with several of the forms I'm working on, and the only workaround is to duplicate the form and preview the changes on the duplicate. Any ideas as to what's happening?

@robinrt: 2022-11-25 08:38:30
Yes, the forms are cached on the server side for 30 minutes. On the edit online forms screen, there's a pair of buttons to the right of the form's name near the "View form" link. One of these is to open the form in development mode without caching. You can refresh this version of the form to see your changes reflected immediately.


Document Fonts

@mdeprima1964: 2022-11-14 07:05:12
I've created a document reflecting the cat's medical to be sent to the adopter after adoption. Everything looks fine when it's viewed from the media tab, but when I click the "print" or "pdf" buttons, the data in any tables does not retain the correct font. [Screenshot_20221114-002309](//muut.com/u/sheltermanager/s3/:sheltermanager:wCzS:screenshot_20221114002309.png.jpg) [Screenshot_20221114-002255](//muut.com/u/sheltermanager/s3/:sheltermanager:2Z9t:screenshot_20221114002255.png.jpg)

@robinrt: 2022-11-14 09:23:15
Did you copy this document from another source, such as Microsoft Word? Often, they can set fonts via an embedded style tag that doesn't work when converting to PDF. You should be able to correct this by selecting the text in your template and manually applying the font styles you want with the font dropdowns. This *should* fix printing and printing to PDF on the local machine. Converting to PDF with the toolbar button does it on our server and you are limited to the truetype fonts we have installed on the server (which is the standard Microsoft ones such as Times New Roman, Courier, Arial, Verdana, etc).

@mdeprima1964: 2022-11-18 17:54:38
Ok, I've updated the font sizes, but not the fonts themselves. And yes! I created the document template in WORD. Thank you!


Animals in care on particular date

@jimdunne: 2022-11-08 11:26:28
Hi, Is there a report/way of finding out the number of animals that were in care on a particular date? I'm sure I have found it before. Many Thanks!

@jimdunne: 2022-11-08 11:30:34
[SOLVED] Found it - Shelter Inventory at Date


Adoption Fee field

@jhirizarry: 2022-11-06 15:28:30
Hello, I am trying to include the Adoption Fee field on the Cage Card report. I cannot find that field referenced in any of the tables. The Adoption Fee filed shows up on the Animal tab in the details section. Does anyone know what the name of the field is and what table it is in?

@robinrt: 2022-11-06 15:38:43
It's animal.Fee

@jhirizarry: 2022-11-06 16:06:05
Thanks for the quick reply. Unfortunately, that did not work. [Screen Shot 2022-11-06 at 11](//muut.com/u/sheltermanager/s2/:sheltermanager:mihR:screenshot20221106at11.02.14am.png.jpg) . I included animal.fee in the query and $animal.fee in the html, but it errored out. Also, I do not see the field fee in the animal table.

@robinrt: 2022-11-06 17:45:40
It's just $fee in the HTML, it doesn't understand table qualifiers and only looks at result columns. If you are modifying our existing reports, they usually alias the animal table as a, so you might have to use a.fee or just fee without a table qualifier.

@jhirizarry: 2022-11-06 18:01:58
Genius! That worked!! Thank you!!! Simply $fee in html did the trick. Thanks again!


Adopter Mail Merge Report Returning zero results

@mdeprima1964: 2022-11-06 11:17:58
I'm attempting to run the report "Adopter" under the "Mail" tab and get zero results. When I am on the "Find a Person" screen and select "Adopter" I get 133 people. What am I doing wrong?

@adoptamutt: 2022-11-09 02:43:46
I haven't seen a Mail Merge called "Adopter". Maybe download the Mail Merge "Non-Returned Adoptions" and give that one a try.

@mdeprima1964: 2022-11-14 06:53:54
That worked. Thank you. Just fyi... Go to the "mail" tab at the top, pick "adopters" from the drop down. You get 0 results. The other options, like "Donor's" seem to work.


Special needs display on website

@srupe05: 2022-11-04 19:05:08
I have not been able to get any "special needs" indicator to display on animals published to our website. The 'special needs' box is checked on the record. In looking through the publishing templates, I could not find any code that would generate the output for the special needs box. I tried adding my own code but am a novice and what I tried did not work. Was hoping someone might be able to provide assistance. Thanks!

@adoptamutt: 2022-11-09 02:40:01
<script> if ('$$HasSpecialNeeds$$' == 'Yes') document.write("<li>Special Needs.</li>"); </script>


Adopt-a-pet Publish error

@michael-5302: 2022-10-28 12:22:18
I try to publish our pet list to adopt a pet, but it doesn't work. I did an auto upload test, and it is showing that some of the fields are not valid. Like it says "Grey/Blue/Silver/Salt & Pepper" is not a valid color for the type of "Cat" (Must be a valid color name). Then it also says "Breed2" is not recognized by the current species. I'm assuming I can just delete the breed2 field from the database, but wanted to see if there was another option before doing so.

@robinrt: 2022-10-28 13:08:14
Hi, are you actually using ASM2? I don't think AdoptAPet integration in ASM2 could send colours. ASM3 does not send colours by default since AAP are so stringent about what they will accept. Stopping ASM from sending colours under Publishing->Set Publishing Options->AdoptAPet will fix those issues. I'm not sure I understand the Breed2 bit, have you created a breed named Breed2 or something? The AdoptAPet error message is saying that it doesn't recognise that as a cat breed, however I don't understand how we could ever send that to them as you can't edit the list of publisher breeds and we will only ever send mapped publisher breeds to AdoptAPet. Maybe you hand edited your own import.cfg file on their FTP server?

@michael-5302: 2022-10-28 15:29:13
Yes, we are still using ASM2 because of being able to have it on Windows locally. Nothing was hand edited. I went into MySQL, and I found an entry for breed2ID, listed under animal. Can I just dump the Breed2ID entry without messing up ASM?

@michael-5302: 2022-10-28 15:35:09
Breed2ID is line 72, in the Animal table.

@robinrt: 2022-10-28 15:50:14
Removing a column the system expects to find will stop the system working. I am assuming that it's the value in Breed2 that is causing the issue rather than the existence of the column in the datafile being sent to AdoptAPet (which will still be there, whether you trash the database or not!). Have a look at the second breed field for that cat, then compare it to the publisher breed against that second breed under System->Lookup Data->Breeds. Make sure it's a valid cat breed. Looking at the source for ASM2, there is the option to exclude colours, so I would disable sending them to fix the colour issue. It is not worth trying to send colours to AdoptAPet because their requirements are so strict.

@michael-5302: 2022-10-29 01:44:27
I think that did the trick. just have to wait to see if they actually upload. it says they did but there not showing yet, so maybe there's a delay. Thank you very much for all your help.


Sites

@9inchnacho: 2022-10-25 18:14:07
Dear all, new here. I've enabled multiple sites but don't see where to implement them. Can somebody help? Thank you & best regards

@robinrt: 2022-10-25 22:23:07
https://sheltermanager.com/repo/asm3_help/options.html#display "Enable multiple sites: Once enabled, sites can be created in the lookup data section. Sites can be assigned to locations, user accounts, incidents and people records. User accounts with a particular site assigned can only see animals in locations belonging to their site, along with people and incidents at their site. Leaving a person, location or incident with no site allows anyone to see it. Leaving a user account without a site allows it to see all sites. This allows you to handle multiple sites with one ASM database. A number of site-specific reports are available in the repository."

@9inchnacho: 2022-10-26 16:59:59
Perfect, thank you very much.


Question about newer version of ASM software.

@mcgiwer: 2022-10-18 16:23:25
Hello. I'm curious if there is planed a never version of Animal Shelter Manager (ASM) then 3.x. Are any news about this topic ?

@robinrt: 2022-10-18 17:06:49
https://github.com/bobintetley/asm3/milestone/7


[Feature request] Adminstrator demo

@mcgiwer: 2022-10-18 16:03:58
I would like to request adding to the online demo a administrator account demomonstration (not only user one)

@robinrt: 2022-10-18 16:12:52
Hi, the reason we can't do this is because that would allow malicious users to trash the demo database.

@mcgiwer: 2022-10-18 16:17:24
It could be prevented thru making it readonly 😉


Don't want to charge any boarding

@trishawf_ifr: 2022-09-30 15:25:18
All our cats are in foster care, so there is no boarding cost for any of the cats. I went into the settings and changed daily boarding cost to $0, but there is one cat record where the total boarding cost has still calculated, and when I change it to $0, the change doesn't stick (so next time I go back into the cat record, the total boarding cost is back). For this particular cat's record, I do have another cost listed against this cat's record (for vet work). Just wondering how to make the boarding cost disappear for good and never come back. I had previously changed the cost to $0 but suddenly it had reverted back when I had a look in there tonight.

@robinrt: 2022-09-30 16:29:37
Hi, did you make sure to click the button to the right of the daily boarding cost value on the cat after setting it to 0 to save? If it won't persist, please email us at help@sheltermanager.com with your account number and let us know which cat it is.

@trishawf_ifr: 2022-10-02 03:08:55
Hi, thanks for the tip - I had not clicked that little button. I will make sure to do that. Thanks!


Bulk people

@johockley: 2022-09-27 15:27:38
Hi - I can see the function to bulk amend animal data but is it possible to bulk update people - such as adding or removing specific flags? thanks

@robinrt: 2022-09-27 16:01:14
I'm afraid it isn't right now, but that would be a great feature for us to add in future.

@johockley: 2022-09-27 16:12:39
OK - thanks.


Help with donor management setup

@johockley: 2022-09-26 15:04:16
Hi I'm trying to figure out the best way to manage my fundraising journeys - I need to be able to assign a code for each campaign or event, track progress, send emails, export based on these codes and bulk amend. I was hoping the 'log' function would allow this but I can't see it in the report builder. Does anyone have any idea of the best way to achieve this?

@robinrt: 2022-09-26 17:20:50
Most people do this by creating a person flag for fundraising campaigns, along with a matching payment type. You can then tag the people you want to target wtih email with the flag, and use the payment type for donations made as a result of the campaign so that the payment breakdown by type reports will give you totals for your fundraising campaign.

@johockley: 2022-09-26 17:35:43
OK thanks - would you create multiple flags throughout a project then so that you can see what stage they are at (so prospect, signed up, completed event, paid etc)? Can you bulk amend these and pull reports on them? Would you create a custom report or does one exist for this? Sorry for so many questions I'm a total newbie to this!


"Looking for" section in people records

@trishawf_ifr: 2022-09-25 00:33:17
In "people" records, do other shelters make use of the "Looking for" section for fosterers, or is this supposed to be more for adopters? I notice in the Type section there is the capacity field in terms of numbers of fosters, so is that usually what you'd stick to for fosterers?

@robinrt: 2022-09-25 08:34:42
Yes, correct on both. Looking For is aimed at finding adopters. Some people add extra people flags for their fosterers according to what they're willing to foster. It's then easy to look up who has the "Foster Bottlefeed Kittens" flag etc.


Escaped animal shows on daily meds list

@jimdunne: 2022-09-21 17:23:18
Is there a reason why, once marked as escaped, an animal still appears on the daily meds list? Surely if it has escaped and no longer in care, this should not happen?

@robinrt: 2022-09-21 17:39:38
Have you turned on the option to show off-shelter animals in the medical books? It's under Settings->Options->Medical->Include off-shelter animals in medical calendar and books

@jimdunne: 2022-09-23 17:11:25
I have, but surely an escaped animal is not 'off shelter' no more than one released to the wild is? We use off shelter animals as there are some hedgehog carers locally that do not do meds, faecal tests etc, so we do them for them and need to record them.

@robinrt: 2022-09-24 08:07:30
It's not that sophisticated. off-shelter just means not in care as far as checking animal location is concerned. Unless escaped animals are a regular thing, it will be simpler to hold the regimen for that animal (or delete it).


Person Lookup In Online Form

@mhs_jeff: 2022-09-15 19:57:06
Hey all, We are trying to create an online form to use for references to fill out for applications. Is there a way in an online form to have a person field like the shelter animal field. That way the person who is filling out the reference could select the potential adopter who they are providing a reference for? Thank you!

@robinrt: 2022-09-15 20:03:59
Sorry, no. Loading personal data into a public online form could be hugely dangerous.


Website photos

@rachie_672: 2022-09-13 22:29:52
Is there a way to have certain pets published to 2 different pages on our organizations website? Such as animals on stray hold publishing to a lost and found page and adoptable pets to the adopt me page.

@robinrt: 2022-09-14 10:04:37
Yes, see https://sheltermanager.com/repo/asm3_help/service.html#html-held-animals


Assign multiple carers to a cat

@trishawf_ifr: 2022-09-13 01:05:34
We would like to be able to assign multiple carers to one foster cat . We would rather not have to make one record for two people (carers) especially when they have different surnames (it just looks messy). Is it possible to change settings to allow this, or if not, is it something we can suggest as a future enhancement?

@robinrt: 2022-09-13 10:24:35
A person record can represent a couple. We have a ticket on our list to look at adding second person contact info in future, but most people just combine the names. Eg: First name: John and Jane, Last name: Smith and Jones

@trishawf_ifr: 2022-09-14 06:02:51
Yeah, I tried that and it looked bad (to me at least). So hopefully in future we can add a second person :) Thanks!


Petco Love Lost, Petfinder, & ASM

@catutopia: 2022-09-08 20:56:01
Petco is now requiring us to use ASM to push stray listings to Petco Love Lost through Petfinder to be considered for grants. We do not (and don't intend to) use the automatic upload of adoption ready animals to Petfinder. Petco Love thinks we just need to click on the enable box in ASM and set the status code boxes. Since we have no idea what these status letters (F & H) mean or how they are determined by ASM I hesitate to do this without more information. Does anyone have more information about this?

@robinrt: 2022-09-09 11:05:53
Those status letters are PetFinder's status codes that are put in the import file we send them. F is a found/stray animal, H is a held animal. There isn't a way to enable sending of your strays and held animals to PetFinder without sending your adoptable animals too. Is there a reason you don't want to publicise your adoptable animals with PetFinder?


Getting error during publish

@rementis: 2022-09-07 00:33:41
I occasionally see this error during publish to adoptapet: ALERT: 'ascii' codec can't encode character '\u201c' in position 5382: ordinal not in range(128)

@robinrt: 2022-09-07 09:23:17
This was a fairly recent bug that was fixed back in May. It occurs when extended non-ASCII characters are used in animal descriptions and when constructing the datafile for adoptapet. The only way to fix it is to either update your ASM to the latest from git or to remove special characters from your descriptions or patch the code manually to specify utf-8 in the saveFile function of src/asm3/base.py


pets.csv blank when uploading to adoptapet

@rementis: 2022-09-07 00:32:04
All of my animals disappear and when I ask adoptapet I'm told my pets.csv file is blank. If I then manually publish it goes back to normal.

@robinrt: 2022-09-07 09:17:44
Sounds like it's blank due to errors during publish.


Install ASM3 on stand alone PC with Windows 10

@paultimpson: 2022-09-05 11:32:57
Hi Can anyone give me a step by step installation process of ASM3 on a stand alone PC that has Windows 10 on? I am not very technically minded so it will need to be easy to understand I'm afraid. Many thanks

@robinrt: 2022-09-06 09:35:30
Hi, ASM3 does not run on Windows. It requires a Linux server. There is a package available in the download section for Debian or Debian-based distros such as Ubuntu. You can rent a Linux VPS from many cloud providers for a monthly fee. One of a good enough spec will cost about £20/month to run. It does require knowledge of Linux/Unix and sysadmin skills though. Our hosting is also very reasonably priced at £215/year including email support, regular backups and a guarantee that you'll always have the latest software.


Movement > Adoption - movement does not 'complete'

@trishawf_ifr: 2022-08-31 14:58:53
I have created a movement for a cat using "Adopt a cat", but for some reason it hasn't completed, so when I try to do the next movement (which is the cat coming back into foster care) I can't do it because the adoption one is still 'open'. The status column for the adoption is blank - not sure if that matters? The adoption date is from last year, and the cat was only returned this year. What would be possible reasons for an adoption movement not completing?

@trishawf_ifr: 2022-08-31 15:22:54
Or should I have included the return date in the "movement > adoption" entry to begin with? I see the option Move > Return an animal from adoption, which is what I tried, but it didn't cancel out the original adoption movement.

@robinrt: 2022-08-31 16:06:11
You need to put a return date on the original adoption movement before you can create a new movement.

@trishawf_ifr: 2022-09-01 14:18:15
How would that work when an animal is adopted out as per usual, but you don't know that they're going to come back in future? You wouldn't be putting a return date in then. I would have thought the "Return an animal from adoption" option would add a return date into the adoption movement, but this doesn't appear to work. I also wondered if "Return an animal from another movement" might work? Or "Reclaim an animal".

@robinrt: 2022-09-01 15:13:32
You can edit the adoption at any time in the future and add a return date. The "Return an animal from adoption" screen gives a list of adoptions. Just click the word "Adoption" in the leftmost column of list to edit them and add a return date. All of the tables in the system allow editing records by clicking the bold word in the left column.

@trishawf_ifr: 2022-09-02 00:48:27
When I go to that screen I don't see any adoptions listed - would this be some setting I have that only shows recent adoptions? (this adoption was from last year) If so, can I change it to show all past adoptions?

@robinrt: 2022-09-02 08:26:35
That screen shows adoptions in the past 30 days. If you want to return an older adoption, just go to the movement tab of the animal or person involved in that adoption.

@trishawf_ifr: 2022-09-05 14:08:44
I finally took a look at this tonight and figured out how to do what you were saying (so easy ... didn't realise you could click on the adoption to open the pop up :P ). Thanks for your help!


Adding an animal retrospectively - codes etc

@trishawf_ifr: 2022-08-31 13:09:44
Hello I did a bulk import of cats into our Shelter Manager, and most of them imported fine but I know that a few didn't. I stumbled across one that is missing and I want to add it, but it's going to be out of sequence - so it will get a code that doesn't match the code it should have. The code the cat will get is IF036-22 (which is in sequence for this year's in-take), but the code he should have is IF016-15. My question is, if I add the cat and he gets that first code, can I amend the code to the old one, and then expect that the next cat i add in sequence will get IF036-22 as its code? Thanks! Trisha

@robinrt: 2022-08-31 13:25:05
Yes, you should be able to manually change the code. You may have to run the option to reset NNN codes under Settings->Trigger Batch Processes after changing the code, or the next code issued for the next animal will be 23.

@trishawf_ifr: 2022-08-31 14:20:54
Thanks for this tip. I will try it out.


Newbie question about animal codes

@trishawf_ifr: 2022-08-27 02:36:16
Hi all, We have just signed up to Shelter Manager, and I'm wondering if we can change the format of the animal code to match our usual codes that we use outside of SM? We only rescue cats, so it's pretty simple. Our usual cat codes look like this: IF001-22 This represents the first IF cat to come into our rescue for the year of 2022. Or if we can't use the animal code for this is there another field we can use to manually put our IF codes in, that will be searchable / easily visible in our records? Thanks!

@robinrt: 2022-08-27 08:31:59
Yes, you can edit the format under Settings->Options->Animal Codes. In your case, the format string IFXXX-DD should do what you want.

@trishawf_ifr: 2022-08-28 00:35:47
Great, thank you. I had put that in but wasn't sure if it would work. I'll test it out. :)


Recording Costs

@kerry-fluffybutts: 2022-08-19 19:34:04
Is there any way to record a cost without it being related to a specific animal? Something similar to how the Payment Book works where we could record general costs with a due date and paid date, and be able to see future planned expenditure. I'm thinking of general costs, example our Shelter Manager subscription, purchase of merchandise or equipment, which is not attributable to a specific animal Thanks

@robinrt: 2022-08-20 09:32:20
This is what the Financial->Accounts module is for. You can add your bank accounts and record expenses etc. Payments and costs can automatically create accounting transactions.


Sharing to Instagram?

@adoptamutt: 2022-08-19 15:46:07
Is there Instagram share code that we can add to our publishing templates similar to: document.write('<i class="fa fa-fw fa-facebook"></i><a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=' + u + '">Share on Facebook</a>');

@robinrt: 2022-08-20 09:35:26
Looking around, I can't find anything that says Instagram has an equivalent sharer URL. There might be a javascript API but it will be more complicated.


Animal Numbering

@bkrodle: 2022-08-17 20:37:20
We've noticed that when we enter a dog into the shelter as a stray, owner release, or capture the numbers stay in order, but quarantine and protective custody have reverted to an earlier number. Example dog as comes in as a stray the number is D221006, capture comes in as D221007, owner release comes in as D221008, but we enter a quarantine and we get D22710 and a protective custody enters as D22712. Shouldn't the numbers stay the same as long as it's a dog? I haven't noticed this with cats.

@adoptamutt: 2022-08-17 20:51:44
What is your "Animal Code format" set to? (Settings > Options > Animal Codes)

@bkrodle: 2022-08-17 21:51:15
Animal code format TYYNNN Animal shortcode format NNT I thought it might be those settings, but I can't find anything that would cause it to reserve numbers.

@adoptamutt: 2022-08-17 22:06:25
What are your Types? If you happen to have Types like Dog Stray, Dog Protective Custody then ASM is pulling from two different number ranges. NNN = Number unique for this TYPE of animal. If you are using T or TT in combination with NN or NNN, I think is it better to have all unique first letters of Animal Types (or 1st and 2nd if using TT), otherwise you will see different numbering sequences even though the first letter of the animal code is the same. Does that make sense?

@bkrodle: 2022-08-17 22:28:11
But wouldn't that pull more than 1 dog with that number? When I check numbers before and after those they are captures. It's no big deal, but it was just weird.

@adoptamutt: 2022-08-17 22:35:43
The shelter code would always be different because your types would all have a different first letter. For example, if your types were: "D = Dog Stray", "P = Dog Protective", "T = Dog Capture", "O = Dog Owner Surrender". The first shelter codes assigned for each of these types would be: D22001, P22001, T22001, O22001.

@adoptamutt: 2022-08-17 22:38:37
BTW, ASM looks at the Animal Type ID, not the actual first letter to determine what the next NNN needs to be assigned as.

@bkrodle: 2022-08-17 22:47:09
Yes, I get that, but I don't have it set up that way. I guess I could have. Reporting pulls those numbers separately, but for cage cards our building is small enough not to need different prefixes, just D for dog and C for cat. I've only had 8 protective custody dogs this year , but the number was D22712. I'm wondering if it is using deleted numbers from mistakes (ie, entered dog stray instead of dog capture) to fill in for those protective and quarantine numbers.

@robinrt: 2022-08-18 09:11:23
The letters on your types are not relevant for generating codes - it's the animal type itself that determines which count is used. As Karen said, if you have multiple dog types and you are using NNN codes, they will keep different counts. Have a look at your code format under Settings->Options->Animal Codes. If you have never changed this, it will be TYYYYNNN - with the NNN portion being the number of animals this year for the selected animal type.


Adding new vaccine to drop down menu

@sborrego: 2022-08-14 19:25:45
I want to add a new vaccine to the drop down list of vaccines we have and can't figure out how to do that

@adoptamutt: 2022-08-14 21:13:17
Settings > Lookup data > Vaccination types


Adoption Application Online Form - reserveanimalname

@bajadogslapaz: 2022-08-04 19:20:55
Hi there - We often have dogs adopted and awaiting transport and would like to exclude them from the list of dogs that show up in the "reserveanimalname" field on our online Adoption Application -- so people don't try to adopt a dog that is awaiting transport. We technically still have the dog and don't want the chips registered or to loose track of the dog until it is in the possession of the adopter - so we don't changed their status to adopted until that time. But during this "waiting period" these dogs show up in the form and we get applications for them. Is there another list or flag we can set to prevent this? I don't want to use "NotForAdoption" because that could be confusing with other dogs that are not for adoption for medical or other reasons. Suggestions?

@robinrt: 2022-08-04 19:37:21
Not for adoption is the safe manual way to stop them being adoptable. Other options: 1. You could put animals awaiting transport in another location which is not valid for publishing (this would make them not adoptable). 2. You could put animals awaiting transport on hold (under the Entry slider) if you don't use holds for intake anyway. 3. You could create their adoption movement with a future date. Animals with a future adoption are automatically not adoptable.

@bajadogslapaz: 2022-08-04 23:28:47
Excellent - thank you!


Return Category displays same value no matter the real option selected

@ketalabama: 2022-08-03 10:58:21
We have animals returned from time to time. On the movement tab we always select specific Return Categories. However, when the popup is closed on the Movement grid it always shows "Allergies". No matter what was actually selected. On reports it does reflect the category correctly but not in the UI. Just curious if this can be fixed? [Shelter Manager Return Reasons Issue](//muut.com/u/sheltermanager/s1/:sheltermanager:G2VS:sheltermanagerreturnreasonsissue.png.jpg)

@robinrt: 2022-08-03 11:07:57
Hi, thanks for letting us know. I'll apply a fix for that asap. It's only the on screen display after entry that is wrong as you've seen. If you press F5 to reload the screen they will show in the table correctly.

@ketalabama: 2022-08-03 11:20:54
Wow! Thanks that was fast :-)


PetFinder Photos

@bajadogslapaz: 2022-07-06 18:58:21
I see from some posts in 2019 and 2020 that PetFinder is often slow with the auto upload of photos. Is that still the case -- I'm wondering if I might be doing something wrong. Dogs all got listed but not the photos.

@robinrt: 2022-07-07 09:20:58
It can be at times, yes. There's also an issue in that if an animal is delisted for any reason and then relisted, they'll refuse to use the URLs for images they've already seen so that can cause them to disappear sometimes. If it's been days since you updated PetFinder and there are still no photos, email us at help@sheltermanager.com with your account number and we can nuke and reload your PetFinder listings.


Reorder Photos

@bajadogslapaz: 2022-07-05 21:08:23
Is there a way to re-order the photos in the media tab so we can dictate which photos are published first, second, third, and fourth in adoptapet? Thank you!

@robinrt: 2022-07-05 21:15:42
Sorry, there isn't. The only thing you can do is exclude the ones you don't want. They're sent in the ordered they were added descending.

@bajadogslapaz: 2022-07-06 04:58:55
OK thanks. So it sounds like if we want to reorder them, we need to delete and reupload in a specific order.

@robinrt: 2022-07-06 07:13:36
I'm afraid so. The picture in slot 1 is always the one that you designated as preferred under the media tab.

@bajadogslapaz: 2022-07-08 01:16:19
Yes - got it. Thanks.


Adopt-a-Pet paragraph/line breaks formatting dropped

@adoptamutt: 2022-06-27 14:19:20
Is there anyway to retain the paragraph or line break formatting in our animal descriptions when exporting to Adopt-a-Pet?


where are custom documents stored?

@kytti: 2022-06-24 01:41:05
I had to move my ASM to a new computer. A sql dump allowed all my animal data to be added to the new install, but my custom animal forms documents aren't there. I can't seem to find them on the drive either. Where do I look? Thanks!


additional field name on report

@bfreides: 2022-06-19 21:31:17
I added an additional field name called "sbfnotes" I am trying to call that field on a report. BAF Animals for RG Compare SELECT a.ShelterCode, a.AnimalName, a.id, a.DateBroughtIn, a.MostRecentEntryDate, a.IdentichipNumber, a.AnimalAge, a.BreedName, a.DisplayLocation, a.TimeOnShelter, a.hiddenanimaldetails, sx.Sex, t.AnimalType, s.SpeciesName, CASE WHEN a.ActiveMovementType = 2 THEN 'Foster' WHEN a.ActiveMovementType = 8 THEN 'Retailer' ELSE i.LocationName END AS LocationName FROM animal a LEFT OUTER JOIN animaltype t ON t.ID = a.AnimalTypeID LEFT OUTER JOIN species s ON s.ID = a.SpeciesID LEFT OUTER JOIN lksex sx ON sx.ID = a.Sex LEFT OUTER JOIN internallocation i ON i.ID = a.ShelterLocation WHERE a.Archived = 0 ORDER BY CASE WHEN a.ActiveMovementType = 2 THEN 'Foster' WHEN a.ActiveMovementType = 8 THEN 'Retailer' ELSE i.LocationName END, s.SpeciesName, DateBroughtIn

@robinrt: 2022-06-19 21:34:05
Hi, did you see this in the FAQ? https://sheltermanager.com/site/en_faq_asm3.html


Group all fostered animals together in Shelter View?

@seanimals: 2022-06-12 16:51:10
We've just started using sites and love how the Site mode of Shelter View looks, but we'd like all the fostered animals to show together in one 'site' rather than within the Site they were last at. Is there a way to do that? I know there's other ways to see all the fostered animals in one group, but it would make the Site view much less confusing for our staff if they could be grouped together in this mode. is it possible? Many thanks.

@robinrt: 2022-06-12 19:19:19
When you say the site they were last at, it sounds like it's the site linked to the location? Are you a sheltermanager customer? If so, could you email your account number to help@sheltermanager.com so I can take a look and see what you mean?

@seanimals: 2022-06-15 04:47:10
I am. Doing now.


Different site but same location name

@seanimals: 2022-06-10 15:18:34
I've just started using the Site function but encountered a problem: If sites have locations of similar or same name, there's no way to tell which is which when moving an animal. For example, we have two sites, The Den and The ARK, and both have a Garden A, Garden B, etc. How do we differentiate between locations of the same name but different sites when trying to add their location?

@robinrt: 2022-06-10 16:57:05
The simple way is to put the site in the location name - eg: ARK::Garden A

@seanimals: 2022-06-11 04:09:50
That's what I just moved away from. It's OK. We've renamed the gardens at our three sites: Group A, Garden A, and Garden 1.


Document Templates - PDF no longer loading images

@megw341: 2022-06-09 20:53:21
When we save a document template as a PDF to save in a file or email to adopters it is no longer loading the images (logos, etc). It just shows a box with a question mark. I've tried reloading the images and adding the photos back on the template but it's still giving the same error. These images are loaded in the "Extra Images" section for the document templates.

@robinrt: 2022-06-09 21:11:12
I'm deploying a fix for this now, they should start working again in approximately 5 minutes.

@megw341: 2022-06-09 21:38:26
Thank you so much!


How to make iframe resize to fit content? And how to make it scrollable?

@seanimals: 2022-06-06 12:34:50
I'm trying to finish our new rehoming page, but I have two problems with the asm3-adoptable-iframe (using hyphens because underscores will get deleted). 1. It would be great if I could get the iframe height to fit the content. Is there any HTML or CSS that could do that? 2. Currently, the iframe on the new site won't scroll; all extra content is just hidden. Is there a wa y to fix that? Strangely, it scrolls just fine on our old site, but the problem persists even if I just delete all the new CSS and paste the code from the old site. Why would that happen? I've been searching online for nearly two weeks now, but I haven't found anything that works. I know very little about HTML or CSS, though, and just copy and paste and play around a lot until something works. I can post the code we're using, if that would help. Many thanks for any help at all.

@seanimals: 2022-06-10 14:54:46
I got someone on Fiverr to fix it.


How to style Extra Content?

@seanimals: 2022-06-06 12:22:30
I've almost finished styling our new rehoming page, and I've added the length of time on shelter as extra content below the thumbnail and basic info. <script> asm3_adoptable_filters = "size agegroup sex breed species"; asm3_adoptable_extra = function(a) { return a.TIMEONSHELTER; } </script> But try as I might, I haven't been able to work out how to style the font, colour, and size of the output. I'd also like to add something like "Time on shelter:" just before it but don't know how to do that either. Any CSS tips for this?

@robinrt: 2022-06-06 13:49:39
Construct it as part of the string you are returning. Instead of return a.TIMEONSHELTER, do: ``` return '<span style="font-size: 120%; color: red">Time on shelter: ' + a.TIMEONSHELTER + '</span>'; ``` This will make the font 20% larger than normal and red. You can use any CSS attributes in a style tag, such as font-family or font-weight

@seanimals: 2022-06-06 14:32:19
Thank you very much!

@seanimals: 2022-06-06 14:55:40
That worked perfectly! Is it possible to change the font colour on hover?

@robinrt: 2022-06-06 15:06:33
You can only set a hover style via CSS in a <style> tag - not in a style attribute. Give the span you're outputting a class name (eg: "timeonshelter") and then style timeonshelter in a style tag instead. ``` return '<span class="timeonshelter">Time on shelter: ' + a.TIMEONSHELTER + '</span>'; ``` ``` <style> .timeonshelter { color: red; font-size: 120%; } .timeonshelter:hover { color: green; } </style> ```

@seanimals: 2022-06-06 15:27:36
Thanks again!


"Remove insurance number field" bug?

@asmcodehelp: 2022-06-01 19:40:44
1) Enable "Remove the insurance number field from the movement screens" 2) Move -> Adopt an animal -> Insurance field *IS* removed (CORRECT) But if do: 3) open an animal -> Movements -> New Movement -> Adoption -> Insurance field *IS NOT* removed Insurance field also still appears if viewing an old Adoption movement. Is this a bug or expected? Currently using: ASM v46u (27/03/22 commit #26348fe88d18bb510aa3e0944333b1a4ce606948)

@robinrt: 2022-06-02 09:33:19
it's a bug. The logic that displays it for adoptions is overriding the logic that hides it based on the remove option. I'll get that fixed. Thanks for reporting.


PetFinder Automated Updates

@megw341: 2022-06-01 19:25:24
ASM is still showing publishing logs for Petfinder but Petfinder has not updated since 5/29 at 8:00pm. We have updates set for every 2 hours. We are manually changing out Petfinder but is there something I can do to reset the connection? I've already contacted Petfinder Support.

@robinrt: 2022-06-01 19:28:19
It sounds like there's a problem with your field mappings. If you run PetFinder manually from the publishing menu it should tell you. I suspect you've added a new breed or species under Settings->Lookup Data, but you haven't chosen a matching publisher breed. Look for ones with a blank value in the publisher column.

@megw341: 2022-06-01 22:50:57
It doesn't look like there are any blank fields and I've run publishing manually a couple of times now. It looks like Adopt-A-Pet is up-to-date and talking to ASM properly. This seems to be a PetFinder issue.

@robinrt: 2022-06-02 08:24:56
Are you getting an error message when you run PetFinder? There should be an error message or a log file and it sounds like you aren't getting the latter. If you use sheltermanager.com you could email us at help@sheltermanager.com with your account number and we'll take a look.


Automated emails to new adopters/fosters?

@jrich1: 2022-06-01 15:36:38
Hi all, is there any functionality in ASM to automatically send an email to new adopters or people fostering animals? We like to send out an email that includes links to various resources, which has always been a manual step following a foster/adoption. I don't think an automatically-run report can email based on recipients pulled from the database, but maybe there's another built-in way of doing this that we're just not aware of - or maybe it can be done quite easily with an external helper program and a call to the service API? thanks, Jules

@robinrt: 2022-06-01 15:41:27
No, we deliberately never allowed this with adopters due to the capacity for mistakes to be made. There are ways to bulk email adopters but a person has to "pull the trigger". The mail merge "Non-Returned Adoptions" allows you to email everyone who adopted an animal between two specified dates and didn't return their animal. There is a similar mail merge for active fosterers and there's also the weekly fosterer email that can be turned on under Settings->Options->Medical. The weekly email lets you customise the top part of the message and it sends a message to all fosterers on Monday mornings saying what medical treatments/vaccinations are due for the animals in their care that coming week.


Foster report

@audraf: 2022-05-28 00:25:04
Is there a report that can pull all fosters between 2 dates with their names (the humans) and their emails?

@robinrt: 2022-05-28 08:56:15
I've updated the "Fosters by date with outcomes" and "Fosters by date and fosterer with outcomes" reports to do this now. If you already had them installed they will update automatically, otherwise install them from Settings->Reports->Browse sheltermanager.com

@audraf: 2022-05-31 19:29:55
Thank you!


"costpertreatment" column missing for database restore?

@jrich1: 2022-05-25 16:11:19
Hi all, I've taken a SQL dump from our hosted site that I'm trying to restore to a local machine, but the restore eventually fails with <ERROR: column "costpertreatment" of relation "animalmedical" does not exist> and then rolls back all changes. Has anyone encountered this and has a fix? I do notice that our live site is 46u, but the download available from the website reports itself as 45, I'm not sure if that particular column only appeared in 46u? Or maybe there's something I need to enable via the web interface on my local copy before attempting the restore? I'm running Postgres on the local machine, which I believe I saw somewhere is what the hosted sites use? Thanks!

@robinrt: 2022-05-25 16:19:24
Yes, it was added in the current release that is not out yet. Either upgrade your local version of the software from github, or you could manually add that column for now to make the error go away: ``` ALTER TABLE animalmedical ADD CostPerTreatment INTEGER; ```

@jrich1: 2022-05-25 17:59:41
Thanks! Altering the table did the trick (for anyone else in this situation, the same needs to be done for the 'medicalprofile' table).


Estimated DOB

@vikib: 2022-05-24 19:21:52
Is there a way to remove the box with "Estimated" for date of birth from the animal details?

@robinrt: 2022-05-25 10:43:02
There isn't. It's an important field for indicating where the DOB is a guess and not known.


Search Cancelled Reservations

@mhs_jeff: 2022-05-23 21:28:51
Hey All, I saw some awesome posts in this forum about using the reservation book in order to process adoption applications, and I'm working to move us over to that. Something that I've always wanted to make easier is a way to look up previous approved applicants for a given animal. For example if we have a dog and a lot of people applied but obviously only one was chosen. If we have another similar dog that comes in I would love to be able to look up all the prior applicants that applied for that dog, any ideas? I tried to add the "reserveanimalname" field to person additional fields so I can make it searchable, but could not get it to transfer from an online form. I was also concerned when it is cancelled it may clear it. Maybe I could set another field equal to that field in the online form? I admit that other than having the applicant populate two fields with the same value I'm not sure how to do that. I've learned so much from the forum, thank you!

@robinrt: 2022-05-24 08:39:50
Cancelled reservations always appear under the animal's movement tab as well as that of the person. "reserveanimalname" is an online form field - creating an additional person field will have no effect. When you have a field named that in your online form (usually of type "Adoptable Animal") the system will auto create the reservation for you when you use Create->Person on the incoming forms screen to create a person from the form. It also links it if the person already exists. That field is used so that the person filling out an online form can state which animal they are applying to adopt.

@mhs_jeff: 2022-05-24 16:47:16
Ok thanks, I think I was deleting vs. cancelling when I was testing. Is there a way to run a report that looks at active/current reservations? I'm hoping to try to run a report looking for people who have/had a reservation for a certain animal.

@robinrt: 2022-05-24 16:49:25
The "Reservation Book" screen under the Move menu shows that. There's also an installable report called Reservation Book that shows the same info.

@mhs_jeff: 2022-05-24 17:09:35
Thank you, the Reservation Book report only shows current and active reservations though I believe. I'm hoping to develop a report where I could look up the animal name and see anyone who ever had a reservation for them even if it is cancelled. That way I could easily go find old applicants for new animals.

@robinrt: 2022-05-24 17:15:37
Unless I misunderstood, your question was "is there a way to run a report that looks at active/current reservations?". The movement tab of the animal's record will show every reservation for that animal ever, even if it was cancelled. In your previous comment it sounded like you were deleting reservations instead of cancelling them? If this is the case, a report is not going to help since you've removed the data.

@mhs_jeff: 2022-05-24 17:19:01
Sorry, I realized I am all over the place a bit. I was trying to test and was deleting reservations, I understand my error and am no longer doing that. What I'm looking for is to run a report that looks at cancelled reservations for a given animal. My goal is doing this is to be able to easily identify prior approved applicants for an animal that did not get select as the final adopter.

@robinrt: 2022-05-24 17:29:03
Ok. There is a report that finds cancelled reservations for all animals. It's called "Reservations Cancelled by Date with Addresses". You can use CTRL+F in your browser to find any animal or person within the report when viewing it. We never saw much point in having a variant of that report for a single animal since you can just view all previous reservations under its movement tab.

@mhs_jeff: 2022-05-24 17:45:36
Ok thank you very much! This helps a lot. I'm very excited to get us processing our applications paperless and completely within ASM.

@mhs_jeff: 2023-01-01 22:19:48
Sorry to bring this back up, but now doing this there is another challenge I'm running in to. We have some people who are putting in applications and leaving the “reserveanimalname” field blank. What is great is that it is coming into the reservation book and we can process it like any other application. The challenge I'm having is that any report that I run after the application is processed and the reservation is cancelled doesn't seem to pick those up. Is there a way to run a report on active and cancelled reservations that would show reservations that were not done on a specific animal? Thank you!

@robinrt: 2023-01-02 12:31:00
Which reports are you using that are excluding the reservations without animals? Sounds like they might be using an inner join unnecessarily.


Animals with trial adoption showing on site overnight day of adoptionSeveral tim

@megfl: 2022-05-21 05:48:37
Several times this week, I have noticed my animals that have a movement for a trial adoption, show up on the website around midnight the day of that trial adoption movement - whereas they had been previously not published due to the trial adoption movement This is causing confusion to our potential adopters who are looking at the site late at night. I haven't figured out when the animals stop appearing. If I move the movement out an additional day, they immediately come off the site. Is this a known bug, or is this a configuration issue?

@megfl: 2022-05-21 07:15:12
Its happening from midnight the day of the trial adoption, through 2am the day of the adoption. After that, the movement to the adopter is process (appears as the "last movement") and the animal no longer shows as available.

@robinrt: 2022-05-21 07:29:42
when you say it's your website, what mechanism are you using to put the animals on your website? Is it the javascript include system, the html-adoptable-animals service call or are you doing something else? Is the date on the trial adoption for "today" or is it tomorrow?


Import Online Form

@mhs_jeff: 2022-05-17 20:08:07
Hey All, When working on our online forms the other day I noticed that you could input online forms. I looked but couldn't find any information on this capability. Is it via a certain file type and format? Thank you!

@robinrt: 2022-05-18 09:14:36
Yes, they can be JSON or HTML forms. There's info in the manual here: https://sheltermanager.com/repo/asm3_help/onlineform.html#importing

@mhs_jeff: 2022-05-18 12:51:30
Great thank you!


Unit Allocation

@gweeks: 2022-05-12 17:03:58
Is there a way to reserve empty animal units by allocating them to an animal due to come? Using shelter view is easy to see which units are empty but once we have assigned a unit to an animal that needs to come in it would be useful to somehow be able to show this as sometimes it may take a few days for the animal to come in and we may get more queries about space availability so having empty units show as reserved instead of empty would be useful. Is this possible?

@robinrt: 2022-05-12 17:09:04
I haven't tested this, but you can schedule an animal to come in by giving it a future brought in date. I can't remember if it will show as on shelter before it arrives. If it does, it will show in the space you allocated. Otherwise, you could create an animal record with a brought in of today and put something in the name like NOT ARRIVED YET and update the brought in date when it does arrive.


Editing the notes section

@audraf: 2022-05-10 22:23:50
Hi a couple of questions: Can the names of sections be changed? Is it possible to disable that info from going under the animals photo?

@robinrt: 2022-05-11 09:01:09
Hi, what is it that you're looking at? A report maybe or a document template? Are you talking about user interface itself? If it's the user interface then no, it requires re-programming the system to change it.

@audraf: 2022-05-11 18:40:14
Sorry, I realize that was not clear. In the animal in the notes. Markings, hidden comments, description, warning. Thanks.

@robinrt: 2022-05-11 18:42:57
Ok, yes, that's the user interface - I'm afraid you can't change it.

@audraf: 2022-05-11 18:45:18
Ok thank you.


Issue with Location display name for TNR movement

@ketalabama: 2022-05-08 15:04:38
Is there a way to change "Location" display name for Movement TNR? If we add the movement as TNR but later happen to look at the cat in the Animal Details the Location Display Name is "Transfer". Would prefer "TNR" or "Released" or something that is specific to TNR. Since we do not have access to Movement Types I do not see a way to change it. Any suggestions or help?

@robinrt: 2022-05-09 09:33:23
When an animal has left the shelter, the location shown is the last one the animal was in before it left. It is not an indicator of where the animal is now. The banner display at the top should show current location and for TNR/Releases, it should be showing Location: TNR, is it not doing this?

@ketalabama: 2022-05-09 20:11:13
[Image 1 main Animal Details](//muut.com/u/sheltermanager/s1/:sheltermanager:THQ1:image1mainanimaldetails.png.jpg) [Image 1 main Movement Detail](//muut.com/u/sheltermanager/s1/:sheltermanager:i1bk:image1mainmovementdetail.png.jpg)

@ketalabama: 2022-05-09 20:11:23
No. This is what we are seeing.

@robinrt: 2022-05-09 21:19:35
Transport is not a movement type in the stock database. I think someone has edited your lksmovementtype table and changed the value from TNR to Transport and that's why it is not showing correctly. Are you a sheltermanager customer? If so, could you let me know your account number to help@sheltermanager.com and I'll take a look.

@ketalabama: 2022-05-10 11:33:04
Hi. We are. Sending the account number to the suggested email. Thank you


Scheduling Appointments Online?

@drjarred: 2022-05-05 23:06:21
Hi there, I know with a lot of new veterinary software clients can schedule rechecks and appointments online themselves. Is there anyway to do this in ASM in any shape or fashion? I am trying to attempt to filter out any unnecessary phone calls/emails as much as possible when scheduling appointments for the community but not add in another app or system for staff to learn. Thank you!

@robinrt: 2022-05-06 09:10:17
I'm afraid there isn't, but that's a great idea for a feature request! I'll write something up for our dev list.


Microchip questions

@bkrodle: 2022-05-03 20:34:39
How do I fix ASM so that dogs that are entered prechipped and reclaimed by the owner are not trying to re-register with Home again? We don't want to exclude reclaims because we chip for people that don't have a chip already.

@robinrt: 2022-05-03 20:37:40
If you don't want to exclude reclaims from the "Register microchips after" publishing option, then the only option is to give the animal the "Do not register microchip" flag.

@bkrodle: 2022-05-04 14:37:39
Thanks! I didn't even see that flag.


Download ?

@thebarefootranch: 2022-05-02 20:25:14
I am trying to download the software and none of the download options seem to do anything. The one I am specifically looking for is the Debian/Ubunto version. Can someone provide me with the direct link?

@robinrt: 2022-05-03 09:12:59
It's that our https site is linking to an http download file, browsers apparently refuse to do that now. I've changed the link to https now so you should be able to download without any errors.


CSS for .asm-animal-emblems .custom

@lisazorn: 2022-05-01 20:14:09
Hi - we added a couple custom animal emblems and it's showing up with a purple background; it looks like these come from .asm-animal-emblems .custom How is this configured/where is this specified? Thanks! -Lisa

@robinrt: 2022-05-02 08:05:24
All emblems are shown with that purple background. It isn't really user configurable, it's in the system's asm.css file. Back in the day, you could set your own user style sheets for websites to override values, but that was a very long time ago and I don't think that's something modern browsers allow.

@lisazorn: 2022-05-02 23:24:29
Got it, thank you!


Boarding Module Update

@lisazorn: 2022-05-01 20:03:40
Hi - I saw some previous posts about adding a boarding module. We're currently using ASM to track boarding and it is indeed messing up our data a bit (since folks who board bunnies are now labeled as people who have surrendered, etc). I saw that ASM is planning to add this feature (https://github.com/bobintetley/asm3/issues/623) but I was wondering if there is a estimated date or timeline it'll be available? Thank you! -Lisa


Request Payment From Online Form

@mhs_jeff: 2022-04-27 14:42:03
Hey Everyone, I learn so much every time I read through this forum. Looking at payment processors and would love to use this feature more. Would like to use it to take in general donations. Is it possible to use an online form as a donation form that would trigger a payment? Or is it possible to embedd these things from ASM on our webiste? Thanks! Jeff

@robinrt: 2022-04-27 15:27:29
Not at the moment, we're planning a donation checkout in future that you could link in a form or from your website. At the moment though, you have to manually create the due payment on the person record before triggering the payment processor so it's not possible to trigger it from a link. Obviously you could also take ASM out of the equation altogether and use PayPal to accept donations and then use "Settings->Import PayPal CSV file" to create the received payments in ASM each month from the activity file download that you get from PayPal.

@mhs_jeff: 2022-04-27 17:49:58
Ok that would be awesome and help us track all kinds of payments. The challenge I haven't tried the import Paypal CSV feature but am concerned about it correctly identifying people as often times we see different names on the Paypal and get limited data. Thanks!

@robinrt: 2022-04-27 18:06:03
It uses the email address to try and identify existing people in your database. If it doesn't find a match, it will create a new person from the name and address data in the PayPal file.

@mhs_jeff: 2022-04-27 19:44:59
Thanks for the info. Maybe I can use this to get stuff to better align. Than you!


Additional fields on reports

@leannec: 2022-04-16 14:48:13
I think the question I meant to ask before was how do I get my additional fields I have created on reports? Help!!

@adoptamutt: 2022-04-16 18:01:09
To add an additional field associated with an animal, just add something similar to your SELECT statement: (SELECT value from additional INNER JOIN additionalfield ON additionalfield.id = additionalfieldid where additional.linkid = animal.ID AND additional.linktype = 0 AND additionalfield.fieldname = 'RWComments') AS RWComments

@leannec: 2022-04-17 02:26:11
Thanks Karen. Not sure why I never looked at NEW REPORT before!! I can do that easily. But how do I only display pets who have a tag number? Can you help? Below is the SQL and HTML of my report basic at the moment.... This is the SQL: -- qbtype=animal&qbfields=AnimalName%2CCurrentOwnerAddress%2CCurrentOwner Name%2CCurrentOwnerMobileTelephone%2Caf_11&qbcriteria=notdeceased&qbsort=af_11&v=1 SELECT AnimalName, CurrentOwnerAddress, CurrentOwnerName, CurrentOwnerMobileTelephone, (SELECT Value FROM additional WHERE LinkID=v_animal.ID AND AdditionalFieldID=11) AS af_11 FROM v_animal WHERE DeceasedDate Is Null ORDER BY af_11 HTML $$HEADER <table border="1"> <tr> <th>ANIMALNAME</th> <th>CURRENTOWNERADDRESS</th> <th>CURRENTOWNERNAME</th> <th>CURRENTOWNERMOBILETELEPHONE</th> <th>AF_11</th> </tr> HEADER$$ $$BODY <tr> <td>$ANIMALNAME</td> <td>$CURRENTOWNERADDRESS</td> <td>$CURRENTOWNERNAME</td> <td>$CURRENTOWNERMOBILETELEPHONE</td> <td>$AF_11</td> </tr> BODY$$ $$FOOTER </table> FOOTER$$

@adoptamutt: 2022-04-17 17:44:35
Add to the end of your WHERE statement: AND rabiestag <> '' (that is two single quotes)


Report with Tag numbers

@leannec: 2022-04-15 04:24:52
I am not sure if this is a standard field, or one I created! But I would like a report with any pets who have an ID tag (the field is Tag Number under Health and Idenfication). Some of these will be in our shelter and some with adopters, but I would like them all listed. I am okay at editing reports, but hopeless at creating from new. I am hoping someone can help me please. I would like in Tag number order with dog name, and owner/foster carer name and contact details....

@adoptamutt: 2022-04-16 18:05:56
The field RabiesTag found in the animal table is a standard field. I have removed this field from my Health and Identification Section because we enter the tag number in the rabies tag field in the vaccination record. When it is entered in the rabies tag field of the vaccination record, ASM automatically updates the animal.rabiestag field to the most recent rabies tag entered, so animal.rabiestag still has data even though it is Removed through settings to avoid confusion.

@leannec: 2022-04-17 02:08:29
Thanks. It is a custom field I created actually. But maybe I should have just used the Rabies tag field, as then I could get it on reports.

@leannec: 2022-04-17 02:23:49
Actually worked this out using the New Report. But can't work out how to only include pets who have a tag.

@adoptamutt: 2022-04-17 17:45:21
Add: WHERE rabiestag <> ''


Auto email foster famillies for vaccines etc

@galia: 2022-04-05 13:22:14
Hi everyone, What is the trigger for email reminders for Foster families for vaccinations and medical treatments and what time scale? I have one foster family the basically refuses to give me these details (for over a year now) but I have noted that despite the 'expired vaccination date' the emails has stopped going out thanks for looking

@robinrt: 2022-04-05 13:59:39
If you're using the "Weekly fosterer email" option under Settings->Options->Medical, the email is sent every Monday morning as part of the overnight batch. Expired vaccines are not included in the email - it is only scheduled items (ie. those with a required date but no given date) such as due vaccines, medical treatments and tests. There is an audit trail report you can install that shows you what emails have been set, when and to who. It's called "Audit Trail: Sent Emails by Date". If you don't have it, you can install it under Settings->Reports->Browse sheltermanager.com

@galia: 2022-04-05 14:07:29
Thanks Robin, I will check the info in the vacine info


Execute Script no longer works after upgrading from ASM v44 to v45

@asmcodehelp: 2022-03-26 23:55:05
To reproduce: 1) Create a script file "test.sql" containing a test command, say: DELETE FROM breed; 2) Execute the script: Settings -> SQL Interface -> Execute Script -> Choose File -> select "test.sql" -> Execute Script 3) Result: "ERROR: cannot use a string pattern on a bytes-like object" System details: asm 45 (open source .deb pkg) ubuntu 20.04.4 python 3.8.10 apache2 2.4.41 mysql-community-server 8.0.28

@robinrt: 2022-03-27 13:09:49
Thanks for the heads up, I've committed a fix to the source repo now. You can either clone the latest source tree to fix, or work around it by copying your script into the box and using execute, or running it directly via MySQL.


Default Text in Bios

@jaaustin: 2022-03-25 14:50:03
We have information that we'd like to be in every bio. Right now we are typing/copying/pasting into every animal's notes. Is there a way to have default text (like adoption fee) show up for every pet/bio?

@robinrt: 2022-03-25 15:22:50
that option is under Publishing->Set Publishing Options->All Publishers->Add this text to all animal descriptions


publishing

@ddchs38024: 2022-03-21 12:54:24
i am getting a message saying no publishers running? I have made no changes.

@robinrt: 2022-03-21 13:53:50
You've fallen afoul of the non-microchipped publishing option. I've responded to your email, updated the option in your data and republished now,.

@adoptamutt: 2022-03-21 14:49:30
@ddchs38024, we have a Facebook users' group at ASM Rocks! come join us.


Cats auto flagged as not available if they don't have microchips?

@mungo181: 2022-03-20 22:43:31
Anyone else experiencing this? Cats without microchips aren't going out to any websites. I'm going to have to go through 50+ listings to add fake microchip info. I can't find where to change this in publishing settings.

@mungo181: 2022-03-20 22:53:45
update: found where to change it. There must have been an update within the past week, unless someone at my org was messing with the settings.

@adoptamutt: 2022-03-20 23:32:40
It was an update a few days ago. You can click on the ASM version number in the lower right hand corner of the Home Screen to see updates.

@adoptamutt: 2022-03-21 14:48:42
@mungo181, we have a Facebook users' group at ASM Rocks! come join us.

@cwbest: 2022-03-25 20:03:08
@mungo181, we have been having the same problem. You say you found how to fix it... Can you share??

@adoptamutt: 2022-03-26 13:07:33
It is in Publishing > Set publishing options > Animal Selection.


recherche de la notice en français de la version 2.8.16

@unchatdanslavie: 2022-03-20 17:53:39
Bonjour je recherche la notice en français pour la version 2.8.16 svp . Merci

@robinrt: 2022-03-20 17:59:18
Hi, I'm afraid we don't have a French translation of the manual. Sorry.

@unchatdanslavie: 2022-03-22 10:09:26
en anglais alors svp ?

@sebro52: 2022-04-02 06:21:26
Bonjour, vous recherchez la notice pour l'installer ou l'utiliser? Le logiciel est déjà traduit en français et simple d'utilisation. Sinon il existe un manuel complet en anglais très complet mais en vente https://www.lulu.com/content/paperback-book/animal-shelter-manager-manual/12895189?page=1&pageSize=4

@sebro52: 2022-04-02 06:30:38
https://www.lulu.com/en/en/shop/robin-rawson-tetley/animal-shelter-manager-series-3-manual-pdf/ebook/product-16226j5e.html?page=1&pageSize=4


Transport Book options

@megw341: 2022-03-16 19:04:36
We are opening up new rescue partnerships and we would like to start using the Transport Book to help with scheduling. The Transport Book requires an animal profile to schedule the transport. Is there a way to remove this? It's great for animals in our care but for intake pickups we won't have those animals in our system yet. We would just like to keep everything in ASM instead of having to use an outside scheduling system for pickups (we are not contracted with Animal Control, and these would just be rescue transfers).

@robinrt: 2022-03-17 10:04:03
Sorry, there has to be an animal. There's no validation on overlap though, so you could create an "unknown" non-shelter animal (this keeps it out of your figures) and use that for all transports where you don't have an animal yet? It should be straightforward to go back and switch the transport record to the real animal after you've created it as well.


Adding non-shelter animal with online forms “Create Animal”

@adoptamutt: 2022-03-11 03:55:38
Is it possible to specify animal type and non-shelter when adding a new animal through online forms?

@robinrt: 2022-03-11 09:21:53
It isn't possible to specify non-shelter at all with an online form. Seems like a bit of an oversight as there are probably plenty of reasons why you would want to. I'll put it on the list.


Report SQL Query Builder Not Working

@schelleffar: 2022-03-11 03:08:00
Hi, I am using Sheltermanager.com and can't create new reports, as the Query Builders is not working. I click on it, and it no longer opens, it was fine yesterday as I built a new report using it, now when I click on the little icon, nothing opens at all. I have tried it in Chrome, Edge and FireFox and the same issue arises. HELP !!!!! I need to build a new report for the Management Committee.

@robinrt: 2022-03-11 09:22:45
Hi, really sorry about that. The code editor dependency was updated yesterday as a fix for some RTL issues with customers. It looks like it broke the query builder and we didn't notice. I've applied a fix now so it should be working again today.

@schelleffar: 2022-03-13 07:35:00
:-) Thanks I posted this before I emailed support. Thanks for your help


Waiting list

@emily2367: 2022-03-08 13:17:32
Every time we add a priority rating on an animal on the waiting list (Urgent, high, medium, low and lowest) the next time we look at the list they've all changed to 'high'. How do I stop this from happening?

@robinrt: 2022-03-08 13:54:47
Hi, check what your "urgency update period in days" is set to under Settings->Options->Waiting List.

@emily2367: 2022-03-08 14:57:33
Thank you!


Webpage page ideas

@brandon_fierro: 2022-03-01 14:51:44
Hello all . I am looking to update our web page and was wondering if anybody had any that looks good that i can use for ideas. Our link is https://service.sheltermanager.com/asmservice?account=hz1129&method=html_adoptable_animals&template=reptar


Trying to add "Adoption Coordinator" name to a report

@safcc: 2022-03-01 02:11:57
Hello everyone, Y'all were so amazing and quick last time and here I am again, stuck! This time I'm having a hardtime figuring out what the field "Adoption Coordinator" is named so I can add it to my pre-existing report. I've tried a.AdoptionCoordinator, a.AdoptionCoordinatorName, a.CoordinatorName with the corresponding name in the HTML and each of those has failed to call. Anyone know?

@adoptamutt: 2022-03-01 02:36:25
It is animal.adoptioncoordinatorID, so you need to use something like “LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID” to link to the owner table. Then you can pull “ownername”

@safcc: 2022-03-01 02:52:31
Wowee this is quite a bit more confusing than the last one you helped me with! I don't know what inner and outer joins are, but I tried to mirror what was already in the report after trying with the syntax you provided. I'm so sorry I'm just not getting it! So right now here's what I have not working spitting out "missing FROM-clause entry for table "animal" LINE 27: LEFT OUTER JOIN owner cw ON cw.animal.adoptioncoordinatorID ... ^" but the other similar "left outer join" bits don't error out. SELECT a.AnimalName, a.DateOfBirth, s.SpeciesName, atp.AnimalType, a.BreedName, e.ReasonName, o.OwnerName, a.DateBroughtIn, m.MovementDate, a.NeuteredDate, a.IdentichipNumber, oo.OwnerName AS OriginalOwner, a.reasonforentry, cw.animal.adoptioncoordinatorID, CASE WHEN a.DeceasedDate Is Not Null AND PutToSleep = 0 AND IsDOA = 0 THEN 'Died' WHEN a.DeceasedDate Is Not Null AND IsDOA = 1 THEN 'DOA' WHEN a.DeceasedDate Is Not Null AND PutToSleep = 1 THEN 'Euthanasia' WHEN a.ActiveMovementDate Is Not Null THEN (SELECT MovementType FROM lksmovementtype WHERE ID = a.ActiveMovementTyp e) ELSE 'On Shelter' END AS OutcomeName, CASE WHEN a.DeceasedDate Is Not Null THEN a.DeceasedDate WHEN a.ActiveMovementDate Is Not Null THEN a.ActiveMovementDate ELSE Null END AS OutcomeDate, CASE WHEN a.DeceasedDate Is Not Null THEN (SELECT ReasonName FROM deathreason WHERE ID = a.PTSReasonID) WHEN a.ActiveMovementDate Is Not Null THEN o.OwnerName ELSE '' END AS OutcomeQualifier, age(DateBroughtIn, DateOfBirth)::varchar AS AgeAtIntake, CASE WHEN a.DeceasedDate Is Not Null THEN age(DeceasedDate, DateOfBirth)::varchar WHEN a.ActiveMovementDate Is Not Null THEN age(ActiveMovementDate, DateOfBirth)::varchar ELSE '' END AS AgeAtOutcome FROM animal a INNER JOIN species s ON a.SpeciesID = s.ID INNER JOIN animaltype atp ON a.AnimalTypeID = atp.ID LEFT OUTER JOIN adoption m ON m.ID = a.ActiveMovementID LEFT OUTER JOIN owner o ON m.OwnerID = o.ID LEFT OUTER JOIN owner oo ON a.OriginalOwnerID = oo.ID LEFT OUTER JOIN owner cw ON cw.animal.adoptioncoordinatorID = cw.ID WHERE a.DateBroughtIn >= '$ASK DATE Enter from date$' AND a.DateBroughtIn <= '$ASK DATE Enter to date$ 23:59:59' AND NonShelterAnimal = 0 ORDER BY a.DateBroughtIn

@robinrt: 2022-03-01 09:08:10
change cw.animal.adoptioncoordinatorid to a.adoptioncoordinatorid in your join - the animal table has been aliased in your query as just "a" instead. ``` LEFT OUTER JOIN owner cw ON a.adoptioncoordinatorID = cw.ID ``` You can then use: ``` cw.OwnerName AS AdoptionCoordinatorName ``` in your select statement to alias ownername from the join as AdoptionCoordinatorName, which you can then get at in your HTML. You have to alias it because you've already got o.OwnerName in your select statement for the adopter and column names have to be unique in the output.

@safcc: 2022-03-05 00:17:52
I appreciate you both! I did a lot of reading on sql basics again so I could conceptualize the joins. What you've shared makes more sense now and with that I was able to get it working.


Automatically email report to owner email

@ketalabama: 2022-02-28 17:13:08
Hi. I know that for a report we can specify email addresses for that report. But is there a way to send an email to the animal's adoptive owner when a report criteria is met? For example, we want to follow up with adopters post adoption to be sure that certain follow up care has been provided. If that flag is not checked in the system we have a report that generates those owners. Would love to see if there is a way for owneremails for those animals to automatically receive a reminder.

@ketalabama: 2022-02-28 18:13:05
Never mind! I found the answer in some other questions on the forum


Entries by month chart

@jimdunne: 2022-02-28 12:41:12
Does anyone have a report that produces a chart of entries per month, like the attached image, that they could let me have please? [Screenshot 2022-02-28 123930](//muut.com/u/sheltermanager/s1/:sheltermanager:kNTF:screenshot20220228123930.jpg.jpg)


Handling shelter animal incidents

@waldenhumane: 2022-02-27 19:35:43
I was wondering if anyone had a better way to handle incidents hat happen with animals in the shelter I see you can create a log of incidents such as bites and you can add info into the text box. I was hoping to be able to log incidents, but be able to have specific information included. That be attached to the animals record and also be able to print them out to have a hard copy on file. Has anyone done something like this? Create an online form or something like that?

@adoptamutt: 2022-02-27 21:08:07
You could do an online form or create a Document. Either one could be stored in the Media Tab.

@robinrt: 2022-02-28 11:21:48
if it's not a lot of data, you could store it under the log tab with a custom log type


Scheduling Surgery

@drjarred: 2022-02-23 05:26:24
Hello, I am trying to figure out a way that we can schedule surgery in house for animals we have in the shelter. I have read about using clinic calendar and making "appointments" for surgery, but then it hard to tell what the appointment is for without clicking on the name (we also use this for foster appointments and adoption follow ups so its gets confusing since you can't see the comments or animals location). I also read about putting it in medical regimens but then it gets lost in the list of medications that we use for the day (what we current use the medical regimen for). My goal is simply list the animals we have scheduled for surgery so that the entire shelter can tell this and avoid using an outside calendar like we currently do, since not everyone can see this. Any advice or reasonable place to put them where it appears on some calendar without getting lost in other non surgical treatments/procedures? Dr Jarred

@adoptamutt: 2022-02-23 13:54:19
You could enter them under Medical Regiments and then create a Report to email staff each morning of the upcoming procedures.


Adding logo to Forms

@tinadickinson: 2022-02-21 15:39:23
After creating an online form how do you add your logo. None of the online forms have logos but the examples ad demos look more form like with logos

@robinrt: 2022-02-22 13:53:17
Upload your logo to the section under Settings->Reports->Extra Images. This will give you an "absolute URL" that you can copy to the clipboard. You can then put it in some HTML in the global header for online forms, editable under ASM->Edit Online Forms->Edit Header/Footer Putting something like this at the bottom of the header should do it. It will add your logo to the top right corner of forms. ``` <img src="ABSOLUTEURL" width="150px" align="right"> ```


Importing pdf forms

@tinadickinson: 2022-02-21 12:51:57
I know you can import animal info in a csv file. If you have non animal forms is there any way to import them please?

@robinrt: 2022-02-22 13:51:06
Sorry, there isn't. Export scanned forms into CSV files is on the development list currently.


Unable to log into SM

@hsdc: 2022-02-17 17:16:30
We are unable to log into SM. We are in the middle of doing adoptions and are kicked out when we try to run reports. Any idea why? This also is happening when trying to log in on a phone.


Cannot open shelter manager

@hsdc: 2022-02-17 17:12:29
I am unable to open shelter manager at all. I log in and it just goes back to the log in screen. I also tried on my phone and it does the same thing. We are in the middle of an adoption and I cannot access anything. We have never had this happen


Daily Medication Report Issue

@seniordogs: 2022-02-16 15:43:50
I can't print the daily medication report for today. I can see yesterdays and tomorrows, but somehow I did something to remove today's. How can I reset?

@robinrt: 2022-02-16 15:49:23
What is the name of the report are you running and from where? Is it just that you don't have any medications for today? Are they there under Medical->Medical Book?

@seniordogs: 2022-02-16 15:52:58
I was going through the process so I could make a training cheat sheet. I think I clicked Give and could have run a report, but I just wanted screen shots. When I went back in, and choose today, nothing shows up when I go into the Medical Book. There are plenty of meds to be given!

@seniordogs: 2022-02-16 15:54:04
It's the Daily Medica Report under the Medical tab.

@seniordogs: 2022-02-16 15:54:43
When I go under Medical Book to highlight all the dogs and their meds, nothing is there.

@robinrt: 2022-02-16 16:02:52
If you change the dropdown at the top right of medical book from "Due Today" to "Given Today", do they appear?

@seniordogs: 2022-02-16 16:09:21
Yes!! Thank you so much. I am so new at this.

@seniordogs: 2022-02-16 16:13:32
I can uncheck the dogs, but its still greyed out. If I choose Give and try to go to reports to run the daily medical report, it has no data.

@seniordogs: 2022-02-16 16:13:49
Sorry, Daily Medication Report

@seniordogs: 2022-02-16 16:15:01
I need to know how to undo it saying the meds were already given today.

@seniordogs: 2022-02-16 17:27:10
Is there a way I can change so it doesn't think we gave the medications today. Although I can click given today, everything is greyed out, and I can't print a report.

@robinrt: 2022-02-17 09:29:16
There's an "Undo" button on the toolbar of the medical book. You can select the given treatments with the tickbox to the left of them in the list, then click Undo to remove the given date.


AC Calls

@lica2440: 2022-02-15 14:10:41
Is there any way to clone animal control calls, or can that feature be added? We have many welfare situations that need repeated rechecks, and I keep having to re make the entire call each time i drive by on a recheck. I know there is a section for followup, but there is only three followup slots and i wasnt sure how those play into the report so we just make a new call each time.

@robinrt: 2022-02-15 14:13:13
I don't think there is, but that's a good suggestion - I'll put it on our development list.


Backup from hosted ASM and restore on a local VM

@andrea111h: 2022-02-14 21:56:13
Hello! I'm evaluating ASM3 but I can't find out if my preferred workflow is supported or not. I'd like to: 1) Use the hosted version to avoid worrying about uptime and upgrades; 2) Install ASM3 on a local virtual machine too, as a backup; 3) Periodically (e.g. weekly) extract a full dump of data from the hosted version on the local one. Is it possible to easily dump both the full SQL data and also images and other uploaded files and restore them?

@robinrt: 2022-02-15 09:39:42
It is easily possible to dump the full SQL data and restore it into a backup database every week. Images and uploaded files not so much. Once you get into gigabytes of hosted files, it would be an easy denial of service attack on us to keep requesting them. We use hosted storage at the backend for media and it costs us in bandwidth charges. We will pull a zip of stored files on request that you can load into your database, but there can be a charge for doing so depending on the sizes involved. Some of our customers do this, but they just take the media backup once per year.

@andrea111h: 2022-02-15 21:53:06
Ok, I understand. I was thinking about a dump accessible only to the data owner and maybe just once every week to avoid such problems. I'll see if an SQL only backup is enough for the shelter. Thank you!

@vbvbrj: 2022-02-20 09:34:18
Robin. May be you could offer an API to use with rsync to syncronize files to local storage. So it will be an incremental backup of files.

@robinrt: 2022-02-22 13:55:06
It's a possibility, although it still relies on the client not being abusive. Another option might be to allow users to set up their own S3 or S3-compatible hosting arrangement with a provider for us to use, similar to how you can with your own SMTP server if you wish. That way you'd be in full control of your media and the storage/bandwidth charges.

@andrea111h: 2022-03-06 14:35:55
Ok, but a paying customer DOSsing the company hosting their services is something I've never heard of. And if I wanted to DOS someone I would request N x 100.000 times a small file instead of N times a large file. Maybe a 1 download per week (or month) limit would solve the issue? Eventually for a small monthly fee to pay for bandwidth.


Receipt numbers

@leannec: 2022-02-11 05:56:55
Is it possible to edit the Receipt numbers field in the payments section? We normally have our own receipt numbers and would like to be able to key those in manually, or import them from a .csv file when importing our donations. But I can't see how to do this.

@robinrt: 2022-02-11 14:24:09
Sorry, it isn't, they're system generated. I think we did plan to allow that originally, so I'll check our development backlog for that.

@leannec: 2022-02-11 21:15:13
Thanks. That would be great if we could as they are pretty useless without that. At the moment if we were to use that we would have to generate the receipts, save them and edit the documents. I haven't looked at how hard that would be. That would also mean saving another record offline somewhere, which does seem a bit silly.


Multiple "site"'s for accounts.

@vbvbrj: 2022-02-10 17:56:46
Can you add an option that an account can be assigned to multiple sites. And therefore as a consequence, an animal should have the "site" option. (This can be added with lookup additional options).

@robinrt: 2022-02-10 18:06:04
Hi, when you say an account can be assigned to sites.. what are you referring to? Rather than assigning a site to animals directly, animals inherit the site of their assigned internal location.

@vbvbrj: 2022-02-11 09:01:10
Thank you for answer. The Internal Location to Site correlation is what make the animal be on Site's. The first part of question is that a vet doctor can practice on two sites (for example) and the doctor should view and access animals of both sites. Another doctor will practice on two sites too, but both vet doctors have one site in common, the second sites differ. I.e. Veterinary 1 works on Site 1 and Site 2, Veterinary 2 works on Site 1 and Site 3. The veterinaries should view only corresponding animals to the sites.

@vbvbrj: 2022-02-11 09:05:06
Another question with Internal Location relation to site is transferring animal to a foster. After transferring animal to a foster, the concept of Internal Location does not relate anymore, and the veterinary can not view or access animal's data

@vbvbrj: 2022-02-11 10:10:15
The comment preciding this one is not relevant. I've verified and the veterinary assigned to site can view animals which last location was same site.

@robinrt: 2022-02-11 14:23:34
If you don't assign your vet's user account a specific site they can see animals from any site.

@vbvbrj: 2022-02-14 06:40:23
Yes, it is true. But the vet should not see all site's. Only specified.


Publishing photos to Petlink

@ken2950: 2022-02-05 06:22:08
Is there a way for the pet photo in ASM to be automatically published to Petlink along with their chip information?

@robinrt: 2022-02-05 09:03:26
There isn't. As far as I'm aware, PetLink don't have a way of accepting photos as part of their import spec.


Adding additional fields in Animal/vaccinations.

@vbvbrj: 2022-02-03 09:03:40
Can there be added additional fields for input, like: vaccine name, dosaje administered, hour administered?

@robinrt: 2022-02-03 10:56:26
No, additional fields are not available for satellite records like vaccinations. This is something on our roadmap for the future though.

@vbvbrj: 2022-02-03 13:45:11
Thank you. Waiting for future releases.


Upload to media other types of files.

@vbvbrj: 2022-02-03 09:01:02
Can the software be changed so in media we can upload other files besides html, pdf and jpg? Text files, video files, other type of images.

@vbvbrj: 2022-02-03 09:01:44
Also the upload button can be programmed to accept multiple files at once? From mobile drag and drop is not available.

@robinrt: 2022-02-03 10:58:10
PNG files can also be uploaded. Their alpha layer is removed and they are converted to JPG. There shouldn't be a need for text files - the log is available and more efficient (and searchable) for text. Video files are not uploadable. They require a lot of bandwidth and storage. There is no need when you can use YouTube or other video services and add them as a link on the media tab.

@vbvbrj: 2022-02-03 13:47:25
For self hosting ASM there we don't have problem with storage and bandwidth on in-country traffic. Could it be added to configuration to select which media types can be uploaded? Or a checkbox to allow any file to be uploaded.


"Length of stay" report to show only time at shelter?

@jrich1: 2022-02-02 17:51:15
Hi all, has anyone created a custom report that shows only the time that animals were physically at the shelter (and then uses those figures to calculate the average length of stay)? The standard reports seem to use "daysonshelter" database field which incorporates time spent in foster, trial adoption periods etc. and that skews the numbers (e.g. dog came in 10/21 of last year, went into trial adoption on 10/26, but their length of stay is currently reported as 104 days instead of 6).

@robinrt: 2022-02-02 18:23:47
You'd have to calculate it yourself based on your requirements. DaysOnShelter only contains the most recent stay (including time on foster), where TotalDaysOnShelter is all stays combined. I haven't checked this, but if the "Treat foster animals as shelter inventory" option is off, I think foster time is not counted in that field. However, you probably don't want to turn that option off as it will stop your fosters appearing in on shelter searches or shelter view etc.

@jrich1: 2022-02-03 14:57:25
Do all the movements for an animal get recorded in the database somewhere? I see the ones related to the active movement in the animal table, but is there another table that holds animal IDs/movement types/timestamps that could be used to add up periods when the animal was physically at the shelter? (Related question, but is there more thorough database documentation somewhere than what's included in the 45u documentation online? That one only mentions a few tables with descriptions of their fields)

@adoptamutt: 2022-02-05 14:31:58
The 'adoption' table holds the movements. If you want to see all the tables, you can go to the SQL Interface box and hit Ctrl_Space. Then you can see all fields by typing actualtablename.Ctrl_Space.

@robinrt: 2022-02-05 14:35:22
there's also some info here in the manual https://sheltermanager.com/repo/asm3_help/databasetables.html


Online forms and person fields

@vsauder: 2022-01-28 17:37:11
We have noticed that when creating a person through the online field that it will use an existing person if the phone numbers are the same. In our area phone numbers switch frequently, is there a way to adjust how ASM chooses to create a new person vs attaching to an existing?

@robinrt: 2022-01-28 17:41:55
There isn't I'm afraid. It only attaches to an existing person if the cell phone number is the same. I would have thought it highly unusual for this to be an issue unless someone was deliberately entering the same number for multiple people? Are you seeing this happen a lot?

@vsauder: 2022-01-28 18:11:23
Not too much, but enough that it can be frustrating. We have a fairly large population of people that change cell numbers frequently. Since many people have only Cell numbers we had also defaulted into utilizing the"home phone" number as a primary number. This likely lead to alternate numbers of contact being used in the "Cell field". For Animal control calls and adoptions many people give friends and family as contacts. Knowing that it is the Cell field will definitely help us take steps to prevent this or at lease zero into the reason when it occurs.

@adoptamutt: 2022-01-28 18:51:55
The Quality Control Report in the repository will report when an online form is attached to a prior person record. If you don't want to tackle the QC report, here is the SQL. You can have it email you in the morning and then you can look at the Audit Trail section of the Person record to correct anything that was updated incorrectly. --- SELECT DISTINCT o.ownername as name, o.ownercode as code, current_date -1 AS issuedate, '<font color = "Red">Online Form Attached to Prior Person Record. Compare the data in the First and Last Name fields with the data on the NEW online form. When ASM finds an phone match, it ONLY updates the address, email, and phone info. Alerts Only Once.</font>' AS issue FROM owner o INNER JOIN media m ON m.linkid = o.ID WHERE m.medianotes IN ('Cat Adoption Application', 'Dog Adoption Application','Getting Help - Cat', 'Getting Help - Dog','SNIP Application','Foster Application','Volunteer Application') and m.linktypeid = 3 and date_trunc('day', m.date) = current_date -1 AND cast(o.CREATEDDATE AS DATE) < cast(m.date AS DATE) ---


Last name, first name order for Foster Book

@lialang: 2022-01-27 17:54:25
How can we have the foster book display the fosters by last name, first name instead of the default first name, last name? When the department of agriculture comes to audit us every year, they look at our fosters by last name, and ASM does not match this format.

@adoptamutt: 2022-01-27 22:38:26
Go to Settings > Options > Display > When displaying person names … But keep in mind, this changes it throughout the system. The change would take place over night unless you manually trigger that batch process.


PaymentAmount / PaymentNet Wordkey gives Gross Amount

@bajadogslapaz: 2022-01-25 06:55:28
Trying to create a receipt and the PaymentAmount/PaymentNet wordkeys are both resulting in the gross amount not the next (Gross - fees) -- am I doing something wrong? Just as I posted this I noticed the PaymentTotal Wordkey isn't working either.

@robinrt: 2022-01-25 11:13:46
The PaymentTotal wordkey only works if you are generating your template from the payment book or a payment tab of a person/animal. I can't see anything wrong with the code for PaymentNet/Amount and they seem to be correctly using the calculated amount of gross - fee - tax. If you're a sheltermanager.com user, send your account number and details of the payment record to help@sheltermanager.com and I'll take a look.

@bajadogslapaz: 2022-01-25 16:29:36
I think I see the problem with the PaymentAmount keyword. My CSV file from PayPal had negative signs in that field - so obviously subtracting a negative added it back in. Thanks!


Error when giving medication

@cheryl22: 2022-01-24 14:19:29
Is it possible to completely undo a given medication and remove the record of administering? Either because the item was deducted from the wrong stock, or the incorrect amount was input. If it is not possible to undo is there a way to correct these errors?

@robinrt: 2022-01-24 14:25:27
Stock levels can be edited manually under Financial->Stock. There isn't a way to "ungive" a treatment, but you can use the Give button to give it again and choose a different date. There's also a button on the toolbar to change the required date and you can always delete that treatment altogether if you want.


Trying to call variable "ReasonForEntry" in report

@safcc: 2022-01-22 23:34:27
Hello, I'm trying to modify the report "Intakes by Date with Ages and Outcomes" to include the varchar text field "ReasonForEntry" so that the "Entry" column displays the drop down field for reason AND the text field, so: "$REASONNAME : $ReasonForEntry". I can't seem to figure out how to make the call to pull that text field though, can anyone advise on that I need to enter? Our board is requesting additional documentation on 'where' our intakes are coming from with more information than the "ReasonName" dropdown fields can provide. Thank you!!

@adoptamutt: 2022-01-23 01:38:53
Add a comma to the last select item. Then add “a.reasonforentry” as the last select item. Then add $reasonforentry to your html.

@safcc: 2022-01-23 02:08:16
Wow, it really was that simple :( Thank you so much! I knew I should have paid more attention to SQL DB in college!


Synching outlook to asm calendar?

@audraf: 2022-01-21 20:34:45
Is this something that is possible?


Days since movement.

@mmover: 2022-01-21 15:13:28
Is there a way to target only animals who have a certain movement type (in to foster) and track the days since that movement occurred? Effectively tracking days in foster. Thank you.


Help with install on ubunta

@fpta21: 2022-01-21 07:47:21
Finished installing asm3 on ubunta but up with Unable to connect Firefox can’t establish a connection to the server at localhost:5000. The site could be temporarily unavailable or too busy. Try again in a few moments. If you are unable to load any pages, check your computer’s network connection. If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the Web. Then when u do to http://localhost/asm3/database It comes up with Create your new ASM database Please select your locale: and after u create it comes up with internal server error

@sicknessquick: 2022-01-22 17:48:37
how can I contact you? I had the same error, I may be able to help

@fpta21: 2022-01-23 10:03:11
email me at aabaconsultants@gmail.com

@sebro52: 2022-04-04 18:08:19
Hello, I installed the software a few years ago with no problem but I had moved to hosting here and today when I wanted to reinstall it on my server I had the same problem and I can't manage to find the problem. Can someone help me. thank you in advance. sebrounet@gmail.com


Installing Unix free version of ASM3

@casey123: 2022-01-20 19:45:12
Is there an installer for the open source version of ASM for UNIX? I am trying to figure out how to install it onto my UNIX server but have not been successful. I was able to create the database and download the asm files but can't figure out what changes I have to make to the config file.


Forms won't stay gone

@mdeprima1964: 2022-01-12 05:21:59
My incoming forms (usually adoption applications) keep reappearing. I've deleted them, I've used the delete when processed... They go away and when I come back in they're back. I've had the problem to a lesser extent before so I'm always careful to leave the screen via some actual function, not just close the screen. I've got about 11 out there right now haunting me.


FTP file name for Rescue Groups

@mdeprima1964: 2022-01-12 05:18:18
I'm trying to auto upload data to rescue groups rather than double key into Petfinder. Honestly, going back and forth between the ASM manual and the Rescue Groups manual (which is overwhelming) is difficult. I'm close, but I'm unable to determine what the FTP file name coming out of asm is.

@mdeprima1964: 2022-01-14 00:42:07
It's unlike you guys not to reply. I am publishing records to Rescue Groups, but nothing is showing up on their side. I really need to confirm the name of the .csv file that is being exported. I searched the manual and found nothing.

@adoptamutt: 2022-01-14 23:45:54
I believe it is pets.csv.


Unable to create documents

@titnono: 2022-01-11 22:33:01
Hello, I updated ASM (from commit f402def on 2021-11-18 to commit 60fceea on 2022-01-06), and since then the "Document" button (in Animal record, or in Media tab) remains grayed out. I updated to the last commit e5f909a but the problem remains. Template editing still works. An idea?

@titnono: 2022-01-12 04:11:42
Oh, I read the changelog and found the solution (commit 9bbb200, # 364). It is now necessary to set templates to "show". Maybe the DB update should set the display to "everywhere" by default? Thanks

@robinrt: 2022-01-12 09:35:17
It does, but I can see how it's broken on MySQL because we accidentally used a reserved word in MySQL (SHOW). I'll add a fix for future users.


Creating and editing reports

@dejandohuella: 2022-01-10 20:10:38
Hello. I am in the reports page (Settings > Reports), and when I click the New Report button, or the name of an existing report to, I presume, edit it, nothing happens. The page doesn't try to load anything, I don't get any error messages, just nothing. I can use the delete, browse sheltermanager.com, edit header/footer and extra images buttons. I can't use the New Report or Clone buttons. Is there something I'm doing wrong or I'm not understanding? Or is there some problem with my installation?

@vbvbrj: 2022-01-11 07:13:58
The error is in the console --- schema.js:1 Failed to load resource: the server responded with a status of 404 (File not found) common_widgets.js?b=01051825:1538 Uncaught ReferenceError: schema is not defined at common_widgets.js?b=01051825:1538 common_widgets.js?b=01051825:1599 Uncaught TypeError: Cannot read properties of null (reading 'setValue') at V.<computed>.<computed>.value (common_widgets.js?b=01051825:1599) at V.<computed>.<computed>.a.<computed> [as value] (jquery-ui.min.js:6) at HTMLTextAreaElement.<anonymous> (jquery-ui.min.js:6) at Function.each (jquery.min.js:2) at S.fn.init.each (jquery.min.js:2) at S.fn.init.V.fn.<computed> [as sqleditor] (jquery-ui.min.js:6) at Object.<anonymous> (common_tableform.js?b=01051825:1339) at Function.each (jquery.min.js:2) at Object.fields_default (common_tableform.js?b=01051825:1323) at Object.dialog_show_add (common_tableform.js?b=01051825:702) value @ common_widgets.js?b=01051825:1599 a.<computed> @ jquery-ui.min.js:6 (anonymous) @ jquery-ui.min.js:6 each @ jquery.min.js:2 each @ jquery.min.js:2 V.fn.<computed> @ jquery-ui.min.js:6 (anonymous) @ common_tableform.js?b=01051825:1339 each @ jquery.min.js:2 fields_default @ common_tableform.js?b=01051825:1323 dialog_show_add @ common_tableform.js?b=01051825:702 click @ reports.js?b=01051825:298 dispatch @ jquery.min.js:2 v.handle @ jquery.min.js:2 ---

@dejandohuella: 2022-01-11 21:03:30
Hi vbvbrj. Are you having the same error, or have you had it in the past? Do you have any clue about how to fix it? In Chrome's console, when I click "New report", this is what I get: Uncaught TypeError: Cannot read properties of null (reading 'setValue') at V.<computed>.<computed>.value (common_widgets.js?b=01051825:1599:29) at V.<computed>.<computed>.a.<computed> [as value] (jquery-ui.min.js:6:1115) at HTMLTextAreaElement.<anonymous> (jquery-ui.min.js:6:2126) at Function.each (jquery.min.js:2:3003) at S.fn.init.each (jquery.min.js:2:1481) at S.fn.init.V.fn.<computed> [as sqleditor] (jquery-ui.min.js:6:1944) at Object.<anonymous> (common_tableform.js?b=01051825:1338:68) at Function.each (jquery.min.js:2:3003) at Object.fields_default (common_tableform.js?b=01051825:1322:11) at Object.dialog_show_add (common_tableform.js?b=01051825:701:23)

@vbvbrj: 2022-01-12 15:39:34
I have a fresh install of asm3. I started using this application two weeks ago.


Ability to customize ASM

@katcentre: 2022-01-09 23:46:50
I volunteer with a dog shelter that is considering using ASM. We haven't yet decided if the hosted or open source version is best for us. For both versions, can we customize the menus and any other features (for example, adding “returned animal to street” under Out in the Move tab)? Is there a free trial period of the hosted version?

@adoptamutt: 2022-01-14 23:50:45
The hosted version is so easy because all your upgrades and backups are handled automatically. I'm hosted and I know that on hosted, you can not add something like that to the Menu. You would add a Movement and select "Released to Wild".

@schelleffar: 2022-01-18 03:13:43
Hi, We use the hosted version of SM and it's very good, as we get to focus 100% on the animals and not the tech side. You can edit drop down lists, create any forms, documents templates, email templates, we use it for all email communication with foster carers and potential adopters. As we are 100% home based animal rescue (meaning all animals are at home with foster carers) they use the mobile app to record worm and flea treatments and upload photos that we use to auto publish to the Per Rescue site. You can add new fields to pretty much anywhere in the system and have that data fed in by online forms or manual entry. I have built a range of custom reports, their SQL report building function is so easy to use, so we build reports to suit our needs. So there is a lot of flexibility with the hosting system, but it does have limitation on menu items. For your "return animal to street" I would simply use the TNR option in the movement tab.

@adoptamutt: 2022-01-20 19:12:49
We also have a good Facebook users’ group called ASM Rocks.


Costs in animal view vs clinic invoices on animal tab

@vbvbrj: 2022-01-09 12:53:56
Could someone explain why Clinic Invoices and payment on Clinic tab of Animal view is not counted in Balance when viewing that Balance in Costs tab of Animal view? Is there a way to move Donations (in Payment tab of Animal view) go thru Bank::Current and payed Vaccinations, Transport, Treatment, Tests extract from Bank::Current?

@robinrt: 2022-01-20 16:05:44
The clinic was intended for billing members of the public who bring animals into the shelter for medical care. It therefore doesn't count towards the cost of shelter animals.


Suggestion: Use jquery autocomplete module in place of select tag.

@vbvbrj: 2022-01-07 17:25:15
Using autocomplete would allow search by arbitrary term in long list (for example Breed) and filter the list to only those that have the term in the text. This will also allow a multiline option to be used to fit long options in the box.

@robinrt: 2022-01-07 17:48:15
We used to do this a long time ago. It is horrible on mobile, and causes lots of problems when the autocomplete appears near a viewport boundary. Most browsers allow you to type a search when a select tag has the focus, even though you can't see it happening it will choose the match in the list.

@vbvbrj: 2022-01-07 19:52:50
I've tried the interface on mobile and found it unhandy to do any complex options. And "autocomplete" of select tag does matching from first character only. Could it be an option to switch between select and jquery autocomplete?


No "sheltermanager3" service installed when building from source.

@vbvbrj: 2022-01-07 17:20:17
I use bundled makedeb.sh to install asm3 in docker environment. After finishing there is no init.d or systemd service installed, therefor the line: --- CMD service sheltermanager3 start && tail -f /var/log/sheltermanager3.log --- in https://github.com/bobintetley/asm3/blob/master/scripts/docker/Dockerfile has no effect. As there is no such service.

@robinrt: 2022-01-07 17:48:40
The dockerfile is old. We don't run a separate service, the package deploys a config file for apache.

@vbvbrj: 2022-01-07 19:55:04
Should I use: --- python3 code.js --- or use apache is a better aproach?

@robinrt: 2022-01-08 09:34:36
Apache is better, but you can run it directly with the embedded webserver for testing.


Allow multiple site address in same instance

@vbvbrj: 2022-01-07 17:10:30
Is there a way to allow accessing same asm3 instance via different fqdn names? For ex.: shelter.com adoption.org example.asm3.site And all links should be to same fqdn as used for accesing the site.

@robinrt: 2022-01-07 17:48:52
Use apache vhosts.

@vbvbrj: 2022-01-07 19:49:57
Will vhosts interfere with configs: base_url and service_url from /etc/asm3.conf ?

@robinrt: 2022-01-08 09:35:20
Yes, you would have to use mod_wsgi in Apache to run a separate ASM process for each vhost.

@vbvbrj: 2022-01-08 12:51:59
using separate processes for each vhost with same DB will make inconsistency of DB records. My goal is to run one asm with one DB but with multiple external fqdn names.

@robinrt: 2022-01-09 08:43:34
You can still use the same DB for your processes. I can't see how there would be inconsistency as ASM can use multiple processes over a single DB - we certainly do in production for performance.

@vbvbrj: 2022-01-09 12:45:29
thank you


Change currency symbol independently of local or disable showing currency symbol

@vbvbrj: 2022-01-07 16:55:17
A suggestion to allow changing currency for money to custom independently of system interface language. User can opt for showing interface in desired language, but all currency should show same currency used in the country of software use.


Remove 'nowrap' style in tables.

@vbvbrj: 2022-01-07 16:50:01
I have a suggestion. Please remove the hard coded 'nowrap' style for span which enclose titles in tables listing Vaccinations, Tests, Recipts. I use long descriptive names in titles in two languages. Example of such a table is at http://site/animal_vaccination?id=1 : TABLE#tableform.asm-table TBODY TD.ui-widget-content.asm-completerow SPAN Also, when adding here a new record the dropdown menu Type also has 'nowrap' so the menu expands far right out of the popup box. Can it also make long lines break so it fits in the popup box? I've found a solution: In https://github.com/bobintetley/asm3/blob/master/src/static/js/common_tableform.js line 252 I do this: --- if (ic == 0 && formatter === undefined) { var linktext = tableform.format_string(vr, vr[vc.field]); if (table.truncatelink) { linktext = html.truncate(html.decode(linktext), table.truncatelink); } if (linktext == "") { linktext = _("(blank)"); } var style = ( linktext.length > 30 ) ? " style=\"white-space: normal\" " : ""; t.push("<span style=\"white-space: nowrap\">"); t.push("<input ty pe=\"checkbox\" data-id=\"" + rowid + "\" title=\"" + html.title(_("Select")) + "\" />"); t.push("<a href=\"#\" class=\"link-edit\" data-id=\"" + rowid + "\"" + style + ">" + linktext + "</a>"); t.push("</span>"); } --- The minimun length that I check to disable nowrap I've set 30 chars as per personal. May be there is a better solution.


SOPs in ASM

@drjarred: 2022-01-05 23:35:13
Hello, Is there anyway to upload documents (like SOPs) into ASM that are affiliated with the organization itself and not an animal or person? Dr Jarred

@robinrt: 2022-01-06 08:26:35
You can upload general documents under ASM->Document Repository

@drjarred: 2022-01-06 18:30:46
Thank you!


Internal server error when creating the database

@sicknessquick: 2022-01-05 17:46:17
Hello. I'm trying to set up a new instance of asm3 on an online hosting after doing several tests on . I've tried both Debian (11 and 10) and Ubuntu (20.04). I install Apache, MariaDB, PHP and PHPMyAdmin and then ASM3. Then when I access the app with my browser, it redirects me to the database creation page. After clicking Create Database it runs for a bit until showing an internal server error. Checking the database with phpmyadmin shows the last table created is stockusagetype, with all of them being empty. [Phpmyadmin](//muut.com/u/sheltermanager/s2/:sheltermanager:1GMP:phpmyadmin.png.jpg) This only happens on instances in my hosting service. I've previously made several tests on local virtual machines in my computer and it didn't happen. Just to see what would happen, I exported the full database from one of those working virtual machines and imported it on my online instance. I could access asm3, but it would again show an internal server error when trying to create a new animal, or when trying to access the config page... Can anyone help me find the cause and maybe fix it? I'm not the most experienced guy with this kind of thing, and it's making me crazy. Thanks in advance.

@robinrt: 2022-01-05 17:50:25
What is in your apache logs? Check /var/log/apache/error.log and the /var/log/syslog

@sicknessquick: 2022-01-05 18:00:14
here's what the log shows: https://pastebin.com/kqgBHPcf

@sicknessquick: 2022-01-05 18:08:14
that was the error.log, and here is the syslog: https://pastebin.com/yCLFbaps

@robinrt: 2022-01-05 18:27:18
Hi, thanks for reporting. It looks like you're running the latest code from github - it appears we've got a bug and we've used a MySQL reserved word (SHOW) as a column name. It's preventing your database from being created. I've applied a fix to git now, if you pull the updates (or clone again) it should be fixed. This has snuck through because we don't really use or test with MySQL. We use SQLite in development and PostgreSQL in production.

@sicknessquick: 2022-01-05 18:41:40
Thanks a lot, I'll try again and confirm if it works

@sicknessquick: 2022-01-05 20:30:26
it works indeed, thank you for fixing it so quickly :)

@fpta21: 2022-01-21 10:02:38
Hey mate, email have a few questions for you! :) doing the same on same ssystem. Need help!


Linking documents/medical records from Media tab

@drjarred: 2022-01-04 20:51:24
Hi there, We currently use the media tab for all of our medical records (I either upload documents from outside hospitals or my own computer - like labwork) or when I create a new document from the animal profile its made into a document under the media tab. This was the system in place when I got here when the shelter only used paper records and scanned in everything after. So progress! But this obviously proves difficult when viewing and printing medical records for adopters since they are all in different documents. Is there a way to link media documents? Scan in more than one thing to a date? A more efficient way to do medical records in general? Dr Jarred

@robinrt: 2022-01-05 10:08:29
There isn't any other way to link media documents I'm afraid. Assuming that all the data has been keyed into the relevant tabs (medical, test, vaccination, logs), you could use the "Print Animal Record (for adopters)" report, which gives them all of the info and full medical history less anything sensitive like the original surrenderer info.

@drjarred: 2022-01-05 22:51:03
Alas. Thank you!


Vaccine Schedule

@drjarred: 2022-01-04 20:48:59
Hey guys, I feel like there is a way to do this but I cannot seem to easily figure it out. How can we set up an automatic scheduling with the vaccines to where two weeks after giving a certain type of vaccine it automatically populates two weeks later for the booster? Is this a thing? Also - this may prove to be too detailed but is there a possible way to link this an animals age so that the boosters keep popping up while an animal is under a certain age (for kittens and puppies)? For instance, in my old shelter the vaccines automatically populated two weeks later for animals over the age of 20 weeks, and for animals under the age of 20 weeks it would continue to populate until they were over 20 weeks. Is there anything in ASM that might serve this purpose? In private practice we had a different software that accomplished the same goal where we entered the vaccine as #1/#2/#3 and then it would populate two weeks from there for the booster since they needed to have vaccines up until 20 weeks. Would this method be more appropriate in ASM? Thank you! Dr Jarred

@robinrt: 2022-01-05 10:09:47
You can set a repeat period on the vaccination type (Settings->Lookup Data->Vaccination Types). The system will prompt you to reschedule for this period when you use the "Give" button on the vaccination tab or vaccination book. You can use template animals for kittens and puppies to pre-create the vaccinations they need. See https://sheltermanager.com/repo/asm3_help/animals.html#template-animals

@drjarred: 2022-01-05 22:50:49
This is perfect, thank you!


Changing the name of Trap Loans

@leannec: 2022-01-03 01:30:50

@leannec: 2022-01-03 01:31:31
Is it possible to change the name of Trap Loans? We would like to call it Equipment Loans which fits in more with what we use it for.

@robinrt: 2022-01-03 08:45:59
It is called Equipment Loans and has been for about 6 months on sheltermanager.com, are you self-hosting an older version? The new release (45) will be out in the next few weeks.

@leannec: 2022-01-03 12:26:36
Not that I know of... I notice it says Equipment loans at the top of the page when I go in there. But the QuickLinks still says Trap Loans. How can I change that?

@robinrt: 2022-01-03 12:59:37
ah, you can't - it's part of the translations. I'll mark that for fixing, thanks.


Background on incoming forms - question

@bajadogslapaz: 2021-12-31 05:28:53
Good evening, I created a new Adoption Application and I put a background image in it to make it a little interesting. But I notice that the image also displays in the incoming form. Is there a way to somehow turn off the background when the user hits submit so the forms we store in the media tab don't have the background? Thanks for any suggestions.

@robinrt: 2021-12-31 09:34:00
I've added a fix for this, background-image directives should be stripped in future.

@bajadogslapaz: 2021-12-31 16:30:42
Awesome!!! Thank you -- you are FAST!!


Redirect to parent page of website from embedded form

@bajadogslapaz: 2021-12-30 02:50:11
Hello everyone. I am using and iframe to embed some of our ASM forms into our website. The only thing, is that the redirect URL after the submit comes up in the iframe instead of the parent page. Is there any way to get the redirect to go to the parent vs. inside the iframe? Thanks for any help - I'm sure someone has handled this before. Charlene

@robinrt: 2021-12-30 08:53:26
If you have control over the page that is redirected to, you can make it break out of the frame with a line of javascript. https://stackoverflow.com/questions/6657198/how-do-you-break-out-of-frames-without-breaking-the-browsers-back-button

@bajadogslapaz: 2021-12-30 15:46:25
The parent page is our website, so yes we have control over that. The other is Sheltermanager where our form is. On the form it asks what page to redirect the user to after they click submit. I'm not sure where I would put that line of javascript.

@robinrt: 2021-12-30 16:03:57
It goes in the head section of the web page that you are redirecting to. The line detects that it is in an iframe and breaks out of it by setting itself to be the top level page.

@bajadogslapaz: 2021-12-30 16:22:45
Got it! Thanks and it worked!


Removing animals from foster in medical book and follow up appointments

@drjarred: 2021-12-30 00:25:39
Hey guys, Is there a way to remove animals from the medical book and medical calendar that are in foster? It seems that when we change an animal's status to "adopted" that they get automatically removed from the medical book but not for fosters. Is there a way to do this? Dr Jarred

@robinrt: 2021-12-30 08:51:49
There is, but it may not be appropriate for you. It's by turning off "Treat foster animals as shelter inventory" under Settings->Options->Movements. This will also take your foster animals out of shelter view, so you may not want to do this.

@drjarred: 2021-12-30 18:45:22
Would we still be able to run a report on them? They just won't show automatically in shelter view? Our foster person does not really "use" ASM (she has her own system in place). What else might this affect?

@robinrt: 2021-12-31 09:19:16
They'll still show up under Move->Foster Book. Aside from shelter view and any current inventory reports, I can't think of anywhere else affected off the top of my head.

@drjarred: 2022-01-03 23:24:12
That makes sense - would we still be able to schedule future appointments for them in the clinic calendar still?

@robinrt: 2022-01-04 09:39:11
Yes, that should still be ok.


Employee/Doctor Schedule in Clinic Calendar

@drjarred: 2021-12-29 22:59:46
Hey guys, I am wondering if there is a way to mark something in the clinic calendar without it being linked to a particular animal? For instance, I want to mark the veterinarian availability in the clinic calendar so foster/adoption team can know when to schedule appointments with me. Is there a way to do this? I seem to be only be able to add things specific to an animal under clinic calendar. Any of the other tabs under medical calendar might work for this also? Anyway to just add in block time? Thanks! Dr Jarred

@robinrt: 2021-12-30 08:51:05
Not on the clinic calendar, but you could use the staff rota screen to indicate hours you are working ?


Timeline

@lcross: 2021-12-08 22:36:44
Is there a way to restrict access to the timeline. We do not want certain people/users from seeing the timeline. We took it off the home page but it still shows up under the ASM tab. Wanting to remove that option if possible.

@robinrt: 2021-12-30 08:50:01
There isn't, I'll put this on our list to add in future.


Animal Control Calls Dropping

@bkrodle: 2021-12-03 19:40:55
We've noticed over the last couple of days that we have animal control calls for service dropping into the time line and disappearing from the incomplete or undispatched area of the home screen. My officer's have missed a couple of calls due to this issue.

@robinrt: 2021-12-04 10:25:55
Hi, there's certainly nothing in the application that should be randomly completing incidents. Have you had a look at the audit trail on those incidents to see who changed them and when? If you're using sheltermanager.com, email us at help@sheltermanager.com with your account number and some of the incidents in question so we can have a look into it for you.

@bkrodle: 2021-12-06 16:17:39
I think it's just a refresh issue. I've only caught it once. I viewed an incomplete call, then it disappeared when I backed out of the page. Then it came back when I refreshed. One of the officers said it happened to him a couple of times on his IPAD, but I'm not sure he refreshed the page. Looks to be working now. If I can catch it again, I'll send you the info. THANKS!


Screen view has changed overnight

@lynnep: 2021-12-03 09:34:51
When I logged in this morning, my screen view had changed back to the default light and there is no option to turn it back to the colours I had. Also all the payment amounts are being shown in $ instead of £. Has something gone wrong?

@robinrt: 2021-12-03 09:38:19
The old themes have been retired, see https://www.facebook.com/sheltermanager/posts/311343900999173?notif_id=1638443347875181¬if_t=feedback_reaction_generic&ref=notif Did you change your locale under Change User Settings? That would explain the £ becoming $

@lynnep: 2021-12-03 09:41:32
I changed it to English (gb) on my user id to see if it made a difference, but it didn't

@lynnep: 2021-12-03 09:44:30
ok, I've just changed it to Use System and it has gone back to £ again. Sorry to bother you.

@robinrt: 2021-12-03 09:53:43
No bother, glad it's sorted :)


Retailer Location when Publishing

@schelleffar: 2021-11-30 23:50:45
Hi, I am using Sheltermanager.com and when I set an animal movement to retailer, and publish it to Pet Rescue it shows the Shelter Manager default location not the retailer location. The Retailer is flagged as a retailer and even if I use the "Move an animal to a Retailer" it still does not show the retailers suburb in the published version on Pet Rescue. IF I change the movement type to Foster and select the retailer from the person list it works. Have we set the retailer incorrectly? Thank you in advance.

@robinrt: 2021-12-01 09:44:44
Hi, you aren't doing anything wrong. The publisher code is only checking if there is a foster. This is a trivial fix and you've caught me doing the morning deployment, so it should be fixed by the time you read this!


shelter inventory at date

@lenawinningham: 2021-11-22 18:17:29
When i run the report "shelter inventory at date" it does not give me accurate results. I even tried pulling the report for yesterday's date, because we havent had any movements since then, and it is completely inaccurate, and missing about 20 animals. But its not clear who or why, its random, not like all fosters or anything. When i pull a report for earlier this year, i know it is at least 60 animals less than what we really had in our care. What am i missing?

@adoptamutt: 2021-11-28 04:27:13
First thing I would do would be to delete and then re-add the report to make sure I had the latest version. Anything special or similar about those 20 missing animals?


Docker image?

@jaylyerly: 2021-11-20 17:21:02
Is there a docker image available for ASM3? I've poked around a bit on hub.docker.com, but nothing popped up. We're migrating our installation to a new hosting provider and I was hoping just to drop in a docker container. Thanks for the info!

@robinrt: 2021-11-20 17:51:55
I think we have a script for building a docker image in the source tree (in /scripts/docker), but we don't ship an image.

@jaylyerly: 2021-11-23 19:10:04
Thanks for the pointer!


Any wildlife rescues using ASM3 ...?

@pearsos: 2021-11-18 11:46:54
Hi, noob here. I'm helping implement ASM3 for the wildlife rescue I volunteer at. I'm wondering if there's anyone else in a wildlife rescue who has already been through this and would be willing to share their undoubtedly sage-like wisdom of their experience. Thanks in advance.

@jimdunne: 2021-11-18 17:54:08
We are a hedgehog rescue and have been using ASM for a few years, started off self hosting then changed to the on-line version 2 years ago. We deal with around 650 - 700 hedgehogs per year.


Changes in Media to Change Person Record

@mhs_jeff: 2021-11-16 12:32:49
Hey Everyone, I'm pretty sure I know the answer to this, but, is there anyway that a change to media could trigger a change to a person record. For example if a box was filled in, in a document attached to that person's record could it populate an additional field in their person record? Thanks Jeff

@robinrt: 2021-11-16 16:23:12
The answer is no - unless that document was created by an online form. Processing an online form for a person can set an additional field - just name your online form field additionalFIELD where FIELD is the name of your additional field from Settings->Additional Fields.

@mhs_jeff: 2021-11-16 17:44:46
that's what I thought, thank you!!


Show If in Online Forms

@mhs_jeff: 2021-11-16 12:31:09
Hey Everyone, I've been using the Show If controls in the online fields successfully for a while, however. I have come across a situation where I would like to only show if another input is NOT EQUAL to a value. I haven't been able to figure this out. I have tried <> and != and neither have worked. Any help or suggestions would be greatly appreciated. Thanks Jeff

@robinrt: 2021-11-16 16:22:09
Just ! will do it. Eg field!value

@mhs_jeff: 2021-11-16 17:44:54
Thank you!!

@mhs_jeff: 2021-11-16 18:41:28
I guess follow up question, is there a way to put an AND statement in the show if? What language / syntax does this field use?

@mhs_jeff: 2021-11-16 19:20:46
I figured out the AND operator, now trying to figure out the Or operator. Sorry for the all the questions.

@robinrt: 2021-11-16 19:26:29
The complete docs are here: https://sheltermanager.com/repo/asm3_help/onlineform.html#show-if-syntax There isn't an OR operator - it's designed to be a simple tool for non-programmers to use!

@mhs_jeff: 2021-11-16 19:27:20
Ok thank you, I found the docs. Appreciate your time and quick responses as always!


Html publish?

@arrowhead: 2021-11-08 22:26:33
So now that you "retired" the old html publisher our adoptable animals haven't uploaded or updated in almost a month and there isn't a manual publish option. How exactly do you set up an "API" to publish our animals? How do we get our animals into our website now?

@robinrt: 2021-11-09 09:50:19
It's just another URL. There's info in the "integrating your website" section of the manual, but I've emailed instructions for your account.


Emails - Multiple CC's

@schelleffar: 2021-11-01 01:57:22
Hi, I am using Sheltermanager.com and I have setup email templates etc, but I want to be able to send to multiple cc's. I have setup some of the main emails in Options, and they are all showing correctly on the CC drop down list, but I can't add more than one to the CC field. I have tried using a comma to separate, but when I go to select another email address, it just replaces the current one. EXAMPLE: We have a team looking after a certain animal, and we want to CC the foster carer, the vet, and some of the team members, so we go to the animals and click Email, it pulls the correct email address, be we can't add more than one CC. Can you please instruct me how to do this. Thanks :-)

@robinrt: 2021-11-09 09:52:05
It's the fault of the on screen widget. It's an autocomplete so choosing an entry replaces everything in the box. You can manually type a comma followed by another email address and keep going for as many addresses as you like, but you can't use the autocomplete. I'll file this as a bug.

@schelleffar: 2021-11-30 23:21:18
Thank you so much, being able to add multiple emails address without having to type them all is really needed. I appreciate your help.


IsAdopter

@mhs_jeff: 2021-10-31 19:06:54
Hey Everyone, Maybe silly question. How is the IsAdopter column populated in the Owner Table? I can't find anything about it in the Manual. I assumed that is was changed from 0 to 1 when an adoption movement occured that included that owner, but I have several examples where this didn't occur. I'd like to use this field for searches and filtering data but I want to make sure I fully understand it first and know how and why it gets changed. Thanks Jeff

@robinrt: 2021-11-09 09:52:58
It's checked by the system whenever you make a change to a movement. All movements are checked for that person and if it has at least one that is an unretured adoption, the flag is set. If there are no unreturned adoptions, the flag is cleared.

@mhs_jeff: 2021-11-16 12:19:52
Interesting, ok. Thanks! I will have to dive in to those that are cleared to see if they returned.


Forbidden

@cindie: 2021-10-30 17:51:27
I can log in OK but after that, when ever I try to click on anything, it says forbidden and won't let me go any further

@robinrt: 2021-10-31 09:03:36
Sounds like whoever created your user account hasn't granted it any permissions.


Animal Media - PNGs or tags?

@lisazorn: 2021-10-24 00:31:44
Hi - Is it possible to upload png images for animals? I'd like to in order to have images with transparent backgrounds, but it looks like ASM converts pngs to jpgs. If I am (hopefully) able to upload a png, could I tag it or figure out how to access the png specifically? I am hoping to do an integration with our website where I cycle through these types of photos on the front page which means needing to be able to figure out how to access them. (My understanding is the way to do this now is using the sequence id via https://sheltermanager.com/repo/asm3_help/service.html#animal-image) Thank you! -Lisa

@robinrt: 2021-10-24 09:14:59
Sorry, there isn't really an easy way as (like you saw) PNGs are converted to JPEG during import. It would be complicated, but in your website you could render the images to a canvas and then convert a colour within the image (typically #fff) to transparent in javascript. The other way is to preprocess the images you want with a script, download them and convert white to alpha and then serve those on your website.


Custom report help

@nigglesnush: 2021-10-11 09:57:09
Is it possible to pay for a customised report to be created? I think the SQL might be beyond me, and I just need one report.

@robinrt: 2021-10-12 09:56:19
it is, email us at help@sheltermanager.com with your requirements and account number if you have one with us. There's also a friendly report builder tool you can use to make reports without the need for SQL - https://youtube.com/watch?v=6ryMDZbIXA0


Online Form HUGE on mobile

@schelleffar: 2021-10-11 03:55:52
Hi, I am using Sheltermanager.com and when I look at the online forms either on my mobile or via developer tools in the browser, the form text is huge. I have tested on Android Note 9 and iPhone and Tablets. How do we make these responsive? This should be automatically built in, if not can you please provide the relevant code to make them responsive on any device. I think it would be massively beneficial if you provided some templates or sample CSS styles to format the forms in the help documents. We are a rescue run 100% by volunteers, not IT specialists. EXAMPLE: We have a declaration with a Yes/No option to select, but because there is so much text in the declaration, and the form width is narrow it makes it difficult to read, and on mobile you have to scroll forever. Thank you in advance.

@robinrt: 2021-10-11 09:49:47
Hi, it sounds like you've hit a common issue of making the text for a checkbox far too long. This causes mobile scrolling issues and many other layout problems due to the browser trying to make the table cell too big. If you have a checkbox field where the text is something like "Yes, I agree to this very long piece of text agreeing something etc." then put that text in a raw markup type field above the checkbox and then just make the checkbox label text something short like "I agree". This should clear up the layout issues. The forms are already responsive, the fields will grow to 100% with stacked labels on portrait mobiles and it sounds like that's what you are seeing? If you continue to have issues, email us at help@sheltermanager.com with your account number and the form that's causing problems.

@schelleffar: 2021-10-11 23:31:33
Thank you so much for replying :-) I also found the global header code for mobile and reduced the text size which made a big difference, I will have a play with the Raw Mark-up type field, I was not aware I could do that, so I truly appreciate your help.

@schelleffar: 2021-10-11 23:35:11
That worked perfectly - THANK YOU :-)


Online Form Submit URL Issue

@schelleffar: 2021-10-11 03:13:27
Hi, I am using Sheltermanager.com and when I embed a SM online form in our website using an iFrame, when we click submit on the form the redirect url shows the web page inside the iFrame, not as a normal page. Am I doing something wrong?

@robinrt: 2021-10-11 09:46:10
You aren't doing anything wrong, that's how iframes work. If you have control of the webpage that you are redirecting to, you can use some javascript to break out of the iframe: https://css-tricks.com/snippets/javascript/break-out-of-iframe/

@schelleffar: 2021-10-12 00:02:19
Thanks :-)


Upgrading from very old (33201) to latest ASM

@mattatmickaboo: 2021-10-07 03:06:22
Hi Robin! My shelter has gone a long time without updates (stability is great!) and are now trying to upgrade from very old ASM (DB version 33201) to the latest ASM after moving to Ubuntu 20.04 I've gotten sheltermanager 3.44 installed and attempting to log in, but it doesn't seem to be running dbupdate.py to try to upgrade the DB and, consequently, fails to find fields (like il.SiteID) when I log in and crashes. Is there a way to manually invoke dbupdate.py to force through all the DB updates that need to be made? Alternately, if this is a huge lift, do you do consulting and what's your hourly rate? ;)

@mattatmickaboo: 2021-10-07 03:12:25
Here's some debug info: 021-10-06 19:11:24 DEBUG asm_pr users.update_session user matt has locale override of en_GB set, switching. 2021-10-06 19:11:25 INFO asm_pr users.login matt logged in 2021-10-06 19:11:26 DEBUG asm_pr utils.get_asm_news Retrieved ASM news, got 3284 bytes 2021-10-06 19:11:26 CRITICAL asm_pr Database.query (1054, "Unknown column 'il.SiteID' in 'field list'") File "/usr/lib/sheltermanager3/asm3/dbms/base.py", line 561, in query s.execute(sql, params) File "/usr/local/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 209, in execute res = self._query(query) File "/usr/local/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 315, in _query db.query(q) File "/usr/local/lib/python2.7/dist-packages/MySQLdb/connections.py", line 239, in query _mysql.connection.query(self, query) OperationalError: (1054, "Unknown column 'il.SiteID' in 'field list'") 2021-10-06 19:11:26 CRITICAL asm_pr Database.query failing sql: SELECT a.*, at.AnimalType AS AnimalTypeName, ba1.Ani malName AS BondedAnimal1Name, ba1.ShelterCode AS BondedAnimal1Code, ba1.Archived AS BondedAnimal1Archived, ba2.AnimalName AS BondedAnimal2Name, ba2.ShelterCode AS BondedAnimal2Code, ba2.Archived AS BondedAnimal2Archived, bc.BaseColour AS BaseColourName, bc.AdoptAPetColour, sp.SpeciesName AS SpeciesName, sp.PetFinderSpecies, bd.BreedName AS BreedName1, bd2.BreedName AS BreedName2, bd.PetFinderBreed, bd2.PetFinderBreed AS PetFinderBreed2, ct.CoatType AS CoatTypeName, sx.Sex AS SexName, sz.Size AS SizeName, o.OwnerName AS OwnerName, ov.OwnerName AS OwnersVetName, ov.OwnerAddress AS OwnersVetAddress, ov.OwnerTown AS OwnersVetTown, ov.OwnerCounty AS OwnersVetCounty, ov.OwnerPostcode AS OwnersVetPostcode, ov.WorkTelephone AS OwnersVetWorkTelephone, ov.EmailAddress AS OwnersVetEmailAddress, ov.MembershipNumber AS OwnersVetLicenceNumber, cv.OwnerName AS CurrentVetName, cv.OwnerForeNames AS CurrentVetForeNames, cv.Ow

@robinrt: 2021-10-07 09:26:55
il.SiteID was in update 33908. All of the database updates are repeatable (ie. they don't break anything if they run again), so you if you run this query and go to the ASM home page, it should re-attempt all database updates to get you upto date. ``` DELETE FROM configuration WHERE itemname='DBV'; ``` Email me, help@sheltermanager.com if you get stuck :)


Hidden field and location in online form

@lisazorn: 2021-10-05 06:41:38
Hi - we're creating a form for people who want to board with us, and we'll use it to create a new animal in ASM. I would like it to automatically population the internal location with a specific value (SaveABunny: Potential Client)... so basically if I could make a hidden field with a set value, that would work. Is that possible? Also, is internal location a field I can populate from the online form? Thank you! -Lisa

@robinrt: 2021-10-07 09:28:04
Sorry, you can't populate internal location from an online form. Animals created from forms will get the default location from Settings->Options->Defaults.


Remove Default Options

@cheryl114: 2021-10-03 22:52:06
Hi Is there a way to remove Default options? As a multi-species animal rescue center the default really doesn't work for us.

@robinrt: 2021-10-04 10:16:08
Yes. You can edit all the lookups under Settings->Lookup Data. You can also choose the defaults under Settings->Options->Defaults


SAC CSV

@chsstacey: 2021-09-29 23:14:50
Our csv export does not work with the new Shelter Animals Count matrix. Has anyone had luck with the new data report?

@robinrt: 2021-09-30 08:07:59
The version in the repository called shelteranimalscount monthly export 2021 should be working. If it isn't, what are the error messages you are getting from them?


Email Audit Trial Question

@schelleffar: 2021-09-29 03:33:24
Hi, We have setup the emails to be sent to the foster carers when medications are due. But we need to see a audit record on the emails that have gone out. Where in the system can I see that the system generated email have gone out. We are using sheltermanager.com Thanks in advance

@robinrt: 2021-09-29 09:36:39
Install the report "Audit Trail: Sent Emails by Date". The fosterer emails should be included on that report.

@schelleffar: 2021-10-11 03:02:56
Thank you for the reply, that report has all the email content, I am just looking for a report to show that system emails to Foster carers were actually sent out. Is there a basic report showing this. EXAMPLE: We have clinic and medical treatment for our rescue animals and we have set reminder emails to the Foster carer, but do not know if they have gone out.

@schelleffar: 2021-10-11 03:10:58
All good, I can just go to the section for System and it shows they went out - thanks :-)


Publishing Template - Foster Flag

@megw341: 2021-09-25 01:11:03
I'm trying to add a page on our website for animals that are flagged for "Needs Foster". I added the coding for the iframe and it shows up but the animals with "Needs Foster" flag will not show up. I used other flags like "Needs Rabies" or "On Meds" and those work. I have no idea what I'm doing wrong. Cache time says 30 minutes....it's been 3 hours.

@megw341: 2021-09-26 16:04:48
After about 6 hrs the animals flagged for foster showed up on the website so it's working. Is there a faster way to get them to feed to the site?

@robinrt: 2021-09-29 09:38:57
The server side cache time is 30 minutes, but your browser can hold onto it for longer. If you press CTRL+R it will force your browser to reload the page.

@adoptamutt: 2022-03-01 16:55:23
What did your filter look like? I'm not having success with my scripting for ADDTIONALFLAGS 'like' (my additional flag is 'Ignore'). I have: --- <script> asm3_adoptable_filters = "sex agegroup"; asm3_adoptable_iframe = true; asm3_adoptable_iframe_fixed = true; function asm3_adoptable_filter(a, index, arr) { return a.ADDITIONALFLAGS.match("Ignore") && a.WEBSITEIMAGECOUNT > 0; } </script> ---

@robinrt: 2022-03-01 17:18:31
Hi Karen, I think this user will be use the html-flagged-animals service call rather than using an adoptable animal filter (html-flagged-animals will return shelter animals who aren't adoptable too). In your code, the match method returns an array containing the matched strings - you're treating it as a boolean, so it being non-null will return true every time. Test the return value of match for >0 instead to check for nonzero matches. ``` return a.ADDITIONALFLAGS.match("Ignore") > 0 && a.WEBSITEIMAGECOUNT > 0; ``` Performance probably doesn't matter on something so trivial, but the normal approach would be to use indexOf to do a substring test rather than using the regular expression engine. indexOf returns -1 if the test string is not present. ``` return a.ADDITIONALFLAGS.indexOf("Ignore") != -1 && a.WEBSITEIMAGECOUNT > 0; ```


is there a way to scan microchips into ASM instead of entering manually?

@lialang: 2021-09-18 22:06:24

@robinrt: 2021-09-19 08:03:35
I think there are some types of scanners that will behaves as a USB keyboard, so that when you scan, they type the number you just scanned. They would work. Some will store the scanned numbers in a file that you access via USB storage and copy/paste. Looking around on Amazon, it's not obvious what features the scanners have and they vary wildly in price.

@bkrodle: 2021-09-21 14:54:16
We have a bluetooth HERO scanner that will scan the microchip into whatever field our cursor is in. It will even scan to the desktop screen.


Document Template PDF Format

@schelleffar: 2021-09-16 08:36:01
I have created a few document templates, and when I view them as PDF's the fonts change so does the font size - but it is in random places, not all text, only sections. The formatting is not coming over. I have the PDF set at A4 (<!-- pdf papersize a4 -->) But the page size is not the issue it is font, I have it set as Arial, and then it randomly changes back to San Serif in the template, but in PDF, it does not show what is displaying in the editor.

@schelleffar: 2021-09-16 08:50:38
PS: I am using sheltermanager.com

@robinrt: 2021-09-19 07:55:58
Hi, this will be where your text elements are inheriting the default font. The display stylesheet when editing uses sans-serif, but the PDF engine uses serif. You can fix it by reapplying font styling to those elements in the editor.

@schelleffar: 2021-09-20 00:12:13
I already selected the text and re-applied the Arial font in the document template editor, but when viewing as a PDF it still shows the old font (Serif). I did think maybe it's because I copied and pasted the text from an original PDF, so I didn't have to re-type everything, could that be the issue?


Word Key problem

@jimdunne: 2021-09-15 12:46:13
I have created some new documents and am having trouble with word keys. The majority of the document populates correctly from the relevant keys, but some do not work. The one's giving problems are test keys <<TestResult>> and <<TestComments>>, and Log keys <<LogName>> <<LogDate>> and <<LogComments>>. All my additional keys are working, as are medical, but I cannot seem to get these others working. Any Ideas?

@jimdunne: 2021-09-15 13:31:21
Screenshots of source document and output document. Test info not carrying over. I have similar with log fields. [Screenshot 2021-09-15 132926](//muut.com/u/sheltermanager/s1/:sheltermanager:y5w4:screenshot20210915132926.jpg.jpg) [Screenshot 2021-09-15 132755](//muut.com/u/sheltermanager/s1/:sheltermanager:SKOv:screenshot20210915132755.jpg.jpg)

@adoptamutt: 2021-09-16 21:20:33
On the Tests, it looks like you are missing the test name. For example, I have a test called "Heartworm" so I use <<TestGivenRecentHeartworm>> and <<TestResultRecentHeartworm>>

@robinrt: 2021-09-19 07:56:30
You can also use an index, eg: LogName1 for the oldest and LogNameLast1 for the newest.

@jimdunne: 2021-09-19 10:37:01
I fixed it with <<TestResultMicroscopy>> etc which now populates the document - thanks!


Foster highlighted in green

@mdeprima1964: 2021-09-06 20:43:24
I have 1 foster, that is always highlighted in green when I look at the shelter view? Why? What does this mean? [Screenshot_20210906-144058](//muut.com/u/sheltermanager/s3/:sheltermanager:Ohdz:screenshot_20210906144058.png.jpg)

@robinrt: 2021-09-07 08:54:16
It means they have space available. They've been assigned a capacity of 3 and have 1 animal hence 1/3. You can set the capacity under the Type slider of the fosterer's person record.


Custom Form Error

@mdeprima1964: 2021-09-03 00:02:31

@mdeprima1964: 2021-09-03 00:08:23
Sorry, signed in and it submitted... Anyway, I've created a custom foster application form. When someone tries to submit, an error is thrown as attached ("us17b sheltermanager.com says" "email not valid" - which email? I've deleted and readded the email field to the form, I've deleted and readded the email input into the form and the one directing where copies of the application go. None have helped. [Screenshot_20210902-180113](//muut.com/u/sheltermanager/s3/:sheltermanager:6jun:screenshot_20210902180113.png.jpg) [Screenshot_20210902-180054](//muut.com/u/sheltermanager/s3/:sheltermanager:i6xl:screenshot_20210902180054.png.jpg)

@robinrt: 2021-09-03 10:20:24
Have you got another field in your form of type email, maybe one that is being hidden by a showif rule?

@mdeprima1964: 2021-09-06 20:43:37
Found it!


Photo uploader issue

@sjras: 2021-08-31 19:21:50
Our medical team just got in touch to lmk they started getting an error message this morning when adding photos to new pets. They use it commonly and until now haven't had a problem. Didn't know if this was a wider issue or maybe just us. [Screenshot_20210831-141814_Textra](//muut.com/u/sheltermanager/s3/:sheltermanager:hd5w:screenshot_20210831141814_textra.jpg.jpg)

@robinrt: 2021-09-01 13:42:31
It certainly looks environmental. Your connection seems to be dropping will the image is being uploaded. Is this happening on all devices? Does it happen if you use mobile data rather than wifi?


Calendar Option?

@hilarybrogers: 2021-08-27 17:32:13
Is there any sort of calendar option in ASM? We are looking for something that would show us when animals have their surgery dates, when they are coming into the shelter from foster care, when they have booster appointments, when medications are due, etc. I'm still very new to ASM but in poking around, I didn't see anything like this off the bat, and wanted to check before recreating it in a different system (like Google calendars) since all the information we would want on it is already contained within ASM. Thanks!

@robinrt: 2021-08-28 09:07:35
Hi yes, there's a calendar view. I think it's included on the quicklinks bar by default, but it can also be accessed in multiple places, eg: Medical->Medical Calendar, ASM->Diary->Diary Calendar. It has filter boxes at the top to control which items will be shown on the calendar, such as diary reminders, medical treatments and vaccinations, etc.


Fosterer (Space Available)

@hilarybrogers: 2021-08-26 00:16:56
I see one Foster that is showing that she is currently fostering 3 out of 8 available spaces, but she is the only one. How do I update the number of 'spaces' available by foster for our shelter? Or maybe there is a report that is easier to run? I'm trying to get a single view of the fosterers and who currently has animals and who has space to take in new ones. It seems like the functionality is there, I'm just not seeing how to utilize it. Thanks!

@robinrt: 2021-08-26 09:13:45
It's the "Foster Capacity" field under the "Type" slider of the fosterer's person record.

@hilarybrogers: 2021-08-26 18:49:42
Perfect! Thank you! This is exactly what we need. :)


RescueGroup Export

@bfreides: 2021-08-13 03:53:31
what are the matching fields that export to RescueGroups? The below list are the fields based on their import - what are the ShelterManager fields that match up with those? "externalID", "status", "internalID", "rescueID", "name", "type", "priBreed", "secBreed", "mix", "sex", "okwithdogs", "okwithcats", "okwithkids", "declawed", "housebroken", "age", "specialNeeds", "altered", "size", "uptodate", "color", "pattern", "coatLength", "courtesy", "dsc", "found", "foundDate", "foundZipcode", "photo1", "photo2", "photo3", "photo4", "videoUrl"

@robinrt: 2021-08-13 10:21:16
The code is here and starts at line 133: https://github.com/bobintetley/asm3/blob/master/src/asm3/publishers/rescuegroups.py

@bfreides: 2021-08-13 18:40:35
Thanks. few more questions: 1) how often does the file get created? this it a manual or automatic process? 2) can I process a file without it going to RescueGroups? I want to review the file to make sure I understand what is going on. 3) I don't see a video passing in the code, only 4 pics? am I correct?

@robinrt: 2021-08-14 09:32:29
1. It's manual when you run it from the publishing menu and automatic too. The interval is configured in the publishing options screen (all publishers tab). 2. I'm afraid not, but you can review the exact file sent in the publishing logs. 3. Correct, rescuegroups don't allow video URLs as part of their import spec so we can't send them.


Diet Keys

@audraf: 2021-08-11 22:46:25
Hey all, I'm trying to add the diet to the info we send home with fosters. I've tried pretty much every diet key in the handbook and none of them work. Thoughts on what I might be doing wrong?

@robinrt: 2021-08-12 10:18:11
The most common mistake is not saying which diet record you want, eg using something like <<DietName>> is wrong. You need to be using something like <<DietNameLast1>> to access the most recent diet on file.

@audraf: 2021-08-12 16:53:47
Great thanks! I had tried it with recent but las one works

@audraf: 2021-11-12 19:52:59
Bumping this up with a similar question about medication, what would be the proper key for that? Thanks


Images not showing up in email

@audraf: 2021-08-10 18:36:55
Hi all, when sending out emails though the mail/membership option, the photos have been coming up as broken links. I'm using the source from ASM, when I use the photo icon or add it as HTML, it still not coming through in email. Any ideas?

@robinrt: 2021-08-11 09:16:08
Many email clients hide images from unknown senders by default as images used to be used by spammers to figure out if your email was active. There should be an option somewhere to show the images. Also, pasted images (data-uris) will not work in emails as these are stripped by most email providers, they have to be done via URLs/extra images. https://youtube.com/watch?v=T-Tfnxc_PTU

@audraf: 2021-08-11 19:13:16
Thanks. So even if the image already lives in ASM, it needs to be uploaded again this way?


Exposing multiple videos for one animal

@lisazorn: 2021-08-10 03:42:47
I found that I can attach a URL for a video for an animal, but it looks like there's a limit of just one. We have some rabbits who have a number of wonderful videos that have been published (on facebook); is there a recommended way to do this?

@robinrt: 2021-08-10 09:35:35
I'm afraid there isn't, this has been on our list for a while so I'll bump up the priority. The only workaround for now is to put your video URLs in one or more additional fields so that they can be accessed in your publishing template. If you know a bit about coding you could put the video tokens in a comma separated list in a single additional field and then use javascript to split them into an array and generate the URLs and link tags on the fly in your template.

@lisazorn: 2021-08-10 20:18:53
Got it! Will do that! Thanks for the suggestion!


Vaccination Book vs Calendar View

@ketalabama: 2021-08-09 14:31:20
I'm curious at the logic difference behind the Vaccination Book vs the Calendar View. In Calendar view I see all the FVRCP and/or Rabies shots that are due in a given time slice (based off of expiration date). But when I go to the Vaccination Book and ask to see all due in the current day, or week, month etc it does not return any. Seems the two are using a different query or logic. In playing around with it the Vaccination Book expects there to be a near blank entry for the vaccination for an animal with the Required Date only (which matches the expiration date of the previously given vaccination). Then it shows up in Vaccination Book. But the Calendar View works off of the expiration date. Since we don't create a Required date entry until the expired vaccination is given (just has never been our practice) we really can't use the Vaccination Book which would be helpful. It would be nice if both were in sync. Is there a reason i'm missing that they use different logic?

@robinrt: 2021-08-09 15:49:59
The calendar is supposed to show both - vaccinations with a required but no given date, and vaccinations that have expired. Checking a test database that seems to be the case and I'm getting both? The expiry date is supposed to be a last resort, if you are scheduling future vaccinations you should always use a record that has a required but no given date. The expiry date is typically set for vaccinations given a year or more apart and means "I didn't expect this animal to still be here by the time this vacc wears off and it needs it again".

@ketalabama: 2021-08-10 13:50:04
Thanks for the response. The expiry date is important for us as we have many kittens who are in foster care that may be here longer than for their first shot. Furthermore as part of our adoption fee we cover all 3 shots so even if adopted at 8 weeks they come back to us for their boosters. I don't have an issue with the calendar view (other than I would love a more printable list format). I just wish the Vaccination Book showed based on expiry date as well since that is a much more useful format for us with the volume of kittens we have. We've been doing it so long without creating the blank "Required by" entry that i don't see it being an easy or useful change for us just to get the book to display correctly unfortunately.

@robinrt: 2021-08-10 17:39:57
The Vaccination Book can show based on expiry date - just choose "Expired" from the dropdown at the top right of the screen.


Formatting documents in Media

@leannec: 2021-08-07 02:37:41
I am trying to change the formatting of the standard document in the Media tab. I would like to create a document which has Arial 11pt, and single spaced lines, but it keeps reverting to sans-serif 8pt and double spacing. I can't work out how to change it. Can someone help please?

@robinrt: 2021-08-07 08:56:25
Hi you should be able to just select the font and change it. You can get single spaced lines by pressing SHIFT+ENTER instead of just enter. Are you saving the document after you've finished with CTRL+S or the save icon at the top left of the toolbar? If you are, and you're using sheltermanager.com please email us at help@sheltermanger.com with your account number and the particular document you're trying to edit so we can take a look.

@leannec: 2021-08-07 12:17:11
Thanks for that. I think the issue is I am trying to copy and paste text from a Word document. This text was from a pdf document. If I copy the text straight from the pdf, it is fine, but if I copy from the Word document, the formatting changes. I will fiddle with the document, maybe I need to save it as a different format first.


Altering - " Not available for adoption" message

@bfreides: 2021-08-07 02:23:48
[Untitled](//muut.com/u/sheltermanager/s2/:sheltermanager:LwCt:untitled.jpeg.jpg) what manages the red highlight " Not available for adoption" box. can the logic or info in this box be changed? or info added to the box like FIV/L Positive? Thanks

@robinrt: 2021-08-07 08:54:43
The box and text can't be edited, but the rules governing it are under Publishing->Set Publishing Options->Animal Selection.

@bfreides: 2021-08-07 22:07:45
thanks is there a field that I can pull and put on a report "Available for Adoption" / "Not Available for Adoption"?

@robinrt: 2021-08-08 08:29:20
Not for a report, the status is calculated on the fly and not stored anywhere. I think we do have a task on our development list to do something about that. The existing reports test the IsNotAvailableForAdoption field, which is whether or not the flag has been manually set to say the animal is not adoptable. You can view animals by their status in Shelter View (pick Status from the dropdown at the top right). You can also add the virtual field "Adoptable" to your find animal results screen under Settings->Options->Find Animal/Person. This column shows the reason the animal is not adoptable.


Animals without a test

@jimdunne: 2021-08-06 23:19:35
How would I edit the 'Animals with positive test result' report so that it showed shelter animals without a test of any type please.

@robinrt: 2021-08-07 08:54:12
There's an existing report available called "Animals without a test of type"

@jimdunne: 2021-08-07 13:39:02
Thanks! Found it, it's under Auditing whereas the other report is in medical where I was looking.


What's the best way to change options for species to add non-standard species?

@caltechnetworks: 2021-08-06 12:12:41
I can't find the setting to be able to change the species within the ASM instance. Would this be something that is changed within the SQL Database?

@robinrt: 2021-08-06 12:25:34
It's under Settings->Lookup Data (or System->Lookup Data for old ASM2 desktop software).

@caltechnetworks: 2021-08-06 12:26:05
Wonderful!


Location on Report

@bfreides: 2021-08-06 06:52:31
$VAR from DATE Enter from date$ $VAR to DATE Enter to date$ SELECT ShelterCode, AnimalName, DateBroughtIn, species.SpeciesName, animal.TimeOnShelter, animal.DaysOnShelter, animal.id, animaltype.AnimalType AS theType, animal.BreedName, entryreason.ReasonName, oo.OwnerName AS OOName, oo.OwnerAddress AS OOAddress, oo.OwnerTown AS OOTown, oo.OwnerCounty AS OOCounty, oo.OwnerPostcode AS OOPostcode, oo.EmailAddress AS OOEmail, (SELECT LocationName FROM internallocation) AS aLocation FROM animal INNER JOIN animaltype ON animaltype.ID = animal.AnimalTypeID INNER JOIN species ON species.ID = animal.SpeciesID INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID LEFT OUTER JOIN owner oo ON animal.OriginalOwnerID = oo.ID WHERE DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$ 23:59:59' ORDER BY DateBroughtIn desc, AnimalName ************************************************* 1) trying to pull location for this report but it is correct - the HTML call is <td>$aLocation</td> 2) is there some guide that tells me the database names and fields? thank you

@robinrt: 2021-08-06 11:33:39
Your subquery is selecting every record in internallocation instead of the one linked to the animal. It should be (SELECT LocationName FROM internallocation WHERE ID=ShelterLocation) AS aLocation Or, you could just use the column animal.DisplayLocation instead which contains either the internal location or info on the active movement/death if the animal is fostered or no longer on shelter. Pressing CTRL+SPACE will autocomplete table and columns for you in the report editor. There's info in the manual on the main tables here: https://sheltermanager.com/repo/asm3_help/databasetables.html


Unable to Get Base Install of ASM to Allow Login

@caltechnetworks: 2021-07-31 14:50:34
So Ive created a base installation of ASM3 into my ubuntu 20.04 server instance, using a MYSQL instance on the same server as the webserver where sheltermanager deb was installed. I try to login and I get a redirect to local host 5000 and get an error with the device. I get error server unable to connect when im at the login screen. When i create the database i leave it for 30 minutes and I don't get any acknowledgement that it completes. I used the following to create the database --- mysql -u root -p *logged in" CREATE DATABASE asm3; CREATE USER 'asm3'@'localhost' IDENTIFIED BY 'PASSWORD'; GRANT ALL PRIVILEGES ON *.* TO 'asm3'@'localhost' WITH GRANT OPTION; --- Am I missing something in my config of the DB server or am I missing something in the Web Server? In the /etc/asm3.conf file I added the following: --- asm3_dbtype = MYSQL asm3_dbhost = localhost asm3_dbport = 3306 asm3_dbusername = asm3 asm3_dbpassword = PASSWORD asm3_dbname = asm3 ---

@robinrt: 2021-08-01 12:00:41
your setup looks right to me. Does your username and pass work with the command line client? eg: ``` mysql -u asm3 -pPASSWORD -h localhost -D asm3 ```

@caltechnetworks: 2021-08-06 01:30:56
@robinrt, yes that does connect and it gets me into the CLI for MySQL. I thought it could be an issue with ubuntu's firewall-cmd but I disabled it and still no change.

@robinrt: 2021-08-06 11:30:11
What's the error message in the syslog when trying to connect? There might be clues there.

@caltechnetworks: 2021-08-06 12:25:52
Im working on pulling the logs now.


Adding Image to Report

@bfreides: 2021-07-28 03:45:16
new to SM - want to add animal image to Shelter Inventory at Date

@robinrt: 2021-07-28 08:35:45
Have a look at a report that already has images, such as Shelter Inventory with Pictures., you should be able to copy the line in the HTML section with {IMAGE.ID} in it. It will look like this: ``` <td><a href="{IMAGE.$ANIMALID}"><img border="0" src="{IMAGE.$ANIMALID}" width="75" height="50" /></a></td> ```

@bfreides: 2021-07-30 04:56:51
[Untitled](//muut.com/u/sheltermanager/s2/:sheltermanager:eHcf:untitled.jpeg.jpg) thought about that it returns a broken link.

@robinrt: 2021-07-30 09:12:25
Make sure you have a column called AnimalID in your query that contains animal.ID. Or if you've just included ID in the results change the HTML to IMAGE.$ID instead

@bfreides: 2021-07-31 02:58:21
im close - top half works not but the bottom does not [Untitled](//muut.com/u/sheltermanager/s1/:sheltermanager:Dun5:untitled.jpeg.jpg) I know the issue is the relationship between file CASE WHEN EXISTS(SELECT ID FROM adoption WHERE AnimalID = animal.ID AND MovementType = 2 AND MovementDate <= '$@thedate$' AND (ReturnDate Is Null OR ReturnDate > '$@thedate$'))

@robinrt: 2021-07-31 09:44:11
That isn't selecting the field value though. I'd guess that the problem is that you're selecting adoption.AnimalID which requires a successful join to the movement table. It won't be present for animals without an active movement. Use {IMAGE.$ID} instead in your HTML and include animal.ID (or a.ID if the table is aliased) in your SELECT statement - that way the animal ID will always be present.

@bfreides: 2021-08-06 06:47:14
got it.


Filtering payments by date

@deb_sacr: 2021-07-26 17:37:27
Hi all, Is there a way to filter payments on a person record by date (ie: 01/07/2020 - 30/06/2021) to be able to capture & select an entire financial year of donations?

@robinrt: 2021-07-27 08:36:48
Not on the person record itself. There's a report you can install called "Payment Breakdown by Person" that accepts a date range and produces itemised lists with totals for each person.


Import of csv not matching on person data

@deb_sacr: 2021-07-13 17:39:12
I'm trying to import a csv UTF-8 with the following field names: DONATIONPAYMENT DONATIONTYPE DONATIONDATE DONATIONAMOUNT DONATIONCOMMENTS PERSONFIRSTNAME PERSONLASTNAME Data is mapping to the correct fields, however the donors are pre-existing in the database and it is not picking up the match even though I'm ticking "Merge duplicate records", and is creating a new person record for each and every donation line. This is a copy/paste of the template I used last year for this task. Is anyone able to spot what I'm doing that's breaking the import?

@robinrt: 2021-07-14 09:16:01
The system cannot deduplicate person records with just the first and last name. You need to supply either PERSONEMAIL or PERSONCELLPHONE since these contain unique values for deduplication. Or, you can supply PERSONADDRESS where the triplet of first name, last name and first line of address will be used.

@deb_sacr: 2021-07-14 13:37:06
Thank you, I will go and try that now!

@deb_sacr: 2021-07-23 15:49:32
Thank you, that fixed the problem. I've updated my import template to not repeat the problem in the future. Is there any way of being able to dedupe on import using the unique person ID?

@robinrt: 2021-07-23 16:41:47
not right now, but that's a good suggestion for the future. I think there's an unrelated import job to do so I'll put a note on that


Online form issue

@sjras: 2021-07-13 03:07:10
Our office just let me know that they're having an issue with the online forms that people are submitting. The issue they're seeing is if someone fills out a form which asks for their address. The field is currently set to text, and that used to work. Since update that allowed us to require the 2 letter format for state abbreviations it comes in correctly if someone uses that format, but comes in blank if they type out the name of the state, misspell or use periods in the abbreviations. I just went into the settings of the field and there doesn't seem to be a way to change this without making it a look up field and us typing in all 50 states (we routinely adopt to local states, but we also DO adopt to states further away, especially when it's an animal with specific needs or more rare breeds.) I'm guessing this would also affect all forms, and we have a lot of them (since they make life SO much easier - thanks for giving us that option btw!) lol Just wondering if there's a work around for this or if I should get busy typing, copying & pasting 😄.

@robinrt: 2021-07-13 08:45:03
As you said, the only workaround is to make your state field a lookup containing the states. The values for the lookup would be: AL|AK|AZ|AR|AS|CA|CO|CT|DC|DE|FL|FM|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA| ME|MH|MD|MA|MI|MN|MS|MO|MP|MT|NE|NV|NH|NJ|NM|NY|NC|ND|OH| OK|OR|PW|PA|PR|RI|SC|SD|TN|TX|UT|VT|VI|VA|WA|WV|WI|WY (remove line breaks when you copy and paste) I'd maybe add your state code at the front so it's the first option since I guess that's where most of your form fillers will be?

@sjras: 2021-07-15 01:51:56
Thanks for always replying so quickly! And thanks for saving me the typing - I'd have been happy to do it, just wanted to make sure we needed to do it. Thanks again! 🙂


How to know if an email has bounced?

@ketalabama: 2021-07-12 13:52:03
Hi. We are exploring different ways to leverage the email functionality within ASM. For example, after processing an adoption being able to select a template of things to know for new adopter and sending to their provided email. But we all know sometimes email addresses have typos etc. I've done a few tests to see how we are notified if that happens. But i'm not seeing it come in a bounceback to the "from" email inbox or on the animal log. Appreciate any feedback on this topic. Thanks!

@robinrt: 2021-07-12 13:57:28
Hi, if you're using hosted SM with us, bounced emails will be forwarded to the bounce address. You can configure what that address is under https://sheltermanager.com/my/ with your master username and password.


Hide dropdown boxes on website interface when there are no dogs available

@iming: 2021-07-12 02:10:58
Hello, Just wondering whether there is a way to hide those dropdown boxes (i.e. Species, Age & Sex) on the website when we have no dogs available for adoption? Currently, it shows those 3 dropdown boxes and then blank underneath. I would like to show a message like "Sorry no dogs available for adoption at this moment. Please check back later". Once again, thank you for your help on this matter. Iming

@robinrt: 2021-07-12 14:08:03
You could do it with javascript. Teaching programming is outside the scope of our support, but here is an example that will hide the filter dropdowns and show your message if there are no animals: ``` <script> setTimeout(function() { if (document.getElementsByClassName("asm3-adoptable-item").length==0) { document.getElementById("asm3-adoptable-filters").style.display = "none"; document.getElementById("asm3-adoptable-list").innerHTML = "Sorry no dogs available for adoption at this moment. Please check back later"; } }, 1000); </script> ```


Broken rabbit view

@lisazorn: 2021-07-08 18:37:46
Hi ASM! I was testing website integration and put an iframe in the description of this animal and it's broken their view (so I can't fix): https://us15b.sheltermanager.com/animal?id=495 Would you mind fixing? How should I handle this in the future? (my shelter is nl2089) thanks!

@robinrt: 2021-07-09 09:13:22
Fixed now. Very interesting that it allowed you to do that and break things! I'll raise an issue to investigate that.

@lisazorn: 2021-07-10 21:19:16
Thank you!!

@lisazorn: 2021-07-31 23:16:51
Hi again - shoot, I did it for this bunny as well: https://us15b.sheltermanager.com/animal?id=423 (sorry!!) Do you think it's possible to strip the html from description when you render the shelter manager page for the animal?

@robinrt: 2021-08-01 11:58:23
What's happening is that any entities are being encoded when stored in the database, but the front end is decoding them before putting them in the box. We do this mainly for foreign languages where unicode code points are being used. I've fixed your rabbit now. Out of interest, why are you putting iframes and HTML content in a description field? Those things would be better added to any templates you are using to output animal pages.

@lisazorn: 2021-08-03 02:59:53
It's because our social media manager posts lots of content (mainly videos) to facebook so in the past, we have embedded the facebook videos to the rabbit description. It seems like we should upload the video directly to shelter manager instead...

@lisazorn: 2021-08-03 03:05:59
Aaah and now i see i can't upload video media to shelter manager. Hmm... What's the recommended way to share video content?

@lisazorn: 2021-08-10 03:41:39
Argh I'm sorry - one more from another volunteer: https://us15b.sheltermanager.com/animal?id=495

@robinrt: 2021-08-10 09:17:18
Ok, here is the query to fix these yourself at Settings->SQL Interface: ``` UPDATE animal SET AnimalComments = '' WHERE ID = X ``` Substitute X for the animal's ID number - it's in the address bar when you view it, eg: animal?id=1234

@lisazorn: 2021-08-10 20:17:33
Got it, thank you!!


Animal age

@lica2440: 2021-07-05 18:06:12
When I used to look at a kittens profile, it would show the age in weeks, (ex. "aged 16 weeks") but is now showing it in months instead. (ex. showing a 13 week old kitten as "aged 2 months") How can I fix this so it shows the age in weeks again?

@robinrt: 2021-07-09 09:10:14
The change has already been reverted. If you are still seeing this on some animals, run Settings->Trigger Batch Processes->Recalculate Animal Ages.


Incoming form edit

@jimdunne: 2021-06-30 12:30:03
Is it possible to edit the data on an incoming form? I inadvertently put the wrong title on the lastname field so cannot use the 'create person' function.

@robinrt: 2021-07-02 09:27:50
Not without modifying the database directly with queries. You could also create the person record manually and use Attach->Person.


Search box at top of page change?

@a_sarah: 2021-06-29 20:51:20
I add alternate name spellings, FKAs, AKAs, common site info, special notes in the "hidden comments" field. It seems that the "Search" box at the top of the page is no longer looking at this field. This is very inconvenient. Has anyone else had this problem? Is there a way to search this field now?

@robinrt: 2021-07-02 09:29:19
The advanced find animal screen allows searching hidden comments.


User Guide

@janine_awspe: 2021-06-29 07:36:47
I have downloaded the Setup Manual and was wondering if you also have a User Guide for ASM3. Something a first time user or someone not too familiar with the programme can make use of.


Merge Owner fields

@janine_awspe: 2021-06-24 08:07:55
How do I merge Owners's details? We have many owners with the same details but every time they are put into the system a new record is created. I'd like to merge all the same Owners into one record.

@robinrt: 2021-06-24 09:09:52
There's a merge button on the person toolbar. Start from the person who has the most info on file, click merge, choose a duplicate and it will merge any records (eg: medial, movements, etc) from the selected record to the open one. It will not merge the details - you have to do that by hand if one of your duplicates has extra values not present in your chosen survivor record.


Payments

@mdeprima1964: 2021-06-23 08:38:54
I really need more documentation on how payments work. Maybe it's really intuitive and I missed the boat? I have the adoption fee set for every cat, but sometimes when I create my contract document adoptiondonation contains the fee, sometimes it's 0.00. I don't know how to create a payment due when I change a reservation to an adoption, or when I just do an adoption movement. Then how do I fulfill it? If this is all in the manual, please just point me to the section. But when I go to the payments section, I don't see any of this detail. Thanks

@robinrt: 2021-06-23 09:35:59
Editing movements under the movement tab will not change payment data. If you use the workflow screen at Move->Adopt an animal, this will prompt to create a payment record for the amount of the adoption fee on the animal. It will also automatically turn a reservation into an adoption if one is present for the same person you are processing the adoption for. By default, payments on the Move->Adopt an animal screen are marked received, but you can change that to due with the option under Settings->Options->Movements. You can also choose to show both due and received dates with the option under Settings->Options->Accounts If I'm understanding the fulfil question and you mean marking the payment received, you can do that from the payment tab of the animal or person, or from the Financial->Payment Book screen (there's a filter for due payments).


Listing Vaccinations on a Document

@mdeprima1964: 2021-06-23 08:33:20
I'm trying to list all the FVRP's given to a kitten on a medical document. If I use <<VaccinationGivenRecentFVRCP>> I get the most recent FVRCP. I've tried the following to get a list of vaccinations with no luck... <<VaccinationGivenLastFVRCP1>> (and 2 and 3) <<VaccinationGivenLast1FVRCP>> I didn't really think this would work <<VaccinationGivenRecentFVRCP1>> What the heck is the construct?

@robinrt: 2021-06-23 09:29:48
Short answer is that you can't. You can only access the first and last of any vaccination by type. In this case, VaccinationGivenFVRCP for the first and VaccinationGivenRecentFVRCP for the last. Not sure if it's useful for what you're doing, but there's a token <<AnimalVaccinations>> that will just output a table of all vaccinations given to the animal.

@mdeprima1964: 2021-07-02 05:05:32
My struggle is trying to separate rabies from fvrcp. Thank you!


insert space in string output for cage cards

@ibesky: 2021-06-21 16:10:56
I'm trying to add some custom flags that I put in via additional fields into our cage cards. I got the flags to show up on the cage card (used the cage card with QR code as a template), but I'd like to put a space (or a carriage return) in between each flag if it is at all possible. My syntax for adding is (* at beginning of row designates added code to original report) (SELECT NAME FROM lksyesno WHERE ID = animal.HasActiveReserve) AS reserved, *(SELECT Value FROM additional WHERE LinkID=animal.ID AND AdditionalFieldID=20) AS af_20, *(SELECT Value FROM additional WHERE LinkID=animal.ID AND AdditionalFieldID=18) AS af_18, *(SELECT Value FROM additional WHERE LinkID=animal.ID AND AdditionalFieldID=19) AS af_19, animal.breedname, I get an output like this: [Screenshot_49](//muut.com/u/sheltermanager/s1/:sheltermanager:N8nW:screenshot_49.png.jpg) Output HTML: <tr> <td colspan="1"><font size="5">Color Level:</br>$AF_18</td> <td colspan="1"><font size="5">Flags:</br>$AF_20</td> <td colspan="2"><font size="5">NOTICE:</br>$AF_19</td> </tr> Any help to fix the formatting would be appreciated.

@robinrt: 2021-06-21 17:22:59
You could edit the query line for AF20 to substitute spaces next to the commas as below. Note that any modifications made manually to the query will be lost if you use the query builder. ``` (SELECT REPLACE(Value, ',', ', ') FROM additional WHERE LinkID=animal.ID AND AdditionalFieldID=20) AS af20, ```


Process of migrating ASM2 to ASM3

@janine_awspe: 2021-06-17 08:47:01
Hi there! Can you please give me a run down of the process to get our unhosted ASM2 migrated to a hosted ASM3? What's the procedure to follow and what files etc do we need to provide and when? We have some edits to make to the current data (kennels/owner info etc). When do we do this?

@robinrt: 2021-06-21 17:21:10
Hi, the first step is to sign up for an account, then send the files over to us at help@sheltermanager.com for import. Info on which files we need can be found here: https://sheltermanager.com/site/en_faq_asm2.html


HTML and CSS in animal description

@srupe05: 2021-06-12 21:51:32
Is there a way to use html and/or css coding in the animal description so it appears on the website. Specifically using the animalview html template. When adding to the animal comments, the output is not very readable with an abundance of information. Would like to break it up with paragraphs, line breaks and add links to outside websites for more information.

@robinrt: 2021-06-13 08:42:41
Use $$DESCRIPTIONBR$$ in your template to turn line breaks into <br> tags. It is not possible to put links in the animal description as it is XSS protected. You can put links in the animalview template.


Keeping history and Backup/restore

@scordeau: 2021-06-11 15:46:06
Hi Robin, We have a vet that helps us and she uses ASM to log the medical treatments of our animals. We have ASM online. Here in Quebec, Canada, the medical files need to be conserved 5 years after the animal quits the shelter. Do all the datas are conserved, always, no matter the date we've entered it ? What's the better way to conserve ASM data for this long since now ? And how to restore an older db to another database if we need to? Thanks in advance for your response :). Stéphanie Cordeau

@robinrt: 2021-06-13 08:47:10
Yes, data is kept indefinitely unless you delete it. If the reasons for removing data were related to personal data, then there are options under Settings->Options->Data Protection to anonymise personal data after a number of years. We prefer to anonymise rather than removing because removing would prevent you being able to run historic figures and stats. I can understand it with personal data, but why would you need to remove animal data after 5 years? When you say older db, could you clarify what you mean? We keep 6 weekly rotated backups off-site and can restore your database back to a point upto 6 weeks ago.


QR on passport

@audraf: 2021-06-09 19:45:45
We have a form made in ASM I'd like to add a QR code of that form to our animal passports (so another ASM form). What's the best way to do that?

@robinrt: 2021-06-10 12:13:00
You'd have to use an img with a URL to the google charts API to generate the QR for the form link. https://developers.google.com/chart/infographics/docs/qr_codes

@audraf: 2021-06-10 21:58:30
Ok, I really do not understand what this means.

@audraf: 2021-07-08 18:09:26
Is there anyone who can help with this?

@robinrt: 2021-07-09 09:18:50
Follow the developers link above, it shows you how to construct an image URL to a QR code. You need to replace the Hello World in their example with the target URL to your form. Once you have that you can put an img tag in a raw markup type field on the form you want the QR code to appear. Eg: ``` <img src="https://chart.googleapis.com/chart?cht=qr&chs=150x150&chl=Hello+world" /> ``` That will output the QR code image in your first form.


Forms report between two dates

@do724172: 2021-06-03 20:32:31
Does anyone have a report to pull incoming forms between two dates? Is this even possible?

@robinrt: 2021-06-04 09:36:43
You can use the "Incoming forms queue" report to get at incoming forms themselves. If you mean forms once they've been attached to records, there's a report called "View forms/documents attached between two dates"


Additional fields in document template

@jimdunne: 2021-05-31 12:35:54
I have created a new document that will print animal details with medical history to take with an animal when it goes to the vet. I would like to include some of our additional fields relating to condition on entry. I have a sub-report that prints the info on report; SELECT af.FieldLabel, CASE WHEN af.FieldType = 8 THEN (SELECT AnimalName || ' - ' || ShelterCode FROM animal WHERE ID = a.Value::int) WHEN af.FieldType = 9 THEN (SELECT OwnerName || ', ' || OwnerAddress FROM owner WHERE ID = a.Value::int) ELSE a.Value END AS Value FROM additional a INNER JOIN additionalfield af ON a.AdditionalFieldID = af.ID WHERE a.LinkType IN (0, 2, 3, 4, 5, 6) AND a.LinkID = $PARENTKEY$ which produces the info below; [Screenshot 2021-05-31 122726](//muut.com/u/sheltermanager/s1/:sheltermanager:HLTB:screenshot20210531122726.png.jpg) I cannot find any keywords that relate to this info. How can I add this info to a document template please?

@robinrt: 2021-06-04 09:38:16
You can just put your additional field name in the document template. Eg: <<MyFieldName>>


Show animal age instead of age group on the website

@iming: 2021-05-30 14:05:37
When you show animal ready for adoption on the website, how do you show the age (like 1y 11m) instead of the age group on the summary list (before you click an animal to get more information)? I feel the age showing in the backend is more useful than age group.

@robinrt: 2021-06-04 09:39:31
Hide the age group and use the "extra content" feature to show the age: https://sheltermanager.com/repo/asm3_help/service.html#extra-content a.ANIMALAGE will give the age in years/months.


Ages of Pets Not Being Published to Rescue Groups Website

@vikib: 2021-05-23 16:53:51
We use the Rescue Groups toolkit to publish our animals on our website. However, the age in years and months shows as blank. If you would like to see, www.dixiepaws.org/adoptable-pets. Our account is vb0822. Thank you for your help.

@robinrt: 2021-05-23 17:08:15
Hi, unless it's changed, the RescueGroups import spec doesn't allow us to send them a date of birth. Instead, we can only send a PetFinder style age group (Baby, Young, Adult or Senior)

@vikib: 2021-05-23 17:15:44
OK, thank you for the info.

@vikib: 2021-05-23 18:42:36
I just found out from Rescue Groups that there is a birthdate field.


wordkey question

@sjras: 2021-05-20 19:37:22
We're importing records from our vaccine clinics and ran in to a question. All of the pets are non-shelter and we have all of the animal wordkeys set to go. We hit the owner information and didn't know whether they should be listed as original owner or current owner or just person in order to be imported as the pet's owner in the import. We'll try testing with one of each to check it out if we're ready before there's any input, but figured we'd ask to see if anyone else has already invented this wheel 😄 THANKS!!

@sjras: 2021-05-21 01:00:16
Answered it ourselves - it's original owner in case anyone else ever needs the answer 🙂


TemplateType Internal server error

@factor: 2021-05-19 17:25:07
I have ASM3 deb package, Debian 10, MariaDB 10.5. All installed well no install issues I can see. The stock system works well. I am new as in only using for 2 days. I am logged in a User aka The superuser. I am creating a TemplateType animal. I try to follow this: http://myserver/asm3/static/pages/manual/animals.html#template-animals I named the animal "TemplateType", choose non shelter check box, Set the Type field to SC (Stray Cat), added on Vaccine FVRCP When I add new animal I get internal server error. I creates the animal but without template tests etc. [Screen Shot 2021-05-19 at 11](//muut.com/u/sheltermanager/s3/:sheltermanager:xDpf:screenshot20210519at11.19.06.png.jpg) [Screen Shot 2021-05-19 at 11](//muut.com/u/sheltermanager/s3/:sheltermanager:6yET:screenshot20210519at11.17.13.png.jpg) [Screen Shot 2021-05-19 at 11](//muut.com/u/sheltermanager/s1/:sheltermanager:aA3W:screenshot20210519at11.18.01.png.jpg) Thoughts? If add with type without template works as normal.

@factor: 2021-05-19 19:51:16
Ok in looking at syslog I find. CRITICAL sm_db Database.execute (1292, "Incorrect datetime value: '`2021-05-19 13:47:29`' for column `sm_db`.`animalvaccination`.`DateRequired` at row 1") File "/usr/lib/sheltermanager3/asm3/dbms/base.py", line 296, in execute#012 s.execute(sql, params) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 250, in execute#012 self.errorhandler(self, exc, value) File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler#012 raise errorvalue File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 247, in execute#012 res = self._query(query) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 411, in _query#012 rowcount = self._do_query(q) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 374, in _do_query#012 db.query(q) File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 292, in query#012 _mysql.connection.query(self, query) _mysql_exceptions.OperationalError: (1292, "Incorrect datetime value: '`2021-05-19 13:47:29` May 19 13:47:51 atlas CRITICAL sm_db Database.execute failing sql: INSERT INTO animalvaccination (AnimalID,VaccinationID,DateRequired,DateOfVaccination,DateExpires,Adm inisteringVetID,BatchNumber,Manufacturer,Cost,Comments,CreatedBy,LastChangedBy,CreatedDate,LastChangedDate,RecordVersion,ID) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) [23, 9, '`2021-05-19 13:47:29`', None, None, 0, '', '', 0, '', 'bdacus01', 'bdacus01', datetime.datetime(2021, 5, 19, 8, 47, 51, 827041), datetime.datetime(2021, 5, 19, 8, 47, 51, 827200), 84751, 7]

@factor: 2021-05-19 20:14:14
I checked "date" and timedatectl I see in the asm3.conf # The timezone offset to use before one has been configured # in the database (+/- server clock offset, NOT UTC) timezone = 0 Do I set this to America/Chicago? OR -6 OR leave it as 0 . The comments are very clear.

@factor: 2021-05-19 20:19:55
Sorry, The comments are not very clear.

@robinrt: 2021-05-20 08:48:16
I don't think the error is related to your timezone. That's a MySQL error and it's showing the DateRequired column is being rejected due to an invalid value. '2021-05-19 13:47:29' is a valid datetime value, I don't understand why this is happening.

@factor: 2021-05-20 15:40:39
Right it seems to be related to the Insert. I did find something about Day light savings time. on 1292, "Incorrect datetime value: I find https://www.tutorialspoint.com/how-to-fix-the-incorrect-datetime-value-while-inserting-in-a-mysql-table https://mariadb.com/docs/reference/mdb/data-types/DATETIME/ https://jira.mariadb.org/browse/MDEV-13358 https://bobcares.com/blog/mysql-error-1292/ https://stackoverflow.com/questions/35602939/mysql-1292-incorrect-datetime-value https://dba.stackexchange.com/questions/282890/warning-1292-incorrect-datetime-error-when-using-date-add Not sure if these help.

@factor: 2021-05-20 15:56:48
this to https://www.xspdf.com/resolution/50960049.html Mariadb invalid datetime format SQLSTATE[22007]: Invalid datetime format: 1292 , cnf and verify mysql variables for this question. MariaDB [(none)]> select @@​GLOBAL. In MariaDB 10.1.2 a new temporal format was introduced from MySQL 5.6 that alters how the TIME, DATETIME and TIMESTAMP columns operate at lower levels. These changes allow these temporal data types to have fractional parts and negative values. You can disable this feature using the mysql56_temporal_format system variable. DATETIME, SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2008-​03-30 02:56:12' for column 'created_at' at row 1 (S. QL: insert Invalid datetime format: 1292 Incorrect datetime value: '2011-03-27 02:47:26' Log In. Powered by a free Atlassian Jira open source license for MariaDB Corporation Ab. [MDEV-10068] Invalid datetime format: 1292 , SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime. The reason for this by default MariaDB's sql mode has NO_ZERO_DATE MariaDB starting with 10.3.2. Optiona lly, the locale can be explicitly specified as the third DATE_FORMAT() argument. Doing so makes the function independent from the session settings, and the three argument version of DATE_FORMAT() can be used in virtual indexed and persistent generated-columns:


Getting strange error when trying to add a new person

@rementis: 2021-05-18 01:10:25
From asm.log file: 2021-05-17 16:55:33 INFO asm users.login rementis logged in 2021-05-17 16:55:33 DEBUG asm code.person_new add person 2021-05-17 16:55:55 CRITICAL asm Database.query (1305, 'FUNCTION asm.REGEXP_REPLACE does not exist') File "/usr/lib/sheltermanager3/asm3/dbms/base.py", line 561, in query s.execute(sql, params) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 250, in execute self.errorhandler(self, exc, value) File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler raise errorvalue File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 247, in execute res = self._query(query) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 411, in _query rowcount = self._do_query(q) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 374, in _do_query db.query(q) File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 292, in query _mysql.connection.query(self, query) _mysql_exceptions.Oper ationalError: (1305, 'FUNCTION asm.REGEXP_REPLACE does not exist') 2021-05-17 16:55:55 CRITICAL asm Database.query failing sql: SELECT o.*, o.ID AS PersonID, ho.OwnerName AS HomeCheckedByName, ho.HomeTelephone AS HomeCheckedByHomeTelephone, ho.MobileTelephone AS HomeCheckedByMobileTelephone, ho.EmailAddress AS HomeCheckedByEmail, lfa.ID AS LatestFosterID, lfa.AnimalName AS LatestFosterName, lfa.ShelterCode AS LatestFosterShelterCode, lma.ID AS LatestMoveAnimalID, lma.AnimalName AS LatestMoveAnimalName, lma.ShelterCode AS LatestMoveShelterCode, lmat.MovementType AS LatestMoveTypeName, j.JurisdictionName, web.ID AS WebsiteMediaID, web.MediaName AS WebsiteMediaName, web.Date AS WebsiteMediaDate, web.MediaNotes AS WebsiteMediaNotes, doc.MediaName AS DocMediaName, doc.Date AS DocMediaDate, (SELECT MatchSummary FROM ownerlookingfor olf WHERE olf.OwnerID = o.ID GROUP BY MatchSummary) AS LookingForSummary FROM owner o LEFT OUTER JOIN owner ho ON ho.ID = o.HomeCheckedBy LEFT OUTER JOIN adoption lf ON lf.ID = (SELECT MAX(ID) FROM adoption slf WHERE slf.OwnerID = o.ID AND slf.MovementType = 2 AN

@robinrt: 2021-05-18 09:13:09
Your version of MySQL does not support REGEXP_REPLACE which is needed for search (specifically phone numbers). It was added in MySQL 8


Robust Manual

@mdeprima1964: 2021-05-09 03:30:20
Is there another, more detailed manual available other than the one you see directly from the drop down next to your name in Shelter Manager?

@robinrt: 2021-05-09 08:55:03
No, that's the manual and the only one available. Is there something you were looking for more info on?

@factor: 2021-05-19 20:27:44
My suggestions would be. A system requirements page CPU RAM Storage Preferred OS > the one you dev on. DB server versions A full install guide for both Source and DEB install. Full documentation of asm3.conf

@bkrodle: 2021-05-20 14:29:14
If you pay their very small hosting fee then you won't need all that information. We use the program on windows and ipad, through the app and desktop version. We use it with Safari, Chrome, IE7, and Edge. I haven't tried others but I'm sure they will work too. Our old 8 plus years computers ran it and our news ones do too with no performance issues. I understand not everyone can buy the hosting but for us it was the best and easiest option., We just paid the fee, recieved an email with login iformation and got right to work. The documents were a little challenging at first, but once we read through the manual and figured out the word keys we needed we adapted almost every existing document to produce the information we wanted. Reporting is easy too, I don't do SQL, but the existing reports have everything I need.

@factor: 2021-05-20 15:22:55
"If you pay their very small hosting fee then you won't need all that information." I am testing the system. It's available as open source . It should be fully documented. The best way to further a system is community involvement. To be involved we have to fully understand the application developers intentions. Full documentation is the key to that. "easiest option" I totally get it. If you are not a Tech person or dont have an IT department. Its the best way. I was just adding suggestion since the OP hasn't come back yet.

@mdeprima1964: 2021-05-24 15:52:40
Nothing specific right now, but I run into things that aren't in the manual or that I need more detail on. I'll just come here ;-)

@bkrodle: 2021-05-24 15:55:50
There is also ASM Rocks! on Facebook. Lots of good questions being answered there too.


Incoming forms not deleting

@mdeprima1964: 2021-05-09 03:27:22
My incoming applications are not being deleted after I process them. The result is that I process them twice, end up with 1 person record, but the same application attached twice. I have to delete them manually after I process them. This used to work for me.

@robinrt: 2021-05-09 08:56:00
Have you got the option on to delete forms when you leave the screen? The option is under Settings->Options->Online Forms. If you do, make sure you leave the screen by navigating to another SM screen, such as home by clicking on the icon at the top left or pressing CTRL+H

@mdeprima1964: 2021-05-24 15:49:53
I do have the option set. I'll be more careful when I exit the page and see if that helps.


Incoming Phone Number Formatting

@mdeprima1964: 2021-05-09 03:24:05
The phone numbers on my incoming applications are not being formatted on the person record. They're being displayed as a string of 10 numbers. How can I invoke the new formatting for incoming records?

@robinrt: 2021-05-09 08:57:40
I'm afraid you can't. The fix would be for us to have a phone number field type that applied the formatting within the form so that the person entering the number can make sure there are no problems.

@mdeprima1964: 2021-05-24 15:51:14
Is there anything I can do that will trigger the formatting? Like add a space to the phone number and the delete it? It would still be shorter than reformatting by hand.

@robinrt: 2021-05-24 17:24:15
The trigger is the blur event, so opening the record and clicking in and out of the phone field will format it.


Day of week on report

@cemerick: 2021-05-06 03:30:37
I would like to get the day of the week from a date. I’ve tried a couple of things and I can only get the day part of the date, so 3 for 03 May, for example. I would like to get Mo day or MON or something.

@robinrt: 2021-05-06 09:11:15
Assuming you're on sheltermanager.com with PostgreSQL, just use TO_CHAR. Eg: ``` TO_CHAR(datecolumn, 'dy') ```

@cemerick: 2021-05-06 13:47:21
The one thing I didn’t try. Thank you!


Audit records

@lynnep: 2021-05-01 19:29:17
Are audit records deleted after a certain period? Is there any way to select how long they should be kept?

@robinrt: 2021-05-03 10:27:12
They are deleted after 6 months to save space. It is not configurable.


Form attachments

@jimdunne: 2021-04-30 12:52:11
Is it possible for the person completing an incoming form to add an attachment?

@robinrt: 2021-05-03 10:26:54
No. They can only upload one or more images.


Creating an animal profile for shelter entry in the future.

@parrotbob: 2021-04-26 21:40:54
I am wondering if there is a way to enter information on animals that are to be surrendered, but haven't arrived to the shelter yet. We are trying to improve on our surrender management process and, since the animals will be migrating into shelter manager when they get here, it would make sense to start the data entry process as early as possible. The problem I'm seeing is that the dates available to me (like date entering the shelter) will not allow for dates in the future. I have created a "person flag" called "surrendering party" which helps to identify the people who will surrender. Of course I can create the animal profile and I can create a "location" pool which essentially bundles all the animals yet to be received into one "place," My problem is that I either need to leave the date entering the facility blank or try to get a date that is somewhere in the future. That seems to be my primary roadblock in making this work. Any ideas on how to make this work?

@robinrt: 2021-04-27 08:56:25
Hi, the system allows intake dates to be set upto 30 days in the future. How far ahead are you wanting to enter dates?


Transport Wordkeys

@jensfissenebert: 2021-04-23 09:15:38
Hi Robin, I can't find any Wordkeys for the transport field. Are they available?

@robinrt: 2021-04-24 16:32:00
https://sheltermanager.com/repo/asm3_help/wordkeys.html#transport-keys

@jensfissenebert: 2021-04-25 13:17:03
Thanks for the link. Haven't seen as we still run the older version I believe. Many thanks again and also a word of appreciation for your effort and time to the replies on the forum and an amazing program!


Multiple Animals per Document / All Animals per Owner

@jensfissenebert: 2021-04-22 15:28:20
Hi Robin, Is there a way to create a document for an owner with all animals he owns? For example issuing Travel Certificates per owner instead of creating one document per animal?

@robinrt: 2021-04-24 16:33:05
That's a good question. I can't think of a way to do that. Are the animals linked via movements or as non-shelter animals with links to the owner?

@jensfissenebert: 2021-04-25 13:14:43
Thanks a lot for your reply. They are linked as non shelter animals to the owner. Only other option I can think off would be tu run a report "Animals per Owner" but I am not sure if that would be possible either?

@robinrt: 2021-04-26 09:57:45
It would be easily possible with a report. You could use the $ASK PERSON$ criteria to choose the person and join to the animal table via animal.OriginalOwnerID. Group by owner for the header and output a $$BODY section for each animal. Doing this would require some knowledge of SQL and HTML.


Online form deleted by error

@scordeau: 2021-04-22 01:01:46
Is there a way to retrieve an online form/or the media related to it that has been deleted by error? The form has not been linked with nothing before deletion. I see the ID of the media that has been deleted in the auditing report Audit trail : deletions by date, with certain technical information about the media and onlineform, but nothing to help me retrieve the information I need. A new user error, he has not deleted the good one, and now we are missing the information of the owner, no way to contact the person... Thank you for your help.

@robinrt: 2021-04-22 09:43:27
Hi, email help@sheltermanager.com with your account number and we'll get it restored for you.


Foster medical email

@audraf: 2021-04-14 20:51:00
I'm interested in using this, is there an example of what the email looks like?

@galia: 2021-04-14 21:27:46
Hi, Sorry it is in French this is the email I got from ASM 3 foster family email I hope it gives you the idea Tim ==================================================================== Bonjour, Ceci est un e-mail automatique du logiciel de gestion des animaux de l'Association Galia. Vous recevez ce courriel parce qu'un animal dont vous avez chez vous peut nécessiter des vaccinations ou une autre intervention médicale. Veuillez vérifier dans le carnet de santé et nous signaler si le traitement est déjà effectué ou si vous avez besoin d'un bon vétérinaire pour effectuer ses soins. Merci à vous ________________________________________ Placé en famille d'accueil à Tim Hetherington depuis 09/01/2021 BESSY - D2021025 Femelle Labrador/Griffon Chien âgé de 7 années 1 mois. Placé en famille d'accueil à Tim Hetherington depuis 03/03/2021 ATTENTION : Cet animal a plus de 6 mois et n'a pas été castré/stérilisé Articles médicaux à venir 26/03/2021: 2em-Rappel 1 1/1

@audraf: 2021-04-14 23:33:23
Is it possible to edit?


Financial Report pulling only certain PaymentTypes.

@mmover: 2021-04-12 20:45:11
Is there a way that I can run a report that will only pull payments made within a date range to a certain DonationType (account) ? I've found the ID numbers I want to pull (210, 211, 212) but I can't seem to get the SQL to work. Here is what I have: 1 $VAR from DATE Enter from date$ 2 $VAR to DATE Enter to date$ 3 4 SELECT 5 ownerdonation.Date, 6 owner.OwnerName, 7 donationtype.DonationName, 8 Donation AS amt, 9 donationpayment.PaymentName 10 FROM ownerdonation 11 INNER JOIN owner ON ownerdonation.OwnerID = owner.ID 12 INNER JOIN donationpayment ON donationpayment.ID = ownerdonation.DonationPaymentID 13 INNER JOIN donationtype ON donationtype.ID = ownerdonation.DonationTypeID 14 WHERE ownerdonation.Date BETWEEN '$@from$' AND '$@to$' 15 ORDER BY donationtype.DonationName, ownerdonation.Date I thought adding between line 14 and 15 something like: AND ownerdonation.DonationTypeID = (210, 211, 212) But it gives me this: operator does not exist: integer = record LINE 15: AND ownerdonation.DonationTypeID = (210, 211, 212) ^ HINT: No operator matches the given name and argument types. You might need to add explicit type casts. I feel like the answer is right in front of my eyes and I just can't see it. I blame it on a Monday.

@robinrt: 2021-04-13 09:19:14
You're supplying a list of values instead of an expression. Use an IN clause instead: ``` AND ownerdonation.DonationTypeID IN (210, 211, 212) ```

@mmover: 2021-04-13 14:26:13
Thank you so much!


WordKey for Foster Carer

@willowtree: 2021-04-12 07:44:47
Is there a wordkey to use in documents for the person who looked after the animal before it was adopted?

@robinrt: 2021-04-12 09:55:11
There isn't. You can only access the active foster carer info until the animal is adopted, then <<CurrentOwner*>> and <<Owner*>> become the adopter.


Online form to create animal - ReasonForEntry field

@scordeau: 2021-04-10 08:24:07
Hi, I want to ask the person who is bringing us an animal, for what reason. We uses the field ReasonForEntry from the Animal table when creating manually an animal, but I cannot feed this field via an online form. Why? Thank you :)

@scordeau: 2021-04-10 08:26:22
We want the person to explain, we don't want them to chose an EntryReason from the system.

@robinrt: 2021-04-10 10:22:31
It's just not on the list of supported fields. It's a good suggestion though, so I'll put it on our development list to add.

@robinrt: 2021-04-10 15:41:47
if you're using sheltermanager.com I added it with this morning's update. If you have a field named "reason" in your online form, it will be applied to the reason for entry field when creating animals from the form.

@scordeau: 2021-04-15 05:01:18
It works, thank you very much!


Sex By default

@scordeau: 2021-04-10 04:30:25
When creating animals via online forms, the by default sex value of the created animals is "Female". The sex field is not listed in the fields we can sets a by default value. Also, when I try to set a value to the sex field via the online form, it doesn't work. I think that the best way to resolve this problem is to set a by default value to the sex field ? Can you check this? Thanx!

@robinrt: 2021-04-10 10:20:36
You can have a field named "sex" in your online form. Make sure that you name it in lower case - "Sex" won't work.

@scordeau: 2021-04-10 15:23:34
Thanks, I will try this

@scordeau: 2021-04-15 05:09:17
Ok, i've retried and it's not working. If I enter other value than Female or Male, not working. We are in Quebec city in Canada so I use french canadian language, maybe a transaltion problem ? In table lksex, I have 3 values : ID null = "Femelle" (Female in english), ID 1 = "Mâle" (Male in english), and ID 2 = "Non sexé" ("Sex not define" or something like that in english). So, a lot of our animals entered via online forms needs to use the value of the ID 2 "Non sexé". Not working. Male works. Female too. But not the other value. I tried to change the value in the table to test, not working niether Any idea ? Thank you!

@scordeau: 2021-04-22 01:02:50
Need help with this, is there another way, a better way to contact ASM to help me debug this ? Thanks!

@sjras: 2021-04-22 04:07:49
We have the option of Male, Female and Unknown in our online forms and they've been working for as long as I can remember, so maybe Unknown would get you up and running?

@scordeau: 2021-04-23 21:38:47
I will try this :)


Website Integration for Animal Database

@lisazorn: 2021-04-08 21:21:36
Hello! We have a Drupal website which has a rabbit database for our shelter (http://www.saveabunny.org/rabbits/new). Since we've started using ASM, we find ourselves with two rabbit databases now, and so I'm exploring getting rid of the one on Drupal and switching to using ASM's animal database instead. I created a view of all the rabbits (http://www.saveabunny.org/content/shelter-manager-view) that uses animal-view-adoptable-js (I know it's underscores not dashes, but underscores causes this forum to render in italics) and looks similar to our old version, so my next step is to get the individual rabbit pages to look the way we'd like. ASM rabbit page for Bunny Doon: https://us15b.sheltermanager.com/service?account=nl2089&method=animal_view&animalid=404 Existing rabbit page for Bunny Doon: http://www.saveabunny.org/rabbit/bunny-doon I can think of two options for this: 1) Make the ASM rabbit page look like our existing rabbit page by adding the header, footer, etc elements to the HTML Publishing Template animalview. Pros: Easy enough to do, the current ASM multi -rabbit view already links to this Cons: The URL isn't as friendly compared to our version. Plus, I would need to keep the menus/header/footer etc in sync 2) Make the ASM multi-rabbit view link to a generic SaveABunny rabbit page, with the rabbit name (not used) and animalid as arguments. The SaveABunny page would then have php which would make a call to json_adoptable_animal using the animalid, and then render the rabbit as desired. Pros: The implementation straightforward with the possible exception that I'm not sure how to make the ASM multi-rabbit view link to our pages instead of ASM's animalview; is this doable? Cons: The URL is not predictable here either (without knowing the animalid). This could be a lot of API calls to ASM; is this ok? What do you recommend? (Also open to other options!) Thank you! -Lisa

@robinrt: 2021-04-09 09:07:31
You can have the page open the animal's page in a popup/iframe instead of navigating away so the user never sees the sheltermanager URL. Set asm3-adoptable-iframe = true in your JS. Documentation is here: https://sheltermanager.com/repo/asm3_help/service.html#popup-iframe

@lisazorn: 2021-04-09 19:35:31
Ah interesting, thank you for pointing that out! I think we still want to be able to direct link to an individual rabbit on our site though, for facebook or social media posts; what do you recommend for that?

@robinrt: 2021-04-09 20:29:47
I guess you could rewrite the URLs? Use a javascript delegate event to capture click events to the thumbnails and links we inject in your page and then read the href property of the clicked anchor, extract the animal id and go somewhere else.


Document Template - can I embed scripts or logic?

@lisazorn: 2021-04-08 20:56:37
Hi - I have a Cage Card document template (SAB_Cage_Card.html; our account is nl2089) and I'd like to add some logic to make some attributes more visible to help shelter staff see them. For example, if the diet includes an entry for No Greens, rather than just saying so in text, we'd like to have a graphic that makes it much faster/easier to spot. Is there a way to do this? Thank you!

@robinrt: 2021-04-09 09:05:01
You could use CSS. If you go to Tools->Source, you can put a style tag in your document to choose how to display certain elements. Use the token for your diet as the class attribute of the element to display, then add the appropriate CSS to your style tag to display an image or change the colour, etc.

@lisazorn: 2021-04-12 21:34:26
Thank you, that worked well!


Online forms in web page

@jimdunne: 2021-04-07 18:38:31
Is it possible to embed online forms in our website please, and if so, how is it done?

@adoptamutt: 2021-04-07 20:21:12
Yes. After you create the form, just insert the form URL into your website. Just look under the "Form URL" column in Online Forms for the specific URL.


online forms

@vsauder: 2021-03-30 18:46:22
I am working to put together an online form to allow individuals to register their animals that are microchipped with our shelter. This would allow animal control officers to scan and return to the owners more efficiently. I would like to use the create animal function. Is there a way to set the default type as a non-shelter animal without this being shown to the individual filling out the form?


Date on online forms

@margagomis: 2021-03-27 19:11:13
Hi, I would like to add today's date on an online form but not by choosing the date with a field. I've added a raw field to put html but I can't figure out how get today's date. Thanks!

@margagomis: 2021-03-27 19:19:06
I think maybe it's not necessary because when the document is created there's the formreceived field. Thanks anyway!


Online docs 'show if'

@jimdunne: 2021-03-27 17:00:47
I am trying to add a couple of fields that show if the previous answer is yes - e.g. do you have any allergies - if answered yes, a text box should show to allow details to be added. I have set the 'show if' field to 'allergies=yes' but this does not work. Am I trying to use this field to do something its not meant for, or am I doing it wrong?

@adoptamutt: 2021-03-27 18:38:43
Try =Yes

@jimdunne: 2021-03-28 13:05:00
That worked - thanks!


Document template size issue as PDF

@jzo22: 2021-03-25 19:48:27
When I save a document as PDF, it's squished down (top/left) as though the paper size is smaller. Not sure if there is a setting somewhere that changed or what is happening. Anyone have tips?

@robinrt: 2021-03-26 10:19:08
It's the upgraded version of wkhtmltopdf. You can make it behave the way it used to by going to Settings->Options->Documents and setting PDF zoom to 125%


Online form VS additional field linked to animal found -detail not working

@scordeau: 2021-03-22 02:46:17
Hi, I'm trying to link a field on our online form, to a additional field linked to animal found -details and it's not working. The additional field works fine when manualy creating animal found. Can you help please ? Thank you.

@robinrt: 2021-03-22 09:58:05
The online forms only currently support additional fields for animals and people. They could easily be extended to support lost/found and waiting list too, so I'll put this on our development list.

@scordeau: 2021-03-22 15:01:02
Robinrt thanks for your response. I want to implement an online form to link a people AND an animal at the same time, that's why I'm passing by found animal. Because when I have a online form with both datas (people and animals), I can add an animal, and add a contact, but both are not linked. The contact that came with the animal, we want to know who has "rescued" this animal. Maybe you can tell me another way to add an animal WITH the contact information that appears into our online form ? Have a great day.

@robinrt: 2021-03-22 16:12:01
Hi, I guess this is for a surrender? The expected way is to create a waiting list record from the form and then turn that waiting list into an animal when the animal comes to the shelter. If you have a "reserveanimalname" field in a form (of type adoptable animal) as well as person data, you can create a reservation between the person in the form and the animal. This is more useful for adoption applications.


Hide information

@sodr: 2021-03-21 03:42:16
Is there anyway that you can hide foster carers personal information so other carers cant access it

@robinrt: 2021-03-21 09:04:16
1. Give your fosterers the "Volunteer" flag 2. Make sure that the role you used to grant permissions to your foster carers does not have the permission to view volunteer records. 3. Enable location filters under Settings->Options->Display 4. Give your foster carer user accounts the "My Fosters" location filter so the only animals they are allowed to see are ones in their care.

@sodr: 2021-03-22 03:51:06
thanks .wiil give it a try


Report/Documents Question

@souldog: 2021-03-18 23:27:16
Hi, Our organization is having some struggles with reports as we are all quite inept with SQL. Until Now, we have been able to successfully use the reports and documents that already exist in Shelter Manager. We are trying to provide our fosters with a printout of information on the animals they will be fostering. Ideally we would like to provide them with a printout containing the name, description of the animal(s) (color, breed, sex), vaccination due dates, and medical treatments due all on one sheet of paper. Any help or ideas on how to proceed would be greatly appreciated! Thank you!!

@margagomis: 2021-03-20 06:41:09
Hi, there's a template called "animal_information.html" with all the details that you require. I hope it helps!

@adoptamutt: 2021-03-21 16:22:01
Have you joined the ASM Rocks! Facebook group? We share documents, reports, best practices, etc. Might be helpful to you.


Alerts

@tristana: 2021-03-18 06:05:51
Is their a way to set the alerts local. We have 27 shelters and it will be more effective ( I suspect) if each shelter only see their own animals alerts.

@robinrt: 2021-03-18 10:34:05
Hi, sorry, it isn't at the moment but I will raise this for development.


Media tabs not working

@do724172: 2021-03-17 18:18:44
No one at our org can access the media tabs. When we click, it only loads the top menu buttons and the rest of the page is blank. Any help or input would be appreciated.

@audraf: 2021-03-17 18:31:22
Same problem here

@do724172: 2021-03-17 18:32:51
Oh no. Relieved it's not a mistake on our end.

@homewardcat: 2021-03-17 18:37:15
Same here.

@crazycatladyahs: 2021-03-17 18:58:59
Same. We have been contacting them since 9am Eastern. And noone has responded. Called and emailed several times. We rely on our media to promote our dogs. Keep records of intakes. Make composites to send to rescues. Super frustrating.

@audraf: 2021-03-17 19:28:33
It seems to be working now.


Understanding data behind the report - Annual Figures (by type)

@ketalabama: 2021-03-15 07:03:38
In looking at the construction of this report it relies off of the table animalfiguresannual. I cannot find any information on how the data in this table is derived. I can't find a subtable or explanation. The figures that it is generating don't seem to always match the pure data if looking at ins and outs. Because of that it is hard to tell what might be a total overall (like for intakes) vs a subtotal of intakes (like shelter births). Is there any where I can find how this table is populated and/or a detailed explanation of the above report? Thanks

@robinrt: 2021-03-15 10:26:26
It's the same headings as In/Out. Discrepancies can usually be explained by the fact that it is generated as part of the overnight batch, so if you go back and edit data in a previous month, you have to update the table. You can do this by going to Settings->Trigger Batch Processes->Recalculate annual animal figures and selecting the year to calculate for.


Import custom flag

@mketcham: 2021-03-14 20:44:26
Is it possible to import custom flags through csv, or only the builtins? I created a custom flag "Ear Tip" to attach to cats that have ear tips, including our TNR cats. When I try to import it in a csv, the system doesn't recognize it.

@robinrt: 2021-03-15 10:25:08
Yes, as long as you created your flag under Settings->Lookup Data first, you can specify it in the ANIMALFLAGS or PERSONFLAGS column depending on whether the flag is for an animal or person.

@mketcham: 2021-03-18 00:36:30
This doesn't seem to be working for me. Here is a snapshot of cats that were given the flags two different ways. The 20B-TNR043 and 20B-TNR044 were manually flagged with the "Ear tip" flag. 20B-TNR045 and 046 is what happened when I tried to import the flag under ANIMALFLAGS. [Screenshot 2021-03-17 183547](//muut.com/u/sheltermanager/s1/:sheltermanager:8D1L:screenshot20210317183547.png.jpg)


Adding pup to existing litter

@sarahless: 2021-03-09 13:37:32
I seemed to have missed a pup when I created a litter and can't find how to add him in. If I check the littermates, I can't add there and when I click the litter name I don't see an option. Do I need to delete it and create it again?

@tristana: 2021-03-13 13:53:22
If you have the litter number from one of the litter mates you can add it directly in the pup: [Add animal to litter](//muut.com/u/sheltermanager/s2/:sheltermanager:Cat7:addanimaltolitter.png.jpg)


Litter

@tristana: 2021-03-08 07:09:26
What is meant by expiration date on litter

@tristana: 2021-03-08 07:46:49
Why Im asking is because earlier version litters was removed after 6 month. This has luckily been change i ASM3. But why is the field still availible? Can it be useful for something?

@robinrt: 2021-03-08 09:29:19
It's the date that the litter is no longer active. It occurs either after all the animals in it have left the shelter, or they are older than 6 months. When the expiry date is reacher, that litter stops being counted in the "number of litters" row of the monthly animal figures reports.

@tristana: 2021-03-08 10:41:06
I thought that was change. If illness or other important medical/ health issue with one from the litter is reported we should have the opportunity to contact the other owners. It would also be helpful to see the mother of the litter on her details, instead of writing it on the right side : [Skjermbilde 2021-03-08 kl](//muut.com/u/sheltermanager/s3/:sheltermanager:PgUo:skjermbilde20210308kl.11.34.15.png.jpg)


Adding a new animal from lost animal record

@jgochsner: 2021-03-07 16:49:42
Can we easily convert a lost animal to a shelter animal? Or do we have to add a new animal and manually enter all information from the lost animal record?

@robinrt: 2021-03-08 09:31:17
I'm afraid so, there isn't a path for that converting lost animals, only found animals.

@jgochsner: 2021-03-11 20:32:22
Thank you


Next test due date

@do724172: 2021-03-05 16:48:11
Would it be possible for a "schedule again" or "test again" date option when we administer a test to be added in the future? Similar to how we can set vaccines to auto schedule in the future.

@robinrt: 2021-03-08 09:31:39
Yes, this is on the development list to add.


44u 20201112+ SQL error?

@titnono: 2021-02-28 18:52:16
Hello, I'm trying to update my ASM 44u server, but the latest version that works is November 12, 2020 (https://github.com/bobintetley/asm3/tree/7dd62c9af86696f59544c6d05bdfafef0fec94dd). If I try to use a newer version, for example that of November 16, 2020 (https://github.com/bobintetley/asm3/tree/105abf8e15d4655a3b37d0a6a20faa98cd65d6f0) or newer, I get an "internal server error" after the authentication screen. From the logs, it looks like an SQL query error, but I cannot find where is the problem. Any idea? OS : Ubuntu 18.04.5 LTS MySQL : 5.7.33-0ubuntu0.18.04.1 Apache : 2.4.29 Python3 : 3.6.9 /var/log/apache2/error.log [Sun Feb 28 18:17:54.943445 2021] [wsgi:error] [pid 1877:tid 140032450955008] [client 10.0.0.3:56313] _mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BY MovementDate DESC, animal.ID LIMIT 10) UNION ALL (SELECT 'animal_movements' A' at line 1"), referer: http://myasmserver:5000/asm/login?target=main /var/log/asm3.lo g Feb 28 18:27:30 shelter CRITICAL ASM Database.query (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BY MovementDate DESC, animal.ID LIMIT 10) UNION ALL (SELECT 'animal_movements' A' at line 1") File "/usr/lib/sheltermanager3/asm3/dbms/base.py", line 561, in query#012 s.execute(sql, params) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 250, in execute#012 self.errorhandler(self, exc, value) File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler#012 raise errorvalue File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 247, in execute#012 res = self._query(query) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 411, in _query#012 rowcount = self._do_query(q) File "/usr/lib/python3/dist-packages/MySQLdb/cursors.py", line 374, in _do_query#012 db.query(q) File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 292, in query#012 _mysql.connection Feb 28 18:27:30 shelter CRITICAL ASM Database.query failing sql: SELECT * FROM ((SELECT 'animal' AS LinkTarget, 'ENTERED' AS Category, DateBroughtIn AS EventDate, ID, ShelterCode AS Text1, AnimalName AS Text2, '' AS Text3, LastChangedBy FROM animal WHERE NonShelterAnimal = 0 ORDER BY DateBroughtIn DESC, ID LIMIT 10) UNION ALL (SELECT 'animal' AS LinkTarget, 'MICROCHIP' AS Category, IdentichipDate AS EventDate, ID, ShelterCode AS Text1, AnimalName AS Text2, '' AS Text3, LastChangedBy FROM animal WHERE NonShelterAnimal = 0 AND IdentichipDate Is Not Null ORDER BY IdentichipDate DESC, ID LIMIT 10) UNION ALL (SELECT 'animal' AS LinkTarget, 'NEUTERED' AS Category, NeuteredDate AS EventDate, ID, ShelterCode AS Text1, AnimalName AS Text2, '' AS Text3, LastChangedBy FROM animal WHERE NonShelterAnimal = 0 AND NeuteredDate Is Not Null ORDER BY NeuteredDate DESC, ID LIMIT 10) UNION ALL (SELECT 'animal_movements' AS LinkTarget, 'RESERVED' AS Category, ReservationDate AS EventDate, animal.ID, ShelterCode AS Text1, AnimalName AS Text2, o

@titnono: 2021-03-01 14:48:46
Hello, I continued to work on my problem. I confirm that this one appeared with the feature "11/16/20 Include trial adoptions in timeline # 764" Specifically, in the animal.py file, the problem occurs in using the "WHERE [...] AND IsTrial =" conditions. The problem must comes from the structure of my database. In the configuration table, DatabaseVersion is 34112, whereas it should be 34408 with the November 11 version. However, there is no problem with my daily cron job. I tried to do "python3 cron.py maint_db_update", but nothing happens: the version remains the same, and nothing appears in the logs. Is it possible to export my data and re-import them into an up-to-date structure? I tried to do the following sequence: 1) python3 cron.py maint_db_dump> myfile 2) python3 cron.py maint_db_reinstall 3) ASM-> Parameters-> SQL-> Run Script (myfile) Unfortunately, after 15 minutes of waiting, I stopped, I do not see any data coming back to the database. Should I do it differently? Thank you!

@robinrt: 2021-03-04 12:17:20
I don't think this is you, the trial queries appear to be broken. I don't know why this didn't produce errors for us. Thanks for letting us know - I've committed a fix to the repository now.

@titnono: 2021-03-04 13:23:26
Hello, I just tried to update to the November 16 version, but patching the SQL queries, and the error went away. I will make an attempt to update to a newer version on another day. Thanks for the help.

@titnono: 2021-03-07 15:10:18
Hello, FYI, I've updated to the latest version (commit 3beb68a) today, and everything seems to run fine. Thank you!


Separating files from the mysql database

@ampien: 2021-02-28 18:08:50
I know with a new installation you can make the decision to edit your asm3.conf file and change this line dbfs_store = database to dbfs_store = file I have now run sheltermanager for the better part of 8 years and my database had grown to 2.1GB. I wish I had made the decision, back when I started, to separate the files and DB so that my remote backups does not take so long. Is there really no way to change my mind other than starting over? Regards Ampie (South Africa)

@robinrt: 2021-03-04 12:11:16
You can move them any time. First, set the dbfs store and filestorage folder values in asm3.conf: ``` dbfs_store = file dbfs_filestorage_folder = /home/ampien/asm_files ``` Then, use the cron script to switch storage mechanisms: ``` python3 cron.py maint_switch_dbfs_storage ``` It will take a while, but if you watch the logs you can see each file being moved. When it completes, you will no longer have files in the database and it should be a lot smaller. Obviously, take backups before you start this process in case of any errors.

@ampien: 2021-03-17 14:07:32
Many thanks Robin. This is a great tip.


Problems with Home Again Microchip Registration

@catniptam: 2021-02-25 22:40:02
After receiving one too many messages from an adopter that their microchip was not registered, I spent several hours doing an audit against a report generated for us by Home Again. One thing I think I pinned down is that registrations appear to have failed on the Home Again side when we had a Trial Adoption and a date was left in the "Trial ends on" field. There would be a publishing history for the chip that was not rejected. However, the chip was not registering on the Home Again side. Has anyb

@robinrt: 2021-02-28 09:03:12
Did HomeAgain return an error during the registration of that chip? You should be able to see in the publishing logs for the date of registration under Publishing->View Publishing Logs

@catniptam: 2021-02-28 14:15:33
No errors returned. I check the publishing logs regularly. From our end, it looks like the chip registered. We had no idea there were problems until we received more than one inquiry from an adopter.


Still stuck on ASM3_40

@ampien: 2021-02-24 20:45:36
I have to date been unable to successfully upgrade my ASM3_40 installation [Ubuntu 18LTS apache2-wsgi] to a later, let alone the latest version. Everything seemingly goes well during the upgrade, but when I try to log in after, it accepts the user creds and then throws me back to the login screen. I have even started a fresh install, and the same thing happens. I even suspected password complexity and made sure its really complex without success. When I then roll back to ASM3_40, everything works fine. I have tried running it as "<path>/python code.py 5000" also, but the same thing happens. I'm really stuck and I'm missing out on all the new features. Any ideas, please?

@robinrt: 2021-02-28 09:00:05
Login problems are usually an issue with session management. If you're using WSGI you'll need memcache installed. There will be an error message either at the console or in the apache error logs that would be helpful in identifying your problem.

@ampien: 2021-02-28 13:52:10
Thanks. I deleted the line containing 127.0.0.1:xxxx from my asm3.conf and its working now - managed to upgrade to 42 using code.py redirected with nginx.

@ampien: 2021-02-28 18:01:03
... # The host/port that memcached is running on if it is to be used. # If memcache is not available, an in memory dictionary will be # used instead. #memcached_server = 127.0.0.1:11211 - If I comment out this line it works perfectly.


Custom reports on treatments

@do724172: 2021-02-24 15:56:25
I'm trying to make a report that will show the following columns: Animal Name, Species, Shelter Location, Treatment Name, Dosage, Treatment Number, Total Treatments, Comments/Regimen Comments We also want to sort by location, treatment number and total treatments so the techs can start top to bottom instead of jumping around. Also, we can't find any treatment fields in the query builder. Are we looking in the wrong place?

@robinrt: 2021-02-28 09:02:09
No, the query builder hasn't had options for medical reports added to it yet. The report "Medical treatments between two dates" has most of those fields and you could modify it?


crop a photo in SM

@karent: 2021-02-22 16:20:45
I would like to utilize square images on our website, but the photos need to be manually resized. Is there a way to crop the photo once it has been uploaded to SM? Or does this need to be done prioir to being uploaded?

@robinrt: 2021-02-22 18:02:20
Sorry, there isn't a way to do this in SM and it currently has to be done prior to upload. It's definitely on our list for the future though.


Ability to edit Date Brought In

@iming: 2021-02-18 11:57:50
Is there anyway we can edit the Date Brought In for an animal? To speed up the process, we "Add an animal" ahead of time in preparation for the arrival. Unfortunately, sometime the arrival date gets postponed due to reason beyond our control (i.e. sudden COVID-19 lockdown, etc.). So it will be great that we can change the date, when required.

@robinrt: 2021-02-18 17:21:31
It's the option "Settings->Options->Animal Codes->Once assigned, codes cannot be changed" that causes this. If your code is based on the date brought in, it locks the date brought in field to prevent it changing the code. If you turn that option off, you will be able to change the date.


Error 500

@lynnep: 2021-02-14 14:45:49
Trying to create a new document for a person, this error is displayed. Happens on all documents/people now.

@robinrt: 2021-02-14 15:35:04
Hi, this should be fixed now. Many apologies.

@lynnep: 2021-02-14 16:35:45
No, its not fixed, still getting the error. I have logged out and back on, but Error 500. Can't create document or send emails

@robinrt: 2021-02-14 16:55:20
Sorry, I fixed the first instance but there was a second. It's definitely fixed now.

@lynnep: 2021-02-14 16:58:31
all ok now thanks


Adding a box to the test results

@josephpjoseph1: 2021-02-12 15:22:20
We've created various test names under the Test tabs for the most common tests we administer to our pets. However, once in a while, we do a test , say, thyroid, that we also want to record in SM. We created an Additional Field under New Test called Other. However, the current data entry options are limited to Required and Performed dates, Result (we created Normal and Abnormal), and comments we enter in the Comments box. We would like to add a data entry box that is searchable under Type where we could type in the test performed, e.g., thyroid. We have something similar in Medical where under New Regimen there is an Other profile with a Name box below that we use to record the regimen. How do I create a similar entry box in the Test tab for New Test?

@robinrt: 2021-02-12 15:29:09
It's the "Test Types" list under Settings->Lookup Data. You can also add to the "Test Results" list on that same screen. Additional fields cannot be added to the test tab. Did you add one to Health and Identification maybe?

@josephpjoseph1: 2021-02-15 16:13:47
Thanks. We created a new Test Type (Other) and new Test Results (Normal and Abnormal). I guess because we cannot add another field to Test we'll go with what we just created. Thanks. Joe


Is there a Physical exam document template out there? would anyone want to share

@mpost: 2021-02-07 22:59:35
I'm looking to add a simple template that our staff can use as a checklist for when they do intakes, rather than taking the time to design my owe, I was hoping someone may already have one to share. Thanks, Mike


Update PERSONFLAGS with Data Import

@mhs_jeff: 2021-02-07 15:20:53
Hey All! We are trying to clean up some of the inputs in our database including the PERSONFLAGS. I was hoping that we could mass clean them up in excel and then use the CSV import to update all of the PERSONFLAGS. While this seems to work for adding flags, it seems to leave all the old incorrect ones. For example if we had someone flagged with Volunteer_Applicant and I have the CSV PERSONFLAG input only be Volunteer it seems to leave the Volunteer_Applicant and add the Volunteer flag, any ideas would be really appreciated! Thanks Jeff

@robinrt: 2021-02-07 17:42:44
Sorry, import will only ever merge flags from your file with the existing ones. You can't use it to replace the flags of existing people.


WordPress integration issue

@iming: 2021-02-07 08:40:26
I'm having trouble integrating to my WordPress website. I have followed the help document and copied the Javascript code snipett as shown to the webpage required (including replacing ACCOUNT with my account number). However, I only get 3 dropdown boxes, namely "Any species", "Any age" and "Any sex". There is just a blank space underneath instead of showing animals available for adoption. I have one "dummy" animal record that shows "Available for adoption". Your help is much appreciated.

@robinrt: 2021-02-07 09:18:42
Hi, we're going to have to see the website to figure out what's going on. Email us at help@sheltermanager.com with the website URL and your account number so we can take a look.

@annauk1: 2021-03-19 17:51:53
I want to integrate this with a squarespace website - can anyone help me get started?


Adding Additional Field to Report

@easel-beth: 2021-02-04 00:13:26
I've been trying to add an additional field I created to track Cat Colonies to a report and can't get the SQL right. Any guidance would be appreciated. SELECT ShelterCode, AnimalName, NeuteredDate, NeuteredByVetID, AnimalTypeID, AnimalComments, x.Sex, af.Colonies FROM animal INNER JOIN lksex x ON x.ID = animal.Sex AND INNER JOIN additionalfield aff ON aff.ID = af.AdditionalFieldID WHERE Neutered = 1 AND NeuteredDate BETWEEN '$ASK DATE Enter from date$' AND '$ASK DATE Enter to date$' ORDER BY NeuteredDate

@adoptamutt: 2021-02-06 15:15:07
--- SELECT ShelterCode, AnimalName, NeuteredDate, NeuteredByVetID, AnimalTypeID, AnimalComments, x.Sex, (SELECT value from additional INNER JOIN additionalfield ON additionalfield.id = additionalfieldid where additional.linkid = animal.ID AND additionalfield.fieldname = 'Colonies') AS MyColonies FROM animal INNER JOIN lksex x ON x.ID = animal.Sex AND WHERE Neutered = 1 AND NeuteredDate BETWEEN ‘$ASK DATE Enter from date$’ AND ‘$ASK DATE Enter to date$’ ORDER BY NeuteredDate ---

@easel-beth: 2021-02-08 22:51:50
Thank you for our help, but it still will not work, says there is a syntax error at where clause. Any thoughts on that? I'm sorry we don't have anyone who understands SQL well. I appreciate any help.

@robinrt: 2021-02-12 15:30:33
The query looks correct - if you include the full error and the query you are using it will give more information. It's probably that in copying and pasting, the apostrophes around $ASK DATE X$ have become smart quotes.

@easel-beth: 2021-02-16 03:10:24
This is the error I'm getting - syntax error at or near "WHERE" LINE 5: WHERE Neutered = 1 ^ I've tried deleted and added the quotes back and still getting the message.

@robinrt: 2021-02-17 10:26:35
There's an extra AND on the end of the line that starts with INNER JOIN - delete it so that line is just INNER JOIN lksex x ON x.ID = animal.Sex

@easel-beth: 2021-02-22 21:59:43
That fixed it. Thank you for your help


Print option for Calendar List View?

@ketalabama: 2021-02-03 13:54:58
I'm looking to see if there is an option I'm overlooking to print the list view of the Calendar? The list view is helpful as it allows you to easily see all animals on any given day and is not limited to the cell space on the actual calendar. If I use the browser Print option it is printing only what is immediately viewable on the page and does not include other records which may be out of view in the frame and accessed using the scroll bar. Thanks

@galia: 2021-02-06 18:10:12
Not as pretty, but if you select the info in the list then drag the mouse down down then right click the mouse and print from the menu ?

@ketalabama: 2021-02-19 11:13:48
Hey. Yeh that at least will get me the whole list. Thanks for the suggestion


Reporting on additional fields

@do724172: 2021-02-02 19:57:51
We've created an additional field that is multi-lookup but now we are wondering how to report on it. If we have 3 options (e.g. Safety Net|Grace Smith|Humane Law), how can we pull a report on only ones with Grace Smith? I see the field at the bottom of the report options but nothing that says FieldIsGraceSmith or anything. Thank You!

@adoptamutt: 2021-02-06 15:22:45
Does this work: --- SELECT sheltercode FROM animal WHERE (SELECT value from additional INNER JOIN additionalfield ON additionalfield.id = additionalfieldid where additional.linkid = animal.ID AND additionalfield.fieldname = 'testfield') = '$ASK STRING Test Field Value$' ---


Vaccinations due vs. expiring in reports.

@homewardcat: 2021-02-01 20:14:28
I can get a report of vaccinations expiring in the next two weeks, and I can get a report of medical and tests due in the next two weeks. Can you tell me how to get all three in one report? When we enter vaccinations, we enter the date the next vaccine is due in the "Expires" box. It seems like that should be the due date, but it doesn't come up on "Medical, Vaccinations, and Tests Due" reports.

@robinrt: 2021-02-02 10:41:18
Hi, the due date is the "required" date. A vacc contains 3 dates, the date it was due to be given, the date it was actually given and the date it "wears off" and needs to be readministered. A due vacc is one that has a required date and no given date. You should start a new record for scheduled vaccines instead of using the expiry date. They will appear on the report you mentioned then.


Removing an email from payment renewal

@ccnicosia: 2021-01-29 17:23:56
I have to renew Shelter Manager but there’s an ex-employees email attached to the payment page & I CANNOT find an option to edit and replace with a current email! HELP PLEASE!

@robinrt: 2021-01-29 19:20:01
Hi, if you have the master password for the account, you can do it at https://sheltermanager.com/my/ If you don't, get in touch with us at help@sheltermanager.com with your account number to arrange an account transfer.


Newbie here: Can anyone help me to create a report template?

@beckyjm: 2021-01-27 18:24:57
Hi, I really need to get shelter manager to automatically generate a report with this set information and I don't know where to start! [Capture](//muut.com/u/sheltermanager/s2/:sheltermanager:0XVO:capture.jpg.jpg) Thanks

@robinrt: 2021-01-28 13:40:57
Have you had a look at the query builder tool? There's a video on using it here: https://youtube.com/watch?v=6ryMDZbIXA0


Expand Log Info

@dd2440: 2021-01-27 17:30:10
How do you expand the log field so you do not have to click on it to read the whole log?

@robinrt: 2021-01-28 13:39:50
There's an option under Settings->Options->Display->Show complete comments in table views


Creating a report for a lookup we added

@bmay1439: 2021-01-27 16:11:40
We added a lookup of Intake County because we need to track this info but I can't figure out how to create a report to find the info needed.

@robinrt: 2021-01-28 13:39:11
Which lookup did you add it to?


Dog License

@bkrodle: 2021-01-27 14:46:44
I've created a Dangerous Dog License so that we can issue and track dogs that we declare to be dangerous. I am trying to create a form that we can print and give to the owner with the dog's unique license number. I've used the code <<LicenseNumber>> in the form, but it keep returning a blank instead of inserting the number we have created on the license screen. Any ideas? I've searched through other documents and the wordkey appendix, but I can't find anything different.

@bkrodle: 2021-01-27 15:24:16
Ok, the license populates correctly under the Animal Control Tab, Licensing, but will not populate if we try to print it under the animal tab, or the owner tab.

@robinrt: 2021-01-28 13:38:34
That's the expected behaviour - you can only get at license tags when generating documents from the licensing screen.

@bkrodle: 2021-01-28 14:13:02
Thanks! Even though we've had the program for two years I'm still figuring out a few things.


Stock management

@lica2440: 2021-01-23 19:02:01
Is there a way to set an alert when you have so much left of a certain stock item? I read the section of the manual with no success in finding a way to set that. If not, will this be an option in the future?

@robinrt: 2021-01-24 10:03:24
There isn't, but that's a great suggestion for a feature we could add in future. I'll put that on our development list.


Formatting comment field in Foster Book view

@saveabunny: 2021-01-19 23:24:31
Is there a way to format the comment field in the Foster Book view so that information can appear stacked, such as a list? Currently it just appears as a paragraph, with one sentence/comment after another.

@robinrt: 2021-01-24 10:01:35
Sorry, there isn't.


Template animals and Holds

@lica2440: 2021-01-17 00:00:26
I am trying to make a template animal that automatically puts on a five day stray hold, but when i check the Non-Shelter box it doesnt show the hold box anymore. is there a way to set this?

@adoptamutt: 2021-01-17 14:46:39
Have you tried selecting the Hold box before selecting the non-shelter flag?

@lica2440: 2021-01-23 00:46:45
Yes i tried that, and it makes it so the hold box is checked but no date


Shelter Report

@mmover: 2021-01-16 22:22:19
Our kennel manager runs a slightly modified version of the In/Out by age at event report. There aren't any issues with it except one strange oddity. We had a cat that escaped it's foster home, in movements under the cat it was marked as escape. The cat was later found. It originally came in in November but escaped, was found, and adopted in December so it's understandable that it wouldn't show up under the normal 'In' heading. But in the report it is listed under the 'Animals Returned from Other' category (which makes sense because it is returning from having escaped) with the entry category as being ' Return-Surrender' despite the category being 'Stray-Brought to Shelter' when you actually navigate to the cat's record. I assume it's due to the escaped movement but when I click on the movement there's no option to change the entry category. My questions are: 1. Why did it change the entry category but only in the report instead of pulling the original entry category? 2. How did it determine which entry category to pick when it changed it? 3. Is there a way I can modi fy it to have it accurately reflect the situation by telling asm when an animal returns from being escaped to choose a different category? It's not the biggest of deals if there is no way to change it as this is the first time it's happened since I started working here. But I would like the report to accurately reflect information so that should it happen again we're not questioning why it showed up the way it did. Either way I'm more interested in solving the mystery of how it determined to show a different entry category. Thank you!

@robinrt: 2021-01-17 14:48:20
The return reason is hidden for movements that aren't adoption or reclaim. If you edit the escaped movement and change the movement type to adoption, you could set the return reason, then change it back to escaped again.


Additional Fields in Vaccination Screen

@mcxg46: 2021-01-16 13:04:41
Apologies if this has been asked elsewhere... Is it possible to add fields to the vaccination screen? I was hoping to add an additional field (quanitity) to the vaccination screen. But it doesn't appear as an option in the settings/additional fields/new type. Am I missing something?

@robinrt: 2021-01-16 14:11:50
It isn't possible. It is something we do plan to do, but it's a complicated feature and will not be done in the current release (due end of Jan).

@mcxg46: 2021-01-16 15:18:21
OK, no problem - thanks for replying so quickly.


Publishing of "Description"

@jaaustin: 2021-01-12 20:07:31
When publishing from ASM, our "description" just comes out as one run-on sentence, even if we have spaces in ASM. What can I do to correct that?

@robinrt: 2021-01-16 14:12:19
Use $$DescriptionBR$$ in your template instead. It changes the breaks to br tags.


Publishing Template

@jaaustin: 2021-01-12 20:04:41
I only have one template available and it doesn't include things I need, like multiple pictures. How do I get any new options?

@robinrt: 2021-01-16 14:12:44
Hi, I think you sent this an email and I reinstalled the defaults for you already.


Add flag for new animals

@lica2440: 2021-01-12 01:39:07
I created a flag for an animal not being added online, and i want to set it to where that flag is automatically set when i create a new animal as it is for the "not for adoption" flag. i have read through the manual and tried to create the "TemplateType" animal and it did not work.

@robinrt: 2021-01-12 09:52:10
How is the animal being added? You should be able to use TemplateType with the type field matching as you described, or there is an option under Settings->Options->Defaults->Mark new animals as not for adoption

@lica2440: 2021-01-12 13:56:53
I created an animal with the name templatetype as described in the manual and it would not work. i am trying to set it so that one of our custom flags is automatically set when i add any new animal to the system

@robinrt: 2021-01-12 14:09:29
Your template animal must have the name TemplateType (exact case), it must be flagged as non-shelter and the Type field must contain the same type as new animals records you wish it to apply to.

@lica2440: 2021-01-12 15:22:50
I think it is working now, thank you!


Medical : Foster families

@galia: 2021-01-12 00:20:08
I saw the update to the emailing system so that weekly emails only go out to foster families that have a current medical requirement, which I have implemented as a test, but is there a way to see what emails have been automatically sent? I found a report on sheltermanager.com but when I run it for the date period I get no results even though I know there are a number of fosterers that should have received the email (my self included as I did get a mail this morning) Thx

@robinrt: 2021-01-12 09:50:22
There isn't I'm afraid as that weekly fosterer email is not being audited. It should be, but it isn't. I'll put this on our development list to fix.

@galia: 2021-01-12 10:43:47
Thanks for the info, A suggestion someone made to me is to be able to Bcc or Bci a copy to an admin so we can see what has actually gone out

@galia: 2021-01-28 11:09:35
all has been working well as far as I can tell (it is not possible to see who has been sent a mail) until this week 🙁 a number of mails have come back to my forwarding account 'rejected' because the email address does not exsist, I have checked these addresses and they are correct and working through our normal email channels, the test dog I have in the system was reported to me as normal, so a bit of a bug perhaps, I will see what happens next week


Foster movements

@audraf: 2021-01-08 23:36:34
For the Movement Type 'FOSTERS', is there a way to activate "Statuses" for it -similar to Reservation Statuses. These would be customization in Lookup Data as well?


Scanning a signature into a field

@josephpjoseph1: 2021-01-08 15:17:55
I'd like to be able to scan a signature into a SM printout. I created a new field called Signature, but how do I load in a scan of a signature?

@robinrt: 2021-01-08 17:45:26
There are two ways to insert signatures into documents and there's info on doing that here: https://sheltermanager.com/repo/asm3_help/documents.html#electronic-signatures You can also add signature fields to online forms. If you have your signature as an image, you can easily add images to your document templates. See this video https://youtube.com/watch?v=T-Tfnxc_PTU

@josephpjoseph1: 2021-01-11 17:19:39
Perfect - thanks very much. I should have thought of it as inserting an image. I use the mobile interface for adoption signatures.


Code help

@sarahless: 2021-01-07 23:15:44
Trying to figure out what code would I add to the "Medical, Vaccination, and Tests due between two dates" to get the current fosters first and last name, email, phone, and home address?

@robinrt: 2021-01-08 08:15:58
That report is a set of 3 queries UNIONed together. You need to do two joins to get the fosterer info, one to the adoption table for the movement, then to the owner table for the person. It will need to be repeated in each of the queries. You also need to be careful as in a UNION every query must return the same number of columns in the same order. ``` LEFT OUTER JOIN adoption m ON m.ID = a.ActiveMovementID LEFT OUTER JOIN owner o ON o.ID = m.OwnerID ``` That will make the person fields available for access in your SELECT then, so you can choose OwnerForeNames, OwnerSurname, OwnerAddress, EmailAddress, HomeTelephone etc.


animal emblem?

@lialang: 2021-01-05 16:20:32
I would like to be able to have an animal emblem to show if the cat has been combo tested or not. There is not a check box to choose like there is for Rabies, unfixed, etc, and when I try to put my own emblem, there are no flags to choose from.

@robinrt: 2021-01-05 16:39:28
You can add your own flag - Settings->Lookup Data->Animal Flags. The system already has built in emblems for cats that are FIV+ or FLV+

@lialang: 2021-01-05 16:44:45
I know that there are flags for +, but I want a flag for not tested, like not vaccinated for Rabies. If I add an animal flag, where does it put it that I can check it?

@lialang: 2021-01-05 16:45:35
I was hoping to be able to go off the test tab instead of having to create a new flag.

@robinrt: 2021-01-05 17:07:07
At the moment, custom emblems can only be tied to the presence or absence of flags. The flags dropdown can be found on the right side of the animal details screen. I wonder if others might find this useful though, or something like it (perhaps shelter view modes or search filters).


Sites

@audraf: 2021-01-04 17:28:32
I see there is a new option for "sites" which is great because we have 2 locations. Can there be a separate calendar for each site or is there a way to differentiate animals from different sites?


Additional field sub query

@lynnep: 2021-01-03 16:44:23
I have an additional field "SponsoredBy" which has person type and linked to Animal details. I can retrieve the sponsor id, (SELECT ad.VALUE FROM additional ad INNER JOIN additionalfield af ON af.ID = ad.AdditionalFieldID WHERE ad.LinkID = a.ID AND af.FieldName = 'SponsoredBy') as SponsorID .... from animal a but when I try to link the SponsorId to the owner table to return the owner name, I just get errors. Help please as to how I should do this.


Exclude from Publishing...

@tomsey: 2021-01-02 19:54:42
For the life of me, I can't figure out how to exclude an animal from being published even though the animal meets all of the Publishing criteria... Is there a "Do Not Publish" box in the animal's profile? 🤔

@robinrt: 2021-01-03 08:58:16
Give it the "Not available for adoption" flag from the flags dropdown.


Pop-Up Window instead of New Tab When Clicking on a Pet to view on website

@kittenqueenlynn: 2020-12-31 06:17:51
Hi all! I'm currently revamping the website for the rescue I volunteer for. I successfully integrated SM to my site so it shows in real time when a pet is added / edited / removed, etc. HOWEVER! When you click on the pet's photo on the site, it opens the animal in a new tab instead of a pop-up window. Does anyone know where I go to edit that, and if so, what the code is to switch it from open in new tab to a pop-up window? Thanks in advance! ♥Kitten Queen Lynn

@robinrt: 2020-12-31 08:22:50
Hi, sure, that info is here: https://sheltermanager.com/repo/asm3_help/service.html#popup-iframe


Bulk attach a media file

@rspcacornwall: 2020-12-28 15:16:26
Hi - I am familiar with bulk log entries for multiple animals. Is there any way to bulk attach a media file (photo or PDF document) to multiple animals . Example - a group of 10 animals from one owner, with a document that pertains to the care of all 10. TIA

@robinrt: 2020-12-28 15:26:51
Sorry, I'm afraid there isn't. There is something on our development list to look at being able to link the same piece of media to multiple records in future though as this would be handy for things like adoption contracts that belong to both person and animal.


Add new animal from the waiting list

@iming: 2020-12-19 22:27:23
Dear all, I'm new to ASM and still learning various functions of this software. So forgive me on asking silly questions. Our small rescue group has more than 10 dogs waiting to come in. To streamline our workflow, I would like details to be entered to the waiting list by other individuals/organisations who currently has the animal. We can then use the waiting list to priortise moving in to us. I'm wondering whether it is possible to move-in a new animal straight from the waiting list ** without ** having to re-key in relevant details again. It just need a button like "Accepting / Move In (or similar)" and it will transfer details to the "Add a new animal" screen. We can then populate more details as required on that screen.

@robinrt: 2020-12-20 09:22:17
There's a "Create Animal" button on the toolbar when viewing a waiting list record. You can also create an online form to have other organisations give you info for animals, and use it to create a waiting list record from the incoming forms screen. See https://sheltermanager.com/repo/asm3_help/onlineform.html

@rspcacornwall: 2020-12-27 17:02:50
Hello - we use a general surrender form online on our website which other organisations can also use - it is cheaper to use online forms through ASM than on you web page. Here's how ours looks. https://rspcacornwall.org.uk/surrendering-an-animal/ . Just be careful that someone is checkingthe waiting list entry when they create it, and ensuring there isn't already a person on the database that you could just attach it to. We also found that including space for owners to attach a picture gets you some lovely photos of animals in their existing home which can be used for profile pics for ASM. Regards, Ian

@robinrt: 2020-12-27 17:07:54
Hi Ian, when you do Create->Waiting List, or Create->Person, the system will check that the person doesn't exist for you. If the person does exist, it will link the form to the existing person instead of creating a new one! It does this by looking at the email address or mobile phone number for a match, then the combination of first name, last name and first word of address.

@iming: 2021-02-07 06:37:32
Thank you all for your comments. My apology for not making this post a little clearer ... When you add animals to the waiting list, how do you check them in when they finally arrive at the shelter? "Add a new animal" means we are rekeying details that have previously entered when we place them on the waiting list.


Adding Regimen Start Time

@do724172: 2020-12-14 20:27:19
Is it possible to designate a start time for treatments? i.e. If we create a regimen to be given twice a day but we create it later in the day...they would only be given one treatment in the evening and then 2 tomorrow. When we do it now. It creates 2 automatically for the start date even though we're starting it in the evening.

@robinrt: 2020-12-15 09:05:31
Sorry, not at the moment. There is a task on our development list for putting times on treatments but the details haven't been worked out yet.


Update new RabiesTag field with old data.

@adoptamutt: 2020-12-13 00:13:10
These are the steps I took to update the new RabiesTag field with the old data from the RabiesTag field in the Health and Identification Section: (1) Go to Settings > Lookup data > Vaccination Types and write down the IDs for all your Rabies type vaccinations. (2) SQL works best IF you only have ONE completed Rabies vaccination record, so you need to run this SQL to see if you have any animals with TWO completed Rabies vaccination Records: "select sheltercode, rabiestag from animal awhere 1 < (SELECT COUNT(ID) FROM animalvaccination v WHERE v.animalid = a.ID AND v.vaccinationid in (8,9) AND DateOfVaccination Is Not Null)" NOTE: Replace the "8,9" with your Rabies ID number recorded in step 1. Now manually pull up these sheltercodes and modify the oldest Rabies record and enter "No tag" in the Rabies Tag field. (3) Find out how many records need to be updated: "select sheltercode, rabiestag from animal a where rabiestag <> '' AND 0 < (SELECT COUNT(ID) FROM animalvaccination v WHERE v.animalid = a.ID AND v.vaccinationid in (8,9) AND DateOfVaccination Is Not Null)" NOTE: Aga in, replace "8,9" with your Rabies IDs. (4) Run this SQL to do the update: "UPDATE animalvaccination SET RabiesTag = (SELECT RabiesTag FROM animal WHERE ID=animalvaccination.AnimalID) WHERE animalvaccination.VaccinationID IN (8,9) AND DateOfVaccination Is Not Null --AND animalid = 592 AND (RabiesTag = '' OR RabiesTag IS NULL) AND EXISTS(SELECT RabiesTag FROM animal WHERE ID=animalvaccination.AnimalID AND RabiesTag <> '')" If you have Forms designed in the Reports system, you want to add "animalvaccination.RabiesTag, CASE WHEN animalvaccination.RabiesTag <> '' THEN ' Tag' ELSE '' END AS RabiesTagFormat," to the select statement and then add "$RabiesTagFormat $RabiesTag" in the HTML to print the new Rabies Tag number on the form. If you have Documents and want to include the new Rabies Tag, you have to create a new column and add <<VaccinationRabiesTagLast1>> etc. At this point you can go into Settings > Options > Remove > and remove the old Rabies Tag field from the Health and Identification Section to avoid any confusion with the new field in the Vaccination record.

@robinrt: 2020-12-13 08:58:04
If you sandwich your code between three backticks ``` top and bottom, the forum will format them for you to make them easier to read and copy: ``` select sheltercode, rabiestag from animal awhere 1 < (SELECT COUNT(ID) FROM animalvaccination v WHERE v.animalid = a.ID AND v.vaccinationid in (8,9) AND DateOfVaccination Is Not Null) ``` ``` select sheltercode, rabiestag from animal a where rabiestag <> '' AND 0 < (SELECT COUNT(ID) FROM animalvaccination v WHERE v.animalid = a.ID AND v.vaccinationid in (8,9) AND DateOfVaccination Is Not Null) ``` ``` UPDATE animalvaccination SET RabiesTag = (SELECT RabiesTag FROM animal WHERE ID=animalvaccination.AnimalID) WHERE animalvaccination.VaccinationID IN (8,9) AND DateOfVaccination Is Not Null AND animalid = 592 AND (RabiesTag = '' OR RabiesTag IS NULL) AND EXISTS(SELECT RabiesTag FROM animal WHERE ID=animalvaccination.AnimalID AND RabiesTag <> '') ```

@adoptamutt: 2020-12-13 14:45:14
Users: The "AND animalid = 592" was just for testing purposes. You can comment that out with -- before running. Thank you, Rob, for the last SQL!


AM/PM/ Mid Day Treatments

@do724172: 2020-12-12 17:35:42
Can there be an option/field to designate this when animals get something once a day? I know we can use the comments section but it would help a lot in the future.


AM/PM/ Mid Day Treatments

@do724172: 2020-12-12 17:35:42
Can there be an option/field to designate this when animals get something once a day? I know we can use the comments section but it would help a lot in the future.


AM/PM/ Mid Day Treatments

@do724172: 2020-12-12 17:35:42
Can there be an option/field to designate this when animals get something once a day? I know we can use the comments section but it would help a lot in the future.


Flags

@evc1547: 2020-12-11 16:50:03
How do I make my own flag? I would like one that has 'Staff only' but not sure if this is possible. Also is there a way of getting the TLS on here? (Traffic light system)

@robinrt: 2020-12-11 17:05:30
Settings->Lookup Data, then choose "Animal Flags" or "Person Flags" from the dropdown at the top right depending on what kind of flag it is. You can choose an icon or emblem for animal flags under Settings->Options->Animal Emblems

@adoptamutt: 2020-12-12 17:44:14
evc1547: There is an "ASM Rocks!" Facebook group that users have created to share ideas with other ASM users, if you are interested.

@evc1547: 2020-12-13 10:58:33
Thank you!


Rabies Vaccine needed flag

@lialang: 2020-12-11 13:37:02
This seems to be a new feature I just saw this morning. Problem is it is not working properly as I am seeing cats that have a rabies vaccine being flagged as not having one.

@robinrt: 2020-12-11 13:40:05
It requires that you set the rabies tag field on the vaccination record.

@lialang: 2020-12-11 13:42:30
We do not use rabies tags?

@robinrt: 2020-12-11 13:51:33
Just put N/A in there so that the system has a value and will recognise it as a rabies jab. You can also choose which species you want to be alerted about under Settings->Options->Home page->Show an alert when animals of this species do not have a rabies vaccination

@lialang: 2020-12-11 14:26:51
ok, that took away the syringe on the individual animal when you are inside the record, but when you look at the home page for all animals in shelter, it still shows them all as needing rabies vaccines.

@robinrt: 2020-12-11 14:46:17
You can turn it off altogether - Settings->Options->Animal Emblems->Rabies not given

@lialang: 2020-12-11 15:10:25
I can do that, but then what is the use of having that functionality if it doesn't work.

@robinrt: 2020-12-11 15:29:45
In what way isn't it working? We support 25 languages, so looking for the word "Rabies" isn't very effective, also many people use the vaccination product name as the type and rabies vaccinations don't always necessarily contain the word rabies.

@robinrt: 2020-12-11 15:41:38
sorry, I think I understand - due to the amount of data the home page needs to access, it only updates itself every 5 minutes or so. You were probably seeing cached data and the animal you updated the rabies tag on will have disappeared from there shortly afterwards.

@lialang: 2021-01-05 16:18:55
you are correct, it did update now.


Mailing labels

@audraf: 2020-12-08 22:42:33
I'd like to pull all the people who have fostered this year to make address labels for them. I have everyone flagged as a foster, is there a way to set a date range for the year to show who's fostered this year? I guess it would also have to pull movement?

@adoptamutt: 2020-12-09 00:05:52
I think this would work: —- SELECT DISTINCT OwnerName, OwnerAddress, OwnerTown, OwnerCounty, OwnerPostcode, HomeTelephone, WorkTelephone, MobileTelephone, EmailAddress FROM animal INNER JOIN adoption ON adoption.AnimalID = animal.ID INNER JOIN owner ON owner.ID = adoption.OwnerID WHERE MovementType = 2 AND DeceasedDate Is Null AND (ReturnDate Is Null OR MovementDate >= '2020-01-01' AND MovementDate <= '2020-12-31') AND Excludefrombulkemail= 0 AND Isbanned != 1 ORDER BY OwnerName —-

@audraf: 2020-12-09 00:26:10
thank you I will try!

@adoptamutt: 2020-12-12 17:45:16
There is an “ASM Rocks!” Facebook group that users have created to share ideas with other ASM users, if you are interested.

@audraf: 2020-12-15 21:46:15
Great, I'll check it out.


QR code

@mdpost29: 2020-12-06 20:56:06
We would like to start using the qr code printed on the cage cards for our staff to pull up on an iPad but the code directs it to the browser desktop interface. Is there a way to have it directed to the app? How can we customize QR code? Thanks, Mike

@robinrt: 2020-12-07 08:41:18
Hi, I'm afraid the QR code target isn't customisable, there isn't a way to have the app respond to it, although we are looking at barcode and other scanning from within the app in future. If you're logged in on your mobile browser, it will show the record there.

@mdpost29: 2020-12-08 21:22:00
great thanks


Additional fields Q

@galia: 2020-11-29 10:13:14
Hi, Is there a setting somewhere to allow a new additional field to create an entry in the animals journal in the same way as the weight fields does when you update the info? thx Tim

@robinrt: 2020-11-29 13:28:41
No, sorry there isn't.


Staff Rota

@jimdunne: 2020-11-29 09:58:41
Is there any way to add 'Confirmed' and 'Unconfirmed' possibly with a coulour background, in the Staff Rota? This would enable us to add people in when making up a rota, and then to mark them as 'confirmed' when we know the person can cover the shift. We run with 30+ volunteers that cannot always commit to a certain day, and with the way things are with Covid, we have to keep chopping and changing.


Location 'Released to Wild' now says 'Transport'

@judyanjowski: 2020-11-26 00:18:53
If I select ‘TNR’ as the Movement Type, the ‘Location’ use to change to ‘Released to Wild’. Now it says ‘Transport’.

@robinrt: 2020-11-26 08:48:53
This looks like an old database update did not run as the TNR type replaced the redundant "Transport" movement type that was deleted years ago. I've fixed this in your sheltermanager account. For any open source users with the same issue, this query will correct it: ``` update lksmovementtype set movementtype = 'TNR' where id=13; ```


Ear Tipped Option

@sjras: 2020-11-25 21:02:03
Just wondering if adding the Ear Tipped area is possible that's available as a filter? Basically just like the declawed function? We've added additional fields for those that WE ear tip in our clinic, but that's mostly for nonshelter. We're starting to find that it would be handy to have a searchable/filterable ear tipped checkbox. Just a thought for future builds.

@robinrt: 2020-11-26 08:49:42
Hi, this could be easily added with an "Ear Tipped" animal flag. Flags can be shown in shelter view and searched for/filtered/etc.


Labels

@catlovercindi: 2020-11-18 19:20:13
Is there a way to print address labels for a mailong?

@adoptamutt: 2020-11-18 19:57:32
Mailong? To produce labels go to Mail, pick your report, and then “Produce a PDF of printable labels”


Shelter View - Location and Unit

@lynnep: 2020-11-16 09:43:52
If I select the shelter view by Location, or by Location and Type, the fostered dogs are shown, but if I select Location and Unit, the foster dogs are not displayed. Why is this?

@robinrt: 2020-11-16 14:28:54
Foster dogs can't have a unit, since they aren't in a shelter location.


Reports from incoming applications

@audraf: 2020-11-11 19:05:04
Hi there. We have our foster applications automatically load into ASM and create people flagged as fosters. On our application, we have a "how did you hear about us question". Is there a way to run a report to get this breakdown?

@adoptamutt: 2020-11-11 20:20:32
I think you would need to create an additional field on the person table and then included that field name on your foster application so that The new additional field is updated when you process the application. Then you can create a report off of that field.

@audraf: 2020-11-11 21:11:37
How do you create a report off of the custom field, that's the issue we're running into . Thanks.

@adoptamutt: 2020-11-11 22:34:39
How to include an additional field in your SQL is described in the Configuration section of the manual under “Additional Fields”.

@robinrt: 2020-11-12 12:19:35
The new query builder also makes this easy, because you can just choose your additional fields from the list and have it write the query for you. https://www.youtube.com/watch?v=6ryMDZbIXA0


Missing animal bios and adopted pets reappearing

@marin_helpshelter: 2020-10-30 18:15:38
Animals that have long been adopted and, for a time, been taken down from adoption websites are reappearing as available. Most of them have never been listed as courtesy animals, and we've double checked that their profiles were never edited after initially being marked as gone. We've had owners call and ask why their pets are shown on websites, and it's frustrating to continue having this issue. Additionally, random animals will be missing their biographies. There doesn't seem to be a reason for it - both old and new ones will have bios, while others do not. We're not sure how to correct either of these issues.

@robinrt: 2020-11-12 12:20:55
Hi, if you're a sheltermanager customer, please write us at help@sheltermanager.com and include your account number and some examples of animals where this has happened so we can take a look and figure it out.


Document Template from Report?

@alicebk: 2020-10-30 00:30:43
Is there a way to generate a document template from an existing custom report? Related question: Are there methods of creating document templates aside from using the tinymce editor?

@robinrt: 2020-10-30 10:50:14
No, document templates are completely unrelated to reports I'm afraid. You can also create your document templates in any word processor you like and copy and paste into TinyMCE (you can also export HTML from the word processor of your choice and copy/paste it into the Source window of TinyMCE for more accurate output).


Posting images in bulk email

@audraf: 2020-10-28 17:13:37
Hi all, I'm just starting to explore how to use the bulk email option. I would like to be able to insert photos into emails when calling for fosters. I get to this step (see image) and I'm not sure where to go from there. [Source](//muut.com/u/sheltermanager/s3/:sheltermanager:fGJh:source.jpg.jpg)

@adoptamutt: 2020-10-28 19:43:24
You might try to right_click on the image you want in the Media tab and select 'Copy Image Address' to get the source.

@audraf: 2020-10-29 20:20:00
Thanks!


Vaccination date next due missing in AnimalVaccinations table key

@hbcajonb: 2020-10-25 12:14:15
ref: https://sheltermanager.com/repo/asm3_help/wordkeys.html#table-keys Is it possible to add a "date next due" column to 'AnimalVaccinations' table? We would like the auto-generated table to include this column for our adopters and we like how this table has a dynamic number of rows.

@robinrt: 2020-10-27 08:27:36
It isn't a member of the record though, each vacc contains the date it is due and the date it was given. If there's a due vacc on the record, it should appear at the top of the table. I'll check, but that might be dependent on whether you have the option enabled for "Include incomplete medical records when generating document templates" under Settings->Options->Documents


Publishing option for "Available for Adoption" not working

@amybaron: 2020-10-24 05:55:05
Hello... we do not adopt out cats that are not desexed ... and we've always had the "Include non-neutered/spayed animals" set to NO ... and it has always worked, showing that intact animals are not available for adoption It does not seem to work any more... regardless of whether I set NO or YES, intact animals are listed as available for adoption. Thanks

@robinrt: 2020-10-24 09:35:13
Is this maybe a cache or update issue? If you go to Publishing->View Animals Matching Publishing Options, are those intact animals still appearing with Include non-neutered set to no? What service is being updated with adoptable animals? Is it your website, and if so through which mechanism? If you're using sheltermanger.com please drop us a note at help@sheltermanager.com with your account number so we can take a look.


Emailing Reports

@audraf: 2020-10-23 00:04:30
Hi I am trying to email a report daily to several users. Can you tell me how to add more than 1 email address? THanks

@adoptamutt: 2020-10-23 02:37:41
Separate them by a comma.

@audraf: 2020-10-23 17:17:20
does there need to be a space or just a comma?

@adoptamutt: 2020-10-23 17:50:46
I'm not sure it matters, but I add a space for readability.

@audraf: 2020-10-23 17:58:55
Thank you. It seem to work without the space.


Initial Set Up Help

@hsnc: 2020-10-16 21:42:30
When purchasing, is there help with the initial set up? Such as setting flags, etc.. Thanks!


HELP

@ddchs38024: 2020-10-12 21:14:25
I accidentally deleted all the dogs. Is there a way to undo the delete or recover information

@robinrt: 2020-10-12 21:47:34
Hi, are you a sheltermanager customer? If so, email us at help@sheltermanager.com with your account number and let us know what you deleted and what needs restoring.


<> for documents

@galia: 2020-09-25 10:50:48
Hi, I want to add the home check date to our adoption contract, I have worked out how to insert the homecheckers name but the code (wordkey) for the date of the visit eludes me :-) I found this in the instruction manual but it does not return anything when the document is generated <<DateLastHomeChecked>> DateLastHomeChecked - TIMESTAMP The date this person was last homechecked Any ideas Thx

@robinrt: 2020-09-25 11:19:13
That's the database column, looking at the wordkeys section we don't actually have one for this field. I'll make a note to add it today. It will be called HomeCheckedDate once it is available.

@galia: 2020-09-25 22:39:41
Wow super thankyou I will try tomorrow thank you

@galia: 2020-09-25 22:46:12
;-) tried already lol yes it is working thank you perfect 5 stars to you


Rabies Certificate Question

@mmover: 2020-09-23 22:14:50
I see in the document template a reference to <<RabiesTag>> but when adding a vaccination to an animal there is no field to enter the tag number. We have been using the comments section for record keeping but now that we want to utilize the template we have an issue. I did alter the template to pull from the vaccine comments section and it did work but then that means no comments other than the rabies tag number can be added to that field. I assume since the template references the tag number that there must be a field that exists for it but I can't find it. Can someone point me in the right direction?

@adoptamutt: 2020-09-23 22:18:56
We do the same thing, that is, use the comments field and the Rabies vaccination for the rabies tag number. But you still have to enter it again in the Rabies Tag field, if you want to pull that separately.

@robinrt: 2020-09-24 09:36:49
This is one of those niggling jobs that's been on our list to fix for ages. Rabies Tag should have been stored with the rabies vaccination, but for some reason we created a single value on the animal record instead (many years ago).


Template animals. Can you set Hold Until date?

@adoptamutt: 2020-09-22 17:12:43
I modified one of my Template animals to have a Hold Until date 5 days after the brought in date, but when I added a new animal, only the "Hold Until" box was checked. The "Hold Until" date was blank. I was thinking maybe I could have a template type of stay set the "hold until" 5 days out and an owner surrender set 3 days out. Does it only check the box? It might be two difficult to set dates due to some using business days vs. regular days to count how long an animal is held.

@robinrt: 2020-09-24 09:35:08
The code that applies the template does not look at hold until date, it only copies the hold flag if it is present on the template. You're right though that it could - we use the same comparison vs datebroughtin to default the hold until date if it is set on the template.


Hold Until - what time is the date removed?

@adoptamutt: 2020-09-20 19:13:33
If I have a “Hold Until” date set, does ASM clear that field at 12:00 am the next day? If not, when is it cleared?

@adoptamutt: 2020-09-20 19:14:35
Or does the date remain and the check box cleared?

@robinrt: 2020-09-21 09:02:33
It's cleared when the overnight batch runs, which is 8am UTC (3am EST and 12am PST)

@adoptamutt: 2020-09-22 16:55:22
Does it get cleared BEFORE the Publishers run? I still have my publisher set to update adoption websites every 24 hours, so it would be important for this to be cleared before the websites are updated.

@robinrt: 2020-09-22 17:13:34
Yes, the publishers run at 10am UTC. Sorry, I wasn't clear in my answer before, the Hold flag is removed by the batch when the hold until date == today, but the hold until date remains on the record so that you know the animal was previously held.


Report: Homechecker Map

@dome1094: 2020-09-19 18:31:41
Hello everyone, i'd like to create a Map to see all Homechekers via the Report funktion. Could anybody help me? Is this even possible? Greetings Dome

@lynnep: 2020-10-26 09:06:07
Use the "People with Flag" map


Upload bulk people details

@sarawilkins04: 2020-09-19 14:54:20
We would like to upload names and addresses of applicants for dogs from Excel but not sure how to do this into ASM, is it by a CSV import?

@robinrt: 2020-09-19 17:59:55
Yes. See https://sheltermanager.com/repo/asm3_help/configuration.html#import-a-csv-file https://sheltermanager.com/repo/asm3_help/csvimportfields.html


edit header/footer of reports

@bramuno: 2020-09-14 22:35:13
I need to edit the header/footer of individual reports. i can only find a way to edit online forms but no way to edit reports. the reports SQL generates $$HEADER and closing tag HEADER$$. removing those tags causes the report to fail. i only want custom <head> tags for one report, not all. so how can i edit this area?

@robinrt: 2020-09-17 13:28:33
Add a $$HTMLHEADER section to override. You can also edit the global header and footer with the header/footer button on the Settings->Reports screen.


test default date

@bramuno: 2020-09-12 21:30:16
hi when we create a new animal record the required tests are defaulting to an older date and we would like it to default to the date the record is created as it is doing for other date fields. i can't seem to find any place to modify this field. is there a way to achieve this? thanks in advance :)

@adoptamutt: 2020-09-15 15:15:42
Are the test dates in your template earlier than the brought in date?

@bramuno: 2020-09-15 19:29:06
i dont know. where am i supposed to find the templates? SETTINGS > DOCUMENT TEMPLATES does not have anything like what i need to find

@adoptamutt: 2020-09-15 20:28:07
Enter ‘template’ in the main search box. That should display any animal templates currently created.

@adoptamutt: 2020-09-15 20:32:58
https://sheltermanager.com/repo/asm3_help/animals.html#template-animals

@bramuno: 2020-09-15 22:02:18
ok thanks. i believe i found it. i edited the test and changed the date to a day 3 years ahead of today 2023, and when i created a new animal it set the test due date for December 2026. I didnt see any dynamic option to set the test date to match the intake date or record creation date. is this possible to do?

@adoptamutt: 2020-09-15 22:12:15
To do that, You just make sure your template brought in date is the same as the template test date.

@bramuno: 2020-09-16 04:39:00
yes. manually we do that already. im asking if there is a way to do that automatically? i dont even think these templates found via search are the same forms. the ADD NEW ANIMAL button takes me to a one-page form where nothing is defaulted except the date brought in which defaults to today. i want to do the same thing with the test due dates. can the add new animal form be edited?

@adoptamutt: 2020-09-16 13:20:29
If you have your template animal set up with the tests dates set the same as the brought in by date, ASM WILL add the due tests automatically after you use the “Add a new animal” screen that you’re talking about. But you can also modify the add animal screen through Settings > Options > Add Animal.

@robinrt: 2020-09-17 13:29:22
There's more info on relative dates on template records here: https://sheltermanager.com/repo/asm3_help/animals.html#template-animals


Donor management

@newwave: 2020-09-09 20:30:22
Is anyone willing to discuss their use of the platform as it relates to fundraising? Thanks!

@robinrt: 2020-09-17 13:30:49
Hi, this is a bit of a nebulous question. If you have a specific question we're happy to answer it. Fundraising campaigns usually are assigned their own payment type so that you can track money made by that campaign. You can add payment types under Settings->Lookup Data.


Copying Documentation

@mdeprima1964: 2020-09-09 02:33:56
Again, the process thing.... I've got signed adoption contracts under the cat instead of the adopter. I'm sure this is quite easy, but how do I copy a document from the cat to the adopter, or vice versa? Thanks!

@robinrt: 2020-09-09 09:11:50
It's not quite easy I'm afraid, the only way to do it at the moment is to edit the document and use Tools->Source to view the code that makes up the document. Click into the code and then copy it the clipboard with CTRL+A and then CTRL+C,. Then, go to the person record and add a new document, use Tools->Source and paste the content with CTRL+V followed by Ok, Save.


Updating Signature Requests

@mdeprima1964: 2020-09-09 02:31:59
Yeah, I've got some volunteers that have a problem following process. Somehow, they sent out a request for Signature via email after it had already been collected, or we have requests we know we'll never get a response on. How can those requests be closed? Thanks!

@robinrt: 2020-09-09 09:08:13
Just delete the ES01 log entries under the log tab.


SQL commands to alter report: weight

@fletch654: 2020-09-03 17:39:48
I need a report showing 2020 felines only with name, date of original entry, gender, and weight. I tried to use the “Weight History (Shelter Animals)” report, but it's looking at the log for the weight history. I need it to just list the weight on the animal screen. Also, not just the animals currently in the shelter. The original report looks at only in-house animals. Any help would be greatly appreciated.

@fletch654: 2020-09-03 17:47:39
In date order as a list; not separated with a header for each animal.

@srupe05: 2020-09-05 00:03:29
Very basic table with date brought in, shelter code, animal name, sex, and display weight. Includes a date selector to select animals brought in between two dates. Uses species name "Feline" - edit if using "Cat". Ordered by date brought in (unsure how to removed the time from the date brought in.) SELECT a.ShelterCode, a.AnimalName, s.SpeciesName, sx.Sex, a.Weight, a.DateBroughtIn FROM animal a INNER JOIN species s ON s.ID = a.SpeciesID INNER JOIN lksex sx ON sx.ID = a.Sex WHERE s.SpeciesName LIKE 'Feline' AND DateBroughtIn BETWEEN '$ASK DATE Enter from date$' AND '$ASK DATE Enter to date$' and Nonshelteranimal=0 ORDER BY a.DateBroughtIn html for the above SQL: $$HEADER <table border=1> <tr><td><b>Date of Entry</b></td> <td><b>Code</b></td> <td><b>Name</b></td> <td><b>Sex</b></td> <td><b>Weight</b></td></tr> HEADER$$ $$BODY<tr> <td>$DATEBROUGHTIN</td> <td>$SHELTERCODE</td> <td>$ANIMALNAME</td> <td>$SEX</td> <td>$WEIGHT</td> </tr> BODY$$ $$FOOTER </table> FOOTER$$

@fletch654: 2020-09-06 01:34:43
Hello. Thank you so much for your time to write this report. I copied it into a new report and changed feline to cat. When I run the report I the following is displayed: Criteria: Enter from date: 9/1/19 Enter to date: 8/31/20 syntax error at or near "CAT" LINE 6: WHERE s.SpeciesName LIKE ‘CAT’ AND DateBroughtIn... ^ No data to show on the report. The report syntax changes, too. The WHERE line changes to: WHERE s.SpeciesName LIKE ‘CAT’ AND DateBroughtIn BETWEEN ‘$ASK DATE Enter from date$’ AND ‘$ASK DATE Enter to date$’ and Nonshelteranimal=0 I tried to figure out the problem, but I don't know SQL. We need this data to satisfy a grant we received. Again, any help would be appreciated. Please let me know if this is outside the allowable posts for this forum. I don't want to wear out my welcome. Thank you, Tobie Fletcher Tails of Nye County Pahrump, NV 702-860-3102

@fletch654: 2020-09-06 01:36:30
I apologize for my error above. The WHERE line changes to: WHERE s.SpeciesName LIKE ‘CAT’ AND DateBroughtIn BETWEEN ‘$ASK DATE Enter from date$’ AND ‘$ASK DATE Enter to date$’ and Nonshelteranimal=0

@fletch654: 2020-09-06 01:44:34
This is strange I paste in the correct info, but when I hit select it changes to the original. Am I losing my mind? No, I get it now. The apostrophes change to their html & codes of #8216; and #8217; I don't know if that matters to the syntax of the report. Here is the changed WHERE line. Imagine the _ characters aren't there. I put them there to disrupt the html codes. WHERE s.SpeciesName LIKE &_#_8216 ;_CAT&_#_8217_; AND DateBroughtIn BETWEEN &_#_8216 ;_$ASK DATE Enter from date$_&_#_8217; AND &_#_8216 ;_$ASK DATE Enter to date_$_&_#8217_; and Nonshelteranimal=0 I apologize if this is confusing.

@fletch654: 2020-09-06 01:46:02
I'm going to scream. I used the underscore character, but apparently that is a command to add italics. Well, hopefully you understand what I said. My brain is officially mush.

@robinrt: 2020-09-06 09:55:05
Yes, it does matter - your apostrophes are smartquotes instead of the apostrophe character, it does look like that's the error message you are receiving? I don't see anything else wrong with your query apart from the fact that CAT isn't likely to match unless that's what the species name is in your data as it's case sensitive.

@fletch654: 2020-09-09 00:31:07
Hi again. I fixed the case on Cat. I'm still getting the same error message. This is the WHERE statement: WHERE s.SpeciesName LIKE 'Cat' AND DateBroughtIn BETWEEN '$ASK DATE Enter from date$' AND 'ASK DATE' Enter to date and Nonshelteranimal=0 This is the error message: syntax error at or near "DateBroughtIn" LINE 6: WHERE s.SpeciesName LIKE 'Cat' DateBroughtIn BETWEEN 'ASK DA... ^ Does the fact that we're in the USA make any difference? I couldn't find SpeciesID in our wordkeys glossary. Do we use different syntax? Thank you, again, for all your help.

@robinrt: 2020-09-09 09:10:13
The second ASK token is broken. Your WHERE clause should look like this: --- WHERE s.SpeciesName LIKE 'Cat' AND DateBroughtIn BETWEEN ‘$ASK DATE Enter from date$’ AND ‘$ASK DATE Enter to date$' AND NonShelterAnimal=0 ---

@fletch654: 2020-09-09 17:42:26
It's finally working. Thank you sooo much for your time and patience. After you fixed the WHERE statement I had to do a few more fixes. I used other reports to reference the correct syntax. Here's what the final looks like: SELECT a.ShelterCode, a.AnimalName, s.SpeciesName, sx.Sex, a.Weight, a.DateBroughtIn FROM animal a INNER JOIN species s ON s.ID = a.SpeciesID INNER JOIN lksex sx ON sx.ID = a.Sex WHERE s.SpeciesName LIKE 'Cat' AND DateBroughtIn BETWEEN '$ASK DATE Enter from date$' AND '$ASK DATE Enter to date$' AND NonShelterAnimal=0 ORDER BY a.DateBroughtIn, s.SpeciesName Again, I can't thank you enough.


Drop Down In a Custom Document

@mhs_jeff: 2020-09-01 16:11:18
I don't think this is possible but just figured I would ask. I am trying to create a custom document template for our processes of approving applications and I was hoping to incorporate a drop down into the document so that when it is being created / modified the user can select from the different set options to fill a certain field. Is the possible? Thanks Jeff

@robinrt: 2020-09-01 16:19:53
Sorry, it isn't. While you could technically add HTML form controls to a document, their values would not be saved.

@mhs_jeff: 2020-09-07 03:34:11
Ah, ok I figured as much. Thank you!


Inactive person record

@mariacee: 2020-09-01 02:54:51
Hi, I see there's a deceased flag, but there doesn't seem to be a way to mark a person as inactive and exclude them from mailings, etc. Is this slated for development in the near future, or how do you recommend this is managed? We'd like to use the online forms to collect potential adopters and volunteers, but also want a way to easily indicate they're inactive without marking them as deceased.

@robinrt: 2020-09-01 08:52:17
Both "Exclude from bulk email" flag and the deceased flag excludes a person from mail merges.


Permission error

@tsesler0: 2020-08-29 21:52:54
After logging in, I cannot click on a picture and see card. It says permission error and underneath that it says forbidden. How do I correct this problem?

@robinrt: 2020-09-01 08:53:22
You don't have permission to view that animal. It's likely that there is a location or site filter on your user account preventing you from seeing it. To fix, the person who set up your user account needs to either extend the filter to include animals in that location or remove the filter from your user account altogether.


Document Repository

@lynnep: 2020-08-26 10:05:27
Is it possible to attach a document from the repository to a person's media?


Unneutered animals shown as not for adoption

@lynnep: 2020-08-24 21:19:16
Is there a special setting that stops animals being shown as not for adoption if they are not neutered? I have gone through all the options and car't find a setting. This is what it looks like [Pic](//muut.com/u/sheltermanager/s2/:sheltermanager:iaAM:pic.png.jpg)

@robinrt: 2020-08-25 09:24:14
Yes. Publishing->Set Publishing Options->Animal Selection. Set "Include unaltered" to "YES" if you want them adoptable.

@lynnep: 2020-08-25 22:17:59
Thank you


Make a person record private?

@lcasa: 2020-08-24 02:42:19
Is there any way to make a person record private? Or restrict access to certain person records for some users?

@robinrt: 2020-08-24 09:59:43
If you give your person the "Volunteer" or "Staff" flags, then they cannot be accessed by anyone who does not have the "View volunteer person" or "View staff person" permissions.


Cloning animal doesn't clone vaccinations.

@connor9220: 2020-08-22 03:28:10
Was entering in a litter of kittens all of which had been vaccinated on the same day from the same batch etc.. We cloned the first kitten, and the vaccination information didn't come over. Was this overlooked?

@robinrt: 2020-08-22 09:54:55
It shouldn't be, vaccinations are the second thing copied in animal.clone_animal. Can you reproduce?


Corrupt localdb.script

@ctdctd: 2020-08-21 20:24:14
Hi, Just been asked to help at a UK rescue after a power outage. They are running a local java version of ASM which I think is asm2. It fails to start with a java error. The file localdb.script is corrupt and I can't copy it off to a separate drive. I suspect backups do not exist. Any hope? Ta for any replies!

@robinrt: 2020-08-22 09:56:25
That file contains the complete database as SQL text. If you can't read it, I'm afraid there pretty much isn't anything you can do. It might be possible to repair it by hand if you can read most of the file.

@ctdctd: 2020-08-22 10:47:07
Thank you Robin, I've run Recuva and found a couple of corrupt but readable versions - it reported an I/O error on the live version. I than did a full CHKDSK which found and repaired the live version. The live version is now readable by notepad - it's about 9Mb in size with maybe 5 chunks in the middle in the "Insert into Animal Cost Values" , "Insert Into Animal Vaccination Values" and "Insert into Owner Values bits" and a bit at the end showing as corrupt text. The final normal entry starts with the operator name for an "Insert Into Owner Values" entry and finishes "Employee Signature:" I'm going to see if the Recuva files are any different. If I can get the file in the correct format again, I guess it could be imported into a new copy of the DB's - are you able to give me any advice or maybe point me to an online manual for the DB please? I'm not a dbadmin but I'll give it a go if I can! Thanks David

@ctdctd: 2020-08-22 13:10:09
Update - I've manually gone through the localdb.script file deleting the corrupted areas. After that, running ASM reports various errors, giving the line number each time. I've commented out the affected lines - some look to be formatted wrongly and there were quite a lot of duplicates. After all that, it starts and runs - it will be up to the rescue to work out how much data they have actually lost. Thanks again for the reply and a huge thanks for keeping archive downloads and a forum going for a long discontinued product!

@robinrt: 2020-08-22 15:40:04
Well done, glad you managed to get it sorted!


Microchip Provider - Nano Chips

@mdeprima1964: 2020-08-21 03:48:13
Nano Chips is a relatively new chip provider that has exceptional pricing for nano chips (which is great for cats). Any plans to add them to the automated registration process? https://www.nanochipid.com/

@robinrt: 2020-08-22 09:57:18
No plans, but if they have an API and can receive registrations we'd be happy to add them.


Repeat frequency VS medical calender

@scordeau: 2020-08-17 22:08:41
Is there a way with medical tasks that has a frequency/repetition to make the task appear every time the repetition is set, on the medical calender ? For exemple, a treatment is for every day and ends after 3 days. On the medical calendar this treatment will appear the first day scheduled, but not the other 2 days. When de 1st day is past, the task will appear the next day sheduled but not the last day on the medical calender. Then when the second treatment day will be past, the last treatment will appear on the medical calender. Is there a way to put all the sheduled treatments of this task to appear on the medical calender ?

@robinrt: 2020-08-18 09:07:00
There isn't, but an option to pre-create all medical treatments like this has been on our development backlog for a long time. The reason it only creates the treatments on demand is to prevent overdosing where an animal receives one treatment late, but the reminder hits to do it again too soon.

@scordeau: 2020-08-18 14:18:09
I understand, but for a person who need/want to view what his week will be like, he can't right now. Can I have the link for this item on your backlog please ? I did not find it, thanks!

@scordeau: 2021-03-22 15:02:49
It's ok for this one, team understood the issue :) Thanks!


Calculating the difference between two dates

@lynnep: 2020-08-16 15:32:34
I want to show the difference (in months) between the Date of Birth and the Adoption Date. I have tried to use DATEDIFF, but the error says that function does not exist. Any ideas as to how I can do this?

@robinrt: 2020-08-17 11:44:25
which database are you using? If it's sheltermanager.com then we use PostgreSQL for our backends. Use: ``` age(DateOfBirth, ActiveMovementDate)::varchar ```

@lynnep: 2020-08-24 21:23:45
Thank you


Lookup Table values

@lynnep: 2020-08-14 13:33:09
I want to put the Reservation Status value in my report but can only get the ReservationStatusId (a number). Is there a specific table I should be linking to?

@robinrt: 2020-08-17 11:45:04
There's a table called reservationstatus with an ID field to link to.

@lynnep: 2020-08-24 21:23:55
Thank you


Email reports

@gweeks: 2020-08-09 13:20:22
In the last few days I have noticed that any reports I have set to email me at the end of each day are now being sent even if there is no data. Previously if there was no data i would not receive the report which worked better as it didn't clutter my inbox. Is there a way to change this back? Thanks Gary

@robinrt: 2020-08-09 15:43:28
Yes, the option is under Settings->Options->Reports

@gweeks: 2020-08-11 16:52:10
Thanks


Sub Query Plausibility

@mmover: 2020-08-05 17:54:33
Our Animal Control currently uses the report "Incidents between two dates by pickup location'' for billing purposes. They want to include animals that were brought to shelter by a member of the public. The current potential solution would be to have our customer relations enter a new incident and complete it every time an animal is brought to the shelter by a member of the public. But if there is a simpler way like creating a subquery for the report they currently use I would much rather go that route, as entering those incidents would be just one more thing that my staff have to try to remember to do. It would need to pull the animals by datebroughtin, include the shortcode, species name, pickuplocation, and the finder's (brought in by's) name, phone number, and address. Before I attempt to write a subquery is this even possible? I've only worked with a report that has sub queries once and I didn't have to write them. Thank you.

@robinrt: 2020-08-06 10:40:32
Sure, you can write a subquery to do anything. I'm not clear on what it is that you're after. The subquery you're describing sounds like the existing "Intake by Brought In Owner" report?

@mmover: 2020-08-06 20:07:03
I realize after re-reading my post I wasn't as clear as I could have been. I guess what I was looking for is if it was possible to run a modified version of the 'Incidents between two dates by pickup location' report that also pulls data on stray animals that were brought to shelter by a member of the public between the same two dates and ordered by pickup location. So that we could avoid having to enter in a new incident for every stray that is brought to shelter but also avoid having to run two reports? The reason being is we use our call volume as a key piece of data during contract negotiations, and we've only been tracking the calls that animal control gets dispatched to, not any strays brought to the shelter by members of the public (or the calls my staff answers that are animal control related but doesn't require AC to be dispatched, which is a whole other can of worms). I hope that makes sense?

@robinrt: 2020-08-07 09:42:35
It does, it sounds like you want two separate reports that operate on different data shown on a single report. That can be done with the {SUBREPORT} token. You make the two separate reports and then make another which includes them both. There are some reports in the repository that use subreports that you could use as an example, such as the asilomar figures report, petco and "Print Animal Record". https://sheltermanager.com/repo/asm3_help/reports.html#report-grouping-and-calculation

@mmover: 2020-08-07 17:11:29
Thank you! I will start with that!


Paypal cvs import error

@sjras: 2020-08-02 20:04:21
I'm doing this months paypal import & am getting hit with the following error: 'utf8' codec can't decode byte 0xa4 in position 20856: invalid start byte We have several categorizes that require different flags, so we break the spreadsheet into those groups. All 10 of the other groups from the same source file are importing perfectly (thank you for including this btw - saves a TON of entry time!!) I've looked at the data & everything looks ok - no unusual characters, nothing different from the other 10. Tried taking out the first few rows & moving to the bottom to see if that helped...same error. Even tried going back to the original source file & breaking this specific group out again, still error'd. We didn't have this problem with the import of this group last month, so I'm trying to figure out if there's a way to find out what is causing the error so we can eliminate it. Anyone have any ideas?

@robinrt: 2020-08-02 21:20:25
It sounds like the issue is that the file might not be utf8 encoded - it's hitting a character that doesn't match utf8. Try importing it using the cp1252 encoding to see if that helps. Annoyingly. PayPal don't seem to be consistent with text encodings in their activity logs.


Recommended Donation

@cafletch: 2020-08-02 19:00:15
When adopting an animal, is there a way to recommend (default) the donation amount? I was not able to find a setting for this.

@robinrt: 2020-08-02 21:21:02
There is, it's linked to the payment type under Settings->Lookup Data (the Payment Types from the dropdown). There's a default amount you can set for each payment type.


Online forms and Reservations

@connor9220: 2020-07-29 23:11:55
What exactly is the "description" field for? I just tested it, and I didn't see it go in anywhere.. Why is this needed? Is their a way to use a hidden field in the form so the person doesn't have to worry with that?

@connor9220: 2020-07-30 01:56:32
OKay, I'm now a bit more confused.. I adapted one of the fields to description and tested it. I now have entries in the waiting list, as well as the Reservation book. The reservation book looks right.. but, the waiting list, isn't. It has the person in it, but, it set the species, and size to default's Medium Dog. He selected a specific cat.. It looks like the field I adapted popped into the waiting list description.. (Used main reason you plan to adopt a pet). So, why the waiting list? Why not just go into the reservations?

@connor9220: 2020-07-30 02:24:42
Never mind.. Nuke this whole thread. I somehow got waiting list and reservations mixed up.. and didn't realize that creating a person made a reservation if it could.


Fostered animals showing wrong location

@hbcajonb: 2020-07-29 21:28:29
Some cats are incorrectly listed at our adoption center after they have moved to foster via 'Foster an Animal'. I can reproduce the issue for some cats, but for other cats it updates to the correct location 'Foster Home'. Any thoughts what is causing it?

@robinrt: 2020-07-30 09:46:36
The location field is intended for internal locations within a shelter. When you send animals to foster via a foster movement, the system considers them not on the shelter any more (while still in its care) and shelter view shows these animals in a virtual location called "Foster" instead. If you don't want it to do that, choose "Location (No Virtual)" from the mode dropdown at the top right of shelter view. You can make it the default under Settings->Options->Shelter View.

@hbcajonb: 2020-08-01 00:25:27
I see. I can get the fostered cats location to show up in Shelter View correctly. But the problem I'm having is the "Foster" location is not being updated in the Reports or the Animal>Details>Last Location or the SQL database. I want these to show the virtual location "Foster". Some cats have it updated to foster home and others don't, so I don't know why. Please see img below. [Foster_location_issue](//muut.com/u/sheltermanager/s1/:sheltermanager:KfyP:foster_location_issue.png.jpg)

@robinrt: 2020-08-01 08:58:17
The system never updates your location. Last location is the same location field, but not editable. The virtual location is never shown in last location, so there always has to be one "real" location (for many foster-based rescues, they just have the one default location of "Shelter"). You can change the last location for fostered animals by updating location at the bulk change animals screen.

@hbcajonb: 2020-08-01 23:37:40
Excellent explanation. That works for me. Thanks!

@seanimals: 2022-06-10 15:25:50
I have the same problem now. We have three animals that were living at one site, and all three got fostered. But they're not showing in Shelter View as being in the same group as all the other foster animals; they're showing as being at a location called Foster in their old site. I don't see how to change last location in Bulk Change though.

@seanimals: 2022-06-10 15:32:26
Oh, wait. I've just found more. Is it that fostered animals still show in their last location? That's the way it should be? Is there any way they can all just be in one big Foster group?


Time in Foster

@mmover: 2020-07-29 17:52:29
Is there a way to run a report that shows statistics on animals in foster? I do see there is a report for Length of Stay that pulls only animals that have been in foster, but the days in care shows the total days, both in foster and not. I'm hoping there's a way that a report can just show the days they were in foster. Thank you!


Total Intake Query

@mmover: 2020-07-23 20:44:24
I'm modifying the shelteranimalscount matrix report to pull numbers in line with how we do our shelter report, but I'm having trouble getting my intakes to total correctly. Here is what I have: (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (1, 2, 3, 7, 8, 10) OR IsDoa = 1 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 1 AND DateOfBirth <= DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultDogTotalIntake, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (1, 2, 3, 7, 8, 10) OR IsDoa = 1 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 1 AND DateOfBirth > DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorDogTotalIntake, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (1, 2, 3, 7, 8, 10) OR IsDoa = 1 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 2 AND DateOfBirth <= DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultCatTotalIntake, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (1, 2, 3, 7, 8, 10) OR IsDoa = 1 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 2 AND DateOfBirth > DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorCatTotalIntake, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (1, 2, 3, 7, 8, 10) OR IsDoa = 1 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID NOT IN (1, 2) AND NonShelterAnimal = 0) AS OtherDomesticTotalIntake, Here is what it shows: [Annotation 2020-07-23 143254](//muut.com/u/sheltermanager/s1/:sheltermanager:K7Wu:annotation20200723143254.jpg.jpg) Here is what it should be: Canine Adult:35 Canine Up to 24 weeks: 1 Feline Adult: 71 Feline Up to 24 weeks: 114 Misc Domestic: 25 Any help is greatly appreciated!

@robinrt: 2020-07-23 21:00:10
The OR IsDoa = 1 portion is breaking your query and returning everything where entryreasonid is in the list of values you gave. Put the two clauses together in parentheses to treat them as one - either entry reason matches or doa is set but without negating all the other elements of the where clause. --- WHERE (EntryReasonID IN (1,2,3,7,8,10) OR IsDOA=1) AND DateBroughtIn ... ---

@mmover: 2020-07-23 21:38:40
Thank you!

@mmover: 2020-07-23 22:40:37
I ran it as you wrote it above, I even tried removing the OR Is DOA = 1 and then tried running it with EntryReasonID NOT IN (...) both with and without DOA=1. I always check to make sure the are no errors in the SQL before I save it and test it so I know the system believes the query makes sense but it still isn't adding DOAs to the total. It otherwise adds everything else I want it to correctly, it just isn't adding DOAs. Later on in the report I have it pull DOAs and that reflects correctly so I know it isn't a data entry error on my staffs part. What am I missing?

@robinrt: 2020-07-24 08:44:00
It needed applying to every query, did you apply it to just one of the queries maybe?

@mmover: 2020-07-24 16:08:55
No I added it to all of queries involved with pulling total intake numbers. I've attached what the full report looks like when it's run. You'll notice in the full query below that I added entryreasonID 11 as an option as well, as that's the id for a Stray -DOA, I try it without it initially then removing the isDOA = 1 then added it to see if that worked which it didn't either plus that switch to NOT IN both with and without isDOA = 1. $VAR from DATE Enter from date$ $VAR to DATE Enter to date$ SELECT (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE (EntryReasonID IN (1, 2, 3, 6, 7, 8, 10, 11) OR IsDOA = 1) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 1 AND DateOfBirth <= DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultDogTotalIntake, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE (EntryReasonID IN (1, 2, 3, 6, 7, 8, 10, 11) OR IsDOA = 1) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 1 AND DateOfBirth > DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorDogTotalIntake, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE (EntryReasonID IN (1, 2, 3, 6, 7, 8, 10, 11) OR IsDOA = 1) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 2 AND DateOfBirth <= DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultCatTotalIntake, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE (EntryReasonID IN (1, 2, 3, 6, 7, 8, 10, 11) OR IsDOA = 1) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 2 AND DateOfBirth > DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorCatTotalIntake, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE (EntryReasonID IN (1, 2, 3, 6, 7, 8, 10, 11) OR IsDOA = 1) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID NOT IN (1, 2) AND NonShelterAnimal = 0) AS OtherDomesticTotalIntake, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (1, 2, 8) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 1 AND DateOfBirth <= DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultDogStray, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (1, 2, 8) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 1 AND DateOfBirth > DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorDogStray, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (1, 2, 8) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 2 AND DateOfBirth <= DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultCatStray, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (1, 2, 8) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 2 AND DateOfBirth > DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorCatStray, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (1, 2, 8) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID NOT IN (1, 2) AND NonShelterAnimal = 0) AS OtherDomesticStray, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (12, 4, 9, 5) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 1 AND DateOfBirth <= DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultDogTransferIn, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (12, 4, 9, 5) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 1 AND DateOfBirth > DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorDogTransferIn, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (12, 4, 9, 5) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 2 AND DateOfBirth <= DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultCatTransferIn, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (12, 4, 9, 5) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 2 AND DateOfBirth > DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorCatTransferIn, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (12, 4, 9, 5) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID NOT IN (1, 2) AND NonShelterAnimal = 0) AS OtherDomesticTransferIn, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID = 10 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 1 AND DateOfBirth <= DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultDogRequestedEuth, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID = 10 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 1 AND DateOfBirth > DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorDogRequestedEuth, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID = 10 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 2 AND DateOfBirth <= DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultCatRequestedEuth, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID = 10 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 2 AND DateOfBirth > DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorCatRequestedEuth, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID = 10 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID NOT IN (1, 2) AND NonShelterAnimal = 0) AS OtherDomesticRequestedEuth, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE DiedOffShelter = 0 AND NonShelterAnimal = 0 AND (EntryReasonID = 11 OR IsDOA = 1) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 1 AND DateOfBirth <= DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultDogDOA, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE DiedOffShelter = 0 AND NonShelterAnimal = 0 AND (EntryReasonID = 11 OR IsDOA = 1) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 1 AND DateOfBirth > DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorDogDOA, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE DiedOffShelter = 0 AND NonShelterAnimal = 0 AND (EntryReasonID = 11 OR IsDOA = 1) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 2 AND DateOfBirth <= DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultCatDOA, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE DiedOffShelter = 0 AND NonShelterAnimal = 0 AND (EntryReasonID = 11 OR IsDOA = 1) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 2 AND DateOfBirth > DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorCatDOA, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE DiedOffShelter = 0 AND NonShelterAnimal = 0 AND (EntryReasonID = 11 OR IsDOA = 1) AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID NOT IN (1, 2) AND NonShelterAnimal = 0) AS OtherDomesticDOA, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (3, 7) AND AsilomarOwnerRequestedEuthanasia = 0 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 1 AND DateOfBirth <= DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultDogSurrender, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (3, 7) AND AsilomarOwnerRequestedEuthanasia = 0 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 1 AND DateOfBirth > DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorDogSurrender, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (3, 7) AND AsilomarOwnerRequestedEuthanasia = 0 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 2 AND DateOfBirth <= DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultCatSurrender, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (3, 7) AND AsilomarOwnerRequestedEuthanasia = 0 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID = 2 AND DateOfBirth > DateBroughtIn - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorCatSurrender, (SELECT COUNT(*) FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE EntryReasonID IN (3, 7) AND AsilomarOwnerRequestedEuthanasia = 0 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND speciesID NOT IN (1, 2) AND NonShelterAnimal = 0) AS OtherDomesticSurrender, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 1 AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 1 AND DateOfBirth <= MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultDogAdoptionStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 1 AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 1 AND DateOfBirth > MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorDogAdoptionStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 1 AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 2 AND DateOfBirth <= MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultCatAdoptionStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 1 AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 2 AND DateOfBirth > MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorCatAdoptionStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 1 AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID NOT IN (1, 2) AND NonShelterAnimal = 0) AS OtherDomesticAdoptionStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 1 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 1 AND DateOfBirth <= MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultDogAdoptionSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 1 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 1 AND DateOfBirth > MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorDogAdoptionSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 1 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 2 AND DateOfBirth <= MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultCatAdoptionSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 1 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 2 AND DateOfBirth > MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorCatAdoptionSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 1 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID NOT IN (1, 2) AND NonShelterAnimal = 0) AS OtherDomesticAdoptionSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 5 AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 1 AND DateOfBirth <= MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultDogReclaimStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 5 AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 1 AND DateOfBirth > MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorDogReclaimStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 5 AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 2 AND DateOfBirth <= MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultCatReclaimStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 5 AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 2 AND DateOfBirth > MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorCatReclaimStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 5 AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID NOT IN (1, 2) AND NonShelterAnimal = 0) AS OtherDomesticReclaimStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 5 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 1 AND DateOfBirth <= MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultDogReclaimSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 5 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 1 AND DateOfBirth > MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorDogReclaimSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 5 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 2 AND DateOfBirth <= MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultCatReclaimSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 5 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 2 AND DateOfBirth > MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorCatReclaimSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType = 5 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID NOT IN (1, 2) AND NonShelterAnimal = 0) AS OtherDomesticReclaimSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID INNER JOIN owner ON owner.ID = adoption.OwnerID WHERE MovementType = 3 AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 1 AND DateOfBirth <= MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultDogTransferOutStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID INNER JOIN owner ON owner.ID = adoption.OwnerID WHERE MovementType = 3 AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 1 AND DateOfBirth > MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorDogTransferOutStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID INNER JOIN owner ON owner.ID = adoption.OwnerID WHERE MovementType = 3 AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 2 AND DateOfBirth <= MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultCatTransferOutStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID INNER JOIN owner ON owner.ID = adoption.OwnerID WHERE MovementType = 3 AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 2 AND DateOfBirth > MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorCatTransferOutStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID INNER JOIN owner ON owner.ID = adoption.OwnerID WHERE MovementType = 3 AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID NOT IN (1, 2) AND NonShelterAnimal = 0) AS OtherDomesticTransferOutStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID INNER JOIN owner ON owner.ID = adoption.OwnerID WHERE MovementType = 3 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 1 AND DateOfBirth <= MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultDogTransferOutSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID INNER JOIN owner ON owner.ID = adoption.OwnerID WHERE MovementType = 3 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 1 AND DateOfBirth > MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorDogTransferOutSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID INNER JOIN owner ON owner.ID = adoption.OwnerID WHERE MovementType = 3 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 2 AND DateOfBirth <= MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultCatTransferOutSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID INNER JOIN owner ON owner.ID = adoption.OwnerID WHERE MovementType = 3 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 2 AND DateOfBirth > MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorCatTransferOutSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID INNER JOIN owner ON owner.ID = adoption.OwnerID WHERE MovementType = 3 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID NOT IN (1, 2) AND NonShelterAnimal = 0) AS OtherDomesticTransferOutSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType IN (4, 6, 7, 8) AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 1 AND DateOfBirth <= MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultDogOtherLiveStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType IN (4, 6, 7) AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 1 AND DateOfBirth > MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorDogOtherLiveStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType IN (4, 6, 7) AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 2 AND DateOfBirth <= MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultCatOtherLiveStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType IN (4, 6, 7) AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 2 AND DateOfBirth > MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorCatOtherLiveStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType IN (4, 6, 7) AND EntryReasonID IN (1, 2, 8) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID NOT IN (1, 2) AND NonShelterAnimal = 0) AS OtherDomesticOtherLiveStray, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType IN (4, 6, 7, 8) AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 1 AND DateOfBirth <= MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultDogOtherLiveSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType IN (4, 6, 7) AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 1 AND DateOfBirth > MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorDogOtherLiveSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType IN (4, 6, 7) AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 2 AND DateOfBirth <= MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS AdultCatOtherLiveSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType IN (4, 6, 7) AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID = 2 AND DateOfBirth > MovementDate - INTERVAL '6 months' AND NonShelterAnimal = 0) AS JuniorCatOtherLiveSurr, (SELECT COUNT(*) FROM animal INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE MovementType IN (4, 6, 7) AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND MovementDate >= '$@from$' AND MovementDate <= '$@to$' AND speciesID NOT IN (1, 2) AND NonShelterAnimal = 0) AS OtherDomesticOtherLiveSurr, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND EntryReasonID IN (1, 2, 8) AND NonShelterAnimal = 0 AND PTSReasonID IN (2, 9, 10) AND speciesID = 1 AND DateOfBirth <= DeceasedDate - INTERVAL '6 months') AS AdultDogDiedCareStray, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND EntryReasonID IN (1, 2, 8) AND NonShelterAnimal = 0 AND PutToSleep = 0 AND speciesID = 1 AND DateOfBirth > DeceasedDate - INTERVAL '6 months') AS JuniorDogDiedCareStray, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND EntryReasonID IN (1, 2, 8) AND NonShelterAnimal = 0 AND PTSReasonID IN (2, 9, 10) AND speciesID = 2 AND DateOfBirth <= DeceasedDate - INTERVAL '6 months') AS AdultCatDiedCareStray, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND EntryReasonID IN (1, 2, 8) AND NonShelterAnimal = 0 AND PTSReasonID IN (2, 9, 10) AND speciesID = 2 AND DateOfBirth > DeceasedDate - INTERVAL '6 months') AS JuniorCatDiedCareStray, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND EntryReasonID IN (1, 2, 8) AND NonShelterAnimal = 0 AND PTSReasonID IN (2, 9, 10) AND speciesID NOT IN (1, 2)) AS OtherDomesticDiedCareStray, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND NonShelterAnimal = 0 AND PTSReasonID IN (2, 9, 10) AND speciesID = 1 AND DateOfBirth <= DeceasedDate - INTERVAL '6 months') AS AdultDogDiedCareSurr, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND NonShelterAnimal = 0 AND PutToSleep = 0 AND speciesID = 1 AND DateOfBirth > DeceasedDate - INTERVAL '6 months') AS JuniorDogDiedCareSurr, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND NonShelterAnimal = 0 AND PTSReasonID IN (2, 9, 10) AND speciesID = 2 AND DateOfBirth <= DeceasedDate - INTERVAL '6 months') AS AdultCatDiedCareSurr, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND NonShelterAnimal = 0 AND PTSReasonID IN (2, 9, 10) AND speciesID = 2 AND DateOfBirth > DeceasedDate - INTERVAL '6 months') AS JuniorCatDiedCareSurr, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND NonShelterAnimal = 0 AND PTSReasonID IN (2, 9, 10) AND speciesID NOT IN (1, 2)) AS OtherDomesticDiedCareSurr, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (1, 2, 8) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (12, 13, 14, 4, 23, 25, 21, 22) AND speciesID = 1 AND DateOfBirth <= DeceasedDate - INTERVAL '6 months') AS AdultDogEuthNAStray, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (1, 2, 8) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (12, 13, 14, 4, 23, 25, 21, 22) AND speciesID = 1 AND DateOfBirth > DeceasedDate - INTERVAL '6 months') AS JuniorDogEuthNAStray, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (1, 2, 8) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (12, 13, 14, 4, 23, 25, 21, 22) AND speciesID = 2 AND DateOfBirth <= DeceasedDate - INTERVAL '6 months') AS AdultCatEuthNAStray, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (1, 2, 8) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (12, 13, 14, 4, 23, 25, 21, 22) AND speciesID = 2 AND DateOfBirth > DeceasedDate - INTERVAL '6 months') AS JuniorCatEuthNAStray, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (1, 2, 8) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (12, 13, 14, 4, 23, 25, 21, 22) AND speciesID NOT IN (1, 2)) AS OtherDomesticEuthNAStray, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (12, 13, 14, 4, 23, 25, 21, 22) AND speciesID = 1 AND DateOfBirth <= DeceasedDate - INTERVAL '6 months') AS AdultDogEuthNASurr, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (12, 13, 14, 4, 23, 25, 21, 22) AND speciesID = 1 AND DateOfBirth > DeceasedDate - INTERVAL '6 months') AS JuniorDogEuthNASurr, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (12, 13, 14, 4, 23, 25, 21, 22) AND speciesID = 2 AND DateOfBirth <= DeceasedDate - INTERVAL '6 months') AS AdultCatEuthNASurr, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (12, 13, 14, 4, 23, 25, 21, 22) AND speciesID = 2 AND DateOfBirth > DeceasedDate - INTERVAL '6 months') AS JuniorCatEuthNASurr, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (12, 13, 14, 4, 23, 25, 21, 22) AND speciesID NOT IN (1, 2)) AS OtherDomesticEuthNASurr, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (1, 2, 8) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (11, 16, 17, 18, 24) AND speciesID = 1 AND DateOfBirth <= DeceasedDate - INTERVAL '6 months') AS AdultDogEuthAStray, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (1, 2, 8) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (11, 16, 17, 18, 24) AND speciesID = 1 AND DateOfBirth > DeceasedDate - INTERVAL '6 months') AS JuniorDogEuthAStray, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (1, 2, 8) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (11, 16, 17, 18, 24) AND speciesID = 2 AND DateOfBirth <= DeceasedDate - INTERVAL '6 months') AS AdultCatEuthAStray, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (1, 2, 8) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (11, 16, 17, 18, 24) AND speciesID = 2 AND DateOfBirth > DeceasedDate - INTERVAL '6 months') AS JuniorCatEuthAStray, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (1, 2, 8) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (11, 16, 17, 18, 24) AND speciesID NOT IN (1, 2)) AS OtherDomesticEuthAStray, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (11, 16, 17, 18, 24) AND speciesID = 1 AND DateOfBirth <= DeceasedDate - INTERVAL '6 months') AS AdultDogEuthASurr, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (11, 16, 17, 18, 24) AND speciesID = 1 AND DateOfBirth > DeceasedDate - INTERVAL '6 months') AS JuniorDogEuthASurr, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (11, 16, 17, 18, 24) AND speciesID = 2 AND DateOfBirth <= DeceasedDate - INTERVAL '6 months') AS AdultCatEuthASurr, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (11, 16, 17, 18, 24) AND speciesID = 2 AND DateOfBirth > DeceasedDate - INTERVAL '6 months') AS JuniorCatEuthASurr, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND EntryReasonID IN (12, 4, 9, 5, 3, 7) AND PutToSleep = 1 AND AsilomarOwnerRequestedEuthanasia = 0 AND PTSReasonID IN (11, 16, 17, 18, 24) AND speciesID NOT IN (1, 2)) AS OtherDomesticEuthASurr, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND PutToSleep = 1 AND PTSReasonID = 20 AND speciesID = 1 AND DateOfBirth <= DeceasedDate - INTERVAL '6 months') AS AdultDogOutReqEuth, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND PutToSleep = 1 AND PTSReasonID = 20 AND speciesID = 1 AND DateOfBirth > DeceasedDate - INTERVAL '6 months') AS JuniorDogOutReqEuth, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND PutToSleep = 1 AND PTSReasonID = 20 AND speciesID = 2 AND DateOfBirth <= DeceasedDate - INTERVAL '6 months') AS AdultCatOutReqEuth, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND PutToSleep = 1 AND PTSReasonID = 20 AND speciesID = 2 AND DateOfBirth > DeceasedDate - INTERVAL '6 months') AS JuniorCatOutReqEuth, (SELECT COUNT(*) FROM animal WHERE DeceasedDate >= '$@from$' AND DeceasedDate <= '$@to$' AND NonShelterAnimal = 0 AND DiedOffShelter = 0 AND PutToSleep = 1 AND PTSReasonID = 20 AND speciesID NOT IN (1, 2)) AS OtherDomesticOutReqEuth [Annotation 2020-07-24 100450](//muut.com/u/sheltermanager/s2/:sheltermanager:C899:annotation20200724100450.jpg.jpg)

@mmover: 2020-07-24 16:10:18
I should also mention that I didn't include transfer ins to the total intake number queries as those should stay separate.

@mmover: 2020-07-24 16:24:43
I also just noticed that the forum changed some of the query text to sunglasses emoji I don't know why, lol. Anywhere there is that emoji it's supposed to be '7)'. Sorry about that.

@mmover: 2020-07-24 17:17:28
Well I just noticed that May's numbers are adding correctly. But March's isn't. Which makes me think it is a data entry error. So I will have to go back and check the DOAs from the beginning of the year. I'll get back to you if I find the problem.

@mmover: 2020-07-24 19:31:18
It was a data entry error. My DOA row was correct because it was pulling data by either the entrycategoryID or IsDOA. It appeared as if my Total Intake wasn't adding the DOAs when really it was just not double counting them since that query pulled the same way. The entrycategory for every DOA wasn't entered correctly ( as Stray -DOA) instead it was entered as 'Stray - Animal Control' but the disposition was done correctly. Going back and fixing them changes my Intake:Stray line because the DOAs are no longer included. I think to be on the safe side I will also add a line in the section of queries that states AND IsDOA = 0 as a back up incase my staff enter the entry category wrong again. Which hopefully after this they will not... :)


Bulk Regimen-Litter

@sarahless: 2020-07-23 14:37:10
When adding a bulk regimen, should I be able to filter out a litter? I see the option but the litters don't show up. [Screen Shot 2020-07-23 at 8](//muut.com/u/sheltermanager/s1/:sheltermanager:VmHQ:screenshot20200723at8.34.38am.png.jpg)

@robinrt: 2020-07-23 14:53:49
Hi, have you added your litters under ASM->Edit Litters ? Litters that still have active members and an expiry date that has not yet passed should be shown.


Inventory

@friendlyreesy: 2020-07-21 16:03:52
We are a small non profit bird rescue. We would like to track the cages we have in our storage unit by inventory number, dimension, and picture. Stock doesn't offer the picture option which makes is more difficult to see if a particular cage is appropriate for a specific bird who needs an upgrade. And we can't check the cage out to a specific animals with the option to return to inventory if the bird is adopted and doesn't need the cage or god forbid passes away. It would also be helpful to track large items such as play stands. Any ideas?

@robinrt: 2020-07-22 09:16:49
I'm afraid I don't see a workaround for that. A few people have asked for inventory management of equipment and allowing a picture of the item seems like something that would be good to have. I'll update the development ticket on that to include support for a picture.


SQL interface commands not supported

@hbcajonb: 2020-07-20 21:20:10
I'm trying to declare variables and string concatenate in the SQL interface. Any way to accomplish this? No luck when I use dynamic SQL commands such as declaration ~~~DECLARE @flagstring varchar(50);~~~ and string concatenate ~~~AdditionalFlags= AdditionalFlags+ 'flagstring'+'|')~~~. Throws syntax errors. I tried commands that work in custom Report SQL field like ~~~$CONST flag ANIMALFLAG$~~~ but these also seem invalid in SQL interface. Could not figure out what version SQL is running through ~~~SELECT @@VERSION~~~. Any ideas?

@robinrt: 2020-07-22 09:08:26
It's PostgreSQL 9 or 11 depending on which server you're on. The syntax you appear to be using looks like Microsoft SQL Server. The special tokens in the report SQL are substituted by the report engine for values at runtime (eg: $ASK ANIMALFLAG$ asks the user for input and then puts it in the query) or removed before anything is sent to the database. If you need to use variables or program flow, that will only work in stored procedures, which you then call as part of your query. I'm pretty sure that's the same for all databases.


Compatibility Question

@dustinwloring1988: 2020-07-20 00:01:58
I was interested in using this for our shelter but was wandering about some functionality. If when I create a new animal can I have it also be added to my WordPress website? Thanks in advice for any help.

@julian-poidevin: 2020-07-20 08:25:44
Yes ! Wordpress integration is available. You can see an example on my shelter website here : http://mceasso.fr/nos-chats-a-adopter/ See documentation section "30.1.1 Wordpress" for more details : https://sheltermanager.com/repo/asm3_help.pdf

@dustinwloring1988: 2020-07-20 22:10:15
Thanks for the quick reply. I guess I was calling it the wrong thing I wanted to public to my WordPress website's database. My website is https://www.belmontcountyanimalshelter.com and instead of entering the animals on the back end as a "Post" I wanted to upload the shelter manager database to my database. Is this possible?

@julian-poidevin: 2020-07-21 08:30:11
I see you are using the same wordpress theme as my shelter "PetRescue". ASM allows CSV exports but I don't think of any way you could feed that .CSV to your Wordpress website I'm sorry.

@robinrt: 2020-07-22 09:15:36
There is an HTTP API that you can use to retrieve the data from your Wordpress site and then transform it. There's a single call that will inject the animals into your Wordpress pages via Javascript (which you can then style with your normal page CSS). There's even HTTP calls that will generate a full page that you can embed in an iframe. You can export your data as CSV, you can retrieve it programmatically over HTTP as XML or JSON. You could use any of these techniques to get the data and insert it into your WP database yourself though if you need the data to be in your website database. We do have some customers who do this. https://sheltermanager.com/repo/asm3_help/website.html


Creating a daily feeding chart for all the animal in the shelter

@johnsey: 2020-07-19 17:25:24
Hello, how would I go about creating a report that would display the dog's location, name and what they have to eat per meal


Bug with Rotate Media Clockwise...

@connor9220: 2020-07-18 05:00:11
{ id: "rotateclock", icon: "rotate-clock", enabled: "multi", perm:" cam", tooltip: _("Rotate image 90 degrees clockwise") }, There is a space in front of cam keeping everyone but super users from seeing it.

@robinrt: 2020-07-18 11:47:09
that's a really good spot, thanks!

@connor9220: 2020-07-18 17:09:57
I wonder how I found it? :) I used route-clock as the template for my new water mark feature. Cut'n & pasted it and got everything working, then tried it as a different user and the button was no where to be found. Doh!!


Media feature -- Water Mark / Post Process Script

@connor9220: 2020-07-18 02:28:36
I just finished writing a simple python script to watermark a image. It can take an argument of the animals name. It will then watermark the photo with the rescues logo, and add the animals name sized correctly to fit in the width of the photo on the bottom. I would like to include a button in the media center that lets them click the checkbox for each photo, then they can click the watermark button, and it calls my script (passing the image and animal name to it, currently it does everything on disk). Can you give me some guidance on what functions to look at to do this? I see you have a rotate left / right function and I'm thinking of using one of those to model after but would like some input before I proceed and waste my time.

@robinrt: 2020-07-18 11:48:50
Yes, that would be the way to do it - duplicate one of the existing functions like rotate. Copy the button, call media.ajax with your parameters and in code.py add a post_mode (where mode is the name of your mode parameter) method to the media class to handle the data.

@connor9220: 2020-07-18 17:15:56
That's what I did. Copied the rotate-clock button. Only issue I had was trying to figure out how to get the animalName from the media ID. I ended up running a SQL query to pull that in the media function. It's 100% functuinal now, I just need to figure out if I want to move some of the hardcoded options to the asm3.conf, or perhaps a configuration tab. watermark file location x/y offset for watermark (from lower right hand corner) shadowColor fillColor stroke font file location font margin

@robinrt: 2020-07-19 09:19:33
Would that function need to be so interactive and require a button? I appreciate you've done the work now (and found a bug!), but I wonder if it would make sense to just hook media.py / attach-file-from-form and watermark all images as they are uploaded automatically - or get-image-file-data to dynamically add the watermark as images are retrieved and returned to the frontend.

@connor9220: 2020-07-19 18:41:18
The above parameters aren't intended to be interactive. They just need to be in a config file or something so the admin can set up the position of the watermark logo and the animal name overlay. (and set the font they wish to use) As for automatically watermarking on upload or retrieved, *IF* that was done, I say watermark on upload, as I don't know how efficient my water mark code is. I run through several iterations on the font overlay to determine the correct size. As for use, we wouldn't want that. Some of the photos have already manually been watermarked. and the users are also uploading scans/photos of ACO tickets and other documents. I even went so far as to toggle the option "Exclude new animal photos from publishing" so those other images wouldn't get published.

@connor9220: 2020-07-19 22:35:44
Changes pushed to my github account. https://github.com/Connor9220/asm3 I'm maintaining a separate branch with site specific changes for MAARC, but the master branch should only contain the updates for the watermark feature. Let me know if you think I need to change something.

@robinrt: 2020-07-20 11:09:36
Thanks, I'll take a look.


Getting OperationalError: (1305, 'FUNCTION asm.REGEXP_REPLACE does not exist')

@connor9220: 2020-07-17 06:29:43
This looks like my version of MySQL doesn't support this. I'm running 5.7.30. Doesn't look like it was introduced until MySQL v8.0. Any ideas? Can't really upgrade MySQL at this time. Looks like it's primaryly breaking on sql_atoi function (Removes all but the numbers from fieldexpr)

@robinrt: 2020-07-17 10:08:56
In your codebase, copy the sql-regexp-replace function from src/asm3/dbms/sqlite.py over the one in mysql.py - it will make regexp_replace a null operation.

@connor9220: 2020-07-17 18:47:25
I actually was able to create a mysql function to handle this. So, it now works. :)


Missing JS file.

@connor9220: 2020-07-16 23:49:17
The schema.js file is missing in release 43 and on git. Causing issues with the reports editor and SQL interface. No bundle directory under static/js either... ??

@robinrt: 2020-07-17 10:07:17
It's part of the build - "make schema".

@connor9220: 2020-07-17 23:23:26
Yup. Figured that out. Up till this point, I was just using what was in the src directory. Didn't think about having to build anything. One odd thing about the Makefile. The script/jsmin/jsmin was missing. I found it in node_modules/jsmin/bin and copied it to where the make file was expecting it and was able to build without any errors after that. It would break the rollup/minified options if toggled to true, which was something I was just turning on in our deployment.

@robinrt: 2020-07-18 11:45:43
there's a make target to compile script/jsmin/jsmin.c - it's much faster than the js version. Since then though, it's been retired in the latest codebase and we use js jsmin with the rollup only.


Restore templates

@nigglesnush: 2020-07-16 23:07:33
I'm regretting deleting a lot of templates that were available when I set ASM up. How do I get them back?

@robinrt: 2020-07-17 10:10:50
Create a new template for each one and copy/paste the HTML source of the original template under Tools->Source. You can find the source for the templates here: https://github.com/bobintetley/asm3/tree/master/src/media/templates If you're a sheltermanager.com customer, email help@sheltermanager.com and let us know which ones you want restoring and we'll do it for you.


Rescue groups FTP not passive.

@connor9220: 2020-07-15 22:08:07
Rescue Groups FTP publisher isn't using passive FTP.. They for, on amazon ec2 instance, it's throwing errors.. FTP chdir to import/pictures ALERT: Failed uploading C2019012-1.jpg: 500 Illegal PORT command. asm3.configuration.rescuegroups_password(dbo), 21, "", False) Probably should be asm3.configuration.rescuegroups_password(dbo), 21, "", True)

@robinrt: 2020-07-16 09:34:21
Interesting, we aren't seeing any problems on our production servers and there's even a note in the code (which I think I made!) saying that RG only accept active connections and passive will fail. Things do change though and maybe that isn't the case any more. If you make your suggested change to your install, does that make it work for you? Or is the problem really firewalls and active connections with EC2?

@connor9220: 2020-07-16 18:54:41
I made the change and it works.

@connor9220: 2020-07-16 18:57:56
But yea, EC2 doesn't like active connections with FTP. I've always had to go passive when using cli ftp.


Lost report searched

@vsauder: 2020-07-14 20:57:42
The default listing for the search is by zip code. Is there a way we can change this default to the report number or lost date?

@robinrt: 2020-07-15 08:46:14
Hi, are you talking about the lost animal search results screen? You can click any of the column headings to change the sort. I thought we had the default as the number though, zipcode would be an odd choice for the default sort.

@vsauder: 2020-07-15 15:28:48
That's the screen. For some reason with the last update, it switched to the zipcode for the default. Sorting still works correctly. Not sure if this was an error on our end or with the update.


Where are the options for microchip publishers?

@connor9220: 2020-07-14 20:23:40
We're looking microchip options in the manual, but, I don't see the tabs in our interface.. What am I missing? [Screenshot from 2020-07-14 15-22-16](//muut.com/u/sheltermanager/s3/:sheltermanager:NZ8r:screenshotfrom20200714152216.png.jpg)

@robinrt: 2020-07-15 08:44:28
I'm afraid they are not available in the open source version due to us having various support agreements with microchip registries.


HTML Publish

@connor9220: 2020-07-14 20:11:09
The publish to html option looks like it works, but, I can't find any files in the folder I specified. Is that a relative to the root asm folder? What permissions does it need to be? I have it set as adoptables and have a folder created in the httpdocs directory of that name, and nothing. I tried specifying the full path too.. nothing. No errors in the logs either. What am I missing?

@robinrt: 2020-07-15 08:45:17
It wants an absolute path. Are there any error messages in the publishing logs after running that make it clearer?

@connor9220: 2020-07-15 20:46:26
No errors what so ever. I'll try it again with absolute. I'll make the directory writable to everyone to see if that's the issue.

@connor9220: 2020-07-15 21:41:34
etrieved image: 39::17.jpg::C2019012.jpg generating thumbnail /tmp/tmpPCnf2t/C2019012.jpg -> /tmp/tmpPCnf2t/tn_C2019012.jpg Retrieved image: 39::17.jpg::17.jpg generating thumbnail /tmp/tmpPCnf2t/17.jpg -> /tmp/tmpPCnf2t/tn_17.jpg C2019012 -> 1.html SUCCESS: YProcessed: C2019012: Tigress (1 of 10) Processing: D2019004: Charlie (2 of 10) Should it be saving to /tmp even though I have something in the Publish to Directory config option?

@robinrt: 2020-07-16 09:31:34
No, it should not. It only uses a tmp folder if one hasn't been specified or if you've got FTP info set.

@connor9220: 2020-07-16 18:55:21
I gave up on it. Found that using the service API works better for our needs. Not sure what the issue is.

@robinrt: 2020-07-17 10:12:09
That's probably best, we want to retire the old static HTML publisher at some point and everything it does can be done better by the service API.

@arrowhead: 2021-11-08 22:25:19
So now that you "retired" the old html publisher our adoptable animals haven't uploaded or updated in almost a month and there isn't a manual publish option. How exactly do you set up an "API" to publish our animals? How do we get our animals into our website now?

@robinrt: 2021-11-09 09:49:36
Hi, I've emailed instructions. Are you the main account contact? Warning emails were sent out starting in August a couple of months ahead of it being turned off on 18th October.


Remove auto-suggest words while entering data.

@hbcajonb: 2020-07-14 00:25:09
Previously entered words show up in auto-suggest. Some of them were misspelled. Is there any way to remove them or clear the history?

@robinrt: 2020-07-14 09:24:03
Where are the autocomplete suggestions appearing?

@hbcajonb: 2020-07-14 21:43:34
In the "State" field of an address when creating a person.

@robinrt: 2020-07-15 08:42:27
Ah. The source of that list is your previous person records. If you search for the mispelled versions and correct them on those person records, it will fix the list automatically.

@hbcajonb: 2020-07-17 21:19:18
Neat! Thank you.


Copy Paste Media within ASM possible? Can I download to Local File?

@hbcajonb: 2020-07-13 22:33:56
I would like to copy PDF media from a person (adopter) into the adopted cat's media. Is there a way to do this within ASM? Or is it possible to download the PDF out of ASM to a local drive?

@julian-poidevin: 2020-07-13 22:36:16
I would say : open the PDF in the Person's Media tab by clicking on it, then save the document et re-upload it into the cat's media ?

@hbcajonb: 2020-07-13 23:42:50
Yes good suggestion, but not what I was looking for. Sorry because I described my problem wrong earlier. It's a HTML form received through Incoming Forms that I need to duplicate from person into animal media. (Opening as PDF messes up the sizing and text won't fit on the page. So I can't download it directly. And the form has been deleted or expired from the Incoming Forms page, so I can't attach it.) What I've had to do is open the HTML form, trim out rows, and print only the first two pages to a local PDF, then re-upload as PDF. It's a time-consuming process and I was hoping for a more efficient drop and drop type solution.

@hbcajonb: 2020-07-14 00:33:36
I found a solution: Open the HTML file in adopter's media. Select all + Copy. Then, in animal's media create a new document. Paste.


Foster emails for dogs with meds due

@sarahless: 2020-07-13 14:42:16
We would like to send out email reminders to fosters that have medications due...can I add "email" to one of the current medications reports?

@robinrt: 2020-07-13 16:06:54
Hi, there's a special function for doing just this. It's under Settings->Options->Medical->Send a weekly fosterer email. There's more info about it in the manual here: https://sheltermanager.com/repo/asm3_help/options.html#medical

@sarahless: 2020-07-16 21:18:42
Thanks for the quick reply! Our tracking process is a little different and we like to send a link to a form to fill out so that is a great tool but it would not work in this case. Any other ideas I can try out?

@kymkiki: 2020-07-29 09:58:39
I was also looking for a solution for this. Does this only email fosterers? Or can you also email people who have adopted - for example, when their kitten is old enough to be neutered? Is it possible to integrate with external mail tools?

@robinrt: 2020-07-29 10:05:55
The system will not email adopters automatically. It's something we considered too risky since people tend to get angry at unsolicited email, so we always require a user to "pull the trigger" as it were. The Mail menu allows for mail merges that let you email groups of people. There are mail merges that allow you to email all adopters in a period (Non-Returned Adoptions) and there is one that does what you describe called "Non-Neutered/Spayed Adopted Animals Aged Over 6 months". You can also export the data for use with external mail tools from the same screen. You can install mail merges under Settings->Reports->Browse sheltermanager.com

@kymkiki: 2020-07-29 11:06:39
Oh wow thanks for the fast reply. So if I check the "Non-Neutered/Spayed Adopted Animals Aged Over 6 Months" does that mean that each adopter would get the email when the animal's age becomes more than 6months? (Providing all of the animal & adopter information is available) Is there any way for me to preview these mail merge emails so I can see what goes out? :)

@kymkiki: 2020-07-31 13:54:48
Ohh I figured this out - it adds it to the mail merge option and then you can pull CSVs or send bulk mail.

@robinrt: 2020-08-01 08:58:55
Yes, there's a view matching records slider as well to preview the contents.

@kymkiki: 2020-08-01 13:02:22
Yeah - starting to understand how everything fits together now, I created a new template and tested it & it works perfectly. Thanks for your help :)

@audraf: 2021-08-24 20:41:04
Is it possible to edit the weekly email that is sent? Like if I don't want it sent for certain things?

@robinrt: 2021-08-25 10:53:30
Not to that level of detail. You can only choose whether or not to send the emails even if there are no reminders and you can add a custom message to the email. Those options are under Settings->Options->Medical

@audraf: 2021-08-25 16:46:46
Thanks. Is there any other way of letting fosters know when vaccines are due?

@robinrt: 2021-08-25 16:54:15
you could possibly write a mail merge and run it manually to email fosterers (under Settings->Reports). It would be a lot less convenient than the automated weekly email though? What's the issue with using the weekly email?

@audraf: 2021-08-25 23:33:54
We're having some emails go to folks about completed items so people are making appointments for things that don't need to be done. Perhaps it's how medical is doing things on their end, I'm not sure. Suggestions certainly welcome.

@robinrt: 2021-08-26 09:12:58
Only overdue and upcoming ungiven items should be included on the email and never any items that have been completed. If you've got some examples of some of these items that are being included and shouldn't be that we could take a look at, drop us an email at help@sheltermanager.com with your account number.

@audraf: 2021-08-26 17:16:34
Thanks, I'll look to see if I can find it

@hilarybrogers: 2021-09-01 00:17:13
robinrt-is there a section of the help doc/user guide that walks through how to set up the weekly email reminder sent to fosters with animals that have medications due?

@robinrt: 2021-09-01 13:41:07
The docs mention it here. There isn't really much that can be configured, it's just ticking a box under Settings->Options->Medical. https://sheltermanager.com/repo/asm3_help/options.html#medical

@hilarybrogers: 2021-09-01 15:14:02
Sorry to be dense, but where is settings?

@robinrt: 2021-09-01 15:35:28
It's on the menu bar at the top. If you don't see it, your user has not been given permissions to it.


Report for an Added Type on the Details Page

@ears: 2020-07-11 21:09:02
On the details page, I added a TYPE titled Critical Care. I need to create a report on the Critical Care cases over the last several months to report to the grant committee on how the money they gave us was used. I have looked in several places, but since I added the title, I am afraid I must create the report and am not good at that, sadly.

@robinrt: 2020-07-12 09:57:53
Hi, that isn't necessary. There are many reports that break down by type, eg: In/Out by Type, Intakes by Type with Outcomes


SQL commands to alter report

@fletch654: 2020-07-08 01:09:07
I need to change the "Animals Without PDF Media" report to look at animals no longer in the shelter. The original report looks at only in-house animals. We are a spay/neuter assistance organization so we don't use ASM as a shelter would. Our animals are already returned to the owner before they're entered into the system. I need to know if any of them do not have pdf copies of their paperwork. Any help would be appreciated.

@robinrt: 2020-07-08 11:44:21
Hi, edit your copy of the report under Settings->Reports. There will be a section in the WHERE clause of the SQL that says Archived = 0 - it's this that controls whether the report only searches shelter animals. Change Archived = 0 to Archived >= 0 to have it consider all animals.

@fletch654: 2020-07-08 16:02:57
Thank you for your response, but it's still not working. Report changed to: SELECT a.AnimalName, a.ShelterCode, t.AnimalType, i.LocationName FROM animal a INNER JOIN animaltype t ON t.ID = a.AnimalTypeID INNER JOIN internallocation i ON i.ID = a.ShelterLocation WHERE a.Archived > = 0 AND 0 = (SELECT COUNT(ID) FROM media m WHERE m.LinkID = a.ID AND m.LinkTypeID = 0 AND LOWER(m.MediaName) LIKE '%.pdf') ORDER BY t.AnimalType, a.AnimalName Message when report is run: syntax error at or near "=" LINE 5: WHERE a.Archived > = 0 AND ^ No data to show on the report.

@robinrt: 2020-07-08 16:59:34
There should not be a space between > and = - it is the same operator, a.Archived >= 0

@fletch654: 2020-07-09 05:05:14
Thank you soooooo much. I was actually able to add the DateBroughtIn to the report all by myself. Then I was able to re-order the report by that date. Thank you, thank you, thank you.


Bulk change animals on adopted animals?

@hbcajonb: 2020-07-08 00:52:00
Trying to bulk flag one hundred adopted animals, but they aren't showing up in the search. Any way to get them to show up in search, or bulk edit them some other way?

@robinrt: 2020-07-08 11:42:34
Yes, you can use the CSV import module. As long as your file has an ANIMALCODE column that corresponds to the shelter code field of an existing animal record, you can specify an ANIMALFLAGS column and the system will update those animals with the flags you set. https://sheltermanager.com/repo/asm3_help/csvimportfields.html#csvimportfields

@hbcajonb: 2020-07-09 00:59:31
Thanks for the suggestion. I still have two issues. Could you help me a step further with the CSV import? It is creating a new animal even when I specify the ANIMALCODE and check "Merge duplicate records". Also, it is not applying custom animal flags. Here is my csv for a testing: ANIMALCODE,ANIMALNAME,ANIMALFLAGS,ANIMALDOB O2020212,Experiment29825,"notforadoption, DCDF COVID 2020 Grant",1/1/2001

@robinrt: 2020-07-09 08:49:27
That looks like you're doing everything correctly. The only thing I can think of is that perhaps the code is wrong - perhaps you're looking at the short code field instead of the main shelter code or a digit is incorrect.

@hbcajonb: 2020-07-20 22:25:28
I tested the CSV import again. Still have problems. And I ran an SQL select query to see what changes the CSV import made. It looks like the ANIMALCODE is working now. No new animals are created when an existing number is specified. But the fields ANIMALNAME, ANIMALFLAGS, and ANIMALDOB are not updating correctly. The animal flag is being entered into the database with '|' character between every letter in the string, like so: n|o|t|f|o|r|a|d|o|p|t|i|o|n|||'|D|C|D|F| |C|O|V|I|D| |2|0|2|0| |G|r|a|n|t|'||| The substring 'n|o|t|f|o|r|a|d|o|p|t|i|o|n|' is recognized as a 'notforadoption' variable and displays properly as 'not for adoption' in ASM. But custom flags are not recognized or displayed. The ANIMALNAME and ANIMALDOB fields do not appear to update the database at all. Is this by design? Or is there a specific date and time format that the CSV import module requires? Also, the variable names in the database schema are named differently. Is there any way to see which database variables match which CSV import variables? CSV import file: ANIMALCODE,ANIMALNAME,ANIMA LFLAGS,ANIMALDOB O2020225,jonb_SQL_test,notforadoption|'DCDF COVID 2020 Grant'|,'2001-07-02 00:00:00' SQL query: SELECT animal.dateofbirth, animal.ShelterCode, animal.AnimalName, animal.AdditionalFlags from animal WHERE animal.ShelterCode like 'O2020225'; SQL output: ADDITIONALFLAGS ANIMALNAME DATEOFBIRTH SHELTERCODE n|o|t|f|o|r|a|d|o|p|t|i|o|n|||'|D|C|D|F| |C|O|V|I|D| |2|0|2|0| |G|r|a|n|t|'||| jonb_SQL_test2 2008-07-02 00:00:00 O2020225


Command line data entry or SQL possible?

@hbcajonb: 2020-07-08 00:13:38
I have a csv file of one hundred animal names with payment amount, date, and payer. Is there any way to input these payments through the command line instead of manually clicking through the graphical interface? Is there any way to add records to the database using SQL commands?

@robinrt: 2020-07-08 11:40:34
You can add them manually using SQL, but it's going to be hard work if you don't know SQL already. There is a CSV import module that can handle animals and payments. The info is here: https://sheltermanager.com/repo/asm3_help/configuration.html#import-a-csv-file

@hbcajonb: 2020-07-09 01:14:56
Great! I know SQL. How would you recommend I go about it? I'm thinking of Exporting a "SQL dump" through Settings/SQL Interface. View the database and test the update commands locally. Then submit them through the SQL interface. Would that work?

@robinrt: 2020-07-09 08:47:15
Yes, that would work. The main animal and movement table schemas are also documented in the manual here: https://sheltermanager.com/repo/asm3_help/databasetables.html


Word Keys - LitterMates

@vsauder: 2020-07-07 15:19:55
I have created a document utilizing the word key, LitterMates. When there is no littermate listed it adds all the animals that do not have litters assigned. Did we miss a default setting somewhere?

@robinrt: 2020-07-07 15:26:08
Thanks, it's a bug. I'm applying a fix now for tomorrow's deployment.

@vsauder: 2020-07-07 15:26:29
Thanks!!


Custom Fields don't line up.

@connor9220: 2020-07-04 00:55:18
I added some custom Fields, and they don't line up. [Screenshot from 2020-07-03 19-48-56](//muut.com/u/sheltermanager/s1/:sheltermanager:n8y2:screenshotfrom20200703194856.png.jpg) Here is after I fixed it in my code base.. however, I'm not sure if it'll break anything in other parts of the system [Screenshot from 2020-07-03 19-54-41](//muut.com/u/sheltermanager/s1/:sheltermanager:ylON:screenshotfrom20200703195441.png.jpg) Can you look at this and fix it correctly?

@robinrt: 2020-07-04 11:13:15
They line up with the two columns of rabies tag?

@connor9220: 2020-07-04 23:06:51
I just looked really strange. The rabies tag looked like it was all alone before adding custom fields, and then the new Yes/No not lining up with the others.. just made it odd looking.


Best way to handle boarding and extended vet stays?

@connor9220: 2020-07-03 21:29:09
What's the best way to keep track of animals who are boarded, or at the vet for extended time? Internal Locations? Transport? Mark them as Foster and use the Boarding facility / Vet as the Foster? They key difference being, that we accrue per day charges, and it's important to keep track of them so that none of them slip through the cracks.

@robinrt: 2020-07-04 11:14:19
I'm afraid there isn't really a good way to handle this. We have got a boarding module specced out that would work, but it's still on the development list for later this year. You could use internal locations as you said along with something like the "time in location" report to make a rough calculation.

@connor9220: 2020-07-04 23:13:59
What looks like a good possibility would be a Movement type of Boarding -- which acts like fostering in most respects, but, different so that we can run a separate report. Would keep them in inventory, and we could see where they're at. When you go to choose your Boarding place (vs foster) It would only list out People flagged as "Boarding" Which could include any vet office flagged as such, training facilities, and 3rd party boarding facilities.

@jarnold: 2021-07-28 00:59:01
Yes, the ability to amend/edit "Movement Type" would be SO helpful! You can add other options to other types, just not Movements. We offer an Emergency Boarding service for free and it would be helpful to track - not only for new animals using this program but also for animals previously adopted from us (right now, we'd have to create a copy/duplicate file to track in this situation).


Looking for -- Foster

@connor9220: 2020-07-03 21:26:29
So, the Looking for section is great, but, it's just not that useful for us for Adoption. We just don't have that many people coming in saying, put me down if you have such and such to adopt. What we really want is to use it for people who can foster. We have fosters lined up who are willing to foster specific things, like small and medium dogs, or senior dogs, or kittens and dogs etc etc.. The looking for only lets us do one criteria, AND, we can't differentiate wither it's Adoption vs Foster. Can this be expanded to include additional criteria, and support for fostering?

@robinrt: 2020-07-04 11:15:26
I don't know how many criteria you have, but many people just add person flags for these. Eg: Foster - Small Dogs, Foster - Senior Dogs, etc. The find person screen lets you find combinations of flags as it uses AND, so to match a person must have every flag you specify in the dropdown.

@connor9220: 2020-07-04 23:10:37
I suppose that's a possibility. I just like the idea of using the People Looking for function to match up any animal with a possible foster. Typically, we have maybe up to 3 or 4 criteria.. Small, Medium, Special Needs, Senior (dogs) Or Kittens, special needs etc etc.. Stuff like that.


Help/Feature Request: Create an Invoice (clone of Receive Payment Screen)

@ibesky: 2020-07-03 19:48:11
I'm trying to figure out how to more easily create a multi-line invoice/receipt # without having to do a lot of backtracking and editing, especially on mobile so I can email a payment link to a user so they can pay their associated redemption fees. How do I/is there a functionality to create a multi-line invoice (can there be a "due date" option in the receive payment screen like there is on the individual new payment popup? )? For example, a majority of our animals have to have a rabies vaccine and a license issued before they go home, with fees paid including an additional redemption fee. I managed to figure out how to get everything on a single invoice/receipt (financial > receive a payment, the go back into all of the lines and change date received to date due and this can be cumbersome on mobile), but when I try to request payment, I can only select/see one "line" of the invoice (workaround - made an email template that I can easily edit on mobile to change prices if needed). Paypal and Stripe bill the total amount of the receipt if and only if I put everything in as receive payment and then go back and change all of the dates from received to due. Is it possible to make this easier or am I thinking to hard and there is already a way to do it? I'm trying to make this as simple as possible since many of my people are no technologically inclined. Thanks in advance for any insight/assistance/awesome nerdyness.

@robinrt: 2020-07-04 11:12:26
Hi, turn on the option Settings->Options->Accounts->When receiving multiple payments, allow the due and received dates to be set. This lets you see and set both dates when entering the payments. If you have more due than received payments you could also turn on Settings->Options->Movements->When creating payments from the Move menu screens, mark them due instead of received. This will default the due side of the payment instead of received.

@ibesky: 2020-07-07 21:49:50
THANK YOU!!!! ( I knew I was missing something) That makes it so much easier!


Auto-generate document name

@julian-poidevin: 2020-07-01 08:54:05
It could be great if we could somewhere configure the generated document name (maybe using wordkeys) to automatically name generated documents so we don't waste time renaming it afterwards. Is there already a way to do that ?

@julian-poidevin: 2020-07-01 08:55:43
And.... I just check the documentation, and it's already implemented, sorry for the post...

@julian-poidevin: 2020-07-01 09:01:32
Oh no, I misread the documentation. It's actually not possible currently.

@phread: 2020-07-03 01:25:46
Would definitely like to see this.


Asilomar options

@bramuno: 2020-06-29 05:07:35
Hello, i checked the Lookups section but there is no listing for the "Asilomar Category" drop down list found in the animal Entry tab. Is there a way to add some more options?

@robinrt: 2020-06-29 10:05:05
There aren't. These options are fixed and set out by the asilomar accords. They do not understand other values.


How to keep track of loan furniture in stock

@julian-poidevin: 2020-06-28 00:47:19
Hello, We are using "Trap Loan" feature to keep track of the furniture we loan to people and mostly fosters. We have some furniture that are stored in volunteers houses but that are not currently used. How could we manage stored and available furniture vs. loaned furniture ? We are currently using the "Comment" field to say it's available but it's not ideal. Ideally, it would be great to be able to create a list of available furniture and their location and, when searching for a special furniture _(e.g : I need a big cat litter for a new foster, where can I found one, where is it stored and what's the furniture number)_, being able to assign a furniture to someone with a due date etc... like it's already the case. Thanks a lot


Clinic function

@sjras: 2020-06-22 18:47:16
Can we edit the options for the clinic status'? We need to add a No Call/ No Show option but I can't locate the area to edit those fields. Thanks!

@robinrt: 2020-06-22 19:01:42
No, the clinic statuses are fixed I'm afraid.


Media file migration

@inghamn: 2020-06-22 13:43:57
Years ago, when we were stll using MySQL, I migrated the media files out the database and onto the hard drive of the web server. Now, I'm thinking about migrating them back into the database. Back then, asm migrated the media files for us, at startup, based on the asm.conf. Would this work in reverse? Times have changed, and the way we host ASM has changed. We've moved from physical machines to VMs and are now moving towards Kubernetes. If there's a relatively easy way to migrate the media files back into the database (from the file storage), I can host ASM in a Docker container. I would be willing to write and maintain a production Docker image, if folks are interested.

@robinrt: 2020-06-22 13:50:55
Set ``` dbfs_store = database ``` in your asm3.conf file. You should then be able to run the switch dbfs storage action of the cron.py script. This will read all your existing files and re-store them in the chosen storage scheme. S3 is also available and an option if you have boto3 installed. ``` python3 cron.py maint_dbfs_switch_storage ```


Select species in online application?

@ibesky: 2020-06-18 09:23:41

@robinrt: 2020-06-18 09:37:31
Please give more information about what it is you're after? If it's for the Shelter Animal or Adoptable Animal field types, there is a species box and you choose which species of animals are shown in those dropdowns on the form.

@ibesky: 2020-06-18 13:07:07
I found it! Thank you!


Allow Reservation in Bulk Change Animal Movement

@ketalabama: 2020-06-17 11:12:47
We process applications outside of Shelter Manager and then go thru a process to enter adopter information etc into the system. Sometimes there can be a lag on that and we mark the animals as Reserved by a system user we created for this purpose so they stop publishing out to external adoption sites as available. It would be helpful for us to have Reservation as an option in the Movement dropdown on the Bulk Change Animal screen. If there is already another way to do this please let me know. Thanks

@robinrt: 2020-06-18 09:36:33
Hi, there are simpler ways to do this without creating a fake reservation. The simplest would be to use the bulk screen to set the "Not available for adoption" flag on those animals. You can also create flags called "Exclude from Petfinder" and "Exclude from AdoptAPet" and assign them to your animals (again via the bulk change screen) to prevent them being sent to those services. Remove the flags when you go into the animal's record and process the adoption.


Adjustment to french translation

@timgalia: 2020-06-14 21:48:55
Hi, Being in France I use SM3 in both French and English, mostly the translation is top! but there are one or two niggly things that are causing a bit of confusion to my french colleagues One the main ones is on the add a contact section, 'Buisness' / 'Company' is translated as 'Association' a better replacement for that would be Société ou Entreprise Being an association ourselves my colleagues are reading it too literally and enterinf vets and other buisnesses as a standard contact As we pay for hosting on your servers is it possible to make this small adjustment to the translation file? Many thanks Tim, Association Galia

@julian-poidevin: 2020-06-14 22:00:31
(I'm Julian Vallejo on Facebook that suggested you to post here). Me and my girlfriend did complete the French translation. There are still some errors, thanks for letting me know, I'll check that. You can also directly contact me on my Facebook if you wish

@julian-poidevin: 2020-06-15 20:11:41
Tim, I just checked : in my ASM version (when I put it in English), when adding a new person I either have the choice between : Individual/Couple OR Organization. According to you, what would be the best equivalent in french ? Because "non-profit organization" means "Association" in french. There's also the word "Organisation" in french but it's really not used in that context. Please tell me :-)

@julian-poidevin: 2020-06-22 20:48:03
Tim, can you please get back to me ? Thanks


wish list

@timgalia: 2020-06-14 21:36:19
is there a place to ask for wishes?

@julian-poidevin: 2020-06-14 22:01:56
I guess you can visit the support page of ASM3 website here : https://www.sheltermanager.com/site/en_support.html

@robinrt: 2020-06-15 09:46:31
As a hosting customer, you can also just email us at help@sheltermanager.com


PDF Generation Error

@julian-poidevin: 2020-06-12 12:50:23
Hello, When trying to generate the PDF of the following document (source below), I'm having this errors : *ERRORS* ``` 89.86.90.62:55009 - - [12/Jun/2020 13:49:58] "HTTP/1.1 GET /document_gen" - 200 OK 89.86.90.62:55009 - - [12/Jun/2020 13:49:58] "HTTP/1.1 GET /css" - 404 Not Found 89.86.90.62:55009 - - [12/Jun/2020 13:50:00] "HTTP/1.1 POST /document_gen" - 200 OK ``` *DOCUEMENT SOURCE* ``` <center> <table style="border-style: none; width: 673px; border-color: #FFFFFF;" border="1" width="673" frame="VOID" cellspacing="0" cellpadding="7"> <tbody> <tr> <td width="337" height="224"> <p align="CENTER"><span style="color: #4f81bd;"><span style="font-family: Cambria, serif;"><span style="font-size: large;"><strong><img src="http://mceasso.fr/wp-content/uploads/2020/01/Fichier-1.png" alt="" width="179" height="217" /></strong></span></span></span></p> <p align="CENTER"><span style="color: #4f81bd;"><span style="font-family: Cambria, serif;"><span style="font-size: large;"><strong>MERIGNAC CHATS ERRANTS</strong></span></span></span></p> <p align="CENTER"><span style="color: #4 f81bd;"><span style="font-family: Cambria, serif;"><span style="font-size: small;">Association Loi 1901 de Protection Animale<br />Numéro d’agrément : W332023546<br />Préfecture de la Gironde<br /></span></span></span></p> </td> <td valign="TOP" width="308"> <p align="CENTER"><span style="color: #4f81bd;"><span style="font-family: Cambria, serif;"><span style="font-size: large;">BON numéro : 2020 / </span></span></span></p> <p align="CENTER"> </p> <p align="CENTER"><span style="color: #4f81bd;"><span style="font-family: Cambria, serif;"><span style="font-size: large;">CLINIQUE :</span></span></span></p> <p align="CENTER"><span style="color: #4f81bd;"><span style="font-family: Cambria, serif;"><span style="font-size: large;"><<AppointmentFor>></span></span></span></p> <p align="CENTER"> </p> <p align="CENTER"><span style="color: #4f81bd;"><span style="font-family: Cambria, serif;"><span style="font-size: large;">RDV le <<AppointmentDate>></span></span></span></p> <p align="CENTER"><span style="color: #4f81bd;"><span style="font-family: Cambria, serif;"><span style="font-size: large;">à <<AppointmentTime>></span></span></span></p> </td> </tr> </tbody> </table> </center> <p align="CENTER"><span style="color: #4f81bd;"><span style="font-family: Cambria, serif;"><span style="font-size: large;"><em><<ReasonForAppointment>></em></span></span></s pan></p> <p align="CENTER"><span style="text-decoration: underline;"><strong><span style="color: #4f81bd;"><span style="font-family: Cambria, serif;"><span style="font-size: large;">Facturation Association M.C.E.</span></span></span></strong></span></p> <p align="CENTER"><span style="text-decoration: underline;"><strong><span style="color: #4f81bd;"><span style="font-family: Cambria, serif;"><span style="font-size: large;">Facturation Convention Mairie de Mérignac</span></span></span></strong></span></p> <p> </p> <p><span style="font-family: Cambria, serif;"><span style="font-size: medium;">Merci de bien vouloir procéder à l’intervention ci-dessus,<br /><u>Chat</u><u> </u><u>:</u> <span style="font-size: 11pt;"><<AnimalName>> (ID : <span style="font-family: Courier New, serif;"><<ShelterCode>></span>)</span><br /></span></span></p> <p><span style="font-family: Cambria, serif;"><span style="font-size: medium;"><<AppointmentComments>></span></span></p> <p> </p> <p><span style="color: #ff0000; font-size: 11pt;"><span style="font-family: Cambria, serif;"><em>(Aucun rajout manuscrit ne sera pris en charge sauf autorisation de <<CoordinatorName>> : <<CoordinatorMobilePhone>>)</em></span></span></p> <p> </p> <p><span style="font-family: Cambria, serif; font-size: 11pt;">Avec nos sincères remerciements pour vos soins,</span></p> <p><span style="font-family: Cambria, serif; font-size: 11pt;">Cordialement,</span></p> <p style="text-align: right;"><span style="font-family: Cambria, serif;"><span style="font-size: medium;">Fait à Mérignac,<br />Le <<Date>><br /><img src="http://mceasso.fr/wp-content/uploads/2020/06/Signature-Juliette-scaled.jpg" alt="" width="154" height="49" /><br /><strong>Juliette TOUBIANA</strong><br /></span></span></p> <p><span style="color: #ff0000;"><span style="font-family: Cambria, serif;"><span style="font-size: 11pt;">L'Association ne prend en charge que les soins notés sur le présent bon.</span><br /><span style="font-size: 11pt;">Tout achat en dehors des actes prescrits sur ce bon est à la charge de la FA.</span><br /><span style="font-size: 11pt;">L’association sera en droit de lui en demander le remboursement.</span><br /></span></span></p> <table style="border-collapse: collapse; width: 100%;" border="1"> <tbody> <tr> <td style="width: 50%;"> <p align="CENTER"><span style="color: #5f497a;"><span style="font-family: Calibri, serif;"><span style="font-size: small;">Association Mérignac Chats Errants<br />Maison des Associations<br />55 av du Maréchal de Lattre de Tassigny<br />33700 Merignac<br /></span></span></span></p> </td> <td style="width: 50%;"> <p align="CENTER"><span style="color: #5f497a;"><span style="font-family: Calibri, serif;"><span style="font-size: small;">Contact : 06 28 26 28 61<br />merignacchatserrants@gmail.com<br />Facebook : MCEASSO</span></span></span></p> </td> </tr> </tbody> </table> ``` I have wkhtmltopdf installed, and I also tried to change HTML-TO-PDF command in asm3.conf to : ``` xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf --orientation %(orientation)s %(papersize)s %(input)s %(output)s ``` It didn't help much. What is causing the error ? Thanks

@robinrt: 2020-06-12 16:22:13
My guess would be one of your img src attributes cannot be resolved. wkhtmltopdf is incredibly sensitive to unreachable urls. Other than that, I'm not seeing an error in the output you posted - the POST 200 OK is the server accepting your document for PDF conversion. Try saving your HTML into a file and running it from the command line to get a better idea of the error (or have a look at the console where ASM is running to see what is being sent to stderr).

@robinrt: 2020-06-12 16:24:38
Hmm, I just copied it into a file and ran it locally here - no errors and both images came through fine. Must be something environmental.

@julian-poidevin: 2020-06-13 00:19:58
Thanks for trying ! What additional technical information can I provide to help you find what is the issue ? My wkhtmltopdf version is `0.12.4` My mysql version is `Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)` My imagemagick version `8:6.9.7.4+dfsg-16ubuntu6.8` My nodejs version is `v8.10.0`

@julian-poidevin: 2020-06-13 00:45:01
I may have found something, when trying to do : ``` root@vps759328:~/repo# wkhtmltopdf filehtml.html filepdf.pdf qt.qpa.screen: QXcbConnection: Could not connect to display Could not connect to any X display. ``` Searching on the google I found : https://unix.stackexchange.com/a/192646 I got it working using the following commande line : ``` html_to_pdf = xvfb-run -- /usr/bin/wkhtmltopdf --orientation %(orientation)s %(papersize)s %(input)s %(output)s ```

@robinrt: 2020-06-13 08:16:01
Yes, the version of wkhtmltopdf bundled in Debian and Ubuntu requires an X server to run, so it needs to be inside xvfb if your server is headless.


Sign button is not available

@julian-poidevin: 2020-06-08 23:33:32
There was a post about this 9 weeks ago but it didn't get an answer. Is it normal for open source users to not have the sign button and the signing functionality disabled? Thanks !

@robinrt: 2020-06-09 08:58:29
Signatures are disabled by default. You need: ``` electronic_signatures = touch ``` in your asm3.conf file.

@julian-poidevin: 2020-06-09 11:10:55
Thanks !

@julian-poidevin: 2020-06-12 12:37:59
I did create a pull request to add this in the example configuration file


Marking field

@jimdunne: 2020-06-06 18:28:38
When I used the stand alone version of ASM, I could add markings in a field under the 'Health and Identification' tab of an animals record. Now I have the hosted version, this field has disappeared and I can't see any way to 'switch it on'. Is this field still available, and if so, how do I switch it on please.

@adoptamutt: 2020-06-06 19:53:06
I think that is under the Notes Section now.

@jimdunne: 2020-06-06 20:40:19
Yes, I found it about 20 minutes ago - thanks!


Online form not submitting

@srupe05: 2020-05-28 14:52:49
A potential adopter was trying to complete our online application but was having issues with submitting. The issue was described and I was able to recreate the problem. Our form asks the number of children (lookup field) in the home and a separate field asks the age range of children (multiple select). The field for age range (a required field) had a show if syntax relating to the number of children in the home (show if - children>0) and that functioned as it should. Despite selecting an age range, the form would not submit. When clicking submit, the form would highlight the age range field and state a value is required. In the meantime, I edited the age range field by removing the show if syntax and added "no children" to the multiple select values and the form submits without issue. [Online form](//muut.com/u/sheltermanager/s1/:sheltermanager:878U:onlineform.jpg.jpg)


Add "Created on" column on the person search result

@julian-poidevin: 2020-05-27 22:53:47
When searching for a foster, we would like to rank reorganize people in the search results by the latest created in ASM. We want to contact people the latest created, it seems more natural (for fosters particularly) . Is there a way to do that or can it be added ?

@adoptamutt: 2020-05-28 15:28:35
Optionally, you could create a report for that: --- SELECT o.OwnerCode, o.OwnerName, o.OwnerAddress, o.OwnerTown, o.OwnerCounty, o.OwnerPostcode, o.EmailAddress, o.MobileTelephone, o.HomeTelephone, o.CreatedDate FROM owner o WHERE o.IsFosterer = 1 ORDER BY o.CreatedDate DESC ---

@robinrt: 2020-05-28 15:53:05
It makes sense, you can put Created By in the results and there's even an advanced person search for created since date.


Re-entries and microchips

@jimdunne: 2020-05-26 13:34:55
I have been cloning original files for hedgehogs that have come back into our rescue after being released to the wild. This enables me to add new details to the record, whilst preserving the old record. I have a problem in that I cannot add the microchip details to the new record as the system will not allow it as the chip is already allocated to another animal. Any ideas how to overcome this?

@robinrt: 2020-05-26 15:09:34
There's nothing unreasonable about doing that, but the normal way would be to return the released to wild movement so you have the complete history with one animal record. Creating a new record means each return will appear as brand new intake when reporting figures. You can turn off the requirement for microchips being unique under Settings->Options->Animal Codes->Allow duplicate microchip numbers


SQL for those obsessed with quality control.

@adoptamutt: 2020-05-20 17:13:01
Thought I would share this report that I wrote because it is very helpful to me. It checks things like capitalization on cities, length of phone numbers, invalid state abbreviations, animals adopted but not spayed, wrong vaccination types used, wrong animal types used, people entered in original owner field when it was a stray, duplicate people entered, etc. I have it set so that it emails this report to me each morning. Of course, some customization by you for your specific shelter/rescue will be required. --- SELECT * FROM ( --Adoption Coordinator is not entered. This is for organizations that use Adoption --Coordinators --SELECT --a.animalname AS name, --a.sheltercode AS code, --date(a.LastChangedDate) AS issuedate, --'Adoption Coordinator not assigned in Entry Section.' AS issue --FROM animal a --WHERE a.archived = 0 --AND a.nonshelteranimal = 0 --AND a.adoptioncoordinatorid = 0 --AND NOT (a.AdditionalFlags LIKE 'Ignore Issues|%' OR a.AdditionalFlags LIKE '%|Ignore Issues|%') --An Adoption Movement was entered for a person record flagged as 'Other Shelter'. - -Probably should be a Transfer Movement. SELECT animal.animalname AS name, animal.sheltercode AS code, adoption.movementdate AS issuedate, 'Adoption was entered for a record flagged as <i>Shelter</i>. Should be Transfer Movement' AS issue FROM animal INNER JOIN adoption on adoption.id = animal.activemovementid INNER JOIN owner on owner.id = adoption.ownerid LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID WHERE animal.nonshelteranimal = 0 AND animal.DATEBROUGHTIN > '2010-01-01' AND adoption.movementtype = 1 AND (owner.AdditionalFlags LIKE 'shelter|%' OR owner.AdditionalFlags LIKE '%|shelter|%') AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --This checks to see if there is a corresponding Adoption Movement for any --Adoption payments entered. Sometimes people will delete an Adoption Movement --instead of just entering an Adoption Return Date. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, od.date AS issuedate, 'Adoption payment recorded, but Adoption movement missing.' AS issue FROM ownerdonation od LEFT OUTER JOIN owner o ON od.OwnerID = o.ID INNER JOIN animal ON od.AnimalID = animal.ID WHERE od.donationtypeid in (2) --run select * from donationtype AND NOT od.comments LIKE '%ponsor%' --ignore if Sponsored adoption fee AND NOT EXISTS(SELECT ID FROM adoption WHERE OwnerID = od.ownerid OR ReturnedByOwnerID = od.ownerid) AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --This looks for the word 'foster' in the animal bio so that the public knows not --to come to the shelter to meet an animal. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'Animal in Foster Without Note in Comments/Bio for Public' AS issue FROM animal INNER JOIN media ON media.LINKID = animal.id --INNER JOIN adoption ON animal.ID = adoption.AnimalID WHERE animal.Archived = 0 AND animal.isnotavailableforadoption = 0 AND animal.activeMovementType=2 AND animal.haspermanentfoster = 0 AND media.websitephoto = 1 AND NOT (animal.animalcomments LIKE '%foster%' OR animal.animalcomments LIKE '%Foster%') AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --When you clone an animal, ASM also clones the Log entries. So if you enter --weight, your cloned animal will contain weight info for the original animal. --UNION SELECT -- Not worth tracking in most cases. -- animal.animalname AS name, -- animal.sheltercode AS code, -- current_date -1 AS issuedate, -- 'Animal with multiple Weights on same day (Log Tab).' AS issue --FROM log --INNER JOIN animal ON animal.id = log.linkid --WHERE log.LOGTYPEID = 4 --AND log.linktype = 0 --AND log.date > '2019-01-01' --AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --GROUP BY 1, 2, 3, cast(log.date as date) --HAVING count(*) > 1 --Compares Animal Type with either Non-Shelter Type or Entry Reasons, depending --on Shelter/Rescue. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'Animal With Possible Wrong Animal Type' AS issue FROM animal WHERE animal.datebroughtin > '2020-01-01' AND animal.NONSHELTERANIMAL = 0 AND (animal.animaltypeid = 40 -- Non-Shelter Animal Type OR (animal.speciesid = 1 AND animal.animaltypeid <> 2) OR (animal.speciesid = 2 AND animal.animaltypeid <> 11)) --AND animal.animalname NOT LIKE 'Template%' AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --OR THE BELOW WHERE --WHERE (animal.animaltypeid = 44 AND animal.entryreasonid <> 16) --OR (animal.animaltypeid = 45 AND entryreason.ReasonName NOT LIKE 'OS -%') --OR (animal.animaltypeid = 46 AND entryreason.ReasonName LIKE 'OS -%') --OR (animal.animaltypeid = 47 AND animal.entryreasonid <> 15) --AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --Compares vaccination types with species type. Needs customization for vaccination --types. UNION SELECT -- BE SURE TO LOOK AT VACC IDs animal.animalname AS name, animal.sheltercode AS code, av.DateRequired AS issuedate, 'Animal with possible wrong Vaccination Type.' AS issue FROM animal INNER JOIN animalvaccination av ON animal.ID = av.AnimalID INNER JOIN vaccinationtype v ON av.VaccinationID = v.ID WHERE (animal.SpeciesID=1 AND v.id IN (5,8)) OR (animal.SpeciesID=2 AND v.id = 9) -- have to look at vaccination ids AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --Alerts when an litter name was added to an animal, but a litter was not added in Edit Litters UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'Litter Name Added, but Litter Not Created in ASM > Edit litters.' AS issue FROM animal WHERE acceptancenumber <> '' AND NOT EXISTS(select ID FROM animallitter al WHERE al.acceptancenumber = animal.acceptancenumber) --Alerts when an animal has been marked as either euthanized or DOA, but then the --Death date later removed. The euthanized or DOA fields need to be cleared out. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'Marked deceased without Deceased Date. Enter temp Deceased Date to clear deceased reason, then re-Save.' AS issue FROM animal WHERE (puttosleep = 1 OR diedoffshelter = 1 OR isdoa = 1) AND deceaseddate IS NULL AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --Alerts if marked 'Transfer In' but the Entry Category not set to Transfer from … UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'Marked <i>Transfer In</i>, but <i>Entry Category</i> not set to Transfer from Shelter/Rescue in Entry section.' AS issue FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE animal.nonshelteranimal = 0 AND animal.istransfer = 1 --AND NOT animal.entryreasonid = 18 -- Check Entry Reason ID AND entryreason.ReasonName NOT LIKE '%Transf%' AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --If marked 'Transfer In' , but check to see if there is a person in the 'Transferred From' --field in the Entry Section. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'Marked <i>Transfer In</i>, but no person in <i>Transferred From</i> field in Entry section.' AS issue FROM animal WHERE animal.nonshelteranimal = 0 AND animal.broughtinbyownerid = 0 AND animal.istransfer = 1 AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --Alerts when adopted and marked microchip, but no microchip number entered. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'Microchip Issue. Marked <i>Microchipped</i> but no number in Health and Identification section. <font color = "Red">Alerts for 30 days.</font>' AS issue FROM animal WHERE animal.deceaseddate is null AND animal.Identichipped = 1 AND animal.Identichipnumber = '' AND NOT animal.ACTIVEMOVEMENTTYPE = 5 AND animal.activemovementdate > current_date - 30 AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --Alerts when an animal is adopted, but hasn't been microchipped. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, animal.activemovementdate AS issuedate, 'Microchip Issue. Not Microchipped but adopted.' AS issue FROM animal WHERE animal.deceaseddate IS NULL AND animal.NONSHELTERANIMAL = 0 AND animal.activemovementtype = 1 --AND animal.activemovementdate > current_date - 60 - ignore. Make them enter. AND animal.activemovementdate > '2019-01-01' AND animal.Identichipped = 0 --AND adoption.ISTRIAL = 0 - look for neutered instead. AND animal.Neutered = 1 AND animal.speciesid in (1,2) AND animal.iscourtesy = 0 AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --While ASM will accept - & *, if someone is searching for a microchip number, and --enters only numbers, they will not find these records. Better to stay consistent. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'Microchip Number invalid. Remove - or *.' AS issue FROM animal WHERE ((animal.identichipnumber LIKE '%*%' OR animal.identichipnumber LIKE '%-%') OR (animal.identichip2number LIKE '%*%' OR animal.identichip2number LIKE '%-%')) AND animal.IsNotForRegistration = 0 AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --Reports when Entry Category indicates Owner Surrender, but no owner --entered in Original Owner field. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'No Owner in <i>Original Owner</i> field in Entry section even though designated Owner Surrender' AS issue FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE animal.archived=0 AND animal.originalownerid = 0 --AND animal.entryreasonid < 16 AND entryreason.ReasonName LIKE 'OS -%' AND animal.istransfer = 0 AND animal.reasonno = '' -- make sure a Reason not from owner wasn't entered AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --Reports when an owner is not entered for a Non-Shelter animal. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'No Owner in <i>Original Owner</i> field in Entry section on Non-Shelter animal.' AS issue FROM animal WHERE animal.deceaseddate IS NULL AND animal.NONSHELTERANIMAL = 1 AND animal.ORIGINALOWNERID = 0 AND datebroughtin > '2019-01-01' AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --Reports animals adopted but not altered. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, animal.activemovementdate AS issuedate, 'Not altered but adopted.' AS issue FROM animal LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID INNER JOIN adoption ON adoption.ID = animal.activemovementID WHERE animal.deceaseddate IS NULL AND animal.nonshelteranimal = 0 AND animal.activemovementtype = 1 AND animal.activemovementdate > '2010-01-01' AND animal.Neutered = 0 AND adoption.ISTRIAL = 0 AND EXTRACT(days FROM current_date - animal.dateofbirth) >= 185 AND animal.speciesid in (1,2) AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --Compares current owner (animal.ownerid with adoption.ownerid) to see if maybe --someone changed this field instead of creating a movement. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, '<i>Owner</i> field in Details Section has changed. Be sure that this was not changed instead of creating a Movement. This should only be used when an <b>adopter</b> re-homes an animal and you do not wish to track that Movement. <font color = "Red">Alerts Only Once.</font>' AS issue FROM animal INNER JOIN adoption ON adoption.id = animal.activemovementid WHERE date_trunc('day', animal.LASTCHANGEDDATE) = current_date -1 AND animal.ownerid <> adoption.ownerid AND adoption.MovementType = 1 --AND adoption.istrial = 0 AND adoption.ReturnDate IS NULL AND animal.deceasedDate IS NULL --Reports when Entry Category indicates NOT Owner Surrender, but an owner is --entered in Original Owner field. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'Person in <i>Original Owner</i> field in Entry section even though NOT Owner Surrender' AS issue FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE animal.nonshelteranimal = 0 AND NOT animal.originalownerid = 0 AND animal.istransfer = 0 --AND animal.entryreasonid > 15 --AND entryreason.ReasonName NOT LIKE 'OS -%' AND NOT (entryreason.ReasonName LIKE 'OS -%' OR entryreason.ReasonName LIKE 'Abuse%') -- AND NOT animal.entryreasonid = 20 -- REVIEW ENTRY REASONS AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --Reports when Entry Category indicates Owner Surrender, and the owner is entered --in BOTH broughtinby and original owner field. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'Person in <i>Brought In By</i> field is not needed. Delete and Save. (Entry section)' AS issue FROM animal INNER JOIN entryreason ON entryreason.ID = animal.EntryReasonID WHERE animal.nonshelteranimal = 0 AND animal.originalownerid <> 0 AND animal.originalownerid = animal.BROUGHTINBYOWNERID --AND animal.entryreasonid < 16 AND entryreason.ReasonName LIKE 'OS -%' AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') -- Looks for Alerts in the publishing logs. UNION SELECT 'Logs' AS name, 'None' AS code, current_date AS issuedate, 'Please review Publishing > View publishing logs > for error. <font color = "Red">Alerts Only Once.</font>' AS issue FROM publishlog WHERE date_trunc('day', publishlog.publishdatetime) = current_date AND ALERTS > 0 AND LOGDATA NOT LIKE '%Got 0 matching animals for publishing%' --Check to see if published animals have had bios written for them. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'Published animal without bio in Comments (Notes section).' AS issue FROM animal INNER JOIN media ON media.LINKID = animal.id WHERE Archived = 0 AND EXTRACT(days FROM current_date - animal.dateofbirth) >= 60 AND animal.isnotavailableforadoption = 0 AND media.websitephoto = 1 AND animal.ACTIVEMOVEMENTTYPE IS NULL AND animal.animalcomments = '' AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --Animal's gender is not entered. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'Sex not specified.' AS issue FROM animal WHERE animal.nonshelteranimal = 0 AND animal.deceaseddate IS NULL AND animal.DATEBROUGHTIN > '2019-01-01' AND animal.sex = 2 AND animal.speciesid in (1,2) AND EXTRACT(days FROM animal.datebroughtin - animal.dateofbirth) > 42 -- at 6weeks AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --This is a TWO PART check. This alerts when an animal was too young for a --heartworm test when it came in, but now is old enough. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'Test Issue. Heartworm Test <i>Due</i> needs to be added in Test Tab.' AS issue -- this is needed for pups that reach 6m in shelter. Part 1 FROM animal WHERE animal.archived=0 AND EXTRACT(days FROM current_date - animal.dateofbirth) >= 210 -- 7 months to alway for Templates --AND EXTRACT(days FROM animal.datebroughtin - animal.dateofbirth) > 180 -- Only test if 6m when received. AND animal.speciesid = 1 -- COMMENT OUT ON CAT REPORT AND NOT EXISTS(SELECT animaltest.testtypeid FROM animaltest INNER JOIN testtype ON testtype.ID = animaltest.TESTTYPEID WHERE animaltest.AnimalID = animal.ID AND testtype.TESTNAME like 'Heartworm%') AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --This is the second part of a TWO PART check. This alerts when an animal is older --than a year without a heartworm test scheduled. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'Test Issue. Heartworm Test <i>Due</i> needs to be added in Test Tab.' AS issue -- This finds tests that are older than 1 year. Part 2 FROM animal --INNER JOIN animaltest ON animaltest.ANIMALID = animal.id WHERE animal.archived=0 AND EXTRACT(days FROM current_date - animal.dateofbirth) >= 210 -- 7 months to allow for Templates AND animal.speciesid = 1 AND EXISTS(SELECT animaltest.testtypeid FROM animaltest INNER JOIN testtype ON testtype.ID = animaltest.TESTTYPEID WHERE animaltest.AnimalID = animal.ID AND testtype.TESTNAME like 'Heartworm%' and animaltest.DATEOFTEST < CURRENT_DATE - INTERVAL '1 year') AND NOT EXISTS(SELECT animaltest.testtypeid FROM animaltest INNER JOIN testtype ON testtype.ID = animaltest.TESTTYPEID WHERE animaltest.AnimalID = animal.ID AND testtype.TESTNAME like 'Heartworm%' and animaltest.DATEOFTEST >= CURRENT_DATE - INTERVAL '1 year') AND NOT EXISTS(SELECT animaltest.testtypeid FROM animaltest INNER JOIN testtype ON testtype.ID = animaltest.TESTTYPEID WHERE animaltest.AnimalID = animal.ID AND testtype.TESTNAME like 'Heartworm%' and animaltest.DATEOFTEST is null) AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --Alerts when an animal is adopted that is over 6 months and not heartworm tested. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, animal.activemovementdate AS issuedate, 'Test Issue. Not Heartworm Tested but adopted. <font color = "Red">Alerts for 7 Days Only.</font>' AS issue FROM animal WHERE animal.deceaseddate IS NULL AND animal.activemovementtype = 1 AND animal.activemovementdate > current_date - 7 --Reports for 7 days then goes away AND EXTRACT(days FROM animal.datebroughtin - animal.dateofbirth) > 180 AND animal.heartwormtested = 0 AND animal.speciesid = 1 AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --Two-part check for FIV/FLV Test UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'Test Issue. FIV/FLV Test <i>Due</i> needs to be added in Test Tab.' AS issue -- this is needed for cats that reach 2m in shelter. Part 1 FROM animal WHERE animal.archived=0 AND EXTRACT(days FROM current_date - animal.dateofbirth) >= 60 -- 7 months to alway for Templates -- --AND EXTRACT(days FROM animal.datebroughtin - animal.dateofbirth) > 180 -- Only test if 6m when received. AND animal.speciesid = 2 AND NOT EXISTS(SELECT animaltest.testtypeid FROM animaltest INNER JOIN testtype ON testtype.ID = animaltest.TESTTYPEID WHERE animaltest.AnimalID = animal.ID AND testtype.TESTNAME like 'FIV%') AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') -- This catches tests older than one year. Part 2 UNION SELECT animal.animalname AS name, animal.sheltercode AS code, date(animal.LastChangedDate) AS issuedate, 'Test Issue. FIV/FLV Test <i>Due</i> needs to be added in Test Tab.' AS issue -- This finds tests that are older than 1 year. Part 2 FROM animal --INNER JOIN animaltest ON animaltest.ANIMALID = animal.id WHERE animal.archived=0 AND EXTRACT(days FROM current_date - animal.dateofbirth) >= 210 -- 7 months to allow for Templates AND animal.speciesid = 1 AND EXISTS(SELECT animaltest.testtypeid FROM animaltest INNER JOIN testtype ON testtype.ID = animaltest.TESTTYPEID WHERE animaltest.AnimalID = animal.ID AND testtype.TESTNAME like 'FIV%' and animaltest.DATEOFTEST < CURRENT_DATE - INTERVAL '1 year') AND NOT EXISTS(SELECT animaltest.testtypeid FROM animaltest INNER JOIN testtype ON testtype.ID = animaltest.TESTTYPEID WHERE animaltest.AnimalID = animal.ID AND testtype.TESTNAME like 'FIV%' and animaltest.DATEOFTEST >= CURRENT_DATE - INTERVAL '1 year') AND NOT EXISTS(SELECT animaltest.testtypeid FROM animaltest INNER JOIN testtype ON testtype.ID = animaltest.TESTTYPEID WHERE animaltest.AnimalID = animal.ID AND testtype.TESTNAME like 'FIV%' and animaltest.DATEOFTEST is null) AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --Alerts for cat adoptions without FIV test UNION SELECT animal.animalname AS name, animal.sheltercode AS code, animal.activemovementdate AS issuedate, 'Test Issue. Not FIV/FLV Tested but adopted. <font color = "Red">Alerts for 7 Days Only.</font>' AS Issue FROM animal WHERE animal.deceaseddate IS NULL AND animal.activemovementtype = 1 AND animal.activemovementdate > current_date - 7 AND EXTRACT(days FROM animal.datebroughtin - animal.dateofbirth) > 60 AND animal.CombiTested = 0 AND animal.speciesid = 2 AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --Reports an animal that was transferred to a organization/person that doesn't have --the Other Shelter flag. This flag is needed for the 'Transfer an animal' functionality --to work. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, animal.activemovementdate AS issuedate, 'Transfer Movement. Person record not flagged as <i>Other Shelter</i>' AS issue FROM animal INNER JOIN adoption on adoption.id = animal.activemovementid INNER JOIN owner on owner.id = adoption.ownerid LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID WHERE animal.nonshelteranimal = 0 AND animal.DATEBROUGHTIN > '2010-01-01' AND adoption.movementtype = 3 AND NOT (owner.AdditionalFlags LIKE 'shelter|%' OR owner.AdditionalFlags LIKE '%|shelter|%') -- AND animal.id > 4750 AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') --Alerts when animal is marked as a Trial Adoption but no trail ends on date is entered. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, animal.activemovementdate AS issuedate, 'Trial Adoption - <i>Trial ends on</i> date field is blank.' AS issue FROM animal INNER JOIN adoption ON adoption.ID = animal.activemovementID WHERE animal.deceaseddate IS NULL AND animal.activemovementtype = 1 AND adoption.ISTRIAL = 1 AND adoption.trialenddate is null --Alerts when the Trial end date has expired. UNION SELECT animal.animalname AS name, animal.sheltercode AS code, adoption.trialenddate AS issuedate, 'Trial adoption ended. Extend date or Uncheck <i>Trial</i> box in Movement.' AS issue FROM animal INNER JOIN adoption ON adoption.ID = animal.activemovementID WHERE animal.deceaseddate IS NULL AND animal.activemovementtype = 1 AND adoption.ISTRIAL = 1 AND adoption.trialenddate < current_date --This alerts when banned people also do not have the Exclude from bulk mailings flag. --You want to make sure that you do not email or mail users that have been banned. UNION SELECT owner.ownername AS name, owner.ownercode AS code, date(owner.LastChangedDate) AS issuedate, 'Banned Person without Exclude from bulk mailings Flag' AS issue FROM owner WHERE isbanned = 1 AND excludefrombulkemail = 0 --Checks to see if first name is missing on person records tagged as "Individuals". UNION SELECT owner.ownername AS name, owner.ownercode AS code, date(owner.LastChangedDate) AS issuedate, 'First Name is Blank. Possible Organization.' AS issue FROM owner WHERE ownerforenames = '' and ownertype = 1 --Checks for ownercodes that start with XX, which means last name field is missing. UNION SELECT owner.ownername AS name, owner.ownercode AS code, date(owner.LastChangedDate) AS issuedate, 'Invalid Last Name or Organization Name.' AS issue FROM owner WHERE ownercode LIKE 'XX%' --Checks for cities entered in ALL upper or lower case. And common misspellings of city --names. UNION SELECT owner.ownername AS name, owner.ownercode AS code, date(owner.LastChangedDate) AS issuedate, 'Invalid City or Capitalization.' AS issue FROM owner WHERE ownertown <> '' AND (upper(ownertown) = ownertown OR lower(ownertown) = ownertown OR ownertown IN ('Prairie grove','Prairiegrove') OR (ownertown LIKE 'Fay%' AND ownertown <> 'Fayetteville')) AND NOT (owner.AdditionalFlags LIKE 'Ignore Issues|%' OR owner.AdditionalFlags LIKE '%|Ignore Issues|%') --Checks for invalid state abbreviations. Ignores State check if there is data in the Country --field. UNION SELECT owner.ownername AS name, owner.ownercode AS code, date(owner.LastChangedDate) AS issuedate, 'Invalid State abbreviation.' AS issue FROM owner WHERE owner.OWNERTOWN <> '' AND (owner.OWNERCOUNTRY LIKE 'US%' OR owner.OWNERCOUNTRY = '') -- skip check if foreign county AND owner.OWNERCOUNTY NOT IN ('AK', 'AL', 'AR', 'AS', 'AZ', 'CA', 'CO', 'CT', 'DC', 'DE', 'FL', 'GA', 'GU', 'HI', 'IA', 'ID', 'IL', 'IN', 'KS', 'KY', 'LA', 'MA', 'MD', 'ME', 'MI', 'MN', 'MO', 'MP', 'MS', 'MT', 'NC', 'ND', 'NE', 'NH', 'NJ', 'NM', 'NV', 'NY', 'OH', 'OK', 'OR', 'PA', 'PR', 'RI', 'SC', 'SD', 'TN', 'TX', 'UM', 'UT', 'VA', 'VI', 'VT', 'WA', 'WI', 'WV', 'WY') AND NOT (owner.AdditionalFlags LIKE 'Ignore Issues|%' OR owner.AdditionalFlags LIKE '%|Ignore Issues|%') --Notifies missing zipcode when the address, city, and state have been entered. UNION SELECT owner.ownername AS name, owner.ownercode AS code, date(owner.LastChangedDate) AS issuedate, 'Missing Zipcode.' AS issue FROM owner WHERE owner.LASTCHANGEDDATE > '2019-01-01' AND NOT owner.OWNERADDRESS = '' AND NOT owner.OWNERTOWN = '' AND NOT owner.OWNERCOUNTY = '' AND (owner.OWNERCOUNTRY LIKE 'US%' OR owner.OWNERCOUNTRY = '') -- skip check if foreign country AND owner.ownerpostcode = '' AND NOT (owner.AdditionalFlags LIKE 'Ignore Issues|%' OR owner.AdditionalFlags LIKE '%|Ignore Issues|%') --Alerts when zipcode doesn’t match standard pattern. For example, all Arkansas --zipcodes start with 7. UNION SELECT owner.ownername AS name, owner.ownercode AS code, date(owner.LastChangedDate) AS issuedate, 'Invalid Zipcode.' AS issue FROM owner WHERE owner.OWNERCOUNTY = 'AR' AND ownerpostcode <> '' AND (ownerpostcode NOT LIKE '7%' OR (ownerpostcode NOT LIKE '722%' AND ownertown = 'Little Rock')) --AND OWNER.LASTCHANGEDDATE > '2020-01-01' --AND NOT (ownerpostcode like '46%' or ownerpostcode like '47%') --This strips out all characters and then alerts if phone number is not equal to 10 --characters. It will ignore this if two phone numbers are in same field but separated --by a slash (/) UNION SELECT owner.ownername AS name, owner.ownercode AS code, date(owner.LastChangedDate) AS issuedate, 'Invalid Phone Number Length.' AS issue FROM owner WHERE (LENGTH(NULLIF(regexp_replace(hometelephone, '\D','','g'), '')) <> 10 OR LENGTH(NULLIF(regexp_replace(mobiletelephone, '\D','','g'), '')) <> 10) AND (hometelephone NOT LIKE '%/%' AND mobiletelephone NOT LIKE '%/%') AND OWNER.LASTCHANGEDDATE > '2020-01-01' AND NOT (owner.AdditionalFlags LIKE 'Ignore Issues|%' OR owner.AdditionalFlags LIKE '%|Ignore Issues|%') --4/20/2020 THIS IS NO LONGER NEEDED since the new search box ignores characters. --Only looks at phone numbers less than 13 characters to avoid phone numbers --with additional text entered. It is looking for periods entered within the number --to limit what has to be searched on when searching for phone numbers. --UNION SELECT --owner.ownername as name, -- owner.ownercode as code, -- date(owner.LastChangedDate) as issuedate, -- 'Invalid Phone Number Format. Remove any periods or characters.' AS issue --FROM owner --WHERE ((LENGTH(owner.WORKTELEPHONE) < 13 and owner.WORKTELEPHONE like '%.%') --OR (length(owner.HOMETELEPHONE) < 13 and owner.HOMETELEPHONE like '%.%') --OR (length(owner.MOBILETELEPHONE) < 13 and owner.MOBILETELEPHONE like '%.%') --OR owner.hometelephone ~ '^[A-Za-z]' --OR owner.mobiletelephone ~ '^[A-Za-z]') --AND NOT (owner.AdditionalFlags LIKE 'Ignore Issues|%' OR owner.AdditionalFlags LIKE '%|Ignore Issues|%') --This alert strips out all characters and compares any records that were modified the day --before with mobile and home numbers in the database. UNION SELECT o.ownername AS name, o.ownercode AS code, current_date -1 AS issuedate, 'Duplicate Phone Number - (' || ow.ownercode || '). <font color = "Red">Alerts Only Once.</font>' AS issue FROM owner o, owner ow WHERE date_trunc('day', o.LASTCHANGEDDATE) = current_date -1 AND o.id <> ow.id AND ((regexp_replace(o.hometelephone, '\D','','g') <> '' AND regexp_replace(o.hometelephone, '\D','','g') LIKE regexp_replace(ow.hometelephone, '\D','','g') AND ow.hometelephone <> '') OR (regexp_replace(o.hometelephone, '\D','','g') <> '' AND regexp_replace(o.hometelephone, '\D','','g') LIKE regexp_replace(ow.mobiletelephone, '\D','','g') AND ow.mobiletelephone <> '') OR (regexp_replace(o.mobiletelephone, '\D','','g') <> '' AND regexp_replace(o.mobiletelephone, '\D','','g') LIKE regexp_replace(ow.mobiletelephone, '\D','','g') AND ow.mobiletelephone <> '') OR (regexp_replace(o.mobiletelephone, '\D','','g') <> '' AND regexp_replace(o.mobiletelephone, '\D','','g') LIKE regexp_replace(ow.hometelephone, '\D','','g') AND ow.hometelephone <> '')) --This alert compares the email of records that were modified the day before with emails --in the database. UNION SELECT o.ownername AS name, o.ownercode AS code, current_date -1 AS issuedate, 'Duplicate Email address (' || o.emailaddress || '). Please search on Email. <font color = "Red">Alerts Only Once.</font>' AS issue FROM owner o WHERE date_trunc('day', o.LASTCHANGEDDATE) = current_date -1 AND o.emailaddress <> '' AND lower(o.emailaddress) IN (SELECT lower(ow.emailaddress) FROM owner ow WHERE o.id <> ow.id AND ow.emailaddress <> '') --This alert if the @ sign appears in the phone number fields. UNION SELECT o.ownername AS name, o.ownercode AS code, date(o.LastChangedDate) as issuedate, 'Possible Email Address in Wrong Field. <font color = "Red">Alerts Only Once.</font>' AS issue FROM owner o WHERE date_trunc('day', o.LASTCHANGEDDATE) = current_date -1 AND (o.hometelephone LIKE '%@%' OR o.mobiletelephone LIKE '%@%' OR o.mobiletelephone LIKE '%@%') --Alerts when the license expiration date compared to the issue date is less than 335 days. UNION SELECT owner.ownername AS name, owner.ownercode AS code, date(ol.LastChangedDate) AS issuedate, 'Invalid License Expiration Date.' AS issue FROM ownerlicence ol INNER JOIN owner ON owner.ID = ol.OwnerID WHERE extract(days from ol.ExpiryDate - ol.ISSUEDATE) < 335 --This looks at the comments field of citation to see if the different ordinance numbers have --been entered. This allows for reporting of individual ordinance violations if needed. UNION SELECT o.OwnerName AS name, o.ownercode AS code, oc.CreatedDate AS issuedate, 'Missing citation number(s) in Comments' AS issue FROM ownercitation oc INNER JOIN citationtype ct ON ct.ID = oc.CitationTypeID INNER JOIN owner o ON o.ID = oc.OwnerID WHERE oc.comments = '' --If person designated as Member, checks for membership expiration date. UNION SELECT owner.ownername AS name, owner.ownercode AS code, date(owner.LastChangedDate) AS issuedate, 'Missing Membership Flag or Date.' AS issue FROM owner WHERE (ismember = 1 AND owner.MEMBERSHIPEXPIRYDATE IS NULL) OR (ismember = 0 AND owner.MEMBERSHIPEXPIRYDATE > current_date) --Notifies when an online form is attached to a person who is already in the system. UNION SELECT DISTINCT o.ownername AS name, o.ownercode AS code, current_date -1 AS issuedate, 'Online Form Attached to Prior Person Record. Compare the data in the First and Last Name fields with the data on the NEW online form. When ASM finds an email match, it ONLY updates the address and phone info. <font color = "Red">Alerts Only Once.</font>' AS issue FROM owner o INNER JOIN media m ON m.linkid = o.ID WHERE m.medianotes IN ('Cat Adoption Application', 'Dog Adoption Application','Getting Help - Cat', 'Getting Help - Dog','SNIP Application','Foster Application','Volunteer Application') AND m.linktypeid = 3 AND date_trunc('day', m.date) = current_date -1 AND cast(o.CREATEDDATE AS DATE) < cast(m.date AS DATE) --Reports if person added day before is not linked to any records and has no flags. --Suspect that when modifying a person link, ASM does not warn if leaving before saving. UNION SELECT DISTINCT o.ownername AS name, o.ownercode AS code, date(o.LastChangedDate) as issuedate, 'Person Record added but NOT LINKED to any records and has no Flags. <font color = "Red">Alerts Only Once.</font>' AS issue FROM owner o WHERE date_trunc('day', o.createddate) = current_date - 1 AND o.additionalflags = '|' AND NOT EXISTS(SELECT ID FROM adoption WHERE OwnerID = o.ID OR ReturnedByOwnerID = o.ID) AND NOT EXISTS(SELECT ID FROM animal WHERE OriginalOwnerID = o.ID OR BroughtInByOwnerID = o.ID OR CurrentVetID = o.ID OR OwnersVetID = o.ID OR AdoptionCoordinatorID = o.ID OR NeuteredByVetID = o.ID) AND NOT EXISTS(SELECT ID FROM animalcontrol WHERE VictimID = o.ID OR CallerID = o.ID OR OwnerID = o.ID OR Owner2ID = o.ID OR Owner3ID = o.ID) AND NOT EXISTS(SELECT ID FROM animalfound WHERE OwnerID = o.ID) AND NOT EXISTS(SELECT ID FROM animallost WHERE OwnerID = o.ID) AND NOT EXISTS(SELECT ID FROM animalwaitinglist WHERE OwnerID = o.ID) AND NOT EXISTS(SELECT ID FROM animaltransport WHERE DriverOwnerID = o.ID OR PickupOwnerID = o.ID OR DropoffOwnerID = o.ID) AND NOT EXISTS(SELECT ID FROM animalmedicaltreatment WHERE AdministeringVetID = o.ID) AND NOT EXISTS(SELECT ID FROM animaltest WHERE AdministeringVetID = o.ID) AND NOT EXISTS(SELECT ID FROM animalvaccination WHERE AdministeringVetID = o.ID) AND NOT EXISTS(SELECT ID FROM clinicappointment WHERE OwnerID = o.ID) AND NOT EXISTS(SELECT ID FROM ownercitation WHERE OwnerID = o.ID) AND NOT EXISTS(SELECT ID FROM ownerdonation WHERE OwnerID = o.ID) AND NOT EXISTS(SELECT ID FROM ownerinvestigation WHERE OwnerID = o.ID) AND NOT EXISTS(SELECT ID FROM ownerlicence WHERE OwnerID = o.ID) AND NOT EXISTS(SELECT ID FROM ownerrota WHERE OwnerID = o.ID) AND NOT EXISTS(SELECT ID FROM ownertraploan WHERE OwnerID = o.ID) AND NOT EXISTS(SELECT ID FROM ownervoucher WHERE OwnerID = o.ID) AND NOT EXISTS(SELECT ID FROM users WHERE OwnerID = o.ID) --This searches for partial address and last name match. UNION SELECT o.ownername AS name, o.ownercode AS code, date(o.LastChangedDate) AS issuedate, 'Possible Duplicate Person Record - (' || ow.ownercode || '). Partial address and last or first name match. <font color = "Red">Alerts Only Once.</font>' AS issue FROM owner o, owner ow WHERE date_trunc('day', o.LASTCHANGEDDATE) = current_date -1 AND LOWER(REGEXP_REPLACE(ow.owneraddress, '[^0-9A-Za-z]', '','g')) LIKE SUBSTR(LOWER(REGEXP_REPLACE(o.owneraddress, '[^0-9A-Za-z]', '','g')),1,8) || '%' AND o.owneraddress <> '' AND (LOWER(o.ownersurname) = LOWER(ow.ownersurname) OR LOWER(o.ownerforenames) = LOWER(ow.ownerforenames)) AND o.id <> ow.id ) dummy ORDER BY 4,3 --- $$HEADER <table border="1"> <tr> <th>ALERT</th> <th>NAME</th> <th>CODE</th> <th>DATE</th> </tr> HEADER$$ $$BODY <tr> <td>$issue</td> <td>$name</td> <td>$code</td> <td>$issuedate</td> </tr> BODY$$ $$FOOTER </table> FOOTER$$

@robinrt: 2020-05-20 17:16:38
This is brilliant. Do you mind if I add this to the sheltermanager repository for everyone to use?

@adoptamutt: 2020-05-20 17:19:52
Not at all! I created an "Ignore Issues" animal and person flag for unusual situations.

@robinrt: 2020-05-20 17:25:43
I've added it to the repo now as "Quality Control" and credited you. Just a little thing you might not have spotted but I saw one of the tests is around checking forms attached to people. As of last week, the incoming forms screen shows you an icon now when you do Create->Person to indicate that the person already existed. It will also show an alert icon if that person is banned.

@adoptamutt: 2020-05-21 15:16:58
I just noticed that I'm missing 'AND NOT EXISTS(SELECT ID FROM log where LinkID = o.ID AND linktype = 1)' from the 'Person Record added but NOT LINKED ...' SQL, second from the bottom.

@1gkwc6: 2020-06-12 09:29:35
syntax error at or near "-" LINE 5: - -Probably should be a Transfer Movement. ^

@adoptamutt: 2020-06-12 14:18:16
I'll fix that. Thanks!

@adoptamutt: 2020-06-12 17:50:38
For those using the Adoption Coordinator field, I created a separate report for each AC named something like "Quality Control - Smith", entered their email address in the "Email To" field, and then the first line of my SQL is: "$CONST adoption_coordinator=Jane Smith$" which has to be an exact match to the CA's owner.ownername field. Then add an "AND" statement to each SQL query: "AND cw.ownername = '$adoption_coordinator$'" . I then pulled out the SQL's that should be specific to CA's and added other SQLs to notify them of vaccinations due for example. Here is an example: --- $CONST adoption_coordinator=Jane Smith$ SELECT * FROM ( SELECT animal.animalname, animal.sheltercode, species.SpeciesName, cw.ownername, date(animal.LastChangedDate) AS issuedate, 'Sex Not Specified' AS ISSUE, '01' AS SortOrder FROM animal INNER JOIN species ON species.ID = animal.SpeciesID LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID WHERE animal.deceaseddate is null AND animal.isnotavailableforadoption = 0 AND animal.sex = 2 -- AND animal.spec iesid = ? -- USED FOR SPECIFIC DOG/CAT REPORTS -- AND animal.adoptioncoordinatorID = 2 -- USED FOR SPECIFIC CASE WORKER REPORTS AND cw.ownername = '$adoption_coordinator$' UNION SELECT animal.animalname, animal.sheltercode, species.SpeciesName, cw.ownername, date(animal.LastChangedDate) AS issuedate, 'Marked Microchipped But No Number in Health Section' AS ISSUE, '25' AS SortOrder FROM animal INNER JOIN species ON species.ID = animal.SpeciesID LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID WHERE animal.deceaseddate is null AND animal.Identichipped = 1 AND animal.Identichipnumber = '' AND NOT animal.ACTIVEMOVEMENTTYPE = 5 AND animal.activemovementdate > '01/01/2019' --AND animal.activemovementdate > current_date - 60 --AND NOT (animal.AdditionalFlags LIKE 'courtesy|%' OR animal.AdditionalFlags LIKE '%|courtesy|%') AND animal.iscourtesy = 0 AND NOT (animal.AdditionalFlags LIKE 'notforregistration|%' OR animal.AdditionalFlags LIKE '%|notforregistration|%') -- AND animal.speciesid = ? -- USED FOR SPECIFIC DOG/CAT REPORTS AND cw.ownername = '$adoption_coordinator$' UNION SELECT animal.animalname, animal.sheltercode, species.SpeciesName, cw.ownername, animal.activemovementdate AS issuedate, 'Missing Data in Adopter Address, Unable to Register Microchip with PetLink' AS ISSUE, '30' AS SortOrder FROM animal INNER JOIN species ON species.ID = animal.SpeciesID INNER JOIN adoption on adoption.id = animal.activemovementid INNER JOIN owner on owner.id = adoption.ownerid LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID WHERE animal.Identichipped = 1 AND NOT animal.Identichipnumber = '' AND animal.activemovementtype = 1 AND animal.activemovementdate > current_date - 30 AND ((owner.owneraddress = '' OR owner.ownertown = '' OR owner.ownercounty = '' OR owner.ownerpostcode = '') OR (owner.emailaddress = '' AND owner.worktelephone = '' AND owner.hometelephone = '' AND owner.mobiletelephone = '')) -- AND animal.speciesid = ? -- USED FOR SPECIFIC DOG/CAT REPORTS AND NOT (animal.AdditionalFlags LIKE 'notforregistration|%' OR animal.AdditionalFlags LIKE '%|notforregistration|%') AND cw.ownername = '$adoption_coordinator$' UNION SELECT animal.animalname, animal.sheltercode, species.SpeciesName, cw.ownername, date(animal.LastChangedDate) AS issuedate, 'Not Altered > 6 Months' AS ISSUE, '35' AS SortOrder FROM animal INNER JOIN species ON species.ID = animal.SpeciesID LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID WHERE animal.archived=0 AND EXTRACT(days FROM current_date - animal.dateofbirth) >= 185 AND animal.Neutered = 0 AND NOT animaltypeid = 13 AND (animal.IsHold = 0 or animal.HoldUntilDate < current_date) -- AND animal.speciesid = ? -- USED FOR SPECIFIC DOG/CAT REPORTS AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') AND cw.ownername = '$adoption_coordinator$' UNION SELECT animal.animalname, animal.sheltercode, species.SpeciesName, cw.ownername, animal.activemovementdate AS issuedate, 'Transfer Record not flagged as Shelter' AS ISSUE, '45' AS SortOrder FROM animal INNER JOIN species ON species.ID = animal.SpeciesID INNER JOIN adoption on adoption.id = animal.activemovementid INNER JOIN owner on owner.id = adoption.ownerid LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID WHERE adoption.movementtype = 3 AND NOT (owner.AdditionalFlags LIKE 'shelter|%' OR owner.AdditionalFlags LIKE '%|shelter|%') AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') AND owner.id <> 38 -- AND animal.speciesid = ? -- USED FOR SPECIFIC DOG/CAT REPORTS AND cw.ownername = '$adoption_coordinator$' UNION SELECT animal.animalname, animal.sheltercode, species.SpeciesName, cw.ownername, animal.activemovementdate AS issuedate, 'Adoption Should be Transfer' AS ISSUE, '50' AS SortOrder FROM animal INNER JOIN species ON species.ID = animal.SpeciesID INNER JOIN adoption on adoption.id = animal.activemovementid INNER JOIN owner on owner.id = adoption.ownerid LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID WHERE adoption.movementtype = 1 AND (owner.AdditionalFlags LIKE 'shelter|%' OR owner.AdditionalFlags LIKE '%|shelter|%') AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') -- AND animal.speciesid = ? -- USED FOR SPECIFIC DOG/CAT REPORTS AND cw.ownername = '$adoption_coordinator$' UNION SELECT animal.animalname, animal.sheltercode, species.SpeciesName, cw.ownername, animal.activemovementdate AS issuedate, 'Trial Adoption - <i>Trial ends on</i> Date Field is Blank' AS ISSUE, '55' AS SortOrder FROM animal INNER JOIN species ON species.ID = animal.SpeciesID LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID INNER JOIN adoption ON adoption.ID = animal.activemovementID WHERE animal.deceaseddate is null AND animal.activemovementtype = 1 AND adoption.ISTRIAL = 1 AND adoption.trialenddate is null -- AND animal.speciesid = ? -- USED FOR SPECIFIC DOG/CAT REPORTS AND cw.ownername = '$adoption_coordinator$' UNION SELECT animal.animalname, animal.sheltercode, species.SpeciesName, cw.ownername, adoption.trialenddate AS issuedate, 'Trial Adoption Ended - Extend Date or Uncheck <i>Trial</i> Box in Movement' AS ISSUE, '60' AS SortOrder FROM animal INNER JOIN species ON species.ID = animal.SpeciesID LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID INNER JOIN adoption ON adoption.ID = animal.activemovementID WHERE animal.deceaseddate is null AND animal.activemovementtype = 1 AND adoption.ISTRIAL = 1 AND adoption.trialenddate < current_date -- AND animal.speciesid = ? -- USED FOR SPECIFIC DOG/CAT REPORTS AND cw.ownername = '$adoption_coordinator$' UNION SELECT animal.animalname, animal.sheltercode, species.SpeciesName, cw.ownername, date(animal.LastChangedDate) AS issuedate, 'No Picture - Not Posted' AS ISSUE, '65' AS SortOrder FROM animal INNER JOIN species ON species.ID = animal.SpeciesID LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID WHERE animal.Archived = 0 AND animal.isnotavailableforadoption = 0 AND EXTRACT(days FROM current_date - animal.dateofbirth) >= 60 AND 0 = (SELECT COUNT(ID) FROM media m WHERE m.LinkID = animal.ID AND m.LinkTypeID = 0 AND m.WebsitePhoto = 1) -- AND animal.speciesid = ? -- USED FOR SPECIFIC DOG/CAT REPORTS AND cw.ownername = '$adoption_coordinator$' UNION SELECT animal.animalname, animal.sheltercode, species.SpeciesName, cw.ownername, date(animal.LastChangedDate) AS issuedate, 'Bio Needed - No Comments under Notes Section' AS ISSUE, '67' AS SortOrder FROM animal INNER JOIN species ON species.ID = animal.SpeciesID LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID WHERE animal.Archived = 0 AND animal.isnotavailableforadoption = 0 AND EXTRACT(days FROM current_date - animal.dateofbirth) >= 60 AND animal.animalcomments = '' -- AND animal.speciesid = ? -- USED FOR SPECIFIC DOG/CAT REPORTS AND cw.ownername = '$adoption_coordinator$' UNION SELECT animal.animalname, animal.sheltercode, species.SpeciesName, cw.ownername, date(av.DateRequired) AS issuedate, 'Vaccination Due (' || v.VaccinationType || ')' AS ISSUE, '70' AS SortOrder FROM animal INNER JOIN species ON species.ID = animal.SpeciesID LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID --INNER JOIN adoption ON adoption.ID = animal.activemovementID INNER JOIN animalvaccination av ON animal.ID = av.AnimalID INNER JOIN vaccinationtype v ON av.VaccinationID = v.ID WHERE av.DateOfVaccination Is Null AND av.DateRequired <= current_date AND animal.archived = 0 --AND animal.speciesid = 1 -- USED FOR SPECIFIC DOG/CAT REPORTS AND cw.ownername = '$adoption_coordinator$' -- USED FOR SPECIFIC CASE WORKER REPORTS UNION SELECT animal.animalname, animal.sheltercode, species.SpeciesName, cw.ownername, date(animalmedicaltreatment.DateRequired) AS issuedate, 'Medical Due (' || animalmedical.treatmentname || ')' AS ISSUE, '71' AS SortOrder FROM animal INNER JOIN species ON species.ID = animal.SpeciesID LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID INNER JOIN ANIMALMEDICAL ON animalmedical.AnimalID = animal.ID INNER JOIN animalmedicaltreatment ON animalmedicaltreatment.AnimalMedicalID = animalmedical.ID WHERE animal.archived = 0 AND animalmedical.Status = 0 --0=Active AND animalmedicaltreatment.DateGiven is null AND animalmedicaltreatment.DateRequired <= current_date --AND animal.speciesid = 1 AND cw.ownername = '$adoption_coordinator$' -- USED FOR SPECIFIC CASE WORKER REPORTS UNION SELECT animal.animalname, animal.sheltercode, species.SpeciesName, cw.ownername, animal.activemovementdate AS issuedate, 'Reclaimed Movement - Probably Should be Adoption with Return Date' AS ISSUE, '75' AS SortOrder FROM animal INNER JOIN species ON species.ID = animal.SpeciesID LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID LEFT OUTER JOIN adoption ON adoption.animalID = animal.id WHERE animal.archived=0 AND adoption.returndate > current_date - 30 AND adoption.movementtype = 5 AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') -- AND animal.speciesid = ? -- USED FOR SPECIFIC DOG/CAT REPORTS AND cw.ownername = '$adoption_coordinator$' -- USED FOR SPECIFIC CASE WORKER REPORTS UNION SELECT animal.animalname, animal.sheltercode, species.SpeciesName, cw.ownername, date(animal.LastChangedDate) AS issuedate, 'No Foster Assigned in Movements Tab' AS ISSUE, '85' AS SortOrder FROM animal INNER JOIN species ON species.ID = animal.SpeciesID LEFT OUTER JOIN owner cw ON cw.ID = animal.adoptioncoordinatorID INNER JOIN internallocation ON internallocation.ID = animal.ShelterLocation WHERE animal.archived=0 AND animal.activemovementtype is null AND animal.shelterlocation = 5 AND NOT (animal.AdditionalFlags LIKE 'Ignore Issues|%' OR animal.AdditionalFlags LIKE '%|Ignore Issues|%') -- AND animal.speciesid = ? -- USED FOR SPECIFIC DOG/CAT REPORTS AND cw.ownername = '$adoption_coordinator$' -- USED FOR SPECIFIC CASE WORKER REPORTS ) dummy ORDER BY 7, 5 ---

@connor9220: 2020-07-16 23:32:13
MySQL version of this would be nice.. :)


weekly medical email to fosters

@sjras: 2020-05-18 20:33:19
We absolutely LOVE this feature, but we're having issues with new fosters not understanding that it's an auto-generated email and responding to it. With employee schedules all varied currently with covid-19 those messages don't always get seen in a timely manner. Is there a template for this email that can be edited, or would it be possible to add a "This email has been auto-generated by shelter software and replies WILL NOT be seen. Please contact the foster or medical coordinator if you have concerns or comments regarding the email below." type statement to the top of the reports that are sent out?

@robinrt: 2020-05-19 09:03:20
Hi, I'm afraid there's no way to customise the message at the moment. How come replies are not being seen? Replies should go to the address you have configured under Settings->Options->Email

@julian-poidevin: 2020-05-24 21:39:57
We also have this problem, we often get called by fosters who don't understand what is this email. Customization feature would be awesome.

@robinrt: 2020-05-25 18:37:28
Ask and you shall receive. It's in the master branch now.

@julian-poidevin: 2020-05-25 18:51:25
Wow, you are amazing !!!!! <3


Age at Intake

@mmover: 2020-05-18 17:52:27
Is there a way to modify the In/Out by Species report but have the age that shows up the age that the animal was at intake and not the age that the animal is currently?

@robinrt: 2020-05-18 18:09:06
Yes, edit the report in Settings->Reports and change every occurrence of "AnimalAge" in every subquery of the report (there are about 15 of them). Switch AnimalAge in each list to: --- age(DateBroughtIn, DateOfBirth)::varchar AS AnimalAge --- Each subquery represents a section of the report, so if you only wanted to do this for the Animals Brought In section, you could just change the AnimalAge field on that one area to make it show age at intake. There is also a report in the repository called "In/Out with Age at Event" that shows the animal's age at the event in each section (intake, adoption, death, etc). Install it under Settings->Reports->Browse sheltermanager.com

@mmover: 2020-05-18 22:01:07
Awesome, thank you!


Shelter stats playing up

@jimdunne: 2020-05-15 21:40:33
I've just noticed that shelter stats is displaying incorrectly - Released to wild figures now displays as dead on arrival [Screenshot from 2020-05-15 21-37-46](//muut.com/u/sheltermanager/s1/:sheltermanager:QMOw:screenshotfrom20200515213746.png.jpg)

@robinrt: 2020-05-16 17:16:42
Thanks for letting me know about this. POEdit managed to dump absolute rubbish into the non-US translation files without me noticing. I have no idea why anyone would want it to do this fuzzy matching nonsense when it's going to get it completely wrong. It had done this in many places, so I really appreciate you letting me know about this. I've applied a fix now.


Older debs

@reshhaverstahm: 2020-05-11 18:39:20
Are the older debs available for download? I'm having no success installing 43. The shelter that I'm trying to support had an old version running, I think 3.3.0 (Their computer was stolen!), so I don't think they'll mind not having the latest and greatest. Thanks.

@robinrt: 2020-05-11 18:57:35
They are, but only back to v35. To get that, download from http://public.sheltermanager.com/deb/sheltermanager3_35_all.deb You can substitute the 35 for anything up to and including 43

@reshhaverstahm: 2020-05-12 16:27:42
I'm now trying to install 42. When the DB begins to build, this error pops up on the browser... <class '_mysql_exceptions.OperationalError'> at /database (1071, 'Specified key was too long; max key length is 767 bytes') Python /usr/lib/sheltermanager3/dbms/base.py in execute, line 297 This is with the forms moved out. What am I missing? For what it's worth, I downloaded 3.3.0 from sourceforge.net and had it running right away.

@robinrt: 2020-05-12 16:41:31
It will be failing creating an index on a varchar field. That can happen due to the collation in your database. Make sure you use utf8-general-ci when creating the database, eg: --- CREATE DATABASE asm CHARACTER SET utf8 COLLATE utf8_general_ci; ---

@reshhaverstahm: 2020-05-12 20:06:08
Ok, I've tried with the newly created database as per your guidance, but when the browser jumps to localhost:5000/login, the following is what is being logged. The first two entries are the tail end of the creation of the database, I believe. The second traceback block repeats for a while then activity dies. Also, I'm having to launch python3 code.py 5000 manually, is that expected? If I read the apache2 code correctly it should launch it. Is this correct? INSERT INTO vaccinationtype (ID, VaccinationType, DefaultCost, IsRetired) VALUES (13, 'FIPV', 0, 0) INSERT INTO vaccinationtype (ID, VaccinationType, DefaultCost, IsRetired) VALUES (14, 'FECV/FeCoV', 0, 0) 127.0.0.1:59752 - - [12/May/2020 13:19:02] "HTTP/1.1 POST /database" - 303 See Other 127.0.0.1:59752 - - [12/May/2020 13:19:02] "HTTP/1.1 GET /login" - 200 OK ValueError("invalid literal for int() with base 10: ''") Traceback (most recent call last): File "/usr/lib/python3/dist-packages/cheroot/wsgi.py", line 144, in respond for chunk in filter(None, response): File "/usr/lib/python3/dist-packages/web/ht tpserver.py", line 222, in __iter__ path = self.translate_path(self.path) File "/usr/lib/python3.7/http/server.py", line 820, in translate_path path = self.directory AttributeError: 'StaticApp' object has no attribute 'directory' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/cheroot/server.py", line 1252, in communicate req.respond() File "/usr/lib/python3/dist-packages/cheroot/server.py", line 1056, in respond self.server.gateway(self).respond() File "/usr/lib/python3/dist-packages/cheroot/wsgi.py", line 150, in respond self.req.ensure_headers_sent() File "/usr/lib/python3/dist-packages/cheroot/server.py", line 1103, in ensure_headers_sent self.send_headers() File "/usr/lib/python3/dist-packages/cheroot/server.py", line 1120, in send_headers status = int(self.status[:3]) ValueError: invalid literal for int() with base 10: '' ValueError("invalid literal for int() with base 10: ''") Traceback (most recent call last): File "/usr/lib/python3/dist-packages/cheroot/wsgi.py", line 144, in respond for chunk in filter(None, response): File "/usr/lib/python3/dist-packages/web/httpserver.py", line 222, in __iter__ path = self.translate_path(self.path) File "/usr/lib/python3.7/http/server.py", line 820, in translate_path path = self.directory AttributeError: 'StaticApp' object has no attribute 'directory' Thanks.

@robinrt: 2020-05-13 08:45:26
Yes, you need to either configure Apache (which fixes this problem and doesn't require you to start the server manually). Or manually patch your web-py code as outlined in the README to fix the StaticApp bug: https://github.com/bobintetley/asm3/blob/master/README.md#debian-python3-webpy


Find a deleted animal?

@ketalabama: 2020-05-10 14:02:21
Is there a way to find or retrieve or find information on an animal record that has been deleted? The Audit report of deletions seems to capture deletions on an existing record.

@robinrt: 2020-05-10 14:07:48
Yes, the Audit Trail: Deletions by Date report will show info on all deleted records. If you're using sheltermanager.com and want to request a deleted record(s) be restored, email us at help@sheltermanager.com with your account number and what you want to restore. If you don't know exactly what, rough dates will help.

@ketalabama: 2020-05-10 14:14:14
Thank you for the quick reply. I was running that report but it seems to link to an animal record by id? And yet when I search for that animal (either using sql or just the search feature) it can't be found. So identifying which of the deleted actions pertains to the missing animal I can't tell which is the actual "delete animal" action for the missing kitten. And yes we are using Sheltermanager.com. We are really just trying to figure out who might have deleted the record honestly. Restoring it is not too problematic.

@robinrt: 2020-05-10 15:11:13
If you're confident using SQL, try running: --- SELECT * FROM audittrail WHERE Action=2 ORDER BY AuditDate DESC --- to show all deletes on record with the newest at the top. There's a column called "PARENTLINKS" which shows which base records the deleted record belonged to. For animal records it will show animal=ID You won't find anything running searches by ID because the record has been deleted and is no longer in the table!


Publishing Options, aged under...

@homewardcat: 2020-05-10 05:39:08
Hello. We start taking applications for kittens at 10 weeks of age. In the Publishing Options there is a choice to exclude animals under 8 weeks from publishing. Can you add an option of 10 weeks?

@robinrt: 2020-05-10 09:08:22
Hi, I will add to the list for next deploy which should be tomorrow morning.


Owner Field on Animal Record

@trakiplay: 2020-05-09 11:08:37
Hi, I noticed this morning that for adopted animals there is an additional field on the Animal Details page that includes Owner and lists the owner. Is there a way to hide this? Thanks

@robinrt: 2020-05-09 11:14:08
Not at the moment. Is there a reason you'd want to do that? It's a pretty highly requested feature that allows you to change the owner independently of movements so that when you know an animal's owner has changed, you can record it without messing up your figures.

@trakiplay: 2020-05-09 11:21:01
It only seems to appear for Adopted animals and the adopters name is already at the top of the screen, so for us we have no need. I can't think of any reason why we would have a change of owner without it being a re-adoption. Can you give me an example please?

@robinrt: 2020-05-09 11:29:14
The person you adopted the animal to has rehomed the animal to someone else themselves. They've let you know they no longer have the animal and the new owner's info. This happens surprisingly often to some shelters. Without the new owner field, you can't mark the animal as now belonging to someone else without returning the original adoption and creating a new one, which would inflate your intake and adoption stats and be incorrect because the shelter didn't do the rehoming. The owner field lets you change who owns the animal without having to change any movements and without affecting your figures.

@trakiplay: 2020-05-09 11:34:29
Aaah thanks for explaining, I don't think we have ever had that situation! The only time we have something similar is if someone has relinquished a dog to us and then rehomes privately, but then we just mark them as reclaimed in the movements!


DB builds but gets no further...

@reshhaverstahm: 2020-05-08 20:23:50
Hello, I'm attempting to install the sheltermanager3_43_all.deb on a freshly installed and patched xubuntu 18.04 desktop. I've followed the README.md to complete the install. When I launch localhost/asm/database, the database builds. When the database finishes building the url changes to localhost:5000/login and the page indicates that it is "unable to login". The last line in asm3.log reads "May 8 13:48:24 server CRITICAL asm3 dbupdate.install_default_onlin error importing form: (1406, "Data too long for column 'Label' at row 1")". I have repeated the build process on a newly installed OS several times with the same result. Do you have any suggestions? Thanks.

@robinrt: 2020-05-09 11:17:22
It's failing installing one of the online forms due to the length of the label. I don't think we have many that are very long. To allow it to get past, you could temporarily move the default online form files out of /usr/lib/sheltermanager/media/onlineforms temporarily.

@reshhaverstahm: 2020-05-10 18:17:42
robinrt, thanks for the quick reply. I've started from scratch following the README.md, again. I moved the forms out as per your suggestion. The tables build and get populated, but then the same thing happens: when I try to hit myserver/asm, the url changes to myserver:5000/main and displays "unable to connect". During the DB build, every entry in the apache error log contains [wsgi:error] (i've installed libapache2-mod-wsgi-py3 and enabled wsgi). If there is any further configuration needed specifically with wsgi, I haven't found any reference to it. The first attempt to connect to myserver/asm, the apache error log recorded this... "[Sun May 10 16:35:09.844598 2020] [wsgi:error] [pid 710:tid 140401527154432] config: /etc/asm3.conf". On subsequent attempts nothing gets logged at all until I do a reboot in which case the same error is thrown. What am I doing wrong here? Is there some documentation I'm overlooking? ETA: I've tried connecting with and without the forms back where they belong.

@robinrt: 2020-05-10 18:29:14
You need to specify the base_url value in /etc/asm3.conf as http://myserver/asm (or whatever the url to your install is).

@reshhaverstahm: 2020-05-10 20:17:17
My apologies, but "myserver" wasn't meant to be taken literally. I have my servers IP address in the base_url and the service_url. I'll include my build process on the chance that I'm missing something... Newly installed and patched Ubuntu Server 20.04... reboot apt-get install mariadb-server apache2 libapache2-mod-wsgi-py3 apt-get install make python3 python3-webpy python3-pil python3-mysqldb python3-psycopg2 systemctl enable mysql systemctl enable apache2 systemctl start mysql systemctl start apache2 on mysql... CREATE DATABASE asm3; CREATE USER 'asm3'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON asm3.* TO 'asm3'@'localhost'; FLUSH PRIVILEGES; reboot dpkg -i sheltermanager3_43_all.deb Move forms out of /usr/lib/sheltermanager/media/onlineform update apache2 000-default.conf and asm3.conf as per README.md reboot


Heartworm Tested results

@heyjay: 2020-05-07 15:45:41
Is there any way to change the heartworm test results in Animal>Health & Identification>Heartworm Tested? Our veterinarian would like to have an option that says "No antigen present." I have added that as a test result option in the Test tab, but don't see where I can add that specifically for the Heartworm Tested results.

@robinrt: 2020-05-07 16:11:09
Sorry, it's not possible. The marker on Health and Identification is only used for the system to show HW+ warnings and for HW+ animals to appear on reports. As you saw, you can add any results you like to the test tab.

@adoptamutt: 2020-05-07 16:20:57
I find it confusing to utilize both the Test Tab and the Health and Identification Section for Heartworm results. I usually Remove the Heartworm options from the Health and Identification Section when using the Test Tab for Heartworm and also for FIV.

@robinrt: 2020-05-07 16:24:33
This is a good suggestion. The test tab will still update the heartworm fields in H+I behind the scenes for warnings/reports even when they are hidden.

@heyjay: 2020-05-07 20:44:35
Thank you!


System automatically cancelling reservations for animals

@ketalabama: 2020-05-04 17:12:52
We are using Animal Shelter Manager web version. We are doing a number of pre-adoptions on kittens between 6 to 8 weeks. We do not finalize as an adoption movement until the kitten receives initial shots and is actually sent home with adopter. To prevent them from continuing to publish (and us to keep getting inquiries on them) we have been putting them as an approved Reservation with a placeholder "owner". Without a rhyme or reason that we can see, the reservations cancel and become Cancelled Reservations and suddenly they are available to publish again and we get hit with inquiries. Would really like to know WHY it is automatically cancelling? No updates are being made on these records etc. Just from one day to the next a cancellation date appears and they are cancelled. And how to prevent. Or how to see which ones will be cancelling so can go in and clear out the cancel date. Or extend... Thanks Kim

@robinrt: 2020-05-04 17:38:26
There's an option - Settings->Options->Movements->Auto cancel unadopted reservations after X days

@ketalabama: 2020-05-05 21:45:04
Thank you thank you!!!


pictures not showing in pdfs

@lialang: 2020-05-01 16:53:24
We print out the Medical Summary form for each cat and we send it to a pdf and then print or email it. Suddenly the picture does not show up anymore.

@robinrt: 2020-05-02 09:05:34
Hi, are you using sheltermanager.com ? Is this still happening for you ? We had to make some fixes to PDF handling yesterday and everything should be back to normal.


custom emblems not displaying

@hblosser: 2020-04-30 18:19:04
today we noticed that the custom emblems we have set up are not displaying. All of the other emblems still show up though.

@robinrt: 2020-04-30 18:40:21
Hi, should be fixed now, check the config for them under options if there are any other problems.

@hblosser: 2020-04-30 18:41:30
thank you so much!


Handling re-entries

@jimdunne: 2020-04-27 19:37:23
What is the best way of handling re-entries? We run a hedgehog rescue, and chip hogs so that we know if any come back into rescue. We have had a few that have come back, and at present I just use the return date option on the 'Release to Wild' movement, but this does not give me any options to put the reason why they came back in etc. without losing the original record. Any ideas?

@adoptamutt: 2020-04-28 00:03:09
Some prefer to keep separate animal records by cloning the original animal and then going to the Entry Tab to enter the new entry data. I would also reference the original shelter code under hidden comments. I've heard others say that they enter a Returned Date on the Reclaim Movement.

@jimdunne: 2020-04-28 12:19:24
Yes, I had thought about cloning the original animal - I think I'll do it that way.

@robinrt: 2020-04-28 13:26:12
what Karen said. There is a planned development to allow multiple entry records in future.


How do I get a total number of cats fostered for the year. I found a list but I

@cindiczyzakkaiser: 2020-04-26 02:23:37
Need a total - don’t want to add it up one by one.

@adoptamutt: 2020-04-26 15:10:46
Usually, you can just add the below to the Footer section. Make sure you have ID in the select statement. $$FOOTER <p>Total: {COUNT.ID}</p> FOOTER$$

@robinrt: 2020-04-26 16:21:53
The "In/Out Summary by Species" report gives a summary line for fosters over a period.


Diary Notes

@tomsey: 2020-04-24 22:39:19
Is there any way to hide Diary Notes in the "Calendar View" when they don't pertain to other individuals? Basically, if I send myself (or Person A) a Diary Note... I'd like the Diary Note to only be seen on my "Calendar View" (or Person A's "Calendar View").... I don't want Person B, Person C, etc. to see it their "Calendar View"....

@robinrt: 2020-04-25 08:20:26
There isn't. I think our original plan was to have two diary check boxes in the calendar view screen for my/all just like the two diary screens. Not sure why that never happened, but I'll raise it on the dev list.

@tomsey: 2020-09-22 16:47:45
Any luck with (2) separate "Diary" views (my & all)? We're looking for a way to connect individuals on a "one-on-one" basis (the "Diary" posts seems to be seen by everyone in the organization), is the "Message Board" the best way to do this? 😊


Payment Processors - how long for confirmation

@adoptamutt: 2020-04-24 17:48:50
I'm testing the new Payment Processors functionality. I've added PayPal, added a new payment as due, used the "Request Payment", received the email. paid the amount due. How long does it take for the "Received Date" to populate back to ASM?

@robinrt: 2020-04-24 18:35:23
it should be within a minute or two. If you want to send me a few more details (account, person making the payment) I'll have a look into it and check logs to make sure it's working correctly.

@adoptamutt: 2020-04-24 19:33:52
ootw is the account. The payment is for WA000003.

@robinrt: 2020-04-25 08:24:00
Thanks again Karen for spotting this, I've made a mistake in setting the notify_url from PayPal accounts. It's fixed now in production. PayPal have an "IPN History" screen that you can use to replay failed IPNs. If you can replay that one to the correct URL (which you already set on your PayPal account) it should update your existing payment in ASM without you having to pay another dollar to test! https://stackoverflow.com/questions/24906227/where-is-the-ipn-history-on-the-new-paypal-website


ASM3 package install failing because of python3-sqlite dependancy

@julian-poidevin: 2020-04-20 11:47:11
Hello, I'm facing an error when I try to install ASM package on my server, I don't know if it's related to ASM itself or a configuration error on my part (it was working before introduction of sqlite to ASM code base). However, when launching ASM using `make test` command, it works. Here's the error log : --- root@vps759328:~/repo/asm3/build# dpkg -i *.deb (Reading database ... 235313 files and directories currently installed.) Preparing to unpack sheltermanager3_44u_all.deb ... Unpacking sheltermanager3 (44u) over (44u) ... dpkg: dependency problems prevent configuration of sheltermanager3: sheltermanager3 depends on python3-sqlite; however: Package python3-sqlite is not installed. dpkg: error processing package sheltermanager3 (--install): dependency problems - leaving unconfigured Processing triggers for systemd (237-3ubuntu10.38) ... Processing triggers for ureadahead (0.100.0-21) ... Processing triggers for rsyslog (8.32.0-1ubuntu4) ... Errors were encountered while processing: sheltermanager3 --- I tried to install `python3-sqlite` by several ways but without any success so far, any ideas ? Thanks.

@julian-poidevin: 2020-04-20 11:52:05
When running `pip3 install pysqlite`, I got : --- root@vps759328:~/repo/asm3# pip3 install pysqlite Collecting pysqlite Using cached https://files.pythonhosted.org/packages/42/02/981b6703e3c83c5b25a829c6e77aad059f9481b0bbacb47e6e8ca12bd731/pysqlite-2.8.3.tar.gz Complete output from command python setup.py egg_info: pysqlite is not supported on Python 3. When using Python 3, use the sqlite3 module from the standard library. ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-urh27pka/pysqlite/ ---

@julian-poidevin: 2020-04-20 12:03:56
Problem is solved after removing `python3-sqlite` dependency in `makedeb.sh`file (line 64). Is this package really needed as it now seems to be directly in python3 standard library ? I'll submit a PR. Thanks.

@julian-poidevin: 2020-04-20 12:08:50
PR is here : https://github.com/bobintetley/asm3/pull/788

@robinrt: 2020-04-20 12:27:21
Yes, it's part of python3 and there is no Debian package for it. It was not part of python2 so I guess I just changed prefixes without thinking.


Online Forms Tiny on Mobile

@homewardcat: 2020-04-20 04:50:46
Our website links to online adoption and volunteer forms. The boxes are impossibly tiny on mobile. Help! [Screenshot_20200419-204218_Chrome](//muut.com/u/sheltermanager/s3/:sheltermanager:RZdw:screenshot_20200419204218_chrome.jpg.jpg)

@robinrt: 2020-04-20 09:56:23
Thanks, I can confirm it's happening for me too. I'm not sure why Chrome mobile is doing this (it's fine on Firefox mobile) but I've raised an urgent bug for us to look into this today.

@robinrt: 2020-04-20 10:17:32
You can fix this by going to the Edit Header/Footer button in the edit online form screen and adding this line just before the </style> closer: --- input, label, textarea, select { font-size: 110% } ---

@homewardcat: 2020-04-20 23:53:25
The above did not fix the problem.

@robinrt: 2020-04-21 13:23:02
Hi, I can see you're using sheltermanager.com - if you drop a note to help@sheltermanager.com with your account number I'll take a look and see why it isn't working for you.


Animal Control Reporting

@mmover: 2020-04-16 23:00:47
Before I spend too much time trying to figure out the SQL I just want to know if what I'm looking to do is possible. My knowledge of SQL is very basic but I'm confident I can figure it out (with maybe a question or two answered by this lovely forum!) by basing the script off of other reports as long as what I'm wanting to do is possible. It's a perfect side project for this covid-induced slow season. :) Currently our AC manually enters into a spreadsheet the following data: Case Number (ShortCode), DateIn, DateOut, HKD (Humane kennel days: # of days after the stray hold is up that the animal was in our care), and pickup location. This is only done for strays (not transfer ins or surrenders) and the tables the report would generate would ideally be split up by three pick-up locations. City 1, City 2, and Everywhere else within the county (thus excluding any pick-up locations not in county, we have a lot of out-of-county options for pick-up locations that would ideally be excluded). This is done on a monthly basis, the animals who would be pulled would be based on when th ey left the shelter, not by when they arrived. So animals by DateOut, entry category, and pick-up location. 1. Is there a way to create a report that pulls animals by DateOut, with only certain entry categories. 2. Can you then also pull data from only animals whose pickup location equals a set list? 3. If yes, can it generate three tables by locations: City 1, City 2, & County? a. Or at the very least: City 1, City 2, and everywhere else? b. Worst case scenario, only one table for all data with a pick-up location column, that we could sort/remove once exported. 4. Is there a way for the report to automatically generate the HKD, by taking days on shelter and subtracting 5? Or would that have to be done in excel once the report is downloaded as a CSV? Thank you!

@adoptamutt: 2020-04-17 16:09:54
So this isn't exactly what you are looking for, but it might help get you started and give you some ideas. select a.sheltercode, CASE when a.DeceasedDate IS NOT NULL THEN a.DeceasedDate ELSE a.ACTIVEMOVEMENTDATE END AS DateOut, pl.locationname, a.DaysOnShelter - 5 AS HKD from animal a LEFT OUTER JOIN pickuplocation pl ON pl.ID = a.PickupLocationID where a.archived = 1 AND a.EntryReasonID IN (15) AND a.IsPickup = 1 AND a.PickupLocationID IN (1,2) order by pl.locationname

@mmover: 2020-04-19 20:55:54
Thank you! I' will start with this.

@mmover: 2020-05-10 21:15:35
So I more or less have what I'm looking for. I just have two final issues. If I attempt to group by a.PickupLocationID I get the following error: column "a.animalname" must appear in the GROUP BY clause or be used in an aggregate function LINE 2: a.AnimalName, a.Shortcode, atp.AnimalType, a.BreedName, e.Re... ^ Without the 'group by' statement it works. I could replace 'order by movementdate' with 'order by pickulocationid' which does work however then the dates are out of order and I would prefer if they weren't. When I run the report all outcomes show up for the given date range from all locations in our system, it doesn't pull only the ones I want it to. Originally I was looking to have it group by three different pickuplocation groups: the first being (17,11,16,23,8,7,15,6,13,9,20,4,55,1,12,5,28), the second (2) and the third (3). But that is way beyond my capabilities if it's possible. My work around is to have three separate reports each pulling from only one group of ids. And we have quite a few pickuplocations in ASM t hat we don't need for reporting as they're from out of our county so I really can't have all of them in the report. On a side note, is it possible to have the report generate the location name and not just the ID number? If not that's not a problem. If I do three separate reports I don't really need the actual location names. I modified a report I found that had most of the information I wanted to include and simply removed or changed the things I needed because I wouldn't have been able to do it from scratch. I understand by reading the script what it means, why it's written the way it is, and why it's needed but I wouldn't have automatically known I would need multiple CASE WHEN, and ELSE statements in addition to the LEFT OUTER JOIN if I started from scratch. Here's what I have. SELECT a.AnimalName, a.Shortcode, atp.AnimalType, a.BreedName, e.ReasonName, a.EntryReasonID, a.DateBroughtIn, m.MovementDate, a.DaysOnShelter, a.DaysOnShelter -5 as HKD, a.PickUpLocationID, CASE WHEN a.DeceasedDate Is Not Null THEN 'Died' WHEN a.ActiveMovementDate Is Not Null THEN (SELECT MovementType FROM lksmovementtype WHERE ID = a.ActiveMovementType) ELSE 'On Shelter' END AS OutcomeName, CASE WHEN a.DeceasedDate Is Not Null THEN a.DeceasedDate WHEN a.ActiveMovementDate Is Not Null THEN a.ActiveMovementDate ELSE Null END AS OutcomeDate, CASE WHEN a.DeceasedDate Is Not Null THEN (SELECT ReasonName FROM deathreason WHERE ID = a.PTSReasonID) ELSE '' END AS OutcomeQualifier FROM animal a INNER JOIN species s ON a.SpeciesID = s.ID INNER JOIN animaltype atp ON a.AnimalTypeID = atp.ID LEFT OUTER JOIN adoption m ON m.ID = a.ActiveMovementID LEFT OUTER JOIN owner pl ON a.pickuplocationID = pl.ID and a.pickuplocationid IN (17,11,16,23,8,3,2,7,15,6,13,9,20,4,55,1,12,5,28) INNER JOIN entryreason e ON a.EntryReasonID = e.ID WHERE m.MovementDate >= '$ASK DATE Left between$' AND m.MovementDate <= '$ASK DATE and$' AND NonShelterAnimal = 0 ORDER BY m.MovementDate

@mmover: 2020-05-10 22:00:51
I'm sure my issue is that I'm trying to oversimplify sql for the specific locations that I want and that there are factors I'm missing. It tried to use the info Karen gave me but I was getting errors. (I don't remember what they were) But it's probably because I was trying to put it in the wrong place and the logic wasn't right.

@adoptamutt: 2020-05-11 15:10:51
You can get your three different pickupgroups in one report by using the CASE WHEN statements. To get the actual LocationName, you need to add 'INNER JOIN pickuplocation ON pickuplocation.ID = a.pickuplocationid' with 'pickuplocation.LocationName' in the select statement. I don't think you need the Group by in your SQL, I think you need to do that in your HTML using the $$GROUP functionality.


Keyword for Adoption Donation Payment Receipt Date Most Recent

@robinf: 2020-04-16 19:48:05
need help constructing keyword to access information


Feral Colony Tracking

@easel-beth: 2020-04-16 04:00:25
We want to start to track which feral colony TNR cats are from. Our original thought was to use the litter function. However we would then not be able to track litters inside a Colony. Have any other users tried to do something like this? Any suggestions on how to do something like this?

@adoptamutt: 2020-04-16 04:28:18
I’d be interested to hear what others are doing too. I’m using the Retailer system for this right now. Each colony name is given the retailer flag and then cats moved to that retailer. Added additional fields under the Additional tab for Colony feeding schedule, Colony Feeder, etc. Of course those fields appear on every person record. Under the Media tab, we keep pictures of feeding stations, housing, etc.

@robinrt: 2020-04-16 08:29:05
That's an interesting idea Karen. Rather than using retailers, you could create an additional field of type person to hold the colony for animal records and make the colony animals non-shelter. In this situation, the animals would appear under the "Links" tab of the colony/person record instead of movements. You could also use the log and have types for colony related info to avoid putting additional fields on every person record.

@mketcham: 2020-04-19 21:44:12
We do basically what Rob said. There is an additional field that is listed under the Animal Entry section. I created a Person flag called Colony Name. Under the additional field in the Entry Section, I select the "person" that is the colony. Whenever I have a cat come in from that colony, I tag them with that "person." The cats in that colony are listed in the Links tab as Rob mentioned. Bonus, I can make a map of the colonies by using the People with Flags Map report. [Fields](//muut.com/u/sheltermanager/s3/:sheltermanager:ebbP:fields.jpg.jpg) [ColonyName](//muut.com/u/sheltermanager/s3/:sheltermanager:N6Fq:colonyname.jpg.jpg) [PeopleFlagMap](//muut.com/u/sheltermanager/s3/:sheltermanager:ALU9:peopleflagmap.jpg.jpg) [Entry](//muut.com/u/sheltermanager/s3/:sheltermanager:aXix:entry.jpg.jpg)


Change field type of Reason for Appointment in clinic tab

@testdrupal: 2020-04-14 12:06:17
i want to change Reason for Appointment type "textarea" to "dropdown" and this is located in clinic tab create new appointment form you can see right side this field.

@testdrupal: 2020-04-14 12:10:28
please provide me details

@testdrupal: 2020-04-21 06:23:14
Hello please ans me.


Sign button not available

@ted979: 2020-04-12 19:39:51
Hi all, I'm new to ASM and have managed to get most of the way to a working installation - everything's working as expected, but there's no 'sign' button available on any documents or in the user settings page. I've installed all the dependencies and can't find anything in the logs. Has anyone come across this before?

@adoptamutt: 2020-04-12 21:50:01
Can you see it just to the right of the “Email PDF” button in the Media Tab? Once you select a document already saved to the Media Tab, it should then be selectable.

@ted979: 2020-04-14 15:54:34
No, there's nothing there on the media tab. Also the user signature option is missing from the user settings page. Is there something I need to configure first or a dependency to install?

@adoptamutt: 2020-04-14 16:04:46
What options do you have in the Media Tab?

@ted979: 2020-04-14 16:10:22
Here's a screenshot, thanks for your help :) Everything else is working fine, I can generate documentation, convert to PDF etc. [Screenshot](//muut.com/u/sheltermanager/s2/:sheltermanager:Ul8f:untitled.png.jpg)

@adoptamutt: 2020-04-14 18:49:04
How strange. Sorry, I don't know. I'm sure the developers will respond soon.

@julian-poidevin: 2020-05-17 07:53:06
It may be because you are using the free version of ASM. I think the signature feature is only for "pro" users of ASM.

@julian-poidevin: 2020-06-08 23:28:51
Unfortunately Bob did not respond, I may post again. I checked in the manual and the reason why the sign button is missing is not explained anywhere.

@julian-poidevin: 2020-06-09 11:08:13
I had an answer : >Signatures are disabled by default. You need: >`electronic_signatures = touch` >in your asm3.conf file


A place for retail items

@testdrupal: 2020-04-11 11:30:49
is there any module or anything in asm3 to sell product from the retail item store

@robinrt: 2020-04-11 15:04:36
There isn't right now. It's something we plan to add in the next release. You can add stock under Financial->Stock, and you can take payments under Financial->Receive a payment. There's no way to link the two at the moment.


APT size mismatch when trying to upgrade to 43

@titnono: 2020-04-10 20:58:52
Hello, I have some time to kill today... but, this is what I get when I try to upgrade ASM3 : E: Impossible de récupérer http://public.sheltermanager.com/deb/./sheltermanager3_43_all.deb Le fichier a une taille incohérente (12855592 != 12855188). Le miroir est peut-être en cours de mise à jour ? [IP : 104.26.14.150 80] Hashes of expected file: - SHA256:a42831b5695a17be691c652c019e4d5683a39a14e70ae432707d198a6404d27 8 - SHA1:fa2283754d7161fab05a78b26d655a6eb1d22a3e [weak] - MD5Sum:efbb34a6993a512805606ff8033f9adf [weak] - Filesize:12855188 [weak] E: Impossible de récupérer certaines archives, peut-être devrez-vous lancer apt-get update ou essayer avec --fix-missing ? The IP 104.26.14.150 belong to CloudFlare. Is there any caching problem? (like in this post : https://tvheadend.org/issues/5264) Thanks! Regards

@robinrt: 2020-04-10 21:23:00
Thanks for letting me know, I've regenerated the package file. Let me know if that hasn't fixed it for you.

@titnono: 2020-04-10 21:34:15
Thank you, it works now!

@titnono: 2020-04-10 22:06:48
OK after the upgrade, I edited /ets/asm3.conf like previous versions. But when I try to restart ASM3 service, I get : Failed to restart sheltermanager3.service: Unit sheltermanager3.service not found. Is it requiered to use Apache with 43 (& make the mod for python3-webpy?)? I'm on Ubuntu 18.04 LTS Thanks again!

@titnono: 2020-04-10 23:06:17
OK. Here is what I to to upgrade my ASM3 42 (with built-in web server) to 43 (apache) on my Ubuntu 18.04 LTS server. It seems to work, but 'm facing a new problem : the system get me back to the login screen when i go to a new page & I have to enter my password again... 1) get a backup of my /etc/asm3.conf & my MySQL Database 2) Update apt repo : sudo rm /etc/apt/sources.list.d/sheltermanager3.list echo "deb [trusted=yes] http://public.sheltermanager.com/deb/ ./" | sudo tee -a /etc/apt/sources.list.d/sheltermanager3.list 3) Update & upgrade sudo apt update sudo apt full-upgrade 4) edit /etc/asm3.conf I took my old asm3.conf and made these mods : base_url = http://mydomain.com:5000 to base_url = http://mydomain.com/asm service_url = http://mydomain.com:5000/service to service_url = http://mydomain.com/asm 5) Install apache2 with mod_wsgi apt-get install apache2 libapache2-mod-wsgi-py3 a2enmod wsgi 6) edit /etc/apache2/sites-available/000-default.conf & add this at the bottom of the file WSGIScriptAlias /asm /usr/lib/sheltermanager3/code.py/ Alias /asm/static /usr/lib/sheltermanager3/static AddType text/html .py <Directory /usr/lib/sheltermanager3> Require all granted </Directory> 7) Edit /usr/lib/python3/dist-packages/web/httpserver.py Add: self.directory = os.getcwd() After (line 230 for me) : self.start_response = start_response 7) Restart Apache service apache2 restart 9) Open a browser & go to http://mydomain.com/asm

@titnono: 2020-04-11 04:36:27
I think everything is good now… What I did to resolve my session issue (I don't know what exactly was the right thing) : 4) A mistake in this step in my previous post… service_url = http://mydomain.com:5000/service to service_url = http://mydomain.com/asm/service 10) edit /etc/apache2/sites-available/000-default.conf Uncomment & add ServerName : ServerName mydomain.com 11) Activated memcached apt-get install memcached libmemcached-tools -y systemctl start memcached systemctl enable memcached 12) edit /etc/asm3.conf Remove comment to activate memcache 13) Downloaded today asm-master.zip (44u) from github & sync the src/ folder in the zip with /usr/lib/sheltermanager3/ 14) -Reboot! Wish it can help!

@robinrt: 2020-04-11 09:01:31
thanks, I'll try and make some of this a little friendlier for the next release and set up an apache2 sites-available file, pull in mod_wsgi and memcached as a deps etc.


Cage Card - short version of reference number and declaw status

@mmover: 2020-04-09 17:54:31
I have customized a Cage Card report to effectively have the same information has our health check sheets. But there are two areas I'm not sure how to change and I'm only just starting to learn SQl. The first is the short version of the reference number for an animal, We leave the code that automatically generates when a new animal is added to the system but change the short code to the number system we use internally. I'm okay with the code that automatically generates with the animal staying on the report but would really like the short code on there as that's their case number. Is there a way to get that in the information in the report? Does anyone know what that field is called? Second, we have the declaw status on the cage card but when the report generates it shows up as $declawed which I assume is a reference to the SQL line but isn't showing the result of the SQL. Here is the SQL for declaw status: (SELECT Name FROM lksyesno WHERE ID = animal.declawed ) AS Yes, For reference here is the SQL for alter status and it shows up correctly: (SELECT Name FROM lksyesno WHERE ID = animal.neutered) AS altered, Thank you for your help!

@mmover: 2020-04-09 18:00:00
Also if there's a way to have the animal's age instead of estimated date of birth that would be great too!

@robinrt: 2020-04-09 18:01:41
it should be AS Declawed - not AS Yes. The field is called ShortCode - use it instead of ShelterCode

@adoptamutt: 2020-04-09 18:03:57
What is the format of the number system you use internally? Seems like it would be easier on you if you let ASM assign the number for you.

@adoptamutt: 2020-04-09 18:06:33
The field for age is "ANIMALAGE".

@mmover: 2020-04-09 18:52:48
Awesome thank you so much for all your help! Worked like a charm. The number system we use is based on the forms we use. Because we're a stray holding facility we have to keep records of strays and surrenders separately for reporting reasons, thus the forms are different depending on if the animal is a stray or surrender. We have them professionally printed as the stray forms need to have a carbon copy and the information on the forms differs between strays and surrenders. The five-digit number on the forms is used on all internal paperwork so we know what animal the paperwork goes to in case it gets misplaced. We would also know just by looking at the number and what it starts with whether or not it is a stray or surrender. :)

@adoptamutt: 2020-04-10 15:26:22
Are the printed forms you are talking about something the public fills out when surrendering or bringing in a stray? Just wondering if ASM could help with that by maybe utilizing two different animal types like "Stray" vs. "Owner Surrender" in your numbering system.

@mmover: 2020-04-11 22:29:58
For the surrender forms there are questions we ask the owners but staff fills them out,. Staff fills out the stray forms as well, utilizing information gotten from the finders, whether AC picked the animal up or it was brought to the shelter by a member of the public. We do have the animal type drop down utilized to indicate whether the animal is a stray versus surrender and the entry category which denotes how the animal came to us, with distinctions between strays if it was an impound, brought in by Animal Control, brought in by the public, or a DOA as well as if it was a surrender, quarantine, or owner requested euthanasia. Unfortunately even if there was a way to have the ASM shortcode that's generated generate to what our next case number would be when stray vs surrender was indicated, we'd still need staff to verify the case number is the same one as on the form. As we keep stray cats and dogs in separate binders as well as surrendered cats and dogs in separate binders, with small animals in a single binder. Our customer relations enters all intake data into ASM and typically grabs one binder at a time. So even if the case numbers 76629-76634 needed to be entered it may be a combination between cats and dogs and would be in different binders. I hope that makes sense and answers your question? I also have another question. I'm trying to modify the subreport for vaccination history to show the given and due(required) dates. but keep getting a syntax error for that line. I used the wordkeys appendix to find the correct name of the field "vaccinationrequired" so I'm not sure why it isn't working. I did just realize that the workd key is for ASM3 and not 2 but I honestly don't know what the difference between 2 and 3 is and which version we have if that's what it is. Original SQL: SELECT vaccinationtype.VaccinationType, animalvaccination.DateOfVaccination, animalvaccination.Comments AS VaccComments FROM animalvaccination INNER JOIN vaccinationtype ON vaccinationtype.ID = animalvaccination.VaccinationID WHERE animalvaccination.AnimalID = $PARENTKEY$ What I thought the SQL would be but is giving me the syntax error: Syntax error at or near "animalvaccinaton" Line 4: animalvaccination.VaccinationRequired ^ SELECT vaccinationtype.VaccinationType, animalvaccination.DateOfVaccination, animalvaccination.Comments AS VaccComments animalvaccination.VaccinationRequired FROM animalvaccination INNER JOIN vaccinationtype ON vaccinationtype.ID = animalvaccination.VaccinationID WHERE animalvaccination.AnimalID = $PARENTKEY$

@robinrt: 2020-04-12 11:08:19
These are table column names - not wordkeys. DateRequired and DateOfVaccination are the column names you want. DateOfVaccination is already in there. You can browse column names by typing the table name followed by a dot and then pressing CTRL+SPACE. Eg: animalvaccination.(CTRL+SPACE)

@adoptamutt: 2020-04-12 13:44:35
Sounds like you have a very large volume of animals coming in. I asked because what we do is: as the public comes in to surrender an animal, we have a posted QR code that they scan on their phone which directs them to our on-line surrender form (this could be stray or owner surrender). We add the animal manually, but ASM just released the ability to add an animal. So I'm wondering if you would also gather info about the animal as well on the surrender form and have ASM create the animal record, as well as the person record, automatically through the on-line form. You would need to have a Stray surrender online form and an owner surrender online form that could be linked to those specific animal types for that to work, which I'm not sure ASM can do right now. Maybe the ASM folks will jump in on this. Just a thought. But if you can't do the "add animal" part, at least you could automatically add the person and then you would have the electronic version of the form stored in ASM and you possible wouldn't need your binders. Staff could even review the form whil e the public is still in the building to add data or clarify anything the public put on the form. ASM could email the people who do the data entry automatically when the form is submitted. Just brainstorming during the lockdown. :)

@robinrt: 2020-04-12 15:18:33
Hi Karen, you can specify the animal type in your form with the "type" field name and make it a lookup containing just the options you want available (even if it's only one!). I've just noticed that I didn't put that in the docs, so I'll update those today.

@mmover: 2020-04-13 17:02:52
Of course! I should have realized this. Thank you so much Robin! Karen, that's an interesting thought! We do have surrender profiles available online for people to fill out ahead of time if they choose, but they aren't online forms, just pdfs they could print out. The information we get for strays is very minimal, where the finder lives where the animal was found, what municipality, etc. The info on the surrender forms is pretty basic too, animal's name, description, age, vaccination status, good with kids, cats, dogs, health issues, bite history, reason for surrender, previous owner's info. etc. The surrender profiles also ask those questions and more, but in more detail. Would you be able to show me what your online forms look like? I have noticed other shelters utilizing online forms but admit to knowing very little when it comes to website stuff. We have a different staff member who runs our site. I picked up SQL as a side project during the lockdown. :) If there's a way for that information or even the basic info to be input in to ASM or atleast for the process to become more streamlined I am all for that!

@adoptamutt: 2020-04-13 17:08:43
Megan, email me at waldkl@yahoo.com and I'll show you what we've done.


Unable to load asm

@jimdunne: 2020-04-08 14:00:39
I have just done to 06/04 update to asm on my ubuntu box and now cannot access asm "Firefox can't establish a connection to the server" I have updated etc/asm3.conf with db info and I have restarted apache - what am I missing please?

@jimdunne: 2020-04-08 20:57:54
If I run python /usr/lib/sheltermanager3/code.py 5000 from terminal and then try localhost:5000 it tries to load the page, but I get a blank white screen. Lots of 404 errors, but the paths are correct. When I close terminal and try again firefox cannot connect to server. Should asm run as a service? I tried to run sudo service sheltermanager3 start and get Failed to start sheltermanager3.service: Unit sheltermanager3.service not found. I have not changed any of the defaults, other than the db data in asm3.conf. Sitedefs.py says to no longer edit it. Have I missed something silly?

@robinrt: 2020-04-09 18:15:13
It's possible you're having the same trouble as Debian Buster users and python webpy is broken (I think Ubuntu pull from Debian). Try uninstalling python3-webpy, then installing it with pip like this: --- pip3 install git+https://github.com/webpy/webpy#egg=web.py --- If you don't have pip3, run --- apt-get install python3-pip python3-dev ---

@robinrt: 2020-04-09 18:42:33
Correction (as that will get you a now broken web.py), use --- pip3 install git+https://github.com/webpy/webpy.git@master ---

@jimdunne: 2020-04-09 18:57:13
The code does not work I'm afraid - jim@jim-OptiPlex-7010:~$ pip3 install git+https://github.com/webpy/webpy.git@master Collecting git+https://github.com/webpy/webpy.git@master Cloning https://github.com/webpy/webpy.git (to master) to /tmp/pip-698lyuuj-build Error [Errno 2] No such file or directory: 'git': 'git' while executing command git clone -q https://github.com/webpy/webpy.git /tmp/pip-698lyuuj-build Cannot find command 'git'

@robinrt: 2020-04-09 19:22:35
I think I've sent you down a rabbit hole here - you said you were starting it with python not python3. That should be fine assuming you had the dependencies installed before. Please ignore the bits about python3-webpy. We're going to need diagnostic info. What error messages are you seeing at the console when accessing the system via running python code.py 5000? We no longer setup sheltermanager3 as its own service. The README has instructiosn for setting up apache with mod_wsgi as this is the best way to run ASM.

@jimdunne: 2020-04-09 19:35:32
Traceback (most recent call last): File "/usr/lib/python3/dist-packages/web/application.py", line 255, in process return p(lambda: process(processors)) File "/usr/lib/python3/dist-packages/web/session.py", line 83, in _processor self._load() File "/usr/lib/python3/dist-packages/web/session.py", line 104, in _load d = self.store[self.session_id] File "/usr/lib/sheltermanager3/code.py", line 78, in __getitem__ if rv is None: raise KeyError(key) KeyError: '3d2d9cbce6da7eb23c65d4cc96634becb7bb85b4' 127.0.0.1:38742 - - [09/Apr/2020 19:31:09] "HTTP/1.1 GET /config.js" - 500 Internal Server Error 127.0.0.1:38824 - - [09/Apr/2020 19:31:09] "HTTP/1.1 GET /x.js" - 500 Internal Server Error 127.0.0.1:38814 - - [09/Apr/2020 19:31:09] "HTTP/1.1 GET /x.js" - 500 Internal Server Error 127.0.0.1:38826 - - [09/Apr/2020 19:31:09] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:38820 - - [09/Apr/2020 19:31:09] "HTTP/1.1 GET /x.js" - 500 Internal Server Error 127.0.0.1:38822 - - [09/Apr/2020 19:31:09] "HTTP/1.1 GET /x.js" - 500 Internal Server Error 127.0.0.1:38818 - - [09/ Apr/2020 19:31:09] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:38744 - - [09/Apr/2020 19:31:09] "HTTP/1.1 GET /x.js" - 500 Internal Server Error 127.0.0.1:38816 - - [09/Apr/2020 19:31:09] "HTTP/1.1 GET /x.js" - 500 Internal Server Error 127.0.0.1:38762 - - [09/Apr/2020 19:31:09] "HTTP/1.1 GET /x.css" - 500 Internal Server Error 127.0.0.1:38836 - - [09/Apr/2020 19:31:09] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:38848 - - [09/Apr/2020 19:31:09] "HTTP/1.1 GET /static/lib/jquery/3.4.1/jquery.min.js" - 404 File not found 127.0.0.1:38742 - - [09/Apr/2020 19:31:09] "HTTP/1.1 GET /static/lib/jqueryui/jquery-ui-1.12.1/jquery-ui.min.js" - 404 File not found 127.0.0.1:38934 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:38932 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:38944 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:38928 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:38930 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:38940 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:39002 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/touchpunch/0.2.3/jquery.ui.touch-punch.min.js" - 404 File not found 127.0.0.1:38936 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:38938 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:38946 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /x.js" - 500 Internal Server Error 127.0.0.1:39004 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/moment/2.17.1/moment.min.js" - 404 File not found 127.0.0.1:39006 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/mousetrap/1.4.6/mousetrap.min.js" - 404 File not found 127.0.0.1:39008 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/asmselect/1.0.4a/jquery.asmselect.js" - 404 File not found 127.0.0.1:39010 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/base64/0.3.0/base64.min.js" - 404 File not found 127.0.0.1:39012 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/codemirror/5.11/lib/codemirror.js" - 404 File not found 127.0.0.1:39014 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/codemirror/5.11/addon/display/fullscreen.js" - 404 File not found 127.0.0.1:38950 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:39016 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/codemirror/5.11/addon/hint/show-hint.js" - 404 File not found 127.0.0.1:39018 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/codemirror/5.11/addon/hint/sql-hint.js" - 404 File not found 127.0.0.1:39020 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/codemirror/5.11/mode/javascript/javascript.js" - 404 File not found 127.0.0.1:38952 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:39022 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/codemirror/5.11/mode/xml/xml.js" - 404 File not found 127.0.0.1:38956 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:38954 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:38948 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:39024 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/codemirror/5.11/mode/htmlmixed/htmlmixed.js" - 404 File not found 127.0.0.1:39026 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/codemirror/5.11/mode/sql/sql.js" - 404 File not found 127.0.0.1:38980 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:39028 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/exifrestorer/1.0.0/exifrestorer.js" - 404 File not found 127.0.0.1:39030 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/fullcalendar/3.2.0/fullcalendar.min.js" - 404 File not found 127.0.0.1:39032 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/signature/1.1.1/jquery.signature.min.js" - 404 File not found 127.0.0.1:39034 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/tablesorter/2.7.12/jquery.tablesorter.min.js" - 404 File not found 127.0.0.1:39036 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/tablesorter/2.7.12/jquery.tablesorter.widgets.min.js" - 404 File not found 127.0.0.1:39038 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/timepicker/0.3.3/jquery.ui.timepicker.js" - 404 File not found 127.0.0.1:39040 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/tinymce/4.7.13-asm1/tinymce/js/tinymce/tinymce.min.js" - 404 File not found 127.0.0.1:39042 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/lib/pathjs/0.8.4.smcom/path.min.js" - 404 File not found 127.0.0.1:39044 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /config.js" - 200 OK 127.0.0.1:39044 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/images/logo/icon-128.png" - 404 File not found 127.0.0.1:39046 - - [09/Apr/2020 19:31:10] "HTTP/1.1 GET /static/images/logo/icon-32.png" - 404 File not found

@jimdunne: 2020-04-09 19:50:20
For the 404 errors, I can navigate to those files in nautilus, so no idea what's happening there,

@robinrt: 2020-04-09 19:59:47
Ah, I see the problem. The first build we put up had a mistake in it, you must have downloaded during that time. If you redownload the package from the website and reinstall it, it should correct most of those errors.

@jimdunne: 2020-04-09 20:39:41
I've just finished partitioning a Win 10 machine, installed Ubuntu 18.04.4 LTS and then Apache LAMP mysql, phpmyadmin etc and then installed Sheltermanager with all the dependencies. I get the same problems on this fresh install - cannot connect to server @ localhost:5000 (or 127.0.0.1:5000). When I ran python3 /usr/lib/sheltermanager3/code.py 5000 I was able to go to the create a database screen, but then once that was finished I get a blank white screen where I should get the log in screen. I get the same error codes as on the other machine, and 404 errors, where I can navigate to the files in nautilus. When Terminal is closed, once again I am unable to connect to server. I imported an sql dump from the original machine via phpmyadmin, and that all worked ok, and I can see all my data browsing phpmyadmin, so mysql etc must be working. I get the default apache page if I navigate to localhost, so I know the web server is working. I'm stuffed here now, I can't even get a list of what animals need meds etc. and am getting grief from the Mrs.

@jimdunne: 2020-04-10 10:08:53
Going a bit further, asm does not appear to be listening on port 5000?? jim@jim-OptiPlex-7010:~$ sudo netstat -an | grep "LISTEN " tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN tcp6 0 0 :::139 :::* LISTEN tcp6 0 0 :::80 :::* LISTEN tcp6 0 0 :::631 :::* LISTEN tcp6 0 0 :::445 :::* LISTEN and connection to port 5000 is refused?? jim@jim-OptiPlex-7010:~$ sudo wget localhost:5000 --2020-04-10 10:05:02-- http://localhost:5000/ Resolving loc alhost (localhost)... 127.0.0.1 Connecting to localhost (localhost)|127.0.0.1|:5000... failed: Connection refused.

@robinrt: 2020-04-10 10:28:41
Not sure how you could see the create database screen without it listening? You're definitely using python3 now, which means you probably have the same broken webpy that Debian are shipping where static content is broken. This is also consistent with the create database screen working when nothing else does because that screen does not have any static content. There's a one line fix you can apply to web.py's httpserver file to fix it. It's in the README here: https://github.com/bobintetley/asm3/blob/master/README.md#debian-python3-webpy

@jimdunne: 2020-04-10 10:45:23
I can't see an init function near line 198, find shows init a few times - could you paste a line of code from where I need to do it please?

@robinrt: 2020-04-10 11:18:50
It's 4 lines above. You want it below the line that says self.start_response = start_response. This is Python code, the indentation has to match exactly so the function looks like this: --- def __init__(self, environ, start_response): self.headers = [] self.environ = environ self.start_response = start_response self.directory = os.getcwd() ---

@jimdunne: 2020-04-10 12:05:38
Still no joy I'm afraid. Same on both boxes.

@jimdunne: 2020-04-10 12:21:26
I get a blank page running code.py, looks like static content is not being loaded still? jim@jim-OptiPlex-7010:~$ python3 /usr/lib/sheltermanager3/code.py 5000 config: /etc/asm3.conf http://0.0.0.0:5000/ 127.0.0.1:50996 - - [10/Apr/2020 12:13:32] "HTTP/1.1 GET /" - 303 See Other 127.0.0.1:51000 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /main" - 303 See Other 127.0.0.1:51000 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /login" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /i18n.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /schema.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /config.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.css" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.css" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:33] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51004 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51000 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51006 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51012 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/asmselect/1.0.4a/jquery.asmselect.css" - 404 File not found 127.0.0.1:51004 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51024 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/lib/codemirror.css" - 404 File not found 127.0.0.1:51004 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/addon/display/fullscreen.css" - 404 File not found 127.0.0.1:51026 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/addon/hint/show-hint.css" - 404 File not found 127.0.0.1:51028 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/fullcalendar/3.2.0/fullcalendar.min.css" - 404 File not found 127.0.0.1:51032 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/timepicker/0.3.3/jquery.ui.timepicker.css" - 404 File not found 127.0.0.1:51030 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/tablesorter/2.7.12/themes/theme.asm.css" - 404 File not found 127.0.0.1:51034 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/jqueryui/jquery-ui-themes-1.12.1/themes/asm/jquery-ui.css" - 404 File not found 127.0.0.1:51036 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/modernizr/modernizr.min.js" - 404 File not found 127.0.0.1:51038 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/jquery/3.4.1/jquery.min.js" - 404 File not found 127.0.0.1:51040 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/jqueryui/jquery-ui-1.12.1/jquery-ui.min.js" - 404 File not found 127.0.0.1:51044 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/moment/2.17.1/moment.min.js" - 404 File not found 127.0.0.1:51042 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/touchpunch/0.2.3/jquery.ui.touch-punch.min.js" - 404 File not found 127.0.0.1:51046 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/mousetrap/1.4.6/mousetrap.min.js" - 404 File not found 127.0.0.1:51048 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/asmselect/1.0.4a/jquery.asmselect.js" - 404 File not found 127.0.0.1:51000 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51050 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/base64/0.3.0/base64.min.js" - 404 File not found 127.0.0.1:51000 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/addon/display/fullscreen.js" - 404 File not found 127.0.0.1:51052 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/lib/codemirror.js" - 404 File not found 127.0.0.1:51054 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/addon/hint/show-hint.js" - 404 File not found 127.0.0.1:51056 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/addon/hint/sql-hint.js" - 404 File not found 127.0.0.1:51060 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/mode/xml/xml.js" - 404 File not found 127.0.0.1:51058 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/mode/javascript/javascript.js" - 404 File not found 127.0.0.1:51062 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/mode/htmlmixed/htmlmixed.js" - 404 File not found 127.0.0.1:51066 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/exifrestorer/1.0.0/exifrestorer.js" - 404 File not found 127.0.0.1:51064 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/mode/sql/sql.js" - 404 File not found 127.0.0.1:51068 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/fullcalendar/3.2.0/fullcalendar.min.js" - 404 File not found 127.0.0.1:51070 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/signature/1.1.1/jquery.signature.min.js" - 404 File not found 127.0.0.1:51072 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/tablesorter/2.7.12/jquery.tablesorter.min.js" - 404 File not found 127.0.0.1:51074 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/tablesorter/2.7.12/jquery.tablesorter.widgets.min.js" - 404 File not found 127.0.0.1:51076 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/timepicker/0.3.3/jquery.ui.timepicker.js" - 404 File not found 127.0.0.1:51078 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/tinymce/4.7.13-asm1/tinymce/js/tinymce/tinymce.min.js" - 404 File not found 127.0.0.1:51080 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/pathjs/0.8.4.smcom/path.min.js" - 404 File not found 127.0.0.1:51082 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/addon/display/fullscreen.js" - 404 File not found 127.0.0.1:51008 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51008 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/addon/hint/show-hint.js" - 404 File not found 127.0.0.1:51006 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /x.js" - 200 OK 127.0.0.1:51010 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/addon/hint/sql-hint.js" - 404 File not found 127.0.0.1:51006 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/mode/javascript/javascript.js" - 404 File not found 127.0.0.1:51084 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/mode/xml/xml.js" - 404 File not found 127.0.0.1:51086 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/mode/htmlmixed/htmlmixed.js" - 404 File not found 127.0.0.1:51088 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/codemirror/5.11/mode/sql/sql.js" - 404 File not found 127.0.0.1:51090 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/exifrestorer/1.0.0/exifrestorer.js" - 404 File not found 127.0.0.1:51092 - - [10/Apr/2020 12:13:34] "HTTP/1.1 GET /static/lib/fullcalendar/3.2.0/fullcalendar.min.js" - 404 File not found 127.0.0.1:51094 - - [10/Apr/2020 12:13:35] "HTTP/1.1 GET /static/lib/signature/1.1.1/jquery.signature.min.js" - 404 File not found 127.0.0.1:51096 - - [10/Apr/2020 12:13:35] "HTTP/1.1 GET /static/lib/tablesorter/2.7.12/jquery.tablesorter.min.js" - 404 File not found 127.0.0.1:51098 - - [10/Apr/2020 12:13:35] "HTTP/1.1 GET /static/lib/tablesorter/2.7.12/jquery.tablesorter.widgets.min.js" - 404 File not found 127.0.0.1:51100 - - [10/Apr/2020 12:13:35] "HTTP/1.1 GET /static/lib/timepicker/0.3.3/jquery.ui.timepicker.js" - 404 File not found 127.0.0.1:51102 - - [10/Apr/2020 12:13:35] "HTTP/1.1 GET /static/lib/tinymce/4.7.13-asm1/tinymce/js/tinymce/tinymce.min.js" - 404 File not found 127.0.0.1:51104 - - [10/Apr/2020 12:13:35] "HTTP/1.1 GET /static/lib/pathjs/0.8.4.smcom/path.min.js" - 404 File not found 127.0.0.1:51106 - - [10/Apr/2020 12:13:35] "HTTP/1.1 GET /static/images/logo/icon-32.png" - 404 File not found


Changed Name, Description & Good with children Fields... but....

@tomsey: 2020-04-07 08:36:44
.... when I click on the "Share" button, then "Link to this animal", the information has not been updated, it still shows the old information.... Any ideas what I'm doing wrong? 🤔

@robinrt: 2020-04-07 09:22:32
Your browser will cache the old page for an hour. Press CTRL+R when viewing the link to force a reload.

@tomsey: 2020-04-07 15:56:50
It worked like a charm... You're the BEST!!! Thank you!! 😊


Data changing back..

@connor9220: 2020-04-02 15:42:06
Been doing some customizing of the options and playing around with a few animal entries. I've noticed that sometimes, the info reverts back to what it was before, with a new log & audit entry. In this case, the assignment of a animal to a location unit keeps blanking out after I assign it. Also, I've noticed that the config options revert back too. Please note: I've been bouncing between my main PC and a laptop, logged into ASM under the same username, and probably not logged out while on the other machine.

@robinrt: 2020-04-02 15:51:11
I'm not sure about the options screen, more info needed there. What you're describing with locations can happen if your default shelter view mode is set to "Location" and someone drags and drops an animal. If you drag/drop to the same location in location only mode, it can erase the unit and you will see an audit/log entry with the username of the person that did it the drag/drop.

@connor9220: 2020-04-02 16:34:30
I just found that. Accidental dragging while trying to select the animal, 99% of the time, I didn't even notice I dragged it. I was just trying to select it.


Publish On Hold Strays

@connor9220: 2020-04-02 06:12:41
How can we html/ftp publish a separate page of animals that aren't up for adoption, but are in our stay holding period so people can look at them and see if their animal has been found and is located at the shelter? I don't think it's possible with the current publisher. What would need to be added/change code/file wise to make a secondary publisher with this task in mind?

@robinrt: 2020-04-02 09:10:52
This service call: https://sheltermanager.com/repo/asm3_help/service.html#html-held-animals

@connor9220: 2020-04-02 15:39:15
Thanks, I'll check that out.

@inghamn: 2020-06-08 16:37:34
Are there plans to make a json service for this as well?

@robinrt: 2020-06-09 08:57:00
I've added json/xml_held_animals call to the master branch.

@inghamn: 2020-06-11 14:37:20
Awesome, I just saw the new functions on service.py!

@connor9220: 2020-07-16 21:12:08
Any chance of getting one for js like animal_view_adoptable_js ?

@connor9220: 2020-07-16 21:32:11
Would need to work regardless of location too after looking at the get_animal_data_query function.


Lost and found options

@srupe05: 2020-03-25 13:21:46
I am trying to set up the lost and found options to be more specific. I have adjusted options and triggered the batch process to regenerate the report; however, I am still getting animals with a high percentage match on the report. It doesn't seem like the adult, calico, guinea pig or the baby, female, calico feline, should be matching to a lost report for a young adult, male, feline. Should my match points be set up differently in some way? I appreciate anyone's help! [Lostfound rpt](//muut.com/u/sheltermanager/s3/:sheltermanager:l7MI:lostfoundrpt.jpg.jpg) [Lostfound options](//muut.com/u/sheltermanager/s1/:sheltermanager:Gigr:lostfoundoptions.png.jpg)

@robinrt: 2020-03-25 13:27:25
That looks pretty odd. Is this happening when you generate from the animal itself, or is this the full list of matches from the ASM->Lost and Found section of the menu? If you are a sheltermanager customer, please email your account number to help@sheltermanager.com and I'll take a closer look to see what's happening.

@srupe05: 2020-03-25 13:30:21
It is happening when generating from the animal and when viewing the full list. Will email our account information. Thank you.


Weights in grams

@jimdunne: 2020-03-23 13:22:34
Is it possible that the weight fields could be change to show grams rather than kg? We are a hedgehog rescue, and hedgehogs are generally below 1kg, with newborns as little as 19g. Some volunteers have difficulty working out that 0.1kg is 100g etc, so it would be beneficial to us if weights could be shown in grams.

@robinrt: 2020-03-23 14:11:55
The weight box doesn't care what you put in it and it doesn't convert anything at any point. I don't see any reason you couldn't enter your hedgehog weights in grams in there. It should be pretty obvious that you don't get 100kg hedgehogs!

@jimdunne: 2020-03-23 15:46:18
That'll do it, thanks!


search box and "special" characters

@grosbarbu: 2020-03-21 11:52:51
Good morning I found that the search box is case-sensitive ONLY for "special" char, examples: Ñ, ñ, Á á Ç ç ..... I tested it in the on-line demo: (I'm with Debian 9 and ASM 4.0 -> same thing) create 2 animals with names: Ñoca and Peña if you look for " Ñ " only the first is found, looking for " ñ " only the second, the others "normal" char can be upper or lower case no matter Is there a way to avoid this ? Thank you for your work Best regards ml

@robinrt: 2020-03-21 11:55:22
There is no way to avoid this currently.

@grosbarbu: 2020-03-21 11:59:16
Thank you


Phone numbers on report - how to?

@jimdunne: 2020-03-17 12:55:06
I need to add phone numbers to the "Shelter Inventory with Original Owner Address" report, could someone give me a pointer how to do this please.

@adoptamutt: 2020-03-17 13:06:34
Settings

@adoptamutt: 2020-03-17 13:10:01
Take a look at how the other owner fields are formatted in the select statement and then just add mobiletelephone, hometelephone, worktelephone with the same format. Then do the same in the HTML.


Adding a picture from phone

@bkrodle: 2020-03-16 22:00:11
I have an adroid 10, samsung note 9 and am using ASM in desktop mode. I created an incident report and want to add a picture of the dog in the incident to the report. I have the picture on my phone, but when I click add attach file, the dialoug box comes up to choose a file, but pressing the button does nothing. I can't choose the picture from the gallery. Nor can I share the picture from my gallery to ASM. Am I doing something wrong or is it an adroid thing? Getting IPADs soon and want to be able to do this for my officers.

@robinrt: 2020-03-17 09:52:21
I'm afraid it's a bug in the toolkit our app uses. If you use your mobile browser and login to http://m.sheltermanager.com with it instead of using the app, that should work correctly. You can also choose "Photo uploader" from the dropdown below the password field when logging into the app.

@bkrodle: 2020-03-17 13:01:31
Thanks! I was trying to attach a photo to an incident report. We use the uploader here at the building.


Online form import fields

@srupe05: 2020-03-14 17:59:38
I am creating an online form for people to report a lost/found animal. I noticed there is no import field for the date the animal was lost/found. When creating a report from the online form, the Date Lost defaults to the day the report was created. Since the match list looks at the date an animal entered the shelter, this may overlook some animals or require physically changing the date once the lost/found animal record is created. Additionally, the areazipcode import field from the online form is not importing to the lost/found animal record. It may be possible that I am overlooking something. I appreciate any help!

@robinrt: 2020-03-14 18:05:12
That's correct, the date will have to be modified afterwards. I've applied a fix to our code for the areazipcode problem, it will be deployed tomorrow - thanks for spotting that!

@srupe05: 2020-03-14 18:09:23
Thank you!


Found Animals microchips stopped publishing- no errors on report

@lisa40278: 2020-03-13 16:50:00
We publish our microchips to Found Animals on a regular basis. It seems that starting in March (and one case from January), the microchips are no longer publishing to adopters OR our organization. When we look up microchips, it's always the backtracking info that is listed. The microchip publishing reports aren't showing any errors. Would this be a ASM issue or Found Animals issue?

@robinrt: 2020-03-13 20:16:40
If there aren't any errors in the publishing logs and the datafiles are being correctly sent, the issue is more likely to be with Found. I'm happy to have a look and get in touch with Found if you like - send an email with your account number to help@sheltermanager.com


Applications flowing through ASM

@mark_murphy: 2020-03-10 17:08:17
We use ASM for a portion of what it can do. Our app process is all paper today. I can see that ASM can encompass apps, but I am not fully understanding how. For those that have done this, does anyone have a documented process for implementing this that they would be willing to share? I can probably figure it out through trial and error with enough time, but I know others have already perfected this and would love to benefit from that. Thanks in advance. Mark at AAF

@adoptamutt: 2020-03-10 17:39:00
1. Create online app. See the recent post about using the “Reservation Book” to manage the apps. Optional. 2. Post link to website. 3. When app is filled out, whoever designated will receive email. There will also be a notification on the Home page. 4. Designate someone to process the apps in the queue. 5. Decide if you want the app attached to the Media Tab of the animal as well as the person. 6. To attach/create app to the person record, put a check by the app, then select “Create person”. To attach to animal, choose Attach using animal name.

@mark_murphy: 2020-03-10 17:46:10
Wow. That was quick. Thank you! Most of the apps that we get are from people that come into the shelter. So would I be correct in assuming that for those people who come in and fill out a paper app, that our staff then keys that into the on-line app as if the applicant did it on-line? I assume I create the app by going to edit on-line forms? I have not used this, but will start looking at it. Thanks again.

@adoptamutt: 2020-03-10 19:09:36
For those coming into the shelter, we just enter the person data then scan app to PDF and attach to person in Media Tab.

@adoptamutt: 2020-03-10 19:36:13
It would be even better if you had an old tablet and Wi-Fi at the shelter and had the adopter fill the app out electronically.

@mark_murphy: 2020-03-10 23:27:33
Thanks


Problem with Reports

@djsteven: 2020-03-04 15:06:11
Hi Guys I did a custom report to export the data of all the animals, before was working good and now I get an error, I think is an issue with the server timeout. Can you please check that. [Error 524](//muut.com/u/sheltermanager/s3/:sheltermanager:6Tsk:error524.jpg.jpg)

@robinrt: 2020-03-04 16:12:40
Your report is taking too long to run and timing. The only thing you can do to fix it is to return less records so that it completes in time. There are also exports for animal data under Settings->SQL Interface->Export

@djsteven: 2020-03-04 16:22:45
Thanks, I'll try that.

@djsteven: 2020-03-04 17:04:57
Well the CSV doesn't export the Hebrew and the report is not good, there is a way I can do the report of all the animals split by pages? so like that I think can show less records at time. This is the code used. SELECT a.ID AS AnimalID, a.*, oo.OwnerName AS ooname, oo.OwnerAddress AS ooaddress, oo.OwnerPostcode AS oopostcode, oo.HomeTelephone AS ootel, oo.EmailAddress AS ooemail, bi.OwnerName AS biname, bi.OwnerAddress AS biaddress, bi.OwnerPostcode AS bipostcode, bi.HomeTelephone AS bitel, bi.EmailAddress AS biemail, cv.OwnerName AS cvname, cv.OwnerAddress AS cvaddress, cv.OwnerPostcode AS cvpostcode, cv.HomeTelephone AS cvtel, cv.EmailAddress AS cvemail, lksize.size, entryreason.reasonname AS entryreasonname, deathreason.reasonname AS ptsreasonname, a.breedname, species.speciesname, basecolour.basecolour, animaltype.animaltype, internallocation.LocationName AS CurrentLocation, lkcoattype.CoatType, ba1.ShelterCode AS Bonded1Code, ba1.AnimalName AS Bonded1Name, ba2.ShelterCode AS Bonded2Code, ba2.AnimalName AS Bonded2Name, (SELECT Name FROM lksynun WHERE ID = a.IsGoodW ithDogs) AS withdogs, (SELECT Name FROM lksynun WHERE ID = a.IsGoodWithCats) AS withcats, (SELECT Name FROM lksynun WHERE ID = a.IsGoodWithChildren) AS withchildren, (SELECT Name FROM lksynun WHERE ID = a.IsHouseTrained) AS housetrained, (SELECT Sex FROM lksex WHERE ID = a.sex) AS thesex, (SELECT Name FROM lksyesno WHERE ID = a.neutered) AS altered, (SELECT Name FROM lksyesno WHERE ID = a.identichipped) AS yidentichipped, (SELECT Name FROM lksyesno WHERE ID = a.tattoo) AS ytattoo, (SELECT Name FROM lksyesno WHERE ID = a.declawed) AS ydeclawed, (SELECT Name FROM lksyesno WHERE ID = a.heartwormtested) AS yheartwormtested, (SELECT Name FROM lksyesno WHERE ID = a.combitested) AS ycombitested, (SELECT Name FROM lksposneg WHERE ID = a.heartwormtestresult) AS pheartwormtestresult, (SELECT Name FROM lksposneg WHERE ID = a.combitestresult) AS pfivresult, (SELECT Name FROM lksposneg WHERE ID = a.flvresult) AS pflvresult, (SELECT NAME FROM lksyesno WHERE ID = a.HasActiveReserve) AS reserved, (SELECT NAME FROM lksyesno WHERE ID = a.NonShelterAnimal) AS nonshelter, (SELECT NAME FROM lksyesno WHERE ID = a.IsNotAvailableForAdoption) AS notadoption, (SELECT NAME FROM lksyesno WHERE ID = a.IsTransfer) AS ytransferin, (SELECT NAME FROM lksyesno WHERE ID = a.HasSpecialNeeds) AS yspecialneeds, (SELECT NAME FROM lksyesno WHERE ID = a.PutToSleep) AS yputtosleep, (SELECT NAME FROM lksyesno WHERE ID = a.IsDOA) AS ydoa, (SELECT NAME FROM lksyesno WHERE ID = a.DiedOffShelter) AS ydiedoffshelter FROM animal a INNER JOIN species ON species.ID = a.speciesID INNER JOIN internallocation ON internallocation.id = a.shelterlocation INNER JOIN basecolour ON basecolour.ID = a.basecolourID INNER JOIN animaltype ON animaltype.ID = a.animalTypeID INNER JOIN lksize ON lksize.ID=a.Size INNER JOIN entryreason ON entryreason.ID= a.entryreasonid LEFT OUTER JOIN lkcoattype ON lkcoattype.ID = a.CoatType LEFT OUTER JOIN deathreason ON deathreason.ID = a.ptsreasonid LEFT OUTER JOIN owner oo ON a.OriginalOwnerID = oo.ID LEFT OUTER JOIN owner bi ON a.BroughtInByOwnerID = bi.ID LEFT OUTER JOIN owner cv ON a.CurrentVetID = cv.ID LEFT OUTER JOIN animal ba1 ON a.BondedAnimalID = ba1.ID LEFT OUTER JOIN animal ba2 ON a.BondedAnimal2ID = ba2.ID

@robinrt: 2020-03-04 17:13:45
Yes, you can use LIMIT and OFFSET to only return a certain number of records and from a certain point in the results. https://www.postgresql.org/docs/9.5/queries-limit.html

@djsteven: 2020-03-06 21:44:03
Hi Robin, There is a way that can export Hebrew on CSV, Right now appear like symbols אוניקס

@robinrt: 2020-03-07 09:03:29
Is this for a sheltermanager.com account? Could you drop me a note of your account number and the report you are exporting to help@sheltermanager.com so I can investigate why that's happening?


Leap year error

@jimdunne: 2020-02-29 11:27:19
I'm not able to do anything is ASM today as I keep getting an internal server error, which shows "day is out of range for month" - so I guess ASM cannot handle leap years, is this correct? What can I do to overcome this?

@jimdunne: 2020-02-29 11:41:03
I have confirmed the error is due to leap year, by changing the system date to 28 Feb, and the 01 March and it works. Go back to 29 Feb and it won't do anything, throwing up the 'internal server error'.

@robinrt: 2020-02-29 12:07:50
Yes, it's patched in the trunk. It occurs due to a bug in the calendar year calculation. To fix it, edit i18n.py and comment out this line at around line 522 by putting a pound/hash symbol in front of it: --- if years == int(years): return date.replace( year = date.year - int(years)) --- becomes --- # if years == int(years): return date.replace( year = date.year - int(years)) ---

@jimdunne: 2020-02-29 12:33:22
Thanks for the response - I have changed usr/lib/sheltermanager3/i18n.py line 516 as noted. I restarted the Apache server and the ASM and got the same error. I then rebooted my server and am still getting the same error. If I open i18n.py file, it shows the edit, but the error still shows in ASM - [Screenshot from 2020-02-29 12-32-06](//muut.com/u/sheltermanager/s1/:sheltermanager:DJcX:screenshotfrom20200229123206.png.jpg) A Any ideas?

@titnono: 2020-02-29 16:34:42
Hi, thank you, did the mod, deleted i18n.pyc, rebooted and it works

@jimdunne: 2020-02-29 17:12:03
I hadn't deleted i18n.pyc, delete and restart sorted the error - thanks.


Registers

@galia: 2020-02-28 20:29:28
Hi all, I am a very new user to this program and testing it 😊 I will have to present it to the association committee! in French! 😕 I see registers for vaccinations, foster families, reservations etc, but not one for adoptions, I realise you can use reports to look at the info but they are not interactive Does something like this exist? Also having problems with vaccination due reports that just say 'no info found' I'm doing something wrong I'm sure, lots of head scratching going on and no I don't have any fleas 😊 Lots of other questions too 😉 but I don't want to bore you all at this stage as I am sure it is just me being new to the software Thanks Tim ASM3 by the way

@robinrt: 2020-02-29 12:08:54
Vaccinations that are due must not have a given date, only a due/required date. Could you elaborate more on the question about registers?

@galia: 2020-03-03 16:45:23
Hi, Vaccinations : I have a report 'vaccins expiring between two dates' but this returns 'no entries found, even though I have expireded vaccinations and the required date is filled in on the animal (I have since found another report the produces what I am looking for though) Register of adoptions There are registers in the form of quick links (below the main menu line at the top) for foster families, vaccinations and reservations, I assume there is not an actual page 'register of adoptions' and I will need to create a report to access this information? one other question sorry, on the contact entry form there are only two choices Couple/individual & establishments. but in the french version the translation has 'Association' as opposed to Entreprise, is it possible for me to alter or add to this list somewhere? so far I have not found out how to do it Thanks

@robinrt: 2020-03-03 16:49:08
There's an option near those to return an animal from adoption, this shows adoptions in the last month. But yes, there are reports, eg: "Adoptions by Date" Association would need to be updated in the translation files for the program. Is it a mistranslation of Organisation?

@galia: 2020-03-03 19:54:10
OK thanks I am checking with a French colleague, Association is more akin to a charity Would it be possible for you to alter the code and add an extra title? Couple/célibataire to Particulier If you can not add a third one Change Association to Société Idealy Particulier Société Association Thx Tim


Application management

@twiseowl: 2020-02-28 18:35:09
Would it be possible to do more with the incoming forms (adoption applications mainly)? We would like to be able to add notes or tags to them in that list, such as approved, pending, declined, etc. I've seen other databases do this, and it would save us so much time and possibly help us not miss apps. We need a way to track where each application is in the adoption process, and while I like being able to add the app to the animal and the person, that doesn't help us if we have to go to each individual animal/ person to see any notes. Until the animal is adopted, we need to easily know what's going on with the apps.

@robinrt: 2020-02-29 12:10:13
Yes. Use the "reserveanimalname" field on your form with an adoptable animal field type. This will create a reservation record at the same time as the person, linking it to the animal. You can use the reservation book to manage your applications. Reservations can have statuses and comments and you can see them all together with current status on that screen.

@twiseowl: 2020-03-01 22:41:08
Thank you. Is there a way to NOT mark them as unavailable when a reservation is created? We often like to get a few apps on our popular animals before making a decision.

@robinrt: 2020-03-02 08:45:42
Yes, set Publishing->Set Publishing Options->Animal Selection->Include reserved animals to YES

@twiseowl: 2020-03-02 16:27:32
Thank you! I knew I'd seen that, and had looked through options but just could not find it again. :)

@ken2950: 2022-02-08 05:09:36
Exactly the thread I was looking for. Ty!


customize reports

@bmay1439: 2020-02-24 02:35:46
We added intake county to our animal entry screen, I need to create a report where I can search by that criteria, how can I do this ?

@adoptamutt: 2020-02-24 17:44:00
Something like this: SQL: SELECT a.ShelterCode, a.AnimalName FROM animal a INNER JOIN additional ON additional.linkid = a.ID INNER JOIN additionalfield ON additionalfield.id = additional.additionalfieldid where additionalfield.FIELDNAME = 'county' AND additional.VALUE = '$ASK STRING County$'


Ubuntu 18.04 - SSL Certificate

@s_siegel: 2020-02-23 15:24:06
When setting up the program on Ubuntu, I can change the config file to recognize HTTPS, but it's not taking this. I do have an active SSL cert for the Apache server, but how can I make this work for ASM?

@inghamn: 2020-02-25 13:43:56
You should be able to set the base_url and service_url to the https version. Then configure Apache to use your certificate. In your Apache config, make sure to put the WSGOScriptAlias inside the SSL VHost.


ASPCA Transport Photo File Report

@gspinner: 2020-02-19 21:57:30
I'm 2 days in to using SM so novice would be a compliment. Hope this question isn't too basic. We are a source shelter for the ASPCA Transport Program. We manually create 2 reports for each transport. The first is a report that is 3 columns wide. Column 1 includes AnimalID and AnimalName. Columns 2 & 3 are photos of front and side view of the animal which would come from the 1st and 2nd photos in our media file. The report generally has about 30 animals listed. I would like to be able to read in a list of AnimalIDs and have the report compiled and returned. Ideally in an editable format e.g., .DOC or .DOCX so I can edit if we need to add/delete a single animal. Hoping another shelter has already created something similar since it will take some time for me to learn SQL

@adoptamutt: 2020-02-19 23:31:16
We created an additional field called "TransportDt" then created this report to pull animals with a certain TransportDt. ASPCA accepts this if it is Saved to PDF. We also have a report that pulled all the needed animal data so that it can be dumped into a Excel Macro to put it in the proper format. If you are interested in that, let me know. SQL: SELECT a.ID AS AnimalID, a.ShelterCode, a.AnimalName, (SELECT ad.value from additional ad INNER JOIN additionalfield af ON af.id = ad.additionalfieldid where ad.linkid = a.ID AND af.fieldname = 'TransportDt') AS TransportDt FROM animal a where Archived = 0 AND NonShelterAnimal = 0 AND (SELECT to_date(value, 'MM/DD/YYYY') from additional INNER JOIN additionalfield ON additionalfield.id = additionalfieldid where additional.linkid = a.ID AND additionalfield.fieldname = 'TransportDt') = '$ASK DATE Transport Date$' ORDER BY a.animalname HTML: $$HEADER <table border="0"> <tr> <td><font size=4><B>Transport From Humane Society    $TransportDt</font></td> </tr> </table> <table border="1"> <tr> <th>A #/Name</th> <th>Picture 1</th> <th>Picture 2</th> <th>Picture 3</th> </tr> HEADER$$ $$BODY <tr> <td>$SHELTERCODE <br /> $ANIMALNAME</td> <td><img height="200" src="{IMAGE.$ANIMALID.1}" /></td> <td><img height="200" src="{IMAGE.$ANIMALID.2}" /></td> <td><img height="200" src="{IMAGE.$ANIMALID.3}" /></td> </tr> BODY$$ $$FOOTER </table> <h2>Total: {COUNT.animalname}</h2> FOOTER$$

@adoptamutt: 2020-02-19 23:39:18
Of course, you could use the Transport Tab as well to grab the date.

@gspinner: 2020-02-21 02:31:59
Thank you so much!!!! That looks like it will work well. Yes, we'd be interested in the code for the transport manifest too.

@adoptamutt: 2020-02-21 14:55:58
There is also a "SPCA Transfer Partner Spreadsheet" in the sheltermanager.com report repository. Looking at that one and the one below should get you started. Mine would need some customization. My email is waldkl@yahoo.com if you want to send me your email, I'll email you the Excel macro. SQL: SELECT a.ID AS AnimalID, a.ShelterCode, a.AnimalName, a.BreedName, a.AnimalAge, CASE WHEN a.sex=1 and a.neutered=1 THEN 'NM' WHEN a.sex=1 and a.neutered=0 THEN 'M' WHEN a.sex=0 and a.neutered=1 THEN 'SF' WHEN a.sex=0 and a.neutered=0 THEN 'F' END AS theSex, ROUND( CAST(a.weight as numeric), 2) as weight, CASE WHEN entryreason.ReasonName LIKE 'OS -%' THEN 'OS' ELSE 'Stray' END AS TheReason, a.datebroughtin, (SELECT value from additional INNER JOIN additionalfield ON additionalfield.id = additionalfieldid where additional.linkid = a.ID AND additionalfield.fieldname = 'RWAssessDt') AS RWAssessDt, basecolour.basecolour, --(SELECT max(DateofVaccination) from animalvaccination where animalvaccination.vaccinationid = 10 and animalvaccination.animalid = a.ID) AS Bordetella, (SELECT DateOfVaccination FROM animalvaccination av INNER JOIN vaccinationtype vt ON vt.ID = av.VaccinationID WHERE AnimalID = a.ID AND vt.VaccinationType LIKE '%Bordetella%' ORDER BY DateOfVaccination DESC LIMIT 1) AS Bordetella, (SELECT DateOfVaccination FROM animalvaccination av INNER JOIN vaccinationtype vt ON vt.ID = av.VaccinationID WHERE AnimalID = a.ID AND vt.VaccinationType LIKE '%Lepto%' ORDER BY DateOfVaccination DESC LIMIT 1) AS LeptoDt, --(SELECT Max(DateofVaccination) from animalvaccination where animalvaccination.vaccinationid = 2 and animalvaccination.animalid = a.ID) AS RabiesDt, (SELECT DateOfVaccination FROM animalvaccination av INNER JOIN vaccinationtype vt ON vt.ID = av.VaccinationID WHERE AnimalID = a.ID AND vt.VaccinationType LIKE '%Rabies%' ORDER BY DateOfVaccination DESC LIMIT 1) AS RabiesDt, CASE WHEN a.heartwormtested = 1 and a.heartwormtestresult = 0 THEN ' ' WHEN a.heartwormtested = 1 and a.heartwormtestresult = 1 THEN 'Neg' WHEN a.heartwormtested = 1 and a.heartwormtestresult = 2 THEN 'Pos' END AS heartworms, a.heartwormtestdate, (SELECT max(DateofVaccination) from animalvaccination where animalvaccination.vaccinationid = 14 and animalvaccination.animalid = a.ID) AS HWPrevDt, (SELECT comments from animalvaccination where animalvaccination.vaccinationid = 14 and animalvaccination.animalid = a.ID and DateofVaccination = (select max(DateofVaccination) from animalvaccination where animalvaccination.vaccinationid = 13 and animalvaccination.animalid = a.ID)) AS HWPrevComments, a.identichipnumber, (SELECT max(DateofVaccination) from animalvaccination where animalvaccination.vaccinationid = 13 and animalvaccination.animalid = a.ID) AS FleaDt, (SELECT comments from animalvaccination where animalvaccination.vaccinationid = 13 and animalvaccination.animalid = a.ID and DateofVaccination = (select max(DateofVaccination) from animalvaccination where animalvaccination.vaccinationid = 13 and animalvaccination.animalid = a.ID)) AS FleaDtComments, (SELECT Min(DateofVaccination) from animalvaccination where animalvaccination.vaccinationid = 11 and animalvaccination.animalid = a.ID) AS Wormer1Dt, (SELECT Min(DateofVaccination) from animalvaccination where animalvaccination.vaccinationid = 18 and animalvaccination.animalid = a.ID) AS Wormer2Dt, (SELECT value from additional INNER JOIN additionalfield ON additionalfield.id = additionalfieldid where additional.linkid = a.ID AND additionalfield.fieldname = 'RWComments') AS RWComments, (SELECT count(DateofVaccination) from animalvaccination where animalvaccination.vaccinationid = 9 and animalvaccination.DateOfVaccination is not null and animalvaccination.animalid = a.ID) AS ComboCount FROM animal a INNER JOIN basecolour ON basecolour.ID=a.basecolourID INNER JOIN entryreason ON entryreason.ID = a.EntryReasonID where Archived = 0 AND NonShelterAnimal = 0 AND DeceasedDate Is Null AND (SELECT to_date(value, 'MM/DD/YYYY') from additional INNER JOIN additionalfield ON additionalfield.id = additionalfieldid where additional.linkid = a.ID AND additionalfield.fieldname = 'RWTransportDt') = ' $ASK DATE RW Transport Date$' ORDER BY a.weight DESC HTML: $$HTMLHEADER <style type="text/css"> td { font-family: "Arial"; font-size:10pt; } th { font-family: "Times New Roman"; font-size:14pt; font-weight:bold; } </style> <table border=1 class="sigtable"> HTMLHEADER$$ $$HEADER HEADER$$ $$BODY<tr> <td>.</td> <td>$sheltercode</td> <td>$animalname</td> <td>$breedname</td> <td>$animalage</td> <td>$thesex</td> <td>$weight </td> <td>$TheReason</td> <td>$datebroughtin</td> <td>$RWAssessDt </td> <td>$basecolour</td> <td>{SUBREPORT.SUBREPORT_RWTransferListVaccinations.animalid} </t d> <td>$Bordetella </td> <td>$LeptoDt </td> <td>$RabiesDt </td> <td>$heartworms </td> <td>$heartwormtestdate </td> <td>$HWPrevComments $HWPrevDt </td> <td>$identichipnumber </td> <td>$FleaDtComments $FleaDt</td> <td>Pyrantel $Wormer1Dt </td> <td>Praziquantel $Wormer2Dt </td> <td> </td> <td>$rwcomments </td> <td>$ComboCount</td> </tr> BODY$$ $$FOOTER </table> </html> FOOTER$$


Weight log

@cindiczyzakkaiser: 2020-02-17 01:14:09
How do you create a weight log for an animal?

@robinrt: 2020-02-17 09:19:23
Change the weight field on the animal details tab and save, that should automatically create an entry in the log.


Microchips registering to foster

@homewardcat: 2020-02-16 21:17:05
When we microchip a cat that is in a foster home, it gets registered to the foster person. We want it registered to our organization. How do we change that?

@robinrt: 2020-02-17 09:18:41
Hi, edit the list for "Register microchips after" under Publishing->Set Publishing Options->All Publishers. Remove Foster from the list and make sure Intake is in the list.

@homewardcat: 2020-02-25 05:25:10
Thank you!


Error with MySQLdb

@connor9220: 2020-02-12 16:03:12
Installing ASM3 on a shared hosting system with Plesk control panel. Got most of it done, but when I went to create the database I'm getting this.. CRITICAL asmus... Database.execute global name 'MySQLdb' is not defined File "/var/www/vhosts/asm.demodomain.org/httpdocs/dbms/base.py", line 278, in execute#012 c, s = self.cursor_open() File "/var/www/vhosts/asm.demodomain.org/httpdocs/dbms/mysql.py", line 27, in cursor_open#012 c, s = Database.cursor_open(self) File "/var/www/vhosts/asm.demodomain.org/httpdocs/dbms/base.py", line 146, in cursor_open#012 c = self.connect() File "/var/www/vhosts/asm.demodomain.org/httpdocs/dbms/mysql.py", line 21, in connect#012 return MySQLdb.connect(host=self.host, port=self.port, user=self.username, passwd=self.password, db=self.database, charset="utf8", use_unicode=True) NameError: global name 'MySQLdb' is not defined Based on other comments, I double checked, and python-mysqldb is installed. apt-get , install python-mysqldb Reading package lists... Done Building dependency tree Reading state information... Done python-mysqldb is already the newest version (1.3.7-1build2). Any thoughts?

@robinrt: 2020-02-13 09:43:30
Verify the fault is not present normally by running the python interpreter at a terminal and entering "import MySQLdb" If you're using apache and mod-wsgi, set WSGIPythonPath in your Apache config to point to where your libraries are installed. For Debian based systems it's typically /usr/lib/python2.7/dist-packages


User Group

@mark_murphy: 2020-02-11 15:17:10
Is there a user group for ASM? We are using ASM, but only some aspects. I would love to connect with others who may be using it more fully to understand how they are leveraging it. I know we can do more with it, but want to benefit from what others have learned. - Mark

@twiseowl: 2020-02-17 03:48:46
I am part of a Facebook group called ASM Rocks! that has been very helpful.

@adoptamutt: 2020-02-19 23:33:26
I just joined ASM Rocks! as well. But this forum is also nice place to ask questions and post helpful reports and such.

@mark_murphy: 2020-03-10 17:02:42
Thanks. I will check it out.


Training

@bkrodle: 2020-02-11 14:29:22
Is there a way to set ASM up in a training mode for new employees? Would it be possible to create a training user that would have full access but be unable to save records to the system? I was just wondering because I've got 3 people I'm going to have to teach to use the system and having a training mode would be great. Thanks!

@robinrt: 2020-02-11 14:38:48
Hi, you could create a role for the trainee employees and deny that role permission to save any records? Another approach might be to use the demo on our website since you add records to that and mess around with it and it will reset and reload itself every day.

@bkrodle: 2020-02-11 18:21:10
I'll give that a try. I was just checking. I'd like to do immersion training so they could create the records and print them and search, but I can make it work with changing the sessions to not saving. Thanks! Love the program by the way, it's the best we've used.


Export report for Aplos contacts?

@caninehumanenetwork: 2020-02-09 15:20:32
Has anyone created a report that enables easy bulk upload of contacts from ASM to Aplos?


Issue trying to use service API to integrate with website

@rementis: 2020-02-08 01:00:19
So, I just want to use the code snippet provided in the user manual to integrate with my website. It seems to work correctly, except that it generates links using http instead of https, and my site is SSL-enabled so obviously http won't work. I have base url set correctly in asm3.conf, no sure what else to check.

@rementis: 2020-02-08 01:01:42
Here is the snippet I'm trying to get working: <div id="asm3-adoptables"> <script src="https://SERVERNAME:5000/asm/service?method=animal_view_adoptable_js"></script></div> This snippet does list out animals, but the links/pics don't work because it's insisting on using http instead of https.

@robinrt: 2020-02-09 10:49:05
Update the base_url property in your asm3.conf file to use https.


User roles

@mrsfozy: 2020-02-06 03:49:20
Is there a way for a user to be able to log in and see information, but not be able to edit anything? We've had problems with a couple of volunteers changing things they shouldn't. We need them to look but not touch, and so far asking them nicely hasn't worked!

@adoptamutt: 2020-02-06 04:46:01
You can create a new Volunteer user under Settings > User roles and only give them “view” permissions.

@robinrt: 2020-02-06 14:21:12
Yes, as Karen says, create a Volunteer user role and only give it the permissions you want. You can then assign that volunteer role to the individual user accounts that you want to restrict (make sure they are "normal" users and not "super" users).

@mrsfozy: 2020-02-06 21:52:24
Thank you!


Voucher

@mrsfozy: 2020-02-06 03:43:35
We give desexing vouchers for certain cats. Is there anyway to attach vouchers to animals rather than people?

@robinrt: 2020-02-06 14:21:31
Sorry, I'm afraid there isn't. I understand what you're getting at and that the voucher would only be redeemable against surgery for a particular cat, but it still needs to be given to a person as I'm not sure the cat would have the clerical skills to be able to present it to the vet!

@mrsfozy: 2020-02-06 21:47:09
LOL! We just don't put the public into the system, so would be easier for us to attach it to a cat. All our invoices come in with the database number on, so we'd be able to see that particular cat's voucher had been redeemed.


Send reports to ASM user role type instead of email list

@julian-poidevin: 2020-02-05 22:43:29
Instead of setting an email list to send the report to, would it be possible to say "Send this report daily to "Vets" or "System admins" ? Thanks !

@robinrt: 2020-02-06 14:22:15
It's not possible right now, but it's a good idea.

@julian-poidevin: 2020-02-10 11:29:47
Should I open an issue about this feature request on ASM Github repo ?


Customize random animal name suggestion by country

@julian-poidevin: 2020-02-02 13:10:09
The animal name generator contains mostly english animal names (_animalname.py_). Would there be a possibility to add a custom name library per languages ? Maybe using the same system logic as translations ? Thanks.

@robinrt: 2020-02-03 19:01:28
That's something we never thought of. I guess it would be easy to have a NAMES__fr_ constant and then use reflection to see if there's a localised variable in get-random-name (updated to pass the locale)

@jimdunne: 2020-02-11 18:08:05
I found the included names to be 'cheesy' at best, so deleted the old names list in animalname.py and added my own, maybe you could do that with names more suitable to your locale?

@julian-poidevin: 2020-02-12 09:46:38
That's a solution indeed, will try that. Thanks !

@margagomis: 2020-03-01 19:16:28
Hi! Could you tell me how can I find this file animalname.py? Thanks

@jimdunne: 2020-03-01 20:20:03
usr/lib/sheltermanager3/animalname.py


pictures

@karenconlonbuffaloe: 2020-02-01 05:04:43
is there a way to add multiple pictures to an animal's profile and also can i add pictures from facebook?

@adoptamutt: 2020-02-01 05:30:52
You can add as many as you like through the Media Tab of an animal. You would need to save the Facebook photos to your device before uploading to ASM.

@karenconlonbuffaloe: 2020-02-01 05:46:34
I was wanting to click on multiple photos and load to an animal, rather than doing one at a time, is that possible - thank you for the quick answer

@adoptamutt: 2020-02-01 14:09:31
No. I don’t know of any way to do that.

@robinrt: 2020-02-01 15:23:45
Hi, there is a way - select all the photos you want to upload in Windows Explorer or Finder if you're on Mac. Then, drag them to the "Drop photos here" area of the media tab on the animal to upload them all in one go.


Edit Movement Type options

@janinevz: 2020-01-21 11:44:59
Is it possible to add another Movement Type, such as "Unknown"? So, you will have Adoption/Foster/Transfer/Unknown, as an example?

@robinrt: 2020-02-01 15:22:52
No, it is not possible. The system only understands on and reports the built in values, it would not know what to do with user-added types. Why do you want an unknown movement type?

@janine_awspe: 2021-06-24 08:12:42
We would use a similar option to Unknown for older animal records which we no longer have all the details for. We don't want to remove them from the database as we could potentially still locate the original paper documents, but need to identify them separately.

@jarnold: 2021-07-28 01:07:04
Just wanted to add my comment again here bc based on previous comments it seems like there is a need for the ability to amend Movement Types and given what we need it for, there doesn't appear to be a current work-around using existing options: Yes, the ability to amend/edit “Movement Type” would be SO helpful! You can add other options to other types, just not Movements. We offer an Emergency Boarding service for free and it would be helpful to track – not only for new animals using this program but also for animals previously adopted from us (right now, we'd have to create a copy/duplicate file to track in this situation).

@robinrt: 2021-07-28 08:33:31
I'll copy my email response for others reading this: Additional movement types will not solve the problem of boarding as it would require you to return previous adoptions and mess up your figures. Boarding needs to be handled separately from movements. There is a task on our development list for the current milestone to add a separate boarding module so that it operates independently of movements. https://github.com/bobintetley/asm3/issues/623


Where to find files

@sjras: 2020-01-20 21:42:46
I posted this in general as well because I wasn't sure where to best put it: Our shelter was hit with randsomeware & our server was encrypted. After a fresh windows install we have a back up drive that we've managed to mount to recover the files that were living on our server, which included ASM. Our IT help is asking where they'd find the old files we need to move to the new server to get our records back into old ASM. I think it was ASM 2.7.1? We're hosted now thank goodness, but we refer to our “old asm” database for historical data. Any ideas?

@robinrt: 2020-02-01 15:22:11
Yes, assuming it was just a local install on one computer, try C:\Users\YOURUSERNAME\.asm\localdb.*


Link person to animals

@allie7582: 2020-01-19 16:51:50
We are a foster based rescue. I want to be able to see all animals any one person has fostered and/or adopted. If I look under a person's 'page', there is nothing under 'link' tab, even if that person is currently marked as fostering an animal. How do I correct this? How do I add info to the 'link' tab for a person? Or should this be done automatically?

@sjras: 2020-01-20 21:44:41
the link tab usually shows intakes or surrenders or non-shelter animals linked to a person. You should be able to see all the pets fostered by that person under the movement tab since each pet leaving for foster is a movement :)

@allie7582: 2020-01-21 17:26:17
It is not. For example, I am currently fostering a dog. Dog has 'movement' showing "foster: (me)", yet if I go under "my page", under link tab, there is nothing. Is this a bug? How can I correct?

@sjras: 2020-01-21 20:33:35
it should be on your page under the movements tab as well, not the links

@sjras: 2020-01-21 20:36:43
[Capture](//muut.com/u/sheltermanager/s3/:sheltermanager:FYJQ:capture.jpg.jpg) This is under the movements tab for one of our foster homes

@allie7582: 2020-01-22 18:20:21
Movements tab, under the person, I understand! Thank you.


Add Person birth date to Person "Name & Address" tab

@julian-poidevin: 2020-01-17 08:41:31
Hello, Small suggestion to improve ASM, it may be interesting for some shelter to know the age of the persons registered. The age could be displayed in the person "header" the same way as it is for an animal. Thanks,

@robinrt: 2020-01-17 08:54:55
That is a good suggestion. You could add it yourself for now with Settings->Additional Fields.

@julian-poidevin: 2020-01-17 08:57:56
Yes, this is what I've done for now. ;-)


Adoptions missing retailer movement

@lisa40278: 2020-01-16 01:55:21
Is there a report or a way to search for adoptions that are missing a retailer movement? Or, some way to require the retailer field not be blank for an adoption?

@robinrt: 2020-01-16 10:01:57
There's no way to make retailer mandatory. You could run this query at Settings->SQL Interface (or use it as the SQL for a report under Settings->Reports) to identify animals who have an adoption with no linked retailer movement: --- SELECT AnimalName, ShelterCode FROM animal a INNER JOIN adoption m ON m.AnimalID = a.ID WHERE m.MovementType = 1 AND m.OriginalRetailerMovementID = 0 ---


Adding Full Name under Signature in Mobile Sign Pad

@josephpjoseph1: 2020-01-14 17:38:17
We're trying to create a paperless adoption form which includes a signed waiver by the adopter. I've set up the document to be signed on a mobile device. How do I add the full name of the adopter under his or her signature? Is there a way to type in text under the signature?

@robinrt: 2020-01-15 10:12:31
Sure, add a line break and put the <<OwnerName>> token under the signature token

@josephpjoseph1: 2020-01-15 16:12:37
Thank you. However, is there a way to add text on that line via the app? We have adoption counselors (volunteers) that fill out the paperwork who don't have access to the Shelter computer to add the name of the adopter. It would be great if after they sign they can add their names and the date on that line. If that's not possible, can the signed form be populated with OwnerName later after it is entered into the computer?

@robinrt: 2020-01-15 16:51:56
Sorry, it can't - signing a document effectively locks it to prevent any changes. What I'm not understanding is how is it that you can be at the point in the adoption process where you're generating paperwork and requesting signatures if you don't know who the owner is going to be?

@josephpjoseph1: 2020-01-15 17:00:07
I apologize! We do know - I disintegrated think through that we could have the liability waiver completed with the owner’s name and sent to the volunteers’s signing pad ahead of time.

@josephpjoseph1: 2020-01-15 17:00:30
I didn’t think through. Stupid autocorrect!

@josephpjoseph1: 2020-01-16 14:02:17
Sorry for being very dense here. When I go to edit the html code I don't see a way of putting <br> <<OwnerName>> under the signature token as I don't see where the code for signature token is in the document template. I currently have it so that <<OwnerCode>> is above the signature, but would like it below. Thanks

@robinrt: 2020-01-16 14:11:07
You should have an image with the source "signature:placeholder" to indicate where you want the signature to appear in your document. If you don't have one, the system will tack the signature onto the end of the document. https://sheltermanager.com/repo/asm3_help/documents.html#electronic-signatures

@josephpjoseph1: 2020-01-16 15:19:36
Awesome - works perfectly now! Thank you very much. Joe


Add PaymentPersonAddress to Wordkeys

@julian-poidevin: 2020-01-14 09:45:58
Hello, In order to edit receipts for the french administration, I'd like to access the address of the person who made a paiement. Would it be feasible to add a <<PaymentPersonAddress>> wordkey ? Thanks a lot !

@robinrt: 2020-01-14 14:27:32
I've added it to the trunk now if you want to pick up the code from there.

@julian-poidevin: 2020-01-14 14:30:43
Woaw, how fast ! I'm impressed ! Thanks a lot. Will try now and get back to you.

@julian-poidevin: 2020-01-14 14:46:23
Just tried it. It works for ZipCode and City but does not seem to be working for the address. Here's the person address : [OwnerAddress](//muut.com/u/sheltermanager/s1/:sheltermanager:Crnf:owneraddress.png.jpg) Here's the Payement entry : [PaiementInfo](//muut.com/u/sheltermanager/s1/:sheltermanager:lpUO:paiementinfo.png.jpg) Here's the document template : [Template](//muut.com/u/sheltermanager/s1/:sheltermanager:4g4U:template.png.jpg) Here's the result : [Result](//muut.com/u/sheltermanager/s1/:sheltermanager:kVCm:result.png.jpg) What could it be ? Thanks.

@robinrt: 2020-01-14 14:59:57
That seems odd. Have you got formatting characters in that token maybe? Have a look at Tools->Source in your template, then have a look at the PaymentPersonAddress token and make sure that it's unbroken.

@julian-poidevin: 2020-01-14 16:18:55
All right, there was junk indeed. After cleaning all this up it works fine ! Thanks a lot !


How to setup open source desktop version

@kylej144: 2020-01-13 18:08:57
Hey, I have downloaded Shelter Manager, but i cannot seem to edit the interface ect to my desired look and feel, for example the login slideshow i would just like dogs to appear and not cans, so how would i delete the cat pictures. or have i set it up wrong. Any help would be appreciated and thanks in advance

@robinrt: 2020-01-14 14:28:18
I guess you mean the animal quicklinks on the home page? There isn't a way to configure those to only show one species I'm afraid, they're usually tied to categories like adoptable animals, recently changed animals, etc.


Migrating to hosted ASM?

@redvenomweb: 2020-01-12 20:13:21
We'd like to migrate an existing ASM2 DB (from a Linux MySQL server) to the hosted ASM service. What do we need to provide to have our data migrated to the hosted service, and how should we go about sending the necessary files?

@robinrt: 2020-01-13 09:34:53
Hi, once you've signed up for an account (so we have somewhere to import it to), we'll need a mysqldump of your database. Email it if it's small enough, otherwise use Dropbox or Google Drive or something to share it with us at help@sheltermanager.com


ongoing medical treatment report

@jimdunne: 2020-01-10 11:51:35
Is there a report that will show ongoing medical treatments, or animals that have completed treatment regimes? These would be very handy reports for us. Thanks.

@robinrt: 2020-01-13 09:33:35
The medical diary and treatments due between two dates will show ongoing treatments. I don't think we have one for completed treatments outside of the print animal record and medical history reports, which run for a single animal.


recent glitches

@josephpjoseph1: 2020-01-09 01:34:30

@josephpjoseph1: 2020-01-09 01:36:04
SM has been glitchy this week. A dog that was adopted over a week ago suddenly popped back up under "Not for Adoption". Also, some of the info fields keep coming and going. For instance, we entered some treatments under Medical and when we went back in to print the records, that entry had disappeared. Earlier this morning, SM wasn't allowing us to change a pet's Location (the box wasn't even appearing). Have there been others who noticed the same issues or is it something with us? Joe

@robinrt: 2020-01-09 09:52:48
Hi, not had any other reports. Are any of these changes explainable by the audit log? Every change made by a user is recorded under the Audit slider of the animal record. Location box doesn't appear if the animal has an active movement and is not on shelter.


QR Code Size

@sjras: 2020-01-07 21:13:27
Robin is there a way to resize the QR code that <<DocumentQRLink>> provides? We're hoping to get it onto our cage cards and it's size is bumping us to another page. Just wondering if there's a way to contain it.

@robinrt: 2020-01-08 11:09:03
I've added support for DocumentQRLink50/100/150/200 to the main trunk and sheltermanager.com now. The default previously was 150 so try DocumentQRLink100

@sjras: 2020-01-08 15:22:43
Thanks so much!!


Map

@jimdunne: 2020-01-06 12:41:58
Is there any way to enlarge the map screen display as I have a lot of white space below the image, which would give me a better picture if it were able to be used. [Screenshot_2020-01-06 map](//muut.com/u/sheltermanager/s3/:sheltermanager:NdfT:screenshot_20200106map.png.jpg)

@jimdunne: 2020-01-06 12:43:41
There is actually more white space than shown in the screen grab, as it only took the visible part of the page. Screen resolution is 1920 x 1080 16:9

@robinrt: 2020-01-06 12:47:50
There isn't a way for a user to do it, I'll raise it as a development issue.


Health Reports

@rsting69: 2020-01-03 21:16:42
Does anyone have a way that they document an animal with a medical problem and generate a daily report. We are trying to track all animal health issues that our staff find throughout the day and generate a daily report to print off and provide our Vet so just those animals that have medical/health related issues can be examined in the morning. I wasn't sure if anyone has used a process for keeping track of medical and health issues.

@robinrt: 2020-01-03 21:37:19
Try "Shelter Inventory with Health Problems". It identifies all animals on shelter where there is sometihng present in the health problems box. Install it under Settings->Reports->Browse sheltermanager.com

@robinrt: 2020-01-04 10:10:01
Edit: It only shows health problems. Add the following to the WHERE clause to only show animals with health problems: --- AND HealthProblems <> '' ---


Republish microchip information

@mdeprima1964: 2020-01-02 08:43:33
We had a bad email address for an adopter. How can we trigger republishing the corrected information to PetLink?

@robinrt: 2020-01-02 09:48:54
Go to the "Publishing History" section for the animal and click the "Forget" button next to the line "Registered microchip with PetLink". That will cause the system to register again next time you publish to petlink or when the overnight batch runs.


Neutering due date

@julian-poidevin: 2019-12-25 21:27:52
As the same for vaccinations and tests, is there a way to specify the neutering due date. Basically we would like to be able to send a reminder to the adoptive family to neuter the cat at this date (when it's being adopted before its 6 months). Thanks !

@julian-poidevin: 2019-12-25 22:19:32
Also, I just realized ASM3 is considering the animal neutered based on the tick box and does not check if the neutering date is in the future. I think the animal should be considered unaltered if the altering date is in the future.

@robinrt: 2019-12-26 12:42:56
The tickbox doesn't require the date, and is the primary consideration when deciding if an animal is neutered. If a date is supplied, the system uses that to assume it was done in the care of the shelter for many reports. Scheduling any surgery should be done as a single medical treatment under the medical tab. We're planning to make that a bit friendlier and more obvious in future.


Credit Card Reader

@williamcook: 2019-12-23 19:14:27
Hi there! We're wanting to add credit card readers to our machines. I can't find anything in the docs to say which types are supported. Can I get a generic reader off Amazon, does it need on device encryption, etc? Any help would be greatly appreciated. Cheers and happy holidays :)

@robinrt: 2019-12-24 09:17:40
Sorry, credit card readers are not something our software directly supports as we don't handle credit card payments. We are looking at integrating merchants (starting with PayPal and Stripe) in the very near future, so there may be support for card readers further down the road.

@williamcook: 2019-12-27 00:55:50
Oh good, thank you for the heads up!


Movement Issue

@bkrodle: 2019-12-17 15:26:05
We are trying to post a reclaim on an animal that was picked up. It was reclaimed the same day it was picked up, but when we try to enter the reclaim we get a message stating that Movement date cannot be before brought in date. We are getting the same message trying to transfer owner release animals to rescue on the same day they were brought in.


"For" field in "New Appointment" window (Clinic Tab) doesn't allow vet selection

@julian-poidevin: 2019-12-16 23:48:12
When creating a new appointment in the Clinic Tab, the "For" field doesn't allow selection for vet. The selectable people are only ASM User Accounts (the login appears instead of the real username but I guess it's linked to the previous reported bug) : [Add Appointment - For - Bug](//muut.com/u/sheltermanager/s1/:sheltermanager:T7pB:addappointmentforbug.jpeg.jpg) Thanks,

@robinrt: 2019-12-17 09:26:35
It's deliberate - the vets need a user account so that they can see and administer their consultation room. Assigning appointments to that vet's user account means they can filter to only see their appointments on the calendar.

@julian-poidevin: 2019-12-17 09:46:32
Ok I get it. Our shelter only uses "off-shelter" vets. We use the Clinic menu to plan vets visit and organise transports, we also use the Clinic Tab to edit voucher. I'll create fake vets accounts then. Do you think it would be valuable to change the way this "New Appointment" For field works based on an option ? I think we may not be the only shelter to have external vets. Also maybe we are using the Clinic tab the wrong way ? Thanks.

@robinrt: 2019-12-17 09:55:51
The clinic tab was intended for shelters that have vets coming in and administering treatments for shelter animals and those owned by members of the public. It's a common scenario in UK RSPCA shelters. It wasn't really aimed at managing appointments to external vets for shelter animals, but you can mostly use it that way too.


Remote web server

@jimdunne: 2019-12-16 20:30:41
Does anybody have a 'how to' or tips on how to set up ASM on a remote web server using a Linux server and cPanel? I have it set up on my Ubuntu box at home, but would like to put it onto our website so we can access it remotely.

@julian-poidevin: 2019-12-16 23:51:40
You should subscribe to a "VPS" (Virtual Private Server). I bought mine here : https://www.ovh.com/world/vps/ (I chose the VPS SSD option). Then you'll have access to a linux machine but only through SSH (it is a way to access the machine's terminal remotely). You'll then have to perform all the steps you did on your Ubuntu VM but only using the terminal.


Help w sql to change Adoptions by Date w Location and Age report

@jgochsner: 2019-12-10 17:34:46
We would like to view the locations in this report to be the last actual location the cat was on the adoption date. We have several retailers and fosterers, for example, so when we adopt a cat out through one of them, we record that movement end ,which sets the location field this report uses back to ‘on shelter.’, so all of our adoptions are grouped to that. Basically, I want to clone this report and set the location (for details and totals) on the new report to be the last movement location before adoption (e.g. the specific retailer or fosterer) IF that movement end date is the same as the adoption date or 1 day prior. We also don’t care about the original owner info, but I know how to remove the sql & html for that. Any help would be greatly appreciated!


<> wordkey showing username instead of realname

@julian-poidevin: 2019-12-10 14:21:50
Hello, I have the following template : [DocumentTemplateVoucher](//muut.com/u/sheltermanager/s1/:sheltermanager:Th6U:documenttemplatevoucher.png.jpg), I'm generating this voucher via the clinic tab ; [ASM3-ClinicTab](//muut.com/u/sheltermanager/s1/:sheltermanager:OgIT:asm3clinictab.png.jpg) and the following result is [DocumentOutput](//muut.com/u/sheltermanager/s2/:sheltermanager:YS3W:documentoutput.png.jpg). Isn't AppointmentFor wordkey supposed to show real name instead of the username ? Thanks !

@robinrt: 2019-12-16 10:14:00
Yes, it should, or we should at least have an extra key for that. I'll raise a dev issue for that, thank you.

@julian-poidevin: 2019-12-17 15:56:46
Just submitted a Pull-request to fix this. Cheers !


Using new Log Types

@mdeprima1964: 2019-12-10 02:17:13
When generating an email from the media tab, the log type it defaults to is weight (I think). I created a new Log type of email. How do I change the default log type when generating an email to use the new one?

@candidhominid: 2019-12-12 03:05:27
As far as I can tell, SM just uses the "Default Log Type" that is set in the system options. I wish there were a separate option.


Retailer in shelter view

@srupe05: 2019-12-09 20:33:58
Animals placed with a retailer are not showing in under the retailer selection in shelter view. The retailer function is active, retailer flag is set, and animals have an active retailer movement.

@candidhominid: 2019-12-12 02:57:46
Maybe the "Treat animals at retailers as part of the shelter inventory" system option is not selected?

@srupe05: 2019-12-12 21:10:47
Thanks for the suggestion. That option was not active but turning it on did not change my retailer shelter view (view is empty even though I have current animals at retailers)

@adoptamutt: 2019-12-14 15:17:09
Which "Shelter View" sorting are you using?

@srupe05: 2019-12-14 20:06:08
The retailer view from the drop down on the right

@candidhominid: 2019-12-14 22:09:07
What shows up when you go to the retailer book?

@adoptamutt: 2019-12-14 22:37:04
I wonder if Settings > Trigger Batch Processes > Recalculate on-shelter animal locations would help that. The manual says that you should run that when you change foster animals as part of shelter inventory.

@robinrt: 2019-12-16 10:12:37
Use Recalculate ALL animal locations from the batch processes screen. With the treat retailer animals as part of inventory option off, those animals are not counted as on shelter and would not be picked up by recalculate on-shelter animal locations. Recalculating all will put them back on shelter and into the retailer view.


search rabies tag

@svkinsey: 2019-12-08 02:45:45
Our spay/neuter clinic began using ASM in November. Occasionally we get a call where someone has found a dog wearing our rabies tag. How can I search for the tag # in ASM to find out which dog it belongs to?

@robinrt: 2019-12-08 09:45:32
Just pop it in the search box at the top, or use the "Simple Find Animal" screen.


Volunteer Info not populating

@fs_s2r: 2019-12-06 19:23:22
Hi. I noticed that our forms that people use to sign up electronically to volunteer is not populating the address field when we create their profile. This is not an issue for our adoption applications. We built both the same way. Suggestions?

@robinrt: 2019-12-06 19:36:03
My guess would be that you don't have a field named "address" in your volunteer application form - that or submitters are not filling it in.

@fs_s2r: 2019-12-06 20:35:57
thank you. I'll look and see what is different.


Overdue paiement alert showing but Paiement Book emptu

@julian-poidevin: 2019-12-06 11:52:23
Hello, I have an "overdue paiement" altert showing [Overdue Alert](//muut.com/u/sheltermanager/s1/:sheltermanager:9P0i:overdue.png.jpg) but when I click on the link to open the Paiement Book, the list is empty : [PayementBook-Overdue-Empty](//muut.com/u/sheltermanager/s1/:sheltermanager:6A40:payementbookoverdueempty.png.jpg). How is this possible ? Thanks.

@robinrt: 2019-12-06 12:15:45
It shouldn't be, they use the same query to look up the data. My guess is that one of the inner joins is unfilfilled and the payment record is not linked to a person, donation type or frequency. To see the overdue record, run the query below at Settings->SQL Interface --- SELECT * FROM ownerdonation WHERE Date Is Null AND DateDue <= CURRENT_DATE ---

@julian-poidevin: 2019-12-06 12:53:12
I directly deleted the bad records in the database. Thanks a lot again for the outstanding support !


Old splash remains if uploading a new one

@julian-poidevin: 2019-12-04 12:27:13
Hello there, I did import a splash but it's repeated twice, see here [SplashDouble](//muut.com/u/sheltermanager/s1/:sheltermanager:OpEq:splashdouble.png.jpg). I'd like to upload a correct splash with the good dimensions 400x200. So I deleted the old one [DeleteSplash](//muut.com/u/sheltermanager/s1/:sheltermanager:Q8QP:deletesplash.png.jpg) and uploaded a new one with the same name. Unfortunately, when uploading a new splash, the previous uploaded one remains. Is this a bug ? Where is located this file ? Maybe I could directly delete the previous uploaded one in the file system. Thanks!

@robinrt: 2019-12-04 12:34:52
It's more likely to be your browser caching the old one. Press CTRL+R to force it to reload.

@julian-poidevin: 2019-12-04 13:51:28
You're right issue is fixed after running Ccleaner, thanks a lot!


Can't setup email - asm3 not launching

@julian-poidevin: 2019-11-30 12:32:10
Hello, just configured ASM3 on a VPS hosted at OVH here : http://51.91.253.14:5000/ I'm currently trying to configure the email in asm3.conf file but without sucess so far. Instructions on how to to configure OVH email are here : https://getmailspring.com/setup/access-ovh-net-via-imap-smtp So far, my asm3.conf looks like : smtp_server = { "sendmail": true, "host": "ssl0.ovh.net", "port": 465, "username": "admin@mceasso.fr", "password": "mypasswordhere", "usetls": false } # smtp_server = { "sendmail": false, "host": "mail.yourdomain.com", "port": 25, "username": "", "password": "", "usetls": false } # smtp_server = { "sendmail": true } When using this configuration and restarting asm3 service then asm does not launch anymore. Can you please provide guidance ? Thanks a lot !

@robinrt: 2019-12-01 09:27:47
Do you have errors in /var/log/syslog or /var/log/messages? Those options look ok, although "sendmail" should be false if you're going to supply SMTP server info as the two are mutually exclusive.

@julian-poidevin: 2019-12-01 11:48:35
I have something in /var/log/syslog, nothing in /var/log/messages. I cleaned up /var/log/syslog/ and restarted the service, here's the file content : ``` Dec 1 12:45:50 vps759328 systemd[1]: Started Animal Shelter Manager. Dec 1 12:45:50 vps759328 python[26280]: config: /etc/asm3.conf Dec 1 12:45:50 vps759328 python[26280]: Traceback (most recent call last): Dec 1 12:45:50 vps759328 python[26280]: File "code.py", line 15, in <module> Dec 1 12:45:50 vps759328 python[26280]: import asm3.al Dec 1 12:45:50 vps759328 python[26280]: File "/usr/lib/sheltermanager3/asm3/al.py", line 2, in <module> Dec 1 12:45:50 vps759328 python[26280]: from asm3.sitedefs import LOG_LOCATION, LOG_DEBUG Dec 1 12:45:50 vps759328 python[26280]: File "/usr/lib/sheltermanager3/asm3/sitedefs.py", line 312, in <module> Dec 1 12:45:50 vps759328 python[26280]: SMTP_SERVER = get_dict("smtp_server", { "sendmail": True }) Dec 1 12:45:50 vps759328 python[26280]: File "/usr/lib/sheltermanager3/asm3/sitedefs.py", line 66, in get_dict Dec 1 12:45:50 vps759328 python[26280]: return json.loads(v) Dec 1 12:45:50 vps759328 python[26280]: File "/usr/lib/python2.7/json/__init__.py", line 339, in loads Dec 1 12:45:50 vps759328 python[26280]: return _default_decoder.decode(s) Dec 1 12:45:50 vps759328 python[26280]: File "/usr/lib/python2.7/json/decoder.py", line 364, in decode Dec 1 12:45:50 vps759328 python[26280]: obj, end = self.raw_decode(s, idx=_w(s, 0).end()) Dec 1 12:45:50 vps759328 python[26280]: File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode Dec 1 12:45:50 vps759328 python[26280]: obj, end = self.scan_once(s, idx) Dec 1 12:45:50 vps759328 python[26280]: ValueError: Unterminated string starting at: line 1 column 103 (char 102) Dec 1 12:45:50 vps759328 systemd[1]: sheltermanager3.service: Main process exited, code=exited, status=1/FAILURE Dec 1 12:45:50 vps759328 systemd[1]: sheltermanager3.service: Failed with result 'exit-code'. Dec 1 12:45:50 vps759328 systemd[1]: sheltermanager3.service: Service hold-off time over, scheduling restart. Dec 1 12:45:50 vps759328 systemd[1]: sheltermanager3.service: Scheduled restart job, restart counter is at 1. Dec 1 12:45:50 vps759328 systemd[1]: Stopped Animal Shelter Manager. Dec 1 12:45:50 vps759328 systemd[1]: Started Animal Shelter Manager. Dec 1 12:45:50 vps759328 python[26300]: config: /etc/asm3.conf Dec 1 12:45:50 vps759328 python[26300]: Traceback (most recent call last): Dec 1 12:45:50 vps759328 python[26300]: File "code.py", line 15, in <module> Dec 1 12:45:50 vps759328 python[26300]: import asm3.al Dec 1 12:45:50 vps759328 python[26300]: File "/usr/lib/sheltermanager3/asm3/al.py", line 2, in <module> Dec 1 12:45:50 vps759328 python[26300]: from asm3.sitedefs import LOG_LOCATION, LOG_DEBUG Dec 1 12:45:50 vps759328 python[26300]: File "/usr/lib/sheltermanager3/asm3/sitedefs.py", line 312, in <module> Dec 1 12:45:50 vps759328 python[26300]: SMTP_SERVER = get_dict("smtp_server", { "sendmail": True }) Dec 1 12:45:50 vps759328 python[26300]: File "/usr/lib/sheltermanager3/asm3/sitedefs.py", line 66, in get_dict Dec 1 12:45:50 vps759328 python[26300]: return json.loads(v) Dec 1 12:45:50 vps759328 python[26300]: File "/usr/lib/python2.7/json/__init__.py", line 339, in loads Dec 1 12:45:50 vps759328 python[26300]: return _default_decoder.decode(s) Dec 1 12:45:50 vps759328 python[26300]: File "/usr/lib/python2.7/json/decoder.py", line 364, in decode Dec 1 12:45:50 vps759328 python[26300]: obj, end = self.raw_decode(s, idx=_w(s, 0).end()) Dec 1 12:45:50 vps759328 python[26300]: File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode Dec 1 12:45:50 vps759328 python[26300]: obj, end = self.scan_once(s, idx) Dec 1 12:45:50 vps759328 python[26300]: ValueError: Unterminated string starting at: line 1 column 103 (char 102) Dec 1 12:45:50 vps759328 systemd[1]: sheltermanager3.service: Main process exited, code=exited, status=1/FAILURE Dec 1 12:45:50 vps759328 systemd[1]: sheltermanager3.service: Failed with result 'exit-code'. Dec 1 12:45:51 vps759328 systemd[1]: sheltermanager3.service: Service hold-off time over, scheduling restart. Dec 1 12:45:51 vps759328 systemd[1]: sheltermanager3.service: Scheduled restart job, restart counter is at 2. Dec 1 12:45:51 vps759328 systemd[1]: Stopped Animal Shelter Manager. Dec 1 12:45:51 vps759328 systemd[1]: Started Animal Shelter Manager. Dec 1 12:45:51 vps759328 python[26320]: config: /etc/asm3.conf Dec 1 12:45:51 vps759328 python[26320]: Traceback (most recent call last): Dec 1 12:45:51 vps759328 python[26320]: File "code.py", line 15, in <module> Dec 1 12:45:51 vps759328 python[26320]: import asm3.al Dec 1 12:45:51 vps759328 python[26320]: File "/usr/lib/sheltermanager3/asm3/al.py", line 2, in <module> Dec 1 12:45:51 vps759328 python[26320]: from asm3.sitedefs import LOG_LOCATION, LOG_DEBUG Dec 1 12:45:51 vps759328 python[26320]: File "/usr/lib/sheltermanager3/asm3/sitedefs.py", line 312, in <module> Dec 1 12:45:51 vps759328 python[26320]: SMTP_SERVER = get_dict("smtp_server", { "sendmail": True }) Dec 1 12:45:51 vps759328 python[26320]: File "/usr/lib/sheltermanager3/asm3/sitedefs.py", line 66, in get_dict Dec 1 12:45:51 vps759328 python[26320]: return json.loads(v) Dec 1 12:45:51 vps759328 python[26320]: File "/usr/lib/python2.7/json/__init__.py", line 339, in loads Dec 1 12:45:51 vps759328 python[26320]: return _default_decoder.decode(s) Dec 1 12:45:51 vps759328 python[26320]: File "/usr/lib/python2.7/json/decoder.py", line 364, in decode Dec 1 12:45:51 vps759328 python[26320]: obj, end = self.raw_decode(s, idx=_w(s, 0).end()) Dec 1 12:45:51 vps759328 python[26320]: File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode Dec 1 12:45:51 vps759328 python[26320]: obj, end = self.scan_once(s, idx) Dec 1 12:45:51 vps759328 python[26320]: ValueError: Unterminated string starting at: line 1 column 103 (char 102) Dec 1 12:45:51 vps759328 systemd[1]: sheltermanager3.service: Main process exited, code=exited, status=1/FAILURE Dec 1 12:45:51 vps759328 systemd[1]: sheltermanager3.service: Failed with result 'exit-code'. Dec 1 12:45:51 vps759328 systemd[1]: sheltermanager3.service: Service hold-off time over, scheduling restart. Dec 1 12:45:51 vps759328 systemd[1]: sheltermanager3.service: Scheduled restart job, restart counter is at 3. Dec 1 12:45:51 vps759328 systemd[1]: Stopped Animal Shelter Manager. Dec 1 12:45:51 vps759328 systemd[1]: Started Animal Shelter Manager. Dec 1 12:45:51 vps759328 python[26342]: config: /etc/asm3.conf Dec 1 12:45:51 vps759328 python[26342]: Traceback (most recent call last): Dec 1 12:45:51 vps759328 python[26342]: File "code.py", line 15, in <module> Dec 1 12:45:51 vps759328 python[26342]: import asm3.al Dec 1 12:45:51 vps759328 python[26342]: File "/usr/lib/sheltermanager3/asm3/al.py", line 2, in <module> Dec 1 12:45:51 vps759328 python[26342]: from asm3.sitedefs import LOG_LOCATION, LOG_DEBUG Dec 1 12:45:51 vps759328 python[26342]: File "/usr/lib/sheltermanager3/asm3/sitedefs.py", line 312, in <module> Dec 1 12:45:51 vps759328 python[26342]: SMTP_SERVER = get_dict("smtp_server", { "sendmail": True }) Dec 1 12:45:51 vps759328 python[26342]: File "/usr/lib/sheltermanager3/asm3/sitedefs.py", line 66, in get_dict Dec 1 12:45:51 vps759328 python[26342]: return json.loads(v) Dec 1 12:45:51 vps759328 python[26342]: File "/usr/lib/python2.7/json/__init__.py", line 339, in loads Dec 1 12:45:51 vps759328 python[26342]: return _default_decoder.decode(s) Dec 1 12:45:51 vps759328 python[26342]: File "/usr/lib/python2.7/json/decoder.py", line 364, in decode Dec 1 12:45:51 vps759328 python[26342]: obj, end = self.raw_decode(s, idx=_w(s, 0).end()) Dec 1 12:45:51 vps759328 python[26342]: File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode Dec 1 12:45:51 vps759328 python[26342]: obj, end = self.scan_once(s, idx) Dec 1 12:45:51 vps759328 python[26342]: ValueError: Unterminated string starting at: line 1 column 103 (char 102) Dec 1 12:45:51 vps759328 systemd[1]: sheltermanager3.service: Main process exited, code=exited, status=1/FAILURE Dec 1 12:45:51 vps759328 systemd[1]: sheltermanager3.service: Failed with result 'exit-code'. Dec 1 12:45:52 vps759328 systemd[1]: sheltermanager3.service: Service hold-off time over, scheduling restart. Dec 1 12:45:52 vps759328 systemd[1]: sheltermanager3.service: Scheduled restart job, restart counter is at 4. Dec 1 12:45:52 vps759328 systemd[1]: Stopped Animal Shelter Manager. Dec 1 12:45:52 vps759328 systemd[1]: Started Animal Shelter Manager. Dec 1 12:45:52 vps759328 python[26363]: config: /etc/asm3.conf Dec 1 12:45:52 vps759328 python[26363]: Traceback (most recent call last): Dec 1 12:45:52 vps759328 python[26363]: File "code.py", line 15, in <module> Dec 1 12:45:52 vps759328 python[26363]: import asm3.al Dec 1 12:45:52 vps759328 python[26363]: File "/usr/lib/sheltermanager3/asm3/al.py", line 2, in <module> Dec 1 12:45:52 vps759328 python[26363]: from asm3.sitedefs import LOG_LOCATION, LOG_DEBUG Dec 1 12:45:52 vps759328 python[26363]: File "/usr/lib/sheltermanager3/asm3/sitedefs.py", line 312, in <module> Dec 1 12:45:52 vps759328 python[26363]: SMTP_SERVER = get_dict("smtp_server", { "sendmail": True }) Dec 1 12:45:52 vps759328 python[26363]: File "/usr/lib/sheltermanager3/asm3/sitedefs.py", line 66, in get_dict Dec 1 12:45:52 vps759328 python[26363]: return json.loads(v) Dec 1 12:45:52 vps759328 python[26363]: File "/usr/lib/python2.7/json/__init__.py", line 339, in loads Dec 1 12:45:52 vps759328 python[26363]: return _default_decoder.decode(s) Dec 1 12:45:52 vps759328 python[26363]: File "/usr/lib/python2.7/json/decoder.py", line 364, in decode Dec 1 12:45:52 vps759328 python[26363]: obj, end = self.raw_decode(s, idx=_w(s, 0).end()) Dec 1 12:45:52 vps759328 python[26363]: File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode Dec 1 12:45:52 vps759328 python[26363]: obj, end = self.scan_once(s, idx) Dec 1 12:45:52 vps759328 python[26363]: ValueError: Unterminated string starting at: line 1 column 103 (char 102) Dec 1 12:45:52 vps759328 systemd[1]: sheltermanager3.service: Main process exited, code=exited, status=1/FAILURE Dec 1 12:45:52 vps759328 systemd[1]: sheltermanager3.service: Failed with result 'exit-code'. Dec 1 12:45:52 vps759328 systemd[1]: sheltermanager3.service: Service hold-off time over, scheduling restart. Dec 1 12:45:52 vps759328 systemd[1]: sheltermanager3.service: Scheduled restart job, restart counter is at 5. Dec 1 12:45:52 vps759328 systemd[1]: Stopped Animal Shelter Manager. Dec 1 12:45:52 vps759328 systemd[1]: sheltermanager3.service: Start request repeated too quickly. Dec 1 12:45:52 vps759328 systemd[1]: sheltermanager3.service: Failed with result 'exit-code'. Dec 1 12:45:52 vps759328 systemd[1]: Failed to start Animal Shelter Manager. ```

@julian-poidevin: 2019-12-01 12:02:56
Seems the issue is caused by a special character, see here : https://stackoverflow.com/a/55292358 I think this is due to my password containing the '#' character.

@julian-poidevin: 2019-12-01 12:11:32
Sorry for the multiple posts, I can confirm the issue is fixed by removing any special characters from my password. Opening an issue on github repo to track this.

@julian-poidevin: 2019-12-01 12:59:46
The first issue (crash) is fixed, thought I'm still not able to send an email via ASM3 usin the following configuration : ``` smtp_server = { "sendmail": false, "host": "ssl0.ovh.net", "port": 465, "username": "admin@mceasso.fr", "password": "mypasswordhere", "usetls": false } ``` Here's the `var/log/syslog` content : ``` Dec 1 13:51:13 vps759328 DEBUG asm3_m utils.send_email from: admin@mceasso.fr, reply-to: merignacchatserrants@gmail.com, to: ['poidevin.julian@gmail.com'], subject: testéztztet, body: <!DOCTYPE html>#012<html>#012<body>#012<p>Hey </p><p>--</p><p>Association Mérignac Chats Errants</p></body></html> Dec 1 13:56:14 vps759328 CRITICAL asm3_m utils.send_email smtp: Connection unexpectedly closed Dec 1 13:56:14 vps759328 python[1653]: 89.86.90.62:51983 - - [01/Dec/2019 13:56:14] "HTTP/1.1 POST /person" - 500 Internal Server Error ``` I guess this is not a problem on ASM3 side, unless ASM3 does not transmit the `@` character in the `username` field properly ?

@robinrt: 2019-12-01 13:20:14
I think the issue is that ASM does not support SMTPS, which you would appear to be expecting with port 465. We only support plain SMTP or SMTP with TLS

@julian-poidevin: 2019-12-01 14:28:04
Issue is fixed, I changed port from 465 to 587. Thanks a lot.

@testdrupal: 2020-04-10 11:56:13
I have an issue to connect email with message board. I want to send mail at creating a message from message board and that message send by mail but mail not send This is may mail log---/var/log/mail.log Apr 10 10:42:53 ip-173-24-3-235 sendmail[18146]: 03AAgrRl018146: to=drupal060294@gmail.com, ctladdr=www-data (33/33), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30808, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (03AAgrhh018147 Message accepted for delivery) This is my syslog /var/log/syslog Apr 10 10:42:53 ip-173-24-3-235 DEBUG vetcen utils.send_email from: support@vecentric.com, reply-to: jxmongaras@gmail.com, to: ['drupal060294@gmail.com'], subject: Message from user, body: zzdadadaadadad Apr 10 10:42:53 ip-173-24-3-235 sendmail[18146]: 03AAgrRl018146: from=www-data, size=808, class=0, nrcpts=1, msgid=<158651537337.15289.2691768398658220568@ip-173-24-3-235.ec2.inte rnal>, relay=www-data@localhost Apr 10 10:42:53 ip-173-24-3-235 sm-mta[18147]: 03AAgrhh018147: from=<www-data@ip-173-24-3-235.ec2.internal>, size=950, class=0, nrcpts=1, msgid =<158651537337.15289.2691768398658220568@ip-173-24-3-235.ec2.inte rnal>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1] Apr 10 10:42:53 ip-173-24-3-235 sendmail[18146]: 03AAgrRl018146: to=drupal060294@gmail.com, ctladdr=www-data (33/33), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30808, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (03AAgrhh018147 Message accepted for delivery)

@robinrt: 2020-04-10 11:56:25
the mail server is accepting the message, ASM's job is done - after that I guess there's a problem with the receiving system or the outbound mail server.

@testdrupal: 2020-04-10 11:56:52
what exactly i have to do?

@testdrupal: 2020-04-10 11:57:25
I have to solve it right now so please give me a solution.

@testdrupal: 2020-04-10 11:59:43
i am waiting!

@testdrupal: 2020-04-10 12:11:13
Help me

@robinrt: 2020-04-10 12:15:35
I can't give you a solution - ASM is doing it's job and delivering the message to sendmail (looks like you're using Exim). After that, it's mail server admin stuff. Do you get a bounce message? Is it ending up in your gmail address spam folder of drupal060294@gmail.com ?

@testdrupal: 2020-04-10 12:17:16
ASM3 needs to install any module for send mail?

@testdrupal: 2020-04-10 12:19:05
I didn't get any mail in spam folder

@testdrupal: 2020-04-10 12:31:48
I'm sorry I disturb you but i need your help to solve this issue.

@testdrupal: 2020-04-10 12:32:36
when i refresh log file it's show connection delay=22:50:42, xdelay=00:00:00, mailer=esmtp, pri=7771044, relay=alt4.gmail-smtp-in.l.google.com., dsn=4.0.0, stat=Deferred: Connection timed out with alt4.gmail-smtp-in.l.google.com.

@robinrt: 2020-04-10 12:44:37
There's your answer with the "Connection timed out" message - gmail is dropping the connection from your email server.

@testdrupal: 2020-04-10 12:46:49
what i have to do for connection?

@testdrupal: 2020-04-10 13:19:32
you don't have any idea?

@testdrupal: 2020-04-11 06:17:42
Hello

@robinrt: 2020-04-11 15:05:59
You need to find out why gmail is dropping the connection. I don't know why they are and this is mail admin stuff, not help with asm.


Animals are no more adoptable

@olafh: 2019-11-28 11:25:05
Running the 43 git clone, all animals are shown as not adoptable because the Description Field in Notes seems now to be mandatory. Where can I disable the check of this field ? Please, could you adjust the check of datebroughtin to the same offset (one is offset 20, the other is offset 6) - preferably 30 days or, if possible, as a customizable option ? For German users it may be helpful to have date format in i18n set to dd.mm.yy instead of dd/mm/yy, would that be possible to have as an option ? Where can I send updated translation files ? Thanks in advance.

@robinrt: 2019-11-28 13:12:12
Publishing->Set Publishing Options->Animal Selection->Include animals without a description. It is possible to change the code for the German date format if you wish. The DMY etc constants at the top are strftime formats. You can just use a string literal with the format you want against the locale in place of DMY - eg: "%d.%m.%Y". Is the dot more common in Germany? Does this apply to other regions? What are you referring to with the datebroughtin offset? I think there is a check to make sure datebroughtin is no more than a week in the future (people used to pick far future dates, then contact us for support), where's the 20 come in?

@olafh: 2019-11-28 14:44:10
Robin, thank so much ! Setting the Publishing Option was the missing thing. Great ! Date format: Yes, I did change the format in the i18n file, and that fixed it. Thought, it would be possible to change in some option, to not manually change that file with each update. Found an GitHub entry with countries, that use the dotted format also (Austria, Switzerland and some others) https://gist.github.com/mlconnor/1887156 Datebroughtin: there are 2 checks in the animal.py with that field - one with dbo.today(offset=20), the other with offset=6. It's weird to not know it the day is allowed 6 or 20 days in the future. In our case: we are planning transports to our shelter, so we exactly know when an animal is brought in. Because the schedules are 14 - 30 days in the future, we cannot save an animal when the transport is planned. So, 30 days offset would fit in our case. Of Course, I understand that may cause issues in "regular" usage.

@robinrt: 2019-11-28 14:56:53
Ah, I see. I think they should have both been set to 20 (for update+insert), but only one was changed from 6 to 20. I think for the difference of 10 days, 30 is fine and have updated the trunk with that change. It's just there to stop people accidentally booking animals in for next year and confusing themselves. Thanks for the info on dotted formats, I've raised a development issue about that.

@olafh: 2019-11-28 14:58:34
Great thanks, Robin. Can you tell me how to contribute German translations (missing or wrong) ? HTH

@robinrt: 2019-11-28 15:05:36
Sure! https://sheltermanager.com/site/en_translate.html If you're used to git, you could pull a copy of the source tree and do a pull request, otherwise send the updated de.po file to us at info@sheltermanager.com Thanks!


Issues with memcached

@olafh: 2019-11-27 14:13:11
We are trying to update form 39 to 42. All has worked perfectly fine with the build in Webserver and excluded memcached. For using apache and WSGI, I read it's now mandatory to run memcached. So, enabled it, run the built in server and logging in gives this error: failed setting up session: <class 'memcache.MemcachedStringEncodingError'> File "/asm42/src/users.py", line 682, in web_login#012 dbo.locked = configuration.smdb_locked(dbo) File "/asm42/src/configuration.py", line 1131, in smdb_locked#012 return cboolean(dbo, "SMDBLocked") File "/asm42/src/configuration.py", line 339, in cboolean#012 v = cstring(dbo, key, defstring) File "/asm42/src/configuration.py", line 331, in cstring#012 cmap = get_map(dbo) File "/asm42/src/configuration.py", line 436, in get_map#012 cmap = cachemem.get(CACHE_KEY) File "/asm42/src/cachemem.py", line 13, in get#012 if _memcache_available(): return _memcache_get(key) File "/asm42/src/cachemem.py", line 90, in _memcache_get#012 return memcache_client.get(key) File "/usr/lib/python2.7/site-packages/memcache.py", line 862, in get#012 return self._get('get', key) File "/usr/lib/python2.7/site-packages/memcache.py", line 813, in _get#012 self.check_key(key) File "/usr/lib/python2.7/site-packages/memcache.py", line 1014, in check_key#012 "Keys must be str()'s, not unicode. Convert your unicode " MemcachedStringEncodingError: Keys must be str()'s, not unicode. Convert your unicode strings using mystring.encode(charset)! Environment: CentOS 7, Python 2.7, mod_wsgi 3.4, memcached 1.4.15, libmemcached 1.0.16, python-memcached 1.48 Any help is much appreciated ! Thanks, Olaf

@robinrt: 2019-11-27 14:30:30
CACHEKEY should contain database-config where "database" is the name of your database. Does your database name contain non-ascii characters? That could explain the problem you're seeing. Also, memcached is only mandatory with Apache/WSGI if you are going to use more than 1 daemon (which it does by default) - otherwise you'd end up with a different session pool for each daemon process. If you restrict your WSGI config to only using one daemon, you can turn off the use of memcached if you prefer.

@olafh: 2019-11-27 14:38:53
Thanks Robin for your really fast reply ! I don't use non-ascii characters in the database names, they are called (as test database) simply "asmneu" and "ASMVA". As I'm not deep in WSGI - could you please provide a hint for setting only one daemon ? Thanks in advance.

@robinrt: 2019-11-27 15:33:08
Something like this: --- WSGIDaemonProcess daemonone processes=1 threads=20 WSGIScriptAlias /asm /usr/local/lib/sheltermanager3/code.py/ Alias /asm/static /usr/local/lib/sheltermanager3/static <Directory /usr/local/lib/sheltermanager3> WSGIProcessGroup daemonone Order allow,deny Allow from all Require all granted Satisfy Any </Directory> ---

@olafh: 2019-11-27 16:09:11
Thanks, Robin. This is working. I'm able to login and am seeing the dashboard. But when I click on a picture of an animal or search for a person/animal and click a name on the list, I'm getting "Internal Server Error" in the browser and in the log: Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/web/application.py", line 239, in process return self.handle() File "/usr/lib/python2.7/site-packages/web/application.py", line 230, in handle return self._delegate(fn, self.fvars, args) File "/usr/lib/python2.7/site-packages/web/application.py", line 462, in _delegate return handle_class(cls) File "/usr/lib/python2.7/site-packages/web/application.py", line 438, in handle_class return tocall(*args) File "/asm/src/code.py", line 327, in GET c = self.controller(o) File "/asm/src/code.py", line 1189, in controller "audit": self.checkb(users.VIEW_AUDIT_TRAIL) and audit.get_audit_for_link(dbo, "animal", a["I D"]) or [], AttributeError: 'module' object has no attribute 'get_audit_for_link' Testing with the built in it works, but not with apache/WSGI. Thanks, again.

@robinrt: 2019-11-27 16:14:56
The error doesn't seem relevant to memcache any more. I'd guess it's some kind of path problem - you have a module on your path called audit that is clashing with the one built into asm. The only fix with 42 is to find which package it's coming from and uninstall it. To get a clue, try opening a python interpreter and entering "import audit" followed by "dir(audit)" We've added an asm3 wrapper package for 43, to stop this kind of thing happening.

@olafh: 2019-11-27 16:32:49
Additional info: the previous log was the http error log. In the system log I found: CRITICAL asmneu users.web_login failed updating database: <type 'exceptions.AttributeError'> File "/asm/src/users.py", line 737, in web_login#012 audit.login(dbo, username, remoteip) AttributeError: 'module' object has no attribute 'login' Maybe this helps better. Also tried with a different user, reloaded the database from 39-backup and started over, same result.

@robinrt: 2019-11-27 16:39:04
It's the same issue as before - the audit module is not what ASM it's expecting - notice the line about module object has no attribute 'login'. We can either track down and uninstall the source of the incorrect audit module, or you could deploy the latest source from github instead where that issue is fixed.

@olafh: 2019-11-27 17:29:06
Thanks a lot Robin ! I downloaded the source and installed it. That fixed this issue.


Working offline

@helenivoryward: 2019-11-25 00:56:05
Is it possible to work on shelter manager when offline. One of our locations dosent have internet yet. We would need to be able to update information and then when we get online it can update on other devises in the centre.

@robinrt: 2019-11-25 09:10:04
Sorry, it isn't possible.


Online form

@srupe05: 2019-11-22 19:12:49
I am creating an online form for people to report a lost/found animal. I noticed there is no import field for the date the animal was lost/found. When creating a report from the online form, the Date Lost defaults to the day the report was created. Since the match list looks at the date an animal entered the shelter, this may overlook some animals or require physically changing the date once the lost/found animal record is created. Additionally, the areazipcode import field from the online form is not importing to the lost/found animal record. I appreciate any help!


Tag costs on stock useage

@jimdunne: 2019-11-21 14:46:18
Is it possible to tag a cost to an animal when stock is used, or is this something that could be added? Currently, I add an animals details in the comments field when stock is used, and then have to manually apply those costs outside of ASM. It would be helpful when giving injections, for example, so that the use of syringes & needles can be accounted for against the animal.

@robinrt: 2019-11-24 09:38:49
There isn't a way to link the costs to the stock, but you can certainly apply a cost amount with the vacc or medical item. We didn't link them directly because a stock unit cost is not necessarily what an animal is going to receive in the form of an injection - the stock unit will likely be a bottle of medication of which the animal is receiving a tiny fraction.

@jimdunne: 2019-11-25 21:49:31
The medication is not the problem though, it is the items you give the medication with, needles, syringes etc. and things like bandages and so on. We can add them to stock, but when we mark them as used there is no way to account for the stock usaeage, or to tag it to an animal for proper cost/stock control.

@robinrt: 2019-11-26 18:50:28
I see, that's a great point. I'll raise that for future development.


Hyperlink to OwnerName on a report.

@1gkwc6: 2019-11-18 15:40:22
The question has been asked about inserting a hyperlink to an animal name before, but how do I do the same for an owner? I have a report, where I want to make the *OWNERNAME* a hyperlink. Is this correct) <a href=“owner?id=$ID”>$OWNERNAME</a> And where do I insert it?

@robinrt: 2019-11-18 15:54:51
In the HTML section of your report in place of the existing $OWNERNAME. Make sure that ID is included in the SELECT. You can learn more about SQL here: https://www.w3schools.com/sql


Microchips

@pawsome: 2019-11-15 00:13:23
It seems something is going on now with the system NOT talking to AKC to register the chips when you publish. This just started the past week or so. We can hit publish over and over again and it will not send info to AKC. I spoke with AKC today and they said that your software will no longer talk to their server after Dec. 31st. So what gives now? ITs only Nov.

@robinrt: 2019-11-18 15:54:02
responded via email.


Copy All Data from Sheltermanager.com to ASM3 Local Install

@glherriott: 2019-11-09 19:12:30
Hi All, Apologies if this has been discussed elsewhere, I couldn't find anything through searching the forums. I have seen on the old FAQ's that you could import a database into ASM2 using the Database Tools menu, but ASM doesn't have this. I've exported the SQL dump in ASM2 format from my sheletermanager.com hosted instance and copied to my local ASM3 install, but can't find how to import it into the fresh install? Any help would be appreciated! Many Thanks

@robinrt: 2019-11-10 09:22:18
You can use the "Execute Script" button under Settings->SQL Interface to run a downloaded dump. You can also use your SQL backend directly to the run the script (the mysql command line if you're using MySQL).

@glherriott: 2019-11-10 19:18:06
Thank you. This managed to migrate the db across. Is there a way of moving all the images across too? Basically I'm wanting to play around with the system on a local install to try some new stuff, but I don't want to break the production system that everyone is using that is hosted by you! Is there a way of doing this? Thanks again for your help and time on this.

@robinrt: 2019-11-11 09:15:40
We can produce a database dump containing the images on request. I'm afraid there is a charge due to the bandwidth costs as some people have many gigabytes of images. If you get in touch with us at help@sheltermanager.com and let us know your account number, I can arrange that for you.


How to upload Shelter Manager to my web hosting server

@kylej144: 2019-11-09 01:07:24
Hey, I am new to shelter manager and I am wondering if they is a way to download the full source code and use shelter manager on my own web hosting platform.


email template

@1gkwc6: 2019-11-08 17:09:37
1. Is it possible to save an email template, (similar to a document template), for an email merge? At the moment I am saving my email templates externally in rich text format. 2. Is it possible to add a copy of an email merge to the Person Log file, like we do with individual emails?

@robinrt: 2019-11-18 15:55:36
No and no currently. We're planning to do something about both, with the first being addressed in the current release, due in the next 6 weeks and the second item next release.


Remote server install

@jimdunne: 2019-11-05 11:42:38
Has anyone set up ASM on a remote server? I would like to place ASM on my website, but cannot see how to do it. Server is Linux with cpanel access. Any pointers would be gratefully received.


Custom sub query

@1gkwc6: 2019-11-03 18:56:23
I created a custom sub query with an *Owner additional field* that I have tested on the *SQL Interface*. But I can't seem to get it to work when I add it to a *Membership Mail Merge.* This is my code: $VAR flag PERSONFLAG$ SELECT DISTINCT o.OwnerName,o.OwnerAddress, o.OwnerTown, o.OwnerCounty, o.OwnerPostcode, o.HomeTelephone, o.WorkTelephone, o.EmailAddress, o.OwnerTitle, o.OwnerForenames, o.OwnerSurname, o.MembershipExpiryDate FROM owner o WHERE o.ExcludeFromBulkEmail = 0 AND o.IsDeceased = 0 AND (o.AdditionalFlags LIKE '$@flag$|%' OR o.AdditionalFlags LIKE '%|$@flag$|%') ORDER BY o.OwnerSurname SELECT ownerName, (SELECT af.Value FROM additional af INNER JOIN additionalfield aff ON aff.ID = af.AdditionalFieldID WHERE af.LinkID = owner.ID AND aff.FieldName = 'fayrestallnumber') AS YourField FROM owner

@robinrt: 2019-11-04 09:27:47
You've just copied the whole example query onto the end? You should be putting the subquery inside the select list of the main query above. Also, you didn't alias your field. The complete query should be like this: $VAR flag PERSONFLAG$ SELECT DISTINCT o.OwnerName,o.OwnerAddress, o.OwnerTown, o.OwnerCounty, o.OwnerPostcode, o.HomeTelephone, o.WorkTelephone, o.EmailAddress, o.OwnerTitle, o.OwnerForenames, o.OwnerSurname, o.MembershipExpiryDate, (SELECT af.Value FROM additional af INNER JOIN additionalfield aff ON aff.ID = af.AdditionalFieldID WHERE af.LinkID = owner.ID AND aff.FieldName = ‘fayrestallnumber’) AS fayrestallnumber FROM owner o WHERE o.ExcludeFromBulkEmail = 0 AND o.IsDeceased = 0 AND (o.AdditionalFlags LIKE ‘$@flag$|%’ OR o.AdditionalFlags LIKE ‘%|$@flag$|%’) ORDER BY o.OwnerSurname

@1gkwc6: 2019-11-04 19:44:35
I am completely out of my depth with this. I get this error: *syntax error at end of input LINE 11: AND aff.FieldName = ‘ ^* And here is my code, SELECT DISTINCT o.OwnerName,o.OwnerAddress, o.OwnerTown, o.OwnerCounty, o.OwnerPostcode, o.HomeTelephone, o.WorkTelephone, o.EmailAddress, o.OwnerTitle, o.OwnerForenames, o.OwnerSurname, o.MembershipExpiryDate, (SELECT af.Value FROM additional af INNER JOIN additionalfield aff ON aff.ID = af.AdditionalFieldID WHERE af.LinkID = owner.ID *AND aff.FieldName = ‘fayrestallnumber’) AS fayrestallnumber* FROM owner o WHERE o.ExcludeFromBulkEmail = 0 AND o.IsDeceased = 0 AND (o.AdditionalFlags LIKE ‘$@Stall Holder$|%’ OR o.AdditionalFlags LIKE ‘%|$@Stall Holder$|%’) ORDER BY o.OwnerSurname

@robinrt: 2019-11-04 23:12:20
Copying and pasting has added smartquotes. The delimiters around fayrestallnumber should be apostrophes / single quotes. Retype them with the single quote key on your keyboard.

@1gkwc6: 2019-11-05 12:13:46
Thank you, I now have the following error message: *invalid reference to FROM-clause entry for table "owner" LINE 9: ON aff.ID = af.AdditionalFieldID WHERE af.LinkID = owner.ID ^ HINT: Perhaps you meant to reference the table alias "o".* SELECT DISTINCT o.OwnerName,o.OwnerAddress, o.OwnerTown, o.OwnerCounty, o.OwnerPostcode, o.HomeTelephone, o.WorkTelephone, o.EmailAddress, o.OwnerTitle, o.OwnerForenames, o.OwnerSurname, o.MembershipExpiryDate, (SELECT af.Value FROM additional af INNER JOIN additionalfield aff *ON aff.ID = af.AdditionalFieldID WHERE af.LinkID = owner.ID* AND aff.FieldName = 'fayrestallnumber') AS fayrestallnumber FROM owner o WHERE o.ExcludeFromBulkEmail = 0 AND o.IsDeceased = 0 AND (o.AdditionalFlags LIKE '$@Stall Holder$|%' OR o.AdditionalFlags LIKE '%|$@Stall Holder$|%') ORDER BY o.OwnerSurname

@1gkwc6: 2019-11-05 12:14:41
Thank you Rob, I now get this error message: *invalid reference to FROM-clause entry for table "owner" LINE 9: ON aff.ID = af.AdditionalFieldID WHERE af.LinkID = owner.ID ^ HINT: Perhaps you meant to reference the table alias "o".* SELECT DISTINCT o.OwnerName,o.OwnerAddress, o.OwnerTown, o.OwnerCounty, o.OwnerPostcode, o.HomeTelephone, o.WorkTelephone, o.EmailAddress, o.OwnerTitle, o.OwnerForenames, o.OwnerSurname, o.MembershipExpiryDate, (SELECT af.Value FROM additional af INNER JOIN additionalfield aff *ON aff.ID = af.AdditionalFieldID WHERE af.LinkID = owner.ID* AND aff.FieldName = 'fayrestallnumber') AS fayrestallnumber FROM owner o WHERE o.ExcludeFromBulkEmail = 0 AND o.IsDeceased = 0 AND (o.AdditionalFlags LIKE '$@Stall Holder$|%' OR o.AdditionalFlags LIKE '%|$@Stall Holder$|%') ORDER BY o.OwnerSurname

@robinrt: 2019-11-05 16:00:35
Yes. It's exactly what the error says - change af.LinkID = owner.ID to af.LinkID = o.ID

@1gkwc6: 2019-11-05 19:48:19
I finally got the script to return no error messages, but it does not give the results I am after. If I run it in the SQL interface, it produces no results. When I run it as a mail merge it returns the same number of people regardless of the flag I choose in *$VAR flag PERSONFLAG$* What I am after is a list of people where the additional *FieldName = ‘fayrestallnumber’* is not null

@robinrt: 2019-11-05 19:57:56
You seem to have replaced the flag variable for substitution with Stall Holder in the last query you posted. If you want to use the criteria for the flag chosen, the WHERE should be as it was in the first query - like this: WHERE o.ExcludeFromBulkEmail = 0 AND o.IsDeceased = 0 AND (o.AdditionalFlags LIKE ‘$@flag$|%’ OR o.AdditionalFlags LIKE ‘%|$@flag$|%’) If you want to filter on your additional field you need to add a subquery to your WHERE filter. Testing FieldName like that will not work, you need to use an EXISTS subquery and look for a non-null Value column. The WHERE portion down should look like this: WHERE o.ExcludeFromBulkEmail = 0 AND o.IsDeceased = 0 AND (o.AdditionalFlags LIKE ‘$@Stall Holder$|%’ OR o.AdditionalFlags LIKE ‘%|$@Stall Holder$|%’) AND EXISTS(SELECT af.Value FROM additional af INNER JOIN additionalfield aff ON aff.ID=af.AdditionalFieldID WHERE af.LinkID=o.ID AND aff.FieldName='fayrestallnumber' AND af.Value <> '') ORDER BY o.OwnerSurname

@1gkwc6: 2019-11-08 08:18:39
Thank you for your help. I finally got the result I were after. Here is my script. $VAR flag PERSONFLAG$ SELECT DISTINCT o.OwnerName, o.HomeTelephone, o.WorkTelephone, o.EmailAddress, o.OwnerForenames, o.OwnerSurname, (SELECT af.Value FROM additional af INNER JOIN additionalfield aff ON aff.ID = af.AdditionalFieldID WHERE af.LinkID = o.ID AND aff.FieldName = 'fayrestallnumber') AS fayrestallnumber FROM owner o WHERE o.ExcludeFromBulkEmail = 0 AND o.IsDeceased = 0 AND (o.AdditionalFlags LIKE '$@flag$|%' OR o.AdditionalFlags LIKE '%|$@flag$|%') AND EXISTS(SELECT af.Value FROM additional af INNER JOIN additionalfield aff ON aff.ID=af.AdditionalFieldID WHERE af.LinkID=o.ID AND aff.FieldName='fayrestallnumber' AND af.Value <> '') ORDER BY o.OwnerSurname


Medication treatments in documents

@nigglesnush: 2019-11-03 04:50:33
Are there any sample documents that have medication treatments given and due? I'm having trouble getting my document to display the correct information. I'm probably just not understanding how it works, but examples would probably help. I found one document but it only shows given medications, not due. I want the last 3 medications given, and any medications due. Currently have a table to display it in, but perhaps that's just not possible. Samples would be great.

@robinrt: 2019-11-04 09:30:36
I don't think we have any - all the example templates tend to care more about treatments given. Due medications can only really be accessed by name as when you use an index it returns that item whether it's given or due, that's probably where the confusion is coming in. We do have a development task on our current list to have some new tokens that output a table of all given or due treatments and vaccinations etc. so that one token produces the whole history. This might be closer to what you're trying to do?

@nigglesnush: 2019-11-10 04:13:42
Thanks for the reply. What we want is a document to give to the adopter that tells them what the animal has been given, and when they next need to worm, flea, and vaccinate. That's something everyone would need isn't it? Is there something like that?

@robinrt: 2019-11-10 09:24:57
There are tokens for next due, such as <<MedicalNextTreatmentDueX>> where X is the name of the next due medical you want to access. We've added the new feature now, so if you're on sheltermanager.com there's a <<AnimalMedicals>> token that will insert a table with the complete medical history in it now. Similarly <<AnimalVaccinations>> will insert the complete history of vaccinations.

@nigglesnush: 2019-11-15 06:42:05
Thanks Robinrt. I think for now we'll just use those two tokens for vaccinations and medicals given, and not print due dates.


Publishing estimate animal age on our website

@1gkwc6: 2019-11-01 12:56:35
I noticed that when the exact date of birth is known for an animal, our website will display it as: *'Female Dog aged 7 years 1 month.'* , but if the *Estimate* box is ticked next to *Date of Birth* our website display it as: *'Female Dog aged .'* Is this a bug? or is there something missing in my template script?

@robinrt: 2019-11-01 13:14:10
The age group is shown for estimated ages rather than the precise age. If your age groups are broken and being assigned as blanks to your animals, that might explain it? What are your age groups set to under Settings->Options->Age Groups?

@1gkwc6: 2019-11-01 14:05:45
Thank you. That fixed my problem.


Inventory report by oldest date first

@partnersforpets621: 2019-10-26 12:26:40

@partnersforpets621: 2019-10-26 12:29:54
How do i print out an inventory report showing oldest intake dates first.

@robinrt: 2019-10-26 12:43:09
You need to order your report by the DateBroughtIn column.


How do I print a complete incident report?

@dogwarden: 2019-10-24 17:23:57
I have someone wanting a copy of the complete incident report and so far I have been unable to print the entire report (or even figure out how to do so). I can print the "info" but that does not include all of the details, notes, and specifics of the incident. Attorneys and victims make requests frequently so having the ability to print the entire report. Having that ability is crucial to my day to day tasks. Thank you.

@robinrt: 2019-10-24 17:27:39
Install the "Print Incident Record" report from Settings->Reports->Browse sheltermanager.com. It appears under Reports->Animal Control. It includes everything.

@dogwarden: 2019-10-24 17:58:46
AWESOME......thanks you so much!!!!!

@dogwarden: 2019-10-24 17:59:05
It worked perfectly!


Formating Forms

@morningmarmite: 2019-10-24 13:43:34
Is it possible to edit the complete form HTML? I am supporting a shelter with a website upgrade and would like to apply the website style sheet to your form pages, as well as making the flow of questions more user-friendly - rather than an intimidating block of fields which need to be completed. Thank you :)

@robinrt: 2019-10-24 13:49:46
The HTML is not editable, but you can edit the global or speciic form header and add a <link> tag to include your website stylesheet to style the form. All of the different elements of our forms have classes you can apply styles to. You can edit either the header for the specific form (edit icon to the right of the form's name) or the global header for all forms with the button on the toolbar of the Edit Online Forms screen.


Suggestion - Basic Functionality

@mdeprima1964: 2019-10-21 02:21:42
I've helped or led getting 3 local rescues up and running on shelter manager. The software has become very robust and it's unlikely that a smaller sized rescue would use all the functionality out of the box, but would migrate to use additional functions over time. That said, without reading and fully understanding how every function works, it's difficult to assess where to start and you run the risk of creating data that will cause problems down the road. It would be really helpful to have a start-up guide. A list of the commonly used basic functions that almost everyone should start with and best practices on data for those. For example - I'd suggest that the following components would be the minimum standard set:. Tracking Animals, Tracking Individuals, .... etc (I'd be happy to supply more thoughts if you need them). At my first organization, we didn't see the value of tracking people and organizations until quite some time after we started using the system and missed a lot of data collection. Our minds were on our immediate need for tracking medical. My curre nt role out is better, but only because I have more experience with the product and I still think I may be missing something. Just a thought.

@robinrt: 2019-10-21 09:19:11
That's a really good idea. We started trying to do something like this with the early videos on the YouTube channel. I agree completely, it would be really good to have a similar basic guide that takes you through starting from scratch with a new system. I'll raise this again as something for us to do. Thanks.

@twiseowl: 2019-12-01 16:39:39
I would love to see your suggestions, mdeprima1964. We are getting ready to switch and I’m trying to familiarize myself beforehand to prevent just what you said.

@mdeprima1964: 2019-12-10 02:12:57
I'd be happy to send you a list of what I've found to be a good starter setup! After that, we can discuss it if you'd like. Drop me an email at michelle@deprimafamily.com


Media - randomly defaulting to pet vs adopter upon save

@mdeprima1964: 2019-10-21 02:08:11
After processing an adoption (move), sm drops you into the document library. We then generate the adoption contract, save it and it's saved under the cat. Then we select that document (media now) for signature. After the "sign" is clicked, it appears random whether the signed document is saved under the pet or the adopter. We've got them all over the place. Thanks

@robinrt: 2019-10-21 09:17:28
Hi, it shouldn't be random. The move screen saves a copy of the document under both the person and animal record. You can then choose which copy gets signed by choosing the sign options from the media tab of either animal OR person record. It's upto you and your shelter process if you prefer the copy on the animal signed or the copy on the person.

@mdeprima1964: 2019-12-10 02:13:36
Ahhhhh....thank you!


Merging Animals

@sjras: 2019-10-19 18:57:57
In a future update can merging animals be a permission in the user settings like it is for merging people? :-)

@robinrt: 2019-10-20 09:13:13
Sure I'll put that on the list. Currently, it requires the DELETE_ANIMAL permission, which is pretty hardcore in terms of permissions.


adding county to intake

@bmay1439: 2019-10-19 01:22:40
Is there anyway to add County to the entry page on an animal

@robinrt: 2019-10-19 09:50:53
You could add it as an additional field - Settings->Additional Fields.


ASM3 | Multiple websites on single server

@ampien: 2019-10-15 13:18:44
Hi, all. I have an Ubuntu 18 LTS VM running our shelter's website and ASM. I want to know if anybody have been able to create both an ASM Test Server AND Production Server on the same tin. There is only a single /etc/asm3.conf file, so how would you go about creating a second instance? Also I'm running PHP7/Mariadb/Apache+WSGI setup. I did buy the Sheltermanager 3 Manual - but could not find it in there. Regards Ampie (South Africa)

@robinrt: 2019-10-15 16:44:06
You can copy the install folder and have two installs. It's possible to put an asm3.conf file in each install folder. Then, run the two installs via mod_wsgi and give them a different location.

@ampien: 2019-10-17 08:11:46
Thanks, Robin. I could do this without "installing" ASM. I cloned the git folder, and copied the contents of "install/deb/sheltermanager3/usr/lib/sheltermanager3" to "/usr/lib/asm/{site1,site2}". I then gave each "site" a different asm3.conf file in the root. I ensured that "python3 ./code.py 5000" starts on bootup, and bob's your uncle. :-) Tested and working.


Can the 'Homechecked by' field be removed?

@shirj: 2019-10-13 01:55:55

@robinrt: 2019-10-19 09:51:32
Sorry, no there isn't a way to remove it.

@twiseowl: 2019-12-01 16:40:38
Is this something that could be done in the future? Many shelters and rescues don’t do this.


Don't want Daily Boarding Cost for days cats are in foster

@amybaron: 2019-10-10 06:38:44
since we arent paying for the cats daily care when they are in foster, for example, a cat named 'mamacat'... in the shelter 18 weeks, but 12 of those weeks were in foster (waiting to have her kittens then raising them). i only want to show the daily boarding costs for the 6 weeks she was actually IN the shelter ive searched in the docs, and options, but im sure im missing something

@robinrt: 2019-10-10 08:59:15
Sorry, it's just a simple calculation and it isn't that clever. The only workaround is to manually add up the days in foster and subtract the right amount from the cost record afterwards.

@amybaron: 2019-10-13 08:10:29
is it possible that something like this could be considered for future versions? im sure im not the only group managing a huge number of fosters... in part because getting the animals into foster decreases our costs substantially. thanks!


Line-level statistics report generation

@mossrock: 2019-10-08 19:45:20
Hello! I am trying to create a csv file of intake and outcome records for each time an animal enters and exits the shelter. I can start to reproduce this using the report located at Reports -> Statistics -> Total Length of Stay by Outcome, but it seems to be somewhat limited. It produces the fields below Grouped by Outcome( i.e. Adoption, Transfer etc) with the data fields below: Date Reason Code Microchip Name Type Species Age Sex Location Owner A sample of the report I am trying to create would contain something similar to the following: Impound No Animal ID Animal Type Date of Birth Intake Date Intake Type Intake Subtype Intake Date Intake Condition Behavior Condition Due Out Date Weight Outcome Type Outcome Subtype Outcome Date Outcome Condition Sex Breed Name Location Reason Code I am new to Shelter Manager, so I am not sure I fully understand the report to begin with. Thanks for the help!


Cost record for Daily Boarding Cost not being created?

@amybaron: 2019-10-07 11:04:27
hi hi... so in Options/Costs, i have the "Create boarding cost record when animal is adopted" box checked... but when i adopt the animal, there is no record left of the costs. am i doing something wrong?

@robinrt: 2019-10-07 12:48:16
Hi, that option only applies if you adopt via the "Move->Adopt an animal" menu item. It does not create the boarding record if you create the adoption movement directly on the animal record.

@amybaron: 2019-10-09 07:32:07
oh... i've pretty much never done that. ive always done adoptions through the movement field. oops...


Two questions

@cindiczyzakkaiser: 2019-10-05 05:51:25
#1 - When there is an update does it happen automatically or do I have to do something. #2 - How do I post videos of our cats?

@robinrt: 2019-10-05 09:32:39
1. If you are using sheltermanager.com it's automatic. If you installed the software yourself, you have to update it yourself. 2. Upload them to youtube and link them under the media tab for the animal. The can appear on websites generated by our software, and we can send them to adoptapet.com but no other providers accept them in their import specs currently.


Update to 3.41

@grahamparsons: 2019-10-01 04:20:29
Hi Robin. Trying to update via apt-get, but it's failing with this: Package python-pil is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Package 'python-pil' has no installation candidate Not sure where to go from here - can you point me in the right direction? TIA

@robinrt: 2019-10-02 13:08:41
What OS and version are you using? Older Debian used to call it python-imaging

@grahamparsons: 2019-10-03 16:22:31
Ubuntu 12.04 I believe. What do I change in order for it to look for python-imaging instead?

@robinrt: 2019-10-03 19:00:32
You don't - it supplies the same package and dependency, just try installing it with apt-get.


Exporting CSV data. How to convert animal ages to numerical format?

@jamiepea: 2019-09-28 16:00:52
Hi all, I need to know how many neonatal kittens (vs. kittens of all ages) our shelter has taken in over a series of date ranges. Is there a way to convert animal ages to a completely numerical format. Current format is text abbreviations like 1 mon 14 days, which excel can't convert or recognize. The only idea I have at this point is to create a fourth age category for animals under a certain age, but I don't even know if that's possible... Ideas?

@robinrt: 2019-09-28 16:14:59
Use the date of birth field - you can calculate age in whatever format you like by subtracting date of birth from today's date.

@jamiepea: 2019-09-29 21:37:59
Okay. Do you know of a movement report that includes intake date and birthdate by species? Because today's date isn't going to get me what I need...

@robinrt: 2019-09-30 08:52:13
Sure "Intakes by Date with Ages and Outcomes" has both. It also includes readable ages at intake and outcome.


Map question

@jimdunne: 2019-09-23 18:40:09
How much of an address does ASM need to provide lat/long info? - would just a postcode be sufficient for example? Also, would it be possible to create a map with colour coded pins for entry reasons so that an area with a high level of a particular reason for entry could be seen?

@robinrt: 2019-09-28 16:15:32
it's not possible to change the pin colour, a postcode is sufficient for a lat/long but the more info you add the more accurate the geocode will be.


Negative stock values

@srupe05: 2019-09-21 15:26:49
I was wondering if it would be possible to display negative stock values. Currently the stock item disappears when reaching zero or below (which makes sense); however, very often we encounter vials of medication that have more than what the manufacturer specifies (a 10mL bottle will actually have 10.5mL) I don't know that until I reach the end of the bottle. I would like to be able to reflect the overage in the stock reports but am not able since the item is removed at zero.

@robinrt: 2019-09-22 09:41:44
it's an interesting idea. I'll raise that to look at for development.


executable for linux

@fluke281: 2019-09-21 03:02:44

@fluke281: 2019-09-21 03:19:24
I have installed the debian file in ubuntu server and there is no executable is /usr/bim or elsewhere. I can only create an m database. Any suggestions?

@robinrt: 2019-09-21 08:35:55
Yes, look at the README file for further instructions - /usr/share/doc/sheltermanager3


Publishing Logs

@mdeprima1964: 2019-09-19 17:25:10
As I understand the documentation, the phone number that gets sent when auto registering microchips is the one stored in the cell number field. I'm concerned that the wrong field has been valued for some adopter. I'd like to do 2 things 1. I'd like to identify any chips that have been registered (published) since 1/1/19 without a phone number. 2. Ideally, I'd like a list that matches any adopted cat with a smartid tag against the publishing log to determine 2 things 1. Did we miss publishing any microchips? 2. Does the name they were published under match the adopter name? 3. Finally, and I could probably do this myself, a list of what smartid microchips have not been published... Whew... I can only see logs for the last 7 days or so, where do they go after that? Any help you can give would be appreciated. We are a paying customer. Out login is TD1674, but we can't seem to find our official account number. Thanks

@robinrt: 2019-09-20 09:33:51
Hi, info on the registration data sent is not kept. The publishing logs rotate fairly frequently and are deleted as they are only there for diagnostics. The animalpublished table keeps a record of what date a chip was registered, who with and if it was successful, but that's it - it does not keep data on what information was sent. That info can be viewed on the "Publishing History" slider of animal records. There shouldn't be chips missed because the system will go back and find them on every publishing run, although it can hold some back for various missing data items (which will be outlined in the current publishing log as it will try forever). If you're using Found or PetLink, you might be better asking their support for that info since they will be able to find registrations with no phone number, etc.


Publish to Petfinder.com

@rementis: 2019-09-18 22:19:58
Recently publishing to petfinder.com has stopped working. According to the logs the upload is fine, but on the petfinder side I'm told there have been some changes to the fields and I need to update to a newer version of ASM. But I'm already at ASM 3 ver 42, I cannot find anything newer to update to. Has anyone else seen this issue?

@adoptamutt: 2019-09-18 23:08:01
I was having an issue with pictures loading for the past week. I changed my ASM settings to temporarily reload all images and things started working. Not sure if it was the change I made or if PetFinder fixed something on their end.

@robinrt: 2019-09-19 08:39:10
Yes, unfortunately we had to change the upload format due to ongoing issues we were having with PetFinder. The latest code is in the trunk and available on sheltermanager.com, but there's no release with it in yet.

@rementis: 2019-09-19 16:41:34
Do you know how long until a release for ubuntu will be ready? Or if not can I download a particular file from github and use it to fix this issue?

@rementis: 2019-09-19 17:00:24
I tried cloning from github and then running makedeb.sh to create deb file, installed that and it overwrote my config. So not sure how to upgrade to 43. (Was able to restore from snapshot, so still running 42.)

@inghamn: 2019-10-01 20:53:07
We recently noticed this with our deployment, in Bloomington, as well. I am thinking about pulling in all the latest work on the master branch. I saw a lot of commits dealing with Python3. Should we switch to python3, if we want to deploy that latest 43u work?

@rementis: 2019-10-01 21:42:04
Creating the deb file, and then installing from that, and then putting my old asm3.conf file back in place was the fix. All working again now.

@robinrt: 2019-10-02 13:08:09
Ok, glad you got that sorted. The trunk code works with both python 2 and 3 (we have both in production at SM) - there's no need to switch to 3 if you don't want to faff around with your dependencies. I'm going to put a patch out this week to allow 42 to send to PetFinder again.

@inghamn: 2019-10-02 13:18:23
Okay, cool. I might stick with python 2, for now, so I don't have to rewrite all the Ansible stuff for python 3. Although that would be a good thing for me to do. I can add an issue for the Ansible script update for 43.

@aaronloo: 2019-10-08 15:23:02
I was able to upgrade to 43u and the 'publish to petfinder' process is working again. I have noticed that some images are not displaying even though the logs show that they are being submitted. I have not seen any errors in the logs so I have opened a support ticket with Petfinder, but I thought I would inquire here as well to see if anyone else has had the issue.

@aaronloo: 2019-10-09 21:25:12
Turned out to be a petfinder issue. They had a setting not to recheck reloaded images.


Search slow down?

@grahamparsons: 2019-09-16 18:55:48
Hi, we host our own ASM, and are on ASM 39. Noticed recently a slow down in the search results when using the search box at the top of the screen - taking sometimes between 30-60 seconds to return results. We usually prefix the search with A: or P: to narrow down the results. Would an update help this? Or this there something else we should be doing, server-wise? Any suggestions much appreciated.

@robinrt: 2019-09-16 18:59:16
Yes, updating would help a lot - many indexes were added and improvements to queries and search performance since 39.


Flags are affecting the animal search results sorting

@inghamn: 2019-09-13 14:20:54
When doing an animal search, then sorting by name, the results are apparently being sorted by the "Aggression Warning" flag, instead of by the name. Is this a bug, or intentional? Our users started noticing it after we recently updated to the v42 release. [Search_results](//muut.com/u/sheltermanager/s2/:sheltermanager:P6Tt:search_results.png.jpg)


Drag and Drop not working in shelter view?

@ketalabama: 2019-09-12 16:43:52
For some reason I can no longer drag a cat from one location to another. Actually it works with respect to dragging between a couple of locations. But it is no longer letting me drag from one location to our Foster list/section. Is there a reason or something I am missing? Shelter view is grouped by Location. We have some new kittens inadvertently entered against the Haven house when they should be in foster. I'm just wanting to drag from one to the other and when I drag into the Foster frame nothing happens. thanks Kim

@robinrt: 2019-09-12 17:58:00
You can only drag animals OUT of foster in the location view. Dropping them in foster doesn't work because there isn't enough info to create a foster movement as the system can't know who the fosterer is going to be. In the fosterer mode of shelter view, you can drag and drop between fosterers.

@ketalabama: 2019-09-12 20:16:51
Thank you


Voucher

@ears: 2019-09-03 18:09:21
Last week I found (to my great joy) a way to send a voucher to a vet giving permission for treatment and setting the amount of assistance we would give. I have spent 2 days trying to find it again. Ideas?

@robinrt: 2019-09-03 18:19:21
Try the Document button on an animal record.

@ears: 2019-09-04 02:48:20
I didn't see anything there. Maybe I am just not using the right word. ugh.


Reports Drop Down Menu

@shirj: 2019-09-01 02:21:51
When I click on the Reports button on the header, it gives me a bulleted drop down menu (IE: accounts, animal control, auditing etc.) whereas before when I clicked on the Reports button it would give me a single window with a list of the reports. This way I was able to scan all reports at once. What did I do? Can I change it back to the single window??


want spendings of the NGO to show in rupees not dollars

@tfflamya: 2019-08-26 14:08:55
We are an animal welfare organization from India and we would absolutely love to start using this software, just wanted clarification that the regional settings can be done for India to show all our monetary transactions in Rupees when we pay for the subscription? as it wasn't clear in the demo version is that would be possible. Thankyou

@robinrt: 2019-08-30 15:24:38
Yes, choose the en_IN or English (India) locale under Settings->Options->Shelter Details.


Movement Return Date is getting automatically set

@ketalabama: 2019-08-25 16:29:28
I have been noticing on several occasions that a foster will stop showing for a kitten. When I look the Return Date was populated. It seems to be happening automatically. I have to go in and clear the return date to keep the kitten identified with the foster. Anyone know why it would be automatically returning a foster movement?

@robinrt: 2019-08-25 17:58:35
Most likely is someone dragging and dropping that animal in shelter view. The audit trail slider should give more information.


Link Additional Fields to Online Forms

@mhs_jeff: 2019-08-25 03:18:08
We have created a number of "additional fields" in our person records to move toward a paperless system and have everything in ASM. We have found it is very helpful to have the fields in online forms link to the fields in the person record. Is it possible to link online records to additional fields? Or does this only work for the native fields in ASM? Thank you!

@robinrt: 2019-08-25 10:06:31
Yes it is, just make sure your online field name is called "additional" followed by the name of your additional field. Eg: if you had an additional field called "DriverLicense" then you'd call the online form field "additionalDriverLicense" to populate it.

@mhs_jeff: 2020-09-01 13:04:17
Thank you!


Total Length of Stay by Species report

@jamiepea: 2019-08-22 00:25:11
A question for the moderator about this report: if an animal goes to foster, do the nights in foster get counted as part of the "length of stay"? I'm looking for a report that excludes nights in foster. Does that exist?

@robinrt: 2019-08-22 08:43:16
Yes, nights in foster are included - unless you don't have the option set for "Include foster animals in the shelter inventory" under Settings->Options->Movements. If you do unset that option, be aware that it will remove all your fosters from shelter view and the home screen and is probably not what you want to do - it affects many areas of the system. It will also not update that report immediately, you will have to recalculate all animal locations from Settings->Trigger Batch Processes. There isn't a separate report that calculates length of stay and excludes time in foster.


Animal ID vs Animal Code

@nigglesnush: 2019-08-20 09:13:18
I'm very new. What is the difference between AnimalID (which i've found in wordkeys and can add to my documents) and Animal Code, which appears in bold beside each animal in shelter view, and you can search by it. Animalid seems to be useless, except that I can put it on a document, and I can't see how to put Animal Code on one. Help?

@nigglesnush: 2019-08-20 09:22:05
I've now found teh animal code, which is Sheltercode. But why are there two? Must be a reason? What's the difference?

@robinrt: 2019-08-22 08:44:10
Animal ID is the internal record identifier used by the system. You use it if you want to construct URLs to records. Otherwise shelter code is what you want for everything as it's the shelter's code rather than the system's internal one.

@nigglesnush: 2019-08-23 01:14:16
Thank you. Much appreciated.

@felinecareuk: 2019-09-23 14:54:53
On this topic, please could you tell me why the Animal Id unsyncs when I am cloning animals? It skips a number quite often when I am cloning animals and changing entry dates?


Clinic appointments for on-shelter animals

@sjras: 2019-08-15 17:26:05
We have medical staff but our vet only visits daily to do rounds. The notes from each visit are put into the health problems box, but if an animal is seen multiple times it gets a little jumbled when viewing/printing. Since we don't offer clinic services to the public we were playing with the idea of using the clinic section to "schedule" our vets list of animals that need to be seen directly for some reason (The ability to print clinic appointments would help make sure no one is skipped accidentally). Needing an owner stops us unless we create a dummy "on shelter" owner, which we could do. I've found the clinic key words to add to our custom forms, but for court cases we use the "print animal record" report, which doesn't include any of the clinic info. I'm learning, not up to speed enough with SQL to edit the report to add things to it, but wondered if that was something that could be tweeked to pull clinic info into that report or a duplicate of it?

@robinrt: 2019-08-15 17:37:50
We're adding this as a feature in the next week or so, you'll be able to schedule shelter animals into the clinic.

@sjras: 2019-08-16 16:09:50
Thank you! You're the BEST! We appreciate ASM and your continued time & efforts to make our lives easier!


Error in downloaded report

@jimdunne: 2019-08-13 13:33:10
I have just downloaded the 'Medical History with Log' report, and when I run it, get the following error '(1054, "Unknown column 's.SpeciesName' in 'field list'")' SQL is not my thing, so how do I resolve this please?

@robinrt: 2019-08-13 14:52:19
change the offending reference to sp.SpeciesName. Or, you could delete and reinstall the report, I've fixed it in the repository

@jimdunne: 2019-08-13 19:50:54
Found another error - "INNER JOIN species sp ON s.ID = a.SpeciesID" is wrong (line 4), should be "INNER JOIN species sp ON sp.ID = a.SpeciesID" I changed that and the report works.


Microchips

@jimdunne: 2019-08-12 15:52:07
Until this weekend, we have had the microchip features switched off in our self-hosted ASM app. We are now taking part in a hedgehog trial, and will be microchipping some of the hogs we release now that we have had training. We have our own stock of microchips. I have turned 'on' the microchip features, and they show when creating a new animal. However, they do not show in existing records, and I cannot see how to add microchips to animal records for hogs that we have in care. Would you point me in the right direction please...

@robinrt: 2019-08-12 15:55:46
It's under the "Health and Identification" slider. If you don't see it, make sure you didn't turn them off with the option under Settings->Options->Remove->Remove the microchip fields from animal identification details

@jimdunne: 2019-08-12 15:56:07
Scrub that, I've found it - the fields appear when you check the 'Microchipped' field in Health & Identity


Automated Email reports

@pawsdarwin: 2019-08-11 07:09:12
Hi. I seem to be unable to have reports email through automatically even though I am selecting that function. Can you help?

@robinrt: 2019-08-11 08:22:49
Do your reports ask for criteria from the user? You can only email reports that do not have criteria since they will run non-interactively.


Report in Excel

@pawsdarwin: 2019-08-11 00:00:08
How can I export a report in excel?

@robinrt: 2019-08-11 08:22:14
Settings->Export Reports as CSV

@pawsdarwin: 2019-08-11 11:25:37
Thankyou!


Automatic hold on strays

@sarahswank: 2019-08-09 16:49:53
Trying to set this up and I can seem to figure out, is there a way to set it so it automatically does a hold period for X amount of days on strays?

@robinrt: 2019-08-11 08:22:05
You can set a default hold period under Settings->Options->Movements->Remove holds after X days Then, when you tick the hold box on a new animal it will auto set the period.

@sarahswank: 2019-12-23 17:46:58
Thanks. That requires someone to remember to check that box also... Is there a way to set up the template stray so it does the box tick automatically?

@robinrt: 2019-12-23 18:04:50
Yes, if your stray template animal has the hold box ticked then it will be held when you create a new animal of that type.

@sarahswank: 2020-01-08 18:47:55
I am trying this, but it doesnt seem to work as the animal also needs to be placed as non-shelter, which removes the hold correct?

@sarahswank: 2020-01-08 18:50:32
Perhaps for clarification, I am trying to get this to work for type-stray and it seems that it isn't pulling anything I want across so I have an issue somewhere else..... So the name of said animal would be "TemplateTypeStray" without the quotation marks?

@sarahswank: 2020-01-08 19:40:55
And nevermind. I figured out the name issue. Now I cant figure out how to get a hold on a non-shelter dog

@robinrt: 2020-01-08 20:04:53
Template animals are only applied to shelter animals - they don't work for non-shelter animals. I think there is an override switch we can apply to make them work for non-shelter. If you email with your sheltermanager account number I'll turn it on for you.

@sarahswank: 2020-01-08 21:06:44
I was speaking the template animal needing to be non-shelter. Is that not correct?

@robinrt: 2020-01-09 09:53:42
Yes, that is correct, the template animal has to be non-shelter, I'm saying it won't be applied if the new animal that you're creating for it to be applied to is non-shelter as well.


Changing time diary notes are emailed

@cgriffiths: 2019-08-08 13:16:28
I am trying to change the time that diary notes are emailed to all users, right now they are sent at 4am. We would like them to be sent around 7am. Is this possible to change?

@robinrt: 2019-08-08 14:47:12
Sorry, it isn't.

@judyanjowski: 2020-08-02 19:27:40
How do you turn of the emailing of diary notes - they just started being emailed and I have no idea where the setting is.

@sjras: 2020-08-02 20:08:15
Settings>Options>Diary and Messages to turn them on or off


Litters

@1gkwc6: 2019-08-07 14:53:20
I created a litter with 2 animals (found on a volunteer's doorstep), and then discovered a 3 one a day later that needs adding to the existing litter. How do I do it?

@robinrt: 2019-08-07 15:20:46
Set the litter ID field on the animal's record to match the litter.

@1gkwc6: 2019-08-07 17:16:28
Thank you, but that does not update the *number in the litter* field on the ASM::Edit litters screen


Current Foster Carers

@pawsdarwin: 2019-08-02 22:54:40
Is there a report we can run to see when someone flagged as a foster carer last fostered?

@robinrt: 2019-08-05 18:59:22
There's a report called "Inactive Fosterers" which shows all your fosterers who do not currently have animals and when they last fostered. Install it under Settings->Reports->Browse sheltermanager.com


Sharing to FB

@pawsdarwin: 2019-08-02 22:53:37
When we share an animal to FB from its profile it often cuts off half the profile photo. Is there a way to fix this?

@robinrt: 2019-08-05 18:57:49
No. I think you're talking about FB's autocrop. Clicking the image in FB will show it full size.

@pawsdarwin: 2019-08-06 12:33:53
Thats a real shame. Thanks anyway.


Adopted Animal on shelter

@pawsdarwin: 2019-07-31 00:41:35
Is there a way to have an Adopted animal showing as on shelter still? We have adopted a dog however they are awaiting desex before flying interstate and I cant get it to show as on shelter due to the Adoption movement.

@adoptamutt: 2019-07-31 01:52:03
Have you considered doing it as a “reservation” Movement instead?

@robinrt: 2019-07-31 07:44:43
Reservation would work as Karen suggested. You could also use the trial adoption functionality - turn it on under Settings->Options->Movements. It allows a "Trial" tickbox when recording adoptions and you can choose to treat trial adoptions as on shelter. You can also use the Move->Trial Adoption Book screen to see them. When you want to make a trial permanent, just untick the box on the movement.


Using additional fields in custom document

@gweeks: 2019-07-30 14:30:49
I have trawled the forum and manual but cannot seem to find what I am looking for. I have created some additional fields under Animal-Notes. Is there a way to use these fields on a custom document? Thanks

@gweeks: 2019-07-30 14:37:20
Never mind - Finally figured it out!!

@mhs_jeff: 2020-02-21 11:54:36
Good morning, we are trying to do the same thing, mind sharing how you figured this out? Thank you!!

@adoptamutt: 2020-02-21 15:21:38
It depends on what your additional field is linked to. For example: If you have an additional field called "driverslicense" linked to the person record, you could call it in a document with <<OriginalOwnerDRIVERSLICENSE>>. Search "Additional" in the Wordkeys section of the manual for other Wordkeys.

@mhs_jeff: 2020-09-01 13:07:43
Sorry for the long delay, I'm still trying (and failing to do this). We have added an additional field called "DateRecieved" which is populated by an online form. Then we use the form to populate the person record and I have added DateRecieved to the Person record in Personal-Additional. Now I am trying to get this field to populate an area in a custom document. I have tried <<OriginalOwnerDATERECIEVED>> and lots of other combinations but have still be unable to get it to work. Any help would be great appreciated. Thank you!

@robinrt: 2020-09-01 14:22:54
It depends where you're generating the document from. If you're generating it on person records, you don't need the original owner bit, it can just be <<DateRecieved>> (typo and you meant DateReceived?). The OriginalOwner bit is only if you're accessing the additional field from a person record who is the original owner link on the animal you are generating the document for.

@mhs_jeff: 2020-09-01 14:52:41
ah, ok. Thank you I will try that Update: It worked!!! Thank you so much!


Code question

@kayde1: 2019-07-30 14:26:22
Below is part of the code to a quick reference guide we send to our adoption centers for which animal is there and a little info about them. All of our animals are in foster which is why we use a.displaylocation. Now I am being asked to add the cell phone number of the foster person to the same section as the display location so its looks like (Foster: Mary Jane (000) 000 - 0000) Is there any way to add to this using the existing code? select a.AnimalName, sx.Sex as SexName, a.DISPLAYLOCATION, (SELECT ad.VALUE FROM additional ad INNER JOIN additionalfield af ON af.ID = ad.AdditionalFieldID WHERE ad.LinkID = a.ID AND af.FieldName = 'CatDependency') AS CatDependency, a.AnimalAge, case when a.Neutered = 1 then 'Yes' else 'No' end as NeuteredName, a.AnimalComments, (SELECT Name FROM lksynun WHERE ID = a.IsGoodWithCats) AS IsGoodWithCatsName, (SELECT Name FROM lksynun WHERE ID = a.IsGoodWithDogs) AS I sGoodWithDogsName, (SELECT Name FROM lksynun WHERE ID = a.IsGoodWithChildren) AS IsGoodWithChildrenName, sp.SpeciesName from animal a

@adoptamutt: 2019-07-30 14:59:46
Add to the bottom SELECT section: owner.ownername, owner.mobiletelephone Add right below your "from animal a" LEFT OUTER JOIN adoption ON adoption.ID = a.ActiveMovementID LEFT OUTER JOIN owner ON owner.ID = adoption.OwnerID

@kayde1: 2019-07-30 15:21:19
Didn't seem to work adding those two lines below from animal a Here is the complete code as it stands now and it didnt add the phone number :( select a.AnimalName, sx.Sex as SexName, a.DISPLAYLOCATION, (SELECT ad.VALUE FROM additional ad INNER JOIN additionalfield af ON af.ID = ad.AdditionalFieldID WHERE ad.LinkID = a.ID AND af.FieldName = 'CatDependency') AS CatDependency, a.AnimalAge, case when a.Neutered = 1 then 'Yes' else 'No' end as NeuteredName, a.AnimalComments, (SELECT Name FROM lksynun WHERE ID = a.IsGoodWithCats) AS IsGoodWithCatsName, (SELECT Name FROM lksynun WHERE ID = a.IsGoodWithDogs) AS IsGoodWithDogsName, (SELECT Name FROM lksynun WHERE ID = a.IsGoodWithChildren) AS IsGoodWithChildrenName, sp.SpeciesName from animal a LEFT OUTER JOIN adoption ON adoption.ID = a.ActiveMovementID LEFT OUTER JOIN owner ON owner.ID = adoption.OwnerID left join lksize sz on a.Size = sz.ID left join lksex sx on a.Sex = sx.ID left join species sp on a.SpeciesID = sp.ID WHERE a.AdditionalFlags like '%Sayreville%' and IsNotAvailableForAdoption = 0 and Archived = 0 order by SpeciesName, AnimalName

@kayde1: 2019-07-30 16:54:08
Nevermind! I think i got it thanks


Report on Forms

@pawsdarwin: 2019-07-30 14:20:38
Is there a way to fun a report on forms that have come in over a specified time period?

@adoptamutt: 2019-07-30 14:41:26
When we receive an online form, we attach the form to both the person and animal record if specified. We then pull the online forms attached using the media table, looking for the specific online form titles in the medianotes field. Not pretty, but it works for us. Here is our SQL: SELECT CASE WHEN linktypeid = 0 THEN (SELECT trim(animalname) || ' (' || sheltercode || ')' FROM animal WHERE animal.id = media.linkid) WHEN linktypeid = 3 THEN (SELECT ownername FROM owner WHERE owner.id = media.linkid) END AS animalowner, medianotes, media.date FROM media WHERE date_trunc('day', media.date) BETWEEN '$ASK DATE Enter from date$' AND '$ASK DATE Enter to date$' AND medianotes IN ('Cat Adoption Application', 'Dog Adoption Application','Getting Help - Cat', 'Getting Help - Dog','SNIP Application','Foster Application','Volunteer Application') ORDER BY date HTML: $$HEADER <table border="1"> <tr> <th>NAME</th> <th>TYPE</th> <th>DATE</th> </tr> HEADER$$ $$BODY <tr> <td>$animalowner</td> <td>$MEDIANOTES</td> <td>$date</td> </tr> BODY$$ $$FOOTER </table> FOOTER$$

@pawsdarwin: 2019-07-31 00:40:31
Fantastic. Thanks :)

@robinrt: 2019-07-31 07:42:53
There's also a report in the repository that does this called "View forms/documents attached between two dates".

@audraf: 2020-12-15 21:55:47
That report is super helpful! Is there a way to have it show just one type of form? In this case just the foster form.

@adoptamutt: 2020-12-28 16:03:42
Add to the WHERE statement: AND medianotes = 'Foster Application'


Hyperlink

@pawsdarwin: 2019-07-30 00:40:04
I am attempting to add this URL as a link in the publishing templates. Can you please help me format it to come up as a link? <p> To meet $$ANIMALNAME$$ or for more information please complete a meet & greet form on our website http://pawsdarwin.org.au/forms/ </p>

@robinrt: 2019-07-30 09:06:07
There are lots of great resources online for learning HTML. This is a good one (direct link to the section on links): https://www.w3schools.com/html/html_links.asp

@pawsdarwin: 2019-07-30 14:19:59
Thankyou!!!


Active applicants

@tmc210: 2019-07-29 18:31:25
I have made a report that shows all active applicants and some approval standards. I need to exclude folks flagged as Fosterer-Dog. I know we added this to the look-up data.

@robinrt: 2019-07-29 18:51:57
--- WHERE AdditionalFlags NOT LIKE '%Fosterer-Dog%' ---


I am trying to adjust the SAC Dog report to not include Trial Adoptions

@tmc210: 2019-07-29 18:29:52
What script would I use to do this?

@robinrt: 2019-07-29 18:51:31
The 2 subqueries that produce dog adoption counts need an IsTrial=0 clause. These are the ones that are aliased as AdultDogAdoption, JuniorDogAdoption. For both of them, change the line --- WHERE MovementType = 1 --- to --- WHERE MovementType = 1 AND IsTrial = 0 ----


shelteranimalscount matrix

@srupe05: 2019-07-27 18:45:58
I am having a hard time figuring out why the numbers on the report are not mathematically correct. For example: ending count = beginning count + intakes - outcomes. On my reports the end count is typically off by a few. When comparing the numbers with an In/Out report there were some intakes that were not considered on the SAC report (animals returned from adoption --just needed the html output-- and return from foster.) I edited the SQL to reflect those two areas but am getting inconsistent results with both. In the example attached, 3 dogs are shown as returned from adoption. In reality-2 dogs were returned from adoption and one dog was returned from foster. Additionally, 0 kittens were returned from foster but actual foster returns should be 9 (adding these 9 kittens to the shelter inventory however throws off the ending count .) ---Fosters being returned become part of the On-shelter inventory.-- I may not be comprehending this correctly but it ma kes sense the the end count should equal beginning count plus intakes and minus outcomes and that is not happening consistently. Any assistance would be appreciated [SAC 6-19](//muut.com/u/sheltermanager/s1/:sheltermanager:YDJM:sac619.png.jpg)

@robinrt: 2019-07-27 18:54:28
That's correct, it should be start + intakes - outcomes = end. Before investigating further, do you have the latest version of the report? You can make sure that you do by going to Settings->Reports, deleting your version of it and reinstalling it with the Browse sheltermanager.com button.

@srupe05: 2019-07-27 19:00:13
I did edit the SQL in order to count animals by type rather than entry reason. Was much easier this way that trying to specify each entry reason. But I don't see how that should be affecting the numbers -- have checked each entry half a dozen times

@robinrt: 2019-07-27 19:06:23
The latest version of the report no longer counts by entry reason (with the exception of strays). It uses the original owner to infer surrenders and the transfer in flag for transfers. Rewriting the intake counts could absolutely be affecting the figures.

@srupe05: 2019-07-27 19:43:23
Does the report include Trial Adoptions in the start and end counts?

@srupe05: 2019-07-27 20:34:42
The numbers on the original report (just downloaded) are not in correct categories due to different "stray" entry reasons (animals brought in through animal control are stray but have entry reasons specific to the type of complaint. Additionally, a stray animal brought in sick or injured has a "sick/injured" entry reason rather than stray) (These specific entry reasons are helpful for other statistical purposes. ) Also, the original report is showing 0 cats/kittens returned when 9 kittens did return from foster. The original is recording owner surrenders base on there being an Original owner entered (and entry reason not stray.) The issue here is having other entry reasons that still apply to strays and during the selected time period and cat was owner surrendered by a family member (original owner passed away) and no information was gathered to enter into for the original owner. Thus, 1 owner surrender cat appearing on the original report and the correct number of 2 appearing on the edited report. The report edited to use animal type (edited from fresh download) is more accurate as far as correct intake categories . A change I noticed was the dogs returned went from 3 on the original to 4 on the edited report. 4 dogs were returned in June -- 2 from adoption, 1 from foster and 1 from a trial adoption. While the math works out for the original report the information displayed is not correct. But the edited displays correct info, the the math is not consistent (Dogs are +1 and kittens are +9). I have go to be missing something somewhere. [SAC original](//muut.com/u/sheltermanager/s2/:sheltermanager:Jfs3:sacoriginal.png.jpg) [SAC Animaltype](//muut.com/u/sheltermanager/s2/:sheltermanager:IIEU:sacanimaltype.png.jpg)

@robinrt: 2019-07-28 08:57:01
Fosters are not counted in the SAC report on purpose - they are irrelevant as far as SAC are concerned since they only care about intake and outcomes. Foster returns are neither. Trial adoptions are included as regular adoptions in the outcomes section of SAC. Your change to use types means that animals from some areas are being missed - the set of possible intake conditions should cover all possibilities so that no animal is missed. I don't mean to be rude, but I'm not taking the time to debug a report that you broke when the one that we supply works correctly. It sounds like your sick/injured problem could be cured by renaming the entry category to "Stray - Sick/Injured", that way the report will pick it up as a stray and it's clearer in your data too that the animal was a stray as well as sick and injured. If you start recording the original owner from now on, you'll be fine calculating surrenders in future and for historic data, you could look up the number of animals based on your type and adjust the figures manually - ie. subtract your calculated surrenders fro m the other intakes number and inflate surrenders. It's better if you can get the report to work for you as it is as you can take advantage of the monthly export version of it to get a file you can upload straight to SAC without having to hand enter your figures.

@srupe05: 2019-07-28 20:51:02
Was just hoping the animal type would be possible and maybe I was just missing something. Achieving correct data entry has been an on going personnel issue. Entry reasons and original owners are not entered (or the info even obtained) correctly and consistently. Therefore, the animal type would have saved me from correcting each record before running the report. Thanks for the input.


Movement Integer

@srupe05: 2019-07-26 20:33:53
I am trying to figure out what movement type is associated with the integer 8. 8 is referenced in a report but I cannot seem to find and "8" [2019-07-26 15_36_57-Edit Reports](//muut.com/u/sheltermanager/s1/:sheltermanager:Qv8s:2019072615_36_57editreports.png.jpg) [Movement integer](//muut.com/u/sheltermanager/s1/:sheltermanager:mHVk:movementinteger.png.jpg)

@robinrt: 2019-07-27 18:55:31
It's the movement to a retailer. It can be treated similar to fosters in many cases. It's the movement used when an animal is placed in a pet shop for adoption, but is still in the care of the shelter. If you do not see it in the list, you probably have retailer movements disabled in your database.


How can I tell which template is being used to populate the web page?

@tmc210: 2019-07-24 21:54:48

@robinrt: 2019-07-25 08:26:17
If it's static HTML pages, look at the options - Publishing->Set Publishing Options->HTML/FTP Publisher. If it's for a service call iframe, the template will be in the address bar and if it's not present, animalview is used.


How can I add a new field to the advanced search?

@tmc210: 2019-07-24 16:40:40

@robinrt: 2019-07-24 16:42:35
You can't. This is something on our development list for the future.

@tmc210: 2019-07-24 16:44:10
Can I add a new filter or flag?

@tmc210: 2019-07-24 16:53:04
This would be to the filter or flag drop downs already in place.

@robinrt: 2019-07-24 17:13:39
You can't add a filter, but you can add flags. Settings->Lookup Data, then "Animal Flags" from the dropdown at the top right.

@tmc210: 2019-07-24 17:14:51
Can I add Adoption or application pending?

@tmc210: 2019-07-24 17:21:23
Just did and Advanced search is not recognizing it.


How can I round weights in a report? Right now I am getting 33.1234

@tmc210: 2019-07-22 14:10:08

@robinrt: 2019-07-22 17:37:06
Use the ROUND() function in your query. So instead of SELECTing Weight, use ROUND(Weight, 2) AS Weight to get 2 decimal places.

@tmc210: 2019-07-24 19:42:50
I can't get that to work: select a.ID as AnimalID, a.ShelterCode, a.AnimalName, (select Case when b.value = '1' then 'Application Pending' when c.value = '1' then 'Adoption Pending' when a.IsNotAvailableForAdoption = '1' then 'Not Available' when d.value = '7' then 'Yes' else 'Available' end) as Status, (select Case when d.value = '1' then 'Yes' else 'No' end) as GuardianAngel, a.BreedName, sz.Size as SizeName, sx.Sex as SexName, a.weight ROUND(Weight, 2) AS Weight, a.AnimalAge, a.TimeOnShelter, (SELECT Name FROM lksyesno WHERE ID = a.Neutered) AS NeuteredName, (SELECT Name FROM lksynun WHERE ID = a.IsGoodWithCats) AS IsGoodWithCatsName, (SELECT Name FROM lksynun WHERE ID = a.IsGoodWithDogs) AS IsGoodWithDogsName, (SELECT Name FROM lksynun WHERE ID = a.IsGoodWithChildren) AS IsGoodWithChildrenName, (SELECT Name FROM lksynun WHERE ID = a.IsHouseTrained) AS IsHouseTrainedName, a.DisplayLocation, a.AnimalComments, sp.SpeciesName, additionalflags, (SELECT af.Value FROM additional af INNER JOIN additionalfield aff ON aff.ID = af.AdditionalFieldID WHERE aff.FieldName = 'DogBreed' AND af.LinkID = a.ID) AS DogBreed, (SELECT af.Value FROM additional af INNER JOIN additionalfield aff ON aff.ID = af.AdditionalFieldID WHERE aff.FieldName = 'DogHighEnergy' AND af.LinkID = a.ID) AS DogHighEnergy, (SELECT af.Value FROM additional af INNER JOIN additionalfield aff ON aff.ID = af.AdditionalFieldID WHERE aff.FieldName = 'DogIsPuppy' AND af.LinkID = a.ID) AS DogIsPuppy, (SELECT af.Value FROM additional af INNER JOIN additionalfield aff ON aff.ID = af.AdditionalFieldID WHERE aff.FieldName = 'IfGoodWithKidsType' AND af.LinkID = a.ID) AS IfGoodWithKidsType FROM animal a left join lksize sz on a.Size = sz.ID left join lksex sx on a.Sex = sx.ID left join species sp on a.SpeciesID = sp.ID left join additional b on a.id = b.linkid left join additional c on a.id = c.linkid left join additional d on a.id = d.linkid WHERE b.additionalfieldid = 3 and c.additionalfieldid = 4 and d.additionalfieldid = 1 and a.speciesid = 1 and Archived = 0 and HasTrialAdoption = 0 order by Status, AnimalName

@robinrt: 2019-07-25 08:26:56
--- a.weight ROUND(Weight, 2) AS Weight, --- is wrong, it's an expression and it should be just --- ROUND(Weight, 2) AS Weight, ---

@adoptamutt: 2019-07-29 20:24:03
I had to use: ROUND( CAST(a.weight as numeric), 2) as weight,


Removing Fields

@bcsave: 2019-07-19 17:37:13
Pre-Sales Questions: I am looking at the software for a rescue. As such, we wouldn't need or use many of the fields or menu items. Example: Animal Control - The whole thing could go away. How much, if any, ability is there to remove / hide menus and field which are not needed? Does it matter/change if it is cloud or self hosted? I understand it is open source, but I am not looking to change via extensive code edits. I am looking more for customization more in line with the forms.

@robinrt: 2019-07-19 17:41:10
Yes, many areas like animal control can be hidden, other areas include things like movements, lost and found reports, retailer animals, etc. There are quite a few specific fields that people don't always need and can also be turned off. The same items can be removed whether it's hosted or open source. There's documentation here on the items you can remove: https://www.sheltermanager.com/repo/asm3_help/options.html#remove


Vaccine Alerts

@shirj: 2019-07-15 23:17:29
How do I enter vaccines so they show up on the main page and alert me when they are due? Thank you in advance!

@robinrt: 2019-07-16 08:52:25
They should have a required date (ie. they're due) but no given date since they haven't been administered. The required date should be today or a date in the past for an alert to appear.


Server Migration Issues

@blackdogupya: 2019-07-15 09:22:51
Hi All, Just moving a server for a client and this was a big update. Initially running on Ubuntu 14.04 and not sure on the version of ASM. It's now running on Ubuntu 18.04 and the latest version of ASM3. I've imported the database but I'm seeing the following error: <class '_mysql_exceptions.OperationalError'> at /main (1054, "Unknown column 'il.SiteID' in 'field list'") Not sure what this means or where I should be looking. Any help would be appreciated. Cheers, Dave

@robinrt: 2019-07-15 09:27:14
Sounds like you need to run the database updates. Try logging out and back in to force the database updater to run. If that doesn't work, issue this query: --- DELETE FROM configuration WHERE ItemName='DBV'; --- then try again.

@blackdogupya: 2019-07-15 09:34:29
Okay, nearly there! Now I'm stuck in a login loop... Enter username and password, goes to /main then back to /login Tried a few times now.

@blackdogupya: 2019-07-15 09:38:33
This is from the logs: --- Jul 15 08:33:29 server-7 INFO xxx users.login dave logged in Jul 15 08:33:31 server-7 CRITICAL xxx Database.execute [Errno 13] Permission denied: u'/var/log/dbexec.log' File "/usr/lib/sheltermanager3/dbms/base.py", line 287, in execute#012 self._log_sql(sql, params) File "/usr/lib/sheltermanager3/dbms/base.py", line 470, in _log_sql#012 with open(DB_EXEC_LOG.replace("{database}", self.database), "a") as f: IOError: [Errno 13] Permission denied: u'/var/log/db$ Jul 15 08:33:31 server-7 CRITICAL xxx Database.execute failing sql: select count(*) from animal None Jul 15 08:33:31 server-7 CRITICAL xxx Database.query_tuple_columns (1146, "Table 'xxx.clinicappointment' doesn't exist") File "/usr/lib/sheltermanager3/dbms/base.py", line 754, in query_tuple_columns#012 s.execute(sql) File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 250, in execute#012 self.errorhandler(self, exc, value) File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 50$ Jul 15 08:33:31 s erver-7 CRITICAL xxx Database.query_tuple_columns failing sql: SELECT * FROM clinicappointment LIMIT 1 None Jul 15 08:33:31 server-7 CRITICAL xxx code.schemajs (1146, "Table 'xxx.clinicappointment' doesn't exist") Jul 15 08:33:31 server-7 CRITICAL xxx Database.query_tuple_columns (1146, "Table 'xxx.clinicinvoiceitem' doesn't exist") File "/usr/lib/sheltermanager3/dbms/base.py", line 754, in query_tuple_columns#012 s.execute(sql) File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 250, in execute#012 self.errorhandler(self, exc, value) File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 50$ Jul 15 08:33:31 server-7 CRITICAL xxx Database.query_tuple_columns failing sql: SELECT * FROM clinicinvoiceitem LIMIT 1 None Jul 15 08:33:31 server-7 CRITICAL xxx code.schemajs (1146, "Table 'xxx.clinicinvoiceitem' doesn't exist") Jul 15 08:33:31 server-7 CRITICAL xxx Database.query_tuple_columns (1146, "Table 'xxx.deletion' doesn't exist") File "/usr/lib/sheltermanager3/dbms/base.py", line 754, in query_tuple_columns#012 s.execute(sql) File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 250, in execute#012 self.errorhandler(self, exc, value) File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 50, in defa$ Jul 15 08:33:31 server-7 CRITICAL xxx Database.query_tuple_columns failing sql: SELECT * FROM deletion LIMIT 1 None Jul 15 08:33:31 server-7 CRITICAL xxx code.schemajs (1146, "Table 'xxx.deletion' doesn't exist") Jul 15 08:33:31 server-7 CRITICAL xxx Database.query_tuple_columns (1146, "Table 'xxx.lksclinicstatus' doesn't exist") File "/usr/lib/sheltermanager3/dbms/base.py", line 754, in query_tuple_columns#012 s.execute(sql) File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 250, in execute#012 self.errorhandler(self, exc, value) File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 50, $ Jul 15 08:33:31 server-7 CRITICAL xxx Database.query_tuple_columns failing sql: SELECT * FROM lksclinicstatus LIMIT 1 None Jul 15 08:33:31 server-7 CRITICAL xxx code.schemajs (1146, "Table 'xxx.lksclinicstatus' doesn't exist") Jul 15 08:33:31 server-7 INFO xxx users.logout dave logged out ---

@blackdogupya: 2019-07-15 09:53:49
Fixed that - apologies. Back to where I started: <class ‘mysqlexceptions.OperationalError’> at /main (1054, “Unknown column ‘il.SiteID’ in ‘field list’”) Ran the DELETE statement, found 1 row. Re-ran, 0 rows.

@blackdogupya: 2019-07-16 08:18:02
Little closer to working... Database has finally upgraded to 34002, now getting the following: <class '_mysql_exceptions.OperationalError'> at /main (1054, "Unknown column 'MediaMimeType' in 'where clause'")

@blackdogupya: 2019-07-16 08:35:55
Sorry, past that one now. Getting stuck on updating database to version 34021

@blackdogupya: 2019-07-16 09:42:50
Sorry for the ramblings to myself. Sorted it!


Bulk Change Animals

@sjras: 2019-07-13 18:10:50
Just wondering if in some future release it would be possible to be able to add "age group" "flags" and maybe "animal code" as include/exclude search criteria for the bulk change function? We just went thru to update adoption fees on our animals & staff noted that having those would have made life a lot easier since most things we want to bulk change would be covered by those categories. 🙂

@robinrt: 2019-07-14 15:54:54
Thanks, those are good suggestions. I'll put them on the dev list.


Document Storage Question

@pamd2dt: 2019-07-12 20:12:34
Does this system allow you to scan and image outside documents (vet records from another facility etc)? Is there a limit on cloud storage?

@robinrt: 2019-07-13 09:04:23
Yes you can. There aren't any hard limits and we use a clever compression algorithm to keep the space used by scans very small. We do charge an extra 15% on the subscription price once you store over 20GB. Lots of our customers hold many thousands of documents and are barely using 1GB, so the surcharge is really only for highly intensive use. We review this every year and there are also options for archiving and removing documents that are no longer relevant.


Room assignments

@cindiczyzakkaiser: 2019-07-12 02:13:23
Why are my unit assignments disappearing at different times??? I have cats that have been in the same unit for weeks and will come up with their unit missing. This is very frustrating and time consuming as I then have to go back and re-assign their unit.

@robinrt: 2019-07-12 09:03:36
It sounds like someone is removing the units from those animals. It's also possible that someone could be accidentally dragging and dropping those animals in shelter view? It's hard to say without more information. If you can find an animal where it's happened, take a look at the audit trail slider to see what changes have been made recently and by who, also have a look at the log as location changes are recorded under there (assuming you have the option on to record those changes to the log under Settings->Options->Defaults).


Invalid Login Information

@sharbear23: 2019-07-09 19:55:35
I keep getting an error that says invalid login for the username and password, I 'm trying to get my shelter set up with this program and yet to have succeeded. I've contacted support and haven't gotten an answer or a response yet, I've tried calling also!!! Thanks! Shar


Date processing on a report

@mdeprima1964: 2019-07-06 03:52:09
The current "Medical, Vaccination and Tests given between two dates" report requires that a begin and end date be entered. I want to change it so that it produces a daily (or weekly) report giving anything given in the last 1 day (24 hours) or 7 days. I'm not sure where to make the changes in the date input statement and I'm not sure how to account for the UK to US Central timezone differences (only necessary if I'm addressing part of this with the runtime of the report). Thanks! $VAR from DATE Enter from date$ $VAR to DATE Enter to date$

@robinrt: 2019-07-06 09:12:48
Remove the VAR lines from the top. Edit the three date filter clauses in each union query so that instead of saying AND x.Date >= '$@from$' AND x.Date <= '$@to$' they say AND x.Date >= CURRENT_DATE - INTERVAL '7 days' That will make the report run for the last 7 days. Change the 7 days to 1 day if you'd like it for 24 hours. I'm using x.Date as a placeholder, leave the real field name in each one instead of x.Date (amt.DateGiven, av.DateOfVaccination, at.DateOfTest)


Person Search Results not as expected

@mdeprima1964: 2019-06-25 23:34:10
Suddenly, team member A's "person" search doesn't return results as expected Team member A is trying to foster a kitten to team member B. Team member B doesn't show up in any search she employs. When I search, Team member B shows. Team member A and I have different security roles. However, this just started occurring and wasn't a problem a week ago. Thoughts?

@robinrt: 2019-06-26 19:28:23
Team member B has the "Staff" or "Volunteer" flags and team member A's user does not have the permission to view those types of person records. Grant those permissions to a role attached to team member A's user.

@mdeprima1964: 2019-07-01 23:00:04
Fixed!! Thx


Cant purchase software

@ekeough: 2019-06-24 17:03:29
Attempting to purchase the shelter program and it keeps declining the card info. We have checked and have more than the required amount but it still declines. Please let us know what we can do.

@robinrt: 2019-06-25 21:53:47
Hi, it's likely that your card issuers fraud prevention is stopping it. If you get in touch with your card issuer to let them know that you want to authorise the payment, they should allow it next time.


ASM Can't see database after mysql upgrade

@zanne67: 2019-06-24 15:40:27

@zanne67: 2019-06-24 15:44:38
Hi- we have our software hosted in dreamhost. Dreamhost upgraded to Ubuntu 18.04.2 LTS and upgraded MYSQL (I will check the version). Since the upgrade when we go to ASM it immediately asks us to create a new database as if we don't have one. Everything is correct it he conf file and it is reading the conf file because it is generating log data. Any ideas? Any easy fixes? The only thing we can think of is to back up our db, create a new one and import our data.

@zanne67: 2019-06-24 16:34:46
This is in the log file - where should MySQLdb be set and what value? (The person who normally handles this stuff for us is out of the country for 2 more weeks so any help would be appreciated as we are down!) 2019-06-23 19:30:37 CRITICAL hrn_as... Database.execute global name 'MySQLdb' is not defined File "/home/rabbitroot/asm.rabbitnetwork.org/public/dbms/base.py", line 278, in execute c, s = self.cursor_open() File "/home/rabbitroot/asm.rabbitnetwork.org/public/dbms/mysql.py", line 27, in cursor_open c, s = Database.cursor_open(self) File "/home/rabbitroot/asm.rabbitnetwork.org/public/dbms/base.py", line 146, in cursor_open c = self.connect() File "/home/rabbitroot/asm.rabbitnetwork.org/public/dbms/mysql.py", line 21, in connect return MySQLdb.connect(host=self.host, port=self.port, user=self.username, passwd=self.password, db=self.database, charset="utf8", use_unicode=True) NameError: global name 'MySQLdb' is not defined 2019-06-23 19:30:37 CRITICAL hrn_as... Database.execute failing sql: select count(*) from animal

@robinrt: 2019-06-26 19:29:31
You haven't installed the MySQL python module. If you're using Debian or Ubuntu, try apt-get install python-mysqldb

@zanne67: 2019-06-30 00:03:00
Thanks- it looks like when dreamhost did the upgrades they wiped out our virtualenv and the python module.


Need to speak to someone!

@lizmccauley: 2019-06-20 17:38:46
I have been trying to reach you through info and support emails. I have been using Shelter Manager and am now the director of a brand new shelter. I want to use Shelter Manager there as well, but I have few very important questions I need to get answered before setting up the software. Could someone please email me at liz@capecoralanimalshelter.com or call me at 239-850-2020.

@robinrt: 2019-06-20 17:43:29
Hi, thanks for getting in touch. I've found your messages, which Google had misfiled as spam, and sent a reply.


New Additional Field: SQL not finding data

@brownda4335: 2019-06-08 22:43:17
I have added an additional field: Name: ACO_TICKET_NUM Label: ACO Ticket Number Type: Number Link: Animal - Entry New Record: Yes Mandatory: No Searchable: Yes Index: blank Added ACO Ticket numbers on 10 Animal Entry forms as a test Created a new report and ran the SQL to retrieve this data with blank ACO_TICKET_NUMBER results: SELECT a.ShelterCode, (SELECT ad.VALUE FROM additional ad INNER JOIN additionalfield af ON af.ID = ad.AdditionalFieldID WHERE ad.LinkID = a.ID AND af.FieldName = 'ACO_TICKET_NUMBER') as ACO_TICKET_NUMBER FROM animal a What am I doing wrong?

@robinrt: 2019-06-09 08:02:12
The names don't match? You have ACO_TICKET_NUM for the name and NUMBER in the query?

@brownda4335: 2019-06-14 16:57:32
Oh my. Old eyes I guess. Thanks! Works!


Creating animal emblems

@jimdunne: 2019-06-07 13:34:15
I would like to add some animal emblems to our self-hosted instance of ASM, for things such as amputee, pregnant and so on. At present, I can choose from the drop down list of alphanumeric characters, but I would like to use my own icons. Where do I need to post the icons within ASM, and what size do they need to be please.

@robinrt: 2019-06-07 13:42:16
Emblems are restricted to alphanumerics at the moment. There isn't a way to set a custom icon.


Transfer from another shelter

@vancecounty: 2019-06-05 13:20:31
Is there a way to transfer an animal from another shelter that also has ASM directly into out system without me having to create a new animal?

@robinrt: 2019-06-05 13:23:05
Use Settings->Export animals as CSV. This will give you a file that you can import into the other system via Settings->Import a CSV file


New Pet Owner

@amycchs: 2019-06-04 15:33:53
I would like to find a way to flag new pet owners when entering in the adoption information so that I can later pull a monthly report and have a list for follow up. I am relatively new to the software. Does anyone have any suggestions? Is there a way to do a report with that information?

@robinrt: 2019-06-04 15:42:57
Sure, there are many reports that show that information. Try "Adoptions by Date with Addresses" and "In/Out". You can install new reports under Settings->Reports->Browse sheltermanager.com If you meant that you want to flag people who are owning a pet for the first time (not just adopters), then you could create a flag to do that under Settings->Lookup Data->Person Flags, assign it with the Flags field under the Type slider of the person record and there are reports you can use to find people with a particular flag, or use the Advanced Find Person search screen.

@amycchs: 2019-06-04 16:05:04
yes that is what i want. I figured out how to create the flag but now need to run a report. Thank you

@robinrt: 2019-06-04 16:34:05
Ok, the reports you want are all called "People with Flag" and they appear under the Mail menu so that you can contact those people by email or export their details for use with mail merging, etc.


Adding Digital Signature

@bmay1439: 2019-05-31 00:35:40
Is there a way to add a digital signature for a vet ?

@robinrt: 2019-05-31 09:35:46
If it's a fixed one, just add it as an image under Settings->Document Templates->Extra Images. You can then add it to your document template.

@mdeprima1964: 2020-01-02 08:46:58
I thought there was a way to actually capture the signature in shelter manager and use it from there?

@robinrt: 2020-01-02 09:51:13
Typically, vets signatures for rabies certs and things tend to be fixed images - it's simple and you don't have to get the vet to sign it every time. There are two ways to request signatures in a document. You can either have a signature on file associated with a user account (if your vet has a user account in your system) or you can request a signature by email or on screen. The info is in the manual here: https://sheltermanager.com/repo/asm3_help/documents.html#electronic-signatures


adding asilomar category under entry

@bmay1439: 2019-05-28 02:39:17
Can you add another category under the asilomar category in entry, we would like to specifically mark pregnant but don't see that option

@robinrt: 2019-05-28 10:03:39
If I'm understanding you right, no you can't add asilomar categories - there are 4 fixed ones defined by the asilomar accords foundation and they're used for generating asilomar figures. One way to add this might be as an animal flag (Settings->Lookup Data, Animal Flags from the dropdown at the top right). You can then mark it on animal records. Shelter view allows you to group animals by flag, so it would put your pregnant ones together. You could also create an emblem to go with the flag so that pregnant animals got a little icon everywhere they appeared (you can assign emblems under Settings->Options->Animal Emblems once you've added your flag). Another way might be to add pregnant as an animal type. This would be useful if you wanted to separate pregnant from non-pregnant intake in your year-end figures reporting.

@bmay1439: 2019-05-31 00:28:41
Ok, thank you for the explanation !


What movement type to use for "SVNR" cats?

@amybaron: 2019-05-26 10:27:29
We do medical treatment for lots of local cats in-house; they stay with us until they are better, then we vaccinate and desex, and return them to their "owner" ... sometimes an actual owner, but more often a community carer. I don't see an appropriate 'movement' to return these cats back to their owner? "Reclaimed" doesn't seem right.

@amybaron: 2019-05-26 10:40:07
and moreover, what movement to use if the cat comes back for a treatment stay again?

@robinrt: 2019-05-26 10:41:49
If they are not in the care of your shelter and you don't want them in your figures (ie. you only want them so you can mark that you gave them medical treatment) then you should create these cats as "Non-shelter". It's the tickbox at the top of the add new animal screen and can be set with the flags dropdown on existing records. It excludes an animal from all your figures and inventory and allows you to set the animal's owner (under the entry slider for existing animals).

@amybaron: 2019-05-26 10:44:58
they ARE in the care of the shelter, temporarily. they are treated as any other animal in our shelter. sometimes they even go into foster care for a while. the only difference: they are returned to their owners.

@robinrt: 2019-05-26 10:47:44
Then reclaim is the correct movement to use - it's any action that involves returning the animal to its owner. The question is whether you want the intake and reclaim of that animal to appear as such in your end of year figures reports. If you do, then use intake/reclaim, if you don't, use non-shelter.

@amybaron: 2019-05-26 11:05:11
what do i do if the cat returns for further treatment?

@robinrt: 2019-05-26 11:56:35
You can edit the reclaim movement and give it a return date (and reason) to bring the animal back in to the shelter. When it leaves again, create a new reclaim movement.

@amybaron: 2019-05-26 12:10:12
ill try all this then. thanks!!!


Parsererror when logging in from cell phone

@lialang: 2019-05-24 17:12:38
I am getting a ASM parsererror when trying to login from my cellphone. No matter what option I choose, desktop, smartphone or photo upload, I get the same error. I uninstalled and reinstalled the application but still have same error. Just started this last week, same Samsung Galaxy 8 phone I have been using for months.

@robinrt: 2019-05-24 17:14:43
Hi, this is a known bug - make sure your username or password does NOT contain any of these characters - & = # :

@lialang: 2019-05-24 17:15:00
no, just a space

@lialang: 2019-05-24 17:15:26
ah wait, password contains #. Will change it now. Thanks


Licenses Expiring Report

@ruskanimals: 2019-05-23 15:11:16
Is there an easier way to run a license expiring report besides running a report from last years expiration through this years expiration and manually removing the duplicates in Excel? No matter what report we run it doesn't seem to acknowledge licenses that have been renewed for this year already.

@robinrt: 2019-05-23 15:25:15
There should be. We've fixed up the existing reports to exclude people who already renewed. Reinstall them under Settings->Reports by deleting them and using Browse sheltermanager.com to reinstall. The report "Expired licenses" shows licenses to date that have expired without renewal as well.


Waiting List Reports

@kitten_division: 2019-05-19 18:42:10
Is there a current waiting list report? All I can find is "Waiting List Additions" and "Waiting List Removals." Neither are helpful, other than for us to print both lists so we can scratch out the removals from the additions report. Really just need the report to tell us who is still on the waiting list.

@robinrt: 2019-05-20 14:55:31
I don't think there is a report for the current waiting list. You can print the waiting list screen itself? You can print any ASM screen - just press CTRL+P

@kitten_division: 2019-05-21 18:25:16
Correct, you can print any screen. Doesn't mean it looks decent for a report though, especially since we can't control the colors on the urgency, or the column width. For the screen to print in normal black instead of shaded out, you have to go in to everyone on the wait list that is at urgent or high and change their urgency status to medium or lower.

@kitten_division: 2019-06-14 04:44:08
Since there isn't one, I created one. If anyone would like the report that prints only those currently on the waiting list, feel free to email me at KittenDivision@gmail.com


unadoptable

@tails: 2019-05-18 19:38:37
all our cats are listed in sheltermanger as unadoptable. We can't figure out how to change that status.


unadoptable

@tails: 2019-05-18 19:38:36
all our cats are listed in sheltermanger as unadoptable. We can't figure out how to change that status.


unadoptable

@tails: 2019-05-18 19:38:36
all our cats are listed in sheltermanger as unadoptable. We can't figure out how to change that status.


unadoptable

@tails: 2019-05-18 19:38:36
all our cats are listed in sheltermanger as unadoptable. We can't figure out how to change that status.


how to enter microchip for pet not in shelter

@bmay1439: 2019-05-18 03:20:48
We occasionally microchip pets for other people and would like a record in our database but these aren't our pets, how can we log this ?

@jgardynik: 2019-05-18 04:20:24
Create an animal record for them, attach them to the owner record, and set the flag "Non-Shelter". Add the microchip as normal.


How does the new image functionality work for online forms?

@adoptamutt: 2019-05-17 17:51:27
I've added an "image" field type to one of my on-line forms and now the user can browse out and add a record. Now for the questions: How do I bet the picture to attach to the person record when using the "Attach" or "Create" functionality when processing the on-line forms? Also will the picture(s) be attached to the email that is sent out (based on the 'Email submissions to' field) when the online for is received?

@candidhominid: 2019-05-18 00:13:24
You shouldn't need to do anything special to make the picture attach to the person or animal (I named the image field 'catphoto' in my test and it worked fine). In my test the image didn't appear in the 'Email submissions to' email, but it was added to the appropriate media tab, the document for the form created under the media tab, and the incoming form page.

@robinrt: 2019-05-19 11:46:19
Hi Karen, you had a fault in your online form header - without a closing </head> tag, the system can't inject the code for attaching images (adding this here in case it catches others out). I've also modified that functionality today so that images attached in online forms are included in the emails sent out as attachments since email clients seem very inconsistent in displaying them inline. For example GMail always shows the plain text version of the email even though a better HTML version with embedded images is available in the last multipart section and we're obeying the standard. Very annoying!


Owner Table Data being Overwritten

@carpenterbrice: 2019-05-16 16:46:45
I recently assisted a group in migrating their ASM3 ver39 to a new server with ASM3 ver41 installed. I posted previously asking about the preferred way to migrate the data from the existing instance into the new instance (which i knew was configured and secured properly). I thought i was able to resolve that on my own after a SQL Dump from the 39 instance and a restore of the DB on the 41 instance. All seemed to be great with testing, we flipped DNS for them and they started using the new instance. A few days in though they reported that all of the people in the platform had lost their flags and instead were all flagged the same with two of the custom tags they had created some time ago. After reviewing the system i have determined that if an ASM form is filled out, then a user goes to "view incoming forms" and clicks "Create"->"Person" if that person already existed in ASM it will overwrite the data in the owner table for all Flag related fields (and maybe others that i have not realized yet) for all records in that table. If the form had a person's name and contact info that matched info in ASM already and the user in the system already had a "banned" flag then every record in the owner table now is marked as "banned". I have started troubleshooting but it would be nice get a little guidance on any areas to check or look at in particular.

@jgardynik: 2019-05-17 04:32:22
This may be related to the issue I'm running into regarding ASM revamping their entire database layer and using parameterised queries that aren't typecasting IDs as ints properly. Can you enable the query log (`db_exec_log = /path/to/log` in asm3.conf) and reproduce the issue to see if you're getting update queries that look like "UPDATE owner SET var=value WHERE 12345 (instead of WHERE ID=12345)?

@robinrt: 2019-05-19 11:50:00
It sounds like it. The typecasting only appears to be necessary for the MySQL driver in certain situations. The fix is to either upgrade to the trunk, or to apply this patch to dbms/base.py https://github.com/bobintetley/asm3/commit/953f84ed78d2df5249c509679eacc20d07a5c777

@carpenterbrice: 2019-05-20 15:14:05
I have been busy on other projects but I was able to review both of your repsonses. Thank you both for your time. I reviewed the patch details for base.py on github and I applied the update to their local file for base.py. I have not done any thorough review yet, but at first quick review the action of “creating a person” on incoming forms is no longer overwriting data if the person exists. I will hopefully get time this afternoon to review further and reply back with more detailed results or findings.

@carpenterbrice: 2019-05-21 02:13:55
I have reviewed the logs now and I have tested pretty thoroughly with variations of creating/updating people from the incoming forms, the person tabs, and the main menu.. All appear to be behaving as expected now. I was able to restore the data they had from their previous ASM3 v39 installation that i have backed up and it has stayed there throughout all of the testing. Of course data that was only held in this ASM3 v41 instance from the past week of so that was overwritten is gone from the DB and will have to be manually reentered from forms attached to the users (some home phone numbers mainly). Glad we could catch this relatively early and that you were able to assist with a fix. Thank you Robin and jgardynik for the help.


Unique animal intake report?

@jamiepea: 2019-05-15 18:16:32
Hello all. I need to regularly run a report that shows unique animal intakes by code. So, if an animal is taken in, adopted out, and returned, I don't want to count it twice. Is there an existing report that does this? Thank you!


Unique animal intake report?

@jamiepea: 2019-05-15 18:16:32
Hello all. I need to regularly run a report that shows unique animal intakes by code. So, if an animal is taken in, adopted out, and returned, I don't want to count it twice. Is there an existing report that does this? Thank you!

@heyjay: 2019-05-17 19:12:41
Did you try the Intakes by Date with Outcome report in the Auditing section?


What to do with future vaccines after adoption?

@amybaron: 2019-05-14 16:43:20
If an animal is adopted during its vaccine course, how are people handling the future vaccines? I dont need them to pop up in my vaccine to-do list. Should I just delete the future records?

@heyjay: 2019-05-17 19:03:49
Go to Settings>Options>Medical tab and uncheck the "Include off-shelter animals in medical calendar and books box." (If checked, animals with outstanding medical/vacc/tests that have left the shelter will be shown in medical books and the medical calendar.)

@kitten_division: 2019-05-19 18:39:41
We delete the future records when they show up in our vaccine list. Since we offer services to the public (non-shelter) animals, we need our original reports to show the vaccinations for off-shelter animals.


sql_date function default wrapping params in quotes breaking queries

@jgardynik: 2019-05-14 12:36:27
I recently updated to ASM 41 and am finding that there are some queries that are broken. This may also have to do with upgrading the underlying Debian packages to newer versions which are more strict about extra quotes. The function to get the stats on the home page is returning wrong results because by default `animal.get_stats()` sends the date through `dbo.sql_date()`, which is putting quotes around the python date (wrapParens=TRUE by default). This causes ASM to throw an error like: /usr/lib/sheltermanager3/dbms/base.py:532: Warning: Incorrect datetime value: ''2019-05-13 00:00:00'' Changing the named_param "from" to statdate instead of countfrom fixes it for me. If I don't do that, it gets the all time numbers, which are obviously very inflated for "this week". The same problem is happening to the timeline because it wraps the endoftoday variable. This returns no results now. Here is my environment: Debian 9.6 MariaDB 10.1.37 Python 2.7.13 ASM 41 (.d eb package) I did try to switch to python 3 to see if maybe that would fix it, but that's completely broken because htmlentitydefs was renamed.

@jgardynik: 2019-05-14 13:43:31
I would like to note that I can also set the wrapParens parameter to 0 in both `animal.get_stats()` and `animal.get_timeline()` for the `dbo.sql_date()` calls.

@robinrt: 2019-05-19 11:56:37
It should be statdate being passed - countfrom is old code from before the days of parameterised queries and should no longer be there. The sql_date wrapper around endoftoday also wants just removing. Thanks for finding that. I find it really odd that postgres didn't throw any errors! I've committed a fix now.

@carpenterbrice: 2019-05-21 02:16:21
I also reviewed and applied your latest commit related to this issue that i was seeing as well in ASM3 v41 and can also verify that it fixed out stats and timeline sections on the home dashboard.


Extract all owners with email addresses

@jkittle: 2019-05-13 18:31:25
Trying to create a report that will give me a cvs file for all owners that provided email addresses. Tried using WHERE o.emailaddress IS NOT NULL and it gave me both blank and ones with emails. Tried using WHERE o.emailaddress contains '@' and gave me no records Tried using WHERE o.emailaddress like %@% and gave me no records.

@jgardynik: 2019-05-14 12:51:35
Either of these should work: `SELECT * FROM owner WHERE emailaddress != '';` `SELECT * FROM owner WHERE emailaddress LIKE '%@%';` You have to put quotes around the LIKE phrase.


Best Way to Migrate Data

@carpenterbrice: 2019-05-07 05:25:34
What is the best way to move all of the data (animal/person history, images, forms, etc from a currently running hosted instance of ASM to a new instance? Main goal is to migrate a groups current instance to a server that i know is upgraded and maintainable. I stood up a brand new instance of ASM and it works great but getting the data from their current ASM 39 version to this new version is not playing nice. CSV exports/imports seem to be missing a lot of the data (unless i am just missing something obvious) & i tried

@carpenterbrice: 2019-05-07 06:10:34
Ok I may have figured this out with the good old "restart" everything cure. After restarting the server, and the services the application just started working and has all of the old data on the new upgraded instance. Is there anything i should be looking out for though? I am starting to QA things now (fingers crossed looking good).


Expiring Litters

@debbysimpson: 2019-05-06 18:29:30
I have added several litters without Expiry Dates, but somehow the dates are added and the litter gets grayed out. It won't let me edit/remove the date. Has anyone else experienced this, and if so, how do you get around it?

@candidhominid: 2019-05-07 02:09:08
Make sure the kittens are under 6 months old. Litters expire when either all the animals have been moved, an expiry date has been manually set, or all the animals in the litter are over 6 months old.


QR code in documents

@jimdunne: 2019-05-04 18:39:13
Is it possible to add QR codes into document templates, if so, how please.

@robinrt: 2019-05-08 15:32:37
You can use <<DocumentQRLink>> to get a QR code that links to the animal's record. You could also just add an image and use the Google QR library as your source to put any data you like in a QR code. https://developers.google.com/chart/infographics/docs/qr_codes

@jimdunne: 2019-05-09 10:17:02
Thanks for that, I had read through the wordkeys looking for QRcode, but obviously missed it.


Maps

@jimdunne: 2019-04-29 16:46:49
I'm having an issue with maps in that when I create a person, the map shows them off in the middle of the sea somewhere. Having done a bit of playing around I have noticed that if I remove the data from the County (Dorset) the map shows the address correctly, as soon as I enter Dorset into the County field, it reverts back to being in the middle of the Pacific - any ideas??

@robinrt: 2019-04-29 18:21:21
are you supplying a postcode? The geocoder works a lot better with postcodes, I'd guess the issue is that the county doesn't match the rest of the address.

@jimdunne: 2019-04-29 19:22:44
Yes full address with postcode, and there's no ambiguity with the County, i.e Hants/Dorset border, I'll whack a couple of screenshots up shortly.

@jimdunne: 2019-04-30 11:46:55
The only difference in the address is County field filled out or empty. [Screenshot from 2019-04-30 11-45-08](//muut.com/u/sheltermanager/s2/:sheltermanager:7rau:screenshotfrom20190430114508.png.jpg) [Screenshot from 2019-04-30 11-44-51](//muut.com/u/sheltermanager/s2/:sheltermanager:spRS:screenshotfrom20190430114451.png.jpg)

@robinrt: 2019-05-01 09:11:15
Are you running your own ASM install? I've just realised this isn't a problem with sheltermanager.com as we run our own geocoding service for customers, which is backed up by the full UK postcode database and a good geocoding service that we pay for as a company. If you're using your own open source installation, the default is to use the Nominatim service from OpenStreetMap for geocoding (it's free and open source). Results can be a bit spotty and hit and miss with it. You can test it by visiting http://openstreetmap.org - it's the engine that resolves addresses on their map. If I search for just that postcode on their site, it works. If I search for the address and use Dorset as the county with the postcode, it doesn't. You can use Google Maps for better accuracy if you want to set up a developer account with them and get an API key (configure it in the asm3.conf file). Watch out though, it can get expensive if your usage gets above the free tier.

@jimdunne: 2019-05-01 12:56:48
I am running my own installation of ASM on Ubuntu. I have a Google API key for maps, so I might give it a go, but now I know the problem appears to be with the County field, I'll just leave it blank for now and see how it goes. Cheers!


Additional fields

@srupe05: 2019-04-29 14:22:29
Not sure if it would be possible to allow additional fields to be marked inactive instead of completely deleting them. We have numerous additional fields that are not currently needed (but could possibly in the future). I also am not sure I want to loose the data connected to those fields for old records they were used in. Thanks!

@robinrt: 2019-04-29 18:21:53
thanks, that's a good suggestion for the future. I'll raise that for development.


Dependent Drop down in Online Forms

@cchambers: 2019-04-22 16:05:35
Is there any way to make a drop down dependent on previous selections in online forms? For example, I use lost animal forms and when someone selects the animal's species, it still shows breeds from every species, which is a little confusing. I'm currently using "ASM 42u".

@robinrt: 2019-04-22 17:08:33
Not without coding it yourself in javascript I'm afraid. There are development plans to allow the ability to hide fields based on response values in future, but not limiting dropdowns in this way, although I suppose if you had few species values, the proposed feature would allow you to have 2 or 3 different breed fields with different selections that you showed based on the value selected. It would not be dynamic and based on the internal lookups though.


Default Password for Desktop Version (ASM2)

@mdeprima1964: 2019-04-21 13:22:34
We're using Shelter Manager's hosted version for the rescue I volunteer with, but I've used the free desktop version for years to track the vaccinations and medical (and a few other things) for my own pets. Clearly I'm getting old.... I need to add a new pet and I can't remember the default signon and password! I never changed it, can someone tell me?

@jimdunne: 2019-04-21 18:58:54
letmein if I remember correctly

@mdeprima1964: 2021-03-07 23:01:28
Anyone remember the user login? I thought it was "User" but apparently not.

@tristana: 2021-03-08 07:40:30
Do you use a demo version? demo of ASM the login account "demo", username "demo". Username is normally country.

@robinrt: 2021-03-08 09:30:37
If you have a sheltermanager account, there is no default password, each account has a unique account number and generated password. If you visit https://sheltermanager.com/my/forgotten you can enter your account number to get a reminder sent to the email we have on file.

@mdeprima1964: 2021-05-09 03:19:27
To clarify, this is the ASM2 version that you download to your pc. I'm pretty sure the password is Letmein, but apparently I am not trying the correct combo of username and password. I thought it user and letmein

@robinrt: 2021-05-09 08:59:29
That's correct, it is user / letmein assuming they were never changed. Both are lower case. There's also a procedure for resetting the password here under the section "I've forgotten my password can I reset it?": https://sheltermanager.com/site/en_faq_asm2.html

@mdeprima1964: 2021-05-24 15:51:25
Thank you!


Donor flag report

@heyjay: 2019-04-17 19:42:22
We flag donors and were wondering if there's a report available that includes the date when that flag was set.

@robinrt: 2019-04-18 09:02:38
There isn't as that data is not kept I'm afraid.


Adoption by Date with Fee

@karenpo: 2019-04-17 15:39:44
Is there another report that I can use to show donations received for an animal adoption? We us the ADOPTION FEE field on the Animal Details screen as a guideline only and often get more than one donation for an adoption.

@heyjay: 2019-04-17 18:57:55
I think that's the price of the animal's adoption. I would create a donation payment type and add donations under the payment type for the animal's record.


Changing age groups. Retroactive?

@jamiepea: 2019-04-17 05:17:42
Hello all. I recently changed our age groups definitions (Settings>Options), with the plan of running reports to meet our needs. I was surprised when the report I tested (Adoptions by Age Group) still showed the old age groups. Are the new age groups not automatically reflected in the existing animal records? If not, is there a workaround?

@robinrt: 2019-04-17 09:17:28
Use Settings->Trigger Batch Process->Recalculate ALL animal ages/times


Linking incident reports

@vsauder: 2019-04-12 16:11:23
It would be helpful to have a way to link incident reports together. We often have repeat calls with only a City block or neighborhood area. If we are tracking wildlife issues, stray dogs that are difficult to locate, or cat issues it would be nice to look at all calls taken concerning the issue.

@robinrt: 2019-04-17 09:19:22
There isn't a way to do that as standard, but you could create an additional text field to assign a shared code to those incidents. Searching for the code would bring up the incidents with that code. It's a bit clunky though and I'll add something to list to investigate a nicer solution in future.


Keep incoming forms a little longer?

@jamiepea: 2019-04-10 04:01:37
Is there a setting by which I can tell ASM to keep my incoming forms for four or six weeks? Often it takes longer than two weeks for people to complete our foster application process.

@robinrt: 2019-04-10 09:35:17
Hi, incoming forms is only a holding area to make sure people aren't filling your database with junk. It shouldn't be used to hold applications until they are complete - once you've verified the application is legitimate, create the person record so that the form is permanently preserved before the 2 weeks is up. You can also use the "reserveanimalname" field feature to have a form create an application/reservation to the correct animal automatically when you process the form and then use the Reservation Book screen to view and manage all your current applications with their statuses.

@adoptamutt: 2019-04-10 14:03:54
We created a "Fosterer Applicant" flag that we specified be automatically added at the time the application is originally processed. Once they have been approved as a Foster, we then change the flag.


Historical inventory?

@jamiepea: 2019-04-10 03:58:57
Hi there. Is there any way to query the database for a historical inventory as of a certain date?

@adoptamutt: 2019-04-10 04:40:53
There is a “Shelter Inventory at Date” report under System > Reports > Browse Sheltermanager.com

@jamiepea: 2019-04-10 05:22:53
Thank you!


Emails list off ASM

@cassiec: 2019-04-09 16:50:37
Wondering how to get adopters emails off ASM and onto an excel spread sheet. I found the volunteer email list and the membership list but not a list for adopters. Does any one know how to do this?

@adoptamutt: 2019-04-09 17:10:47
Go to Settings, Reports, Browse Sheltermanager.com There is a Mail Merge report for that there.

@cassiec: 2019-04-09 17:25:03
Thank you


public report

@bramuno: 2019-04-09 01:20:45
I have a report that displays the names and images of certain animals. However, when the browser session expires, the images won't load. I have to login again to get them to load. I am currently using the URL login method: ..service?method=html_report&account=XXXX&username=XXXX&password=XXXX& title=REPORTNAME. I thought this would work but on a new browser session the images don't load despite the login info being passed in the URL. Is there a way to make a particular report public so that it does not require logging in to see it? or is there a way to keep my session active indefinitely?

@robinrt: 2019-04-10 09:07:41
Use the animal_image service call to build a URL to the photos instead of image?X or {IMAGE.ID} - that way you don't need an active session and anyone can view the images. https://www.sheltermanager.com/repo/asm3_help/service.html#animal-image

@bramuno: 2020-05-03 07:08:57
ok so maybe im missing something but i dont think this is possible. the ASM report is dynamic as its queries a list of locations and then displays certain info about the animals in each location. each day the locations have different animals, so i need a way to pull that data in order to use the animal_image API call.

@robinrt: 2020-05-03 09:19:48
You can put the call in the report, edit the $$BODY section and put the service call in the src attribute of the img tag and fill in the ID from the report data. Eg: --- <img src="//myserver/service?method=animal_image&id=$ID" /> --- This is something we could very easily fix though as we have code dedicated to reading reports, forms and emails that translates the relative image links to service call links automatically. I've added that to the code now for html_report calls in future.

@bramuno: 2020-05-03 18:49:11
ok that did it. i thought i was going to need a session to get the animal ID but you were correct. thanks for the help


Soft release

@jimdunne: 2019-04-08 16:33:35
Has the option for soft release been added to released to wild yet? We have 97 hedgehogs ready to go back to the wild, with many in soft release pens already, but I can't find anywhere to add soft release to their record.

@robinrt: 2019-04-08 16:45:02
Not yet, it's really high up the list though and should be done in the next week or so.


Upgrade to ASM3_42

@glherriott: 2019-04-08 11:24:25
Hi all, I've tried searching the various forums for this and unfortunately I can't find a solution. I'm trying to upgrade from ASM3_40 to ASM3_42. I tried the usual apt update/apt upgrade but there is always an issue trying to resolve the public.sheltermanager.com repository. I then tried to download the latest files from github and install from the .deb file. This just wrote over everything and I had to start from setting up the databases again! (Thankfully I had done a backup!) Is there anyway to do an upgrade in place? Many Thanks in advance.

@robinrt: 2019-04-08 12:25:14
You should be able to install the new deb file as you've done, then update the config in /etc/asm3.conf to point your existing database. After that, ASM will take care of any database upgrades when you next login.

@glherriott: 2019-04-08 15:57:55
Thanks, I've managed to complete the upgrade now.

@jensfissenebert: 2021-05-18 13:17:20
Hello Robin, Is there no other way to upgrade to 43? I am having the same issue and didn't manage to get it done the way you mentioned above. I am facing Apache issues than somehow


Payment plans

@vsauder: 2019-04-05 16:48:02
Not sure if anyone else takes in payments on amounts owed. It would be helpful to have a way to enter cost items (such as boarding, citation costs, etc.) and then have the payments decrease this total amount to show what is owed vs. what has been received. With these cost, citation, and payment fields not working together and when we accept payment plans it can be confusing. If you have work around suggestions please let me know.


Costs Search

@bmay1439: 2019-04-05 02:52:13
Is there a way to search the costs of a certain item. Example; how much did we spend on rabies vaccines for the entire year on all animals ?


Petco report figures

@bmay1439: 2019-04-05 02:50:42
Where is the "Total spay/neuter surgeries during the year" figure coming from on the Petco report ?


Board and Food

@jimdunne: 2019-04-03 15:55:54
Is there something that needs to be switched on to show board and food costs? When I run a cost report e.g. Cost Breakdown by Animal, only some animals show a cost for board and food, and I cannot for the life of me find anything different in the files if I compare one that does with one that doesn't.

@robinrt: 2019-04-03 16:11:03
It's only shown for current on-shelter animals and those that have a non-zero value in the daily boarding cost field on their cost tab.

@jimdunne: 2019-04-03 16:30:36
Got it - thanks!


Report error on local install

@linnm: 2019-03-31 11:30:51
We have asm3 on a local server and I want to install reports. But when I try to browse them from sheltermanager.com I get internal server error. So i tried to just copy one of the reports from the editing page in the demo, but when I try to generate a report from that I get "Validation Error Reports must be based on a SELECT query." What could cause this problem? When I press syntax check in the editing page it says everything is fine. Is it something I need to change with our install?

@robinrt: 2019-03-31 11:38:51
Hi, what is the error message in your webserver logs when you try to browse the reports? Verify that URL_REPORTS in your sitedefs.py is set to an https URL to reports.txt on the sheltermanager webserver.


Accidentally deleted medical treatments

@jewing: 2019-03-30 00:25:21
Hi! Is there a way to restore medical treatments that were mistakenly deleted?

@robinrt: 2019-03-30 08:28:21
Not from within the system, no, the only option is to restore them from a backup. Undelete is something we're looking at in a future release. This the main reason why must unprivileged user roles (like staff) don't have delete permissions. If you're a sheltermanager.com customer, we keep extensive backups. Get in touch with us at help@sheltermanager.com with your account number and what was removed. We should be able to restore the records for you.


deceased animals

@laubot: 2019-03-29 08:58:43
I use ASM to maintain records for a zoo and oranise my animals by species is there a way to make deceased animals visible all the time. I still need to be able to access them regularly. Thanks.

@robinrt: 2019-03-29 10:05:24
Hi, I'm assuming that you're talking about when searching from the advanced find animal screen? If so, yes, you can - turn OFF the option Settings->Options->Find Animal/Person->Advanced find animal screen defaults to on shelter When you do that, it makes the location box on find animal default to (all) and automatically sets "Include deceased animals" in the filter list.

@laubot: 2019-03-29 11:47:23
Thanks, is there a way to still have them showing without having to search individuals? [Picture1asm](//muut.com/u/sheltermanager/s3/:sheltermanager:nbDB:picture1asm.png.jpg) for eample I have my animals listed by species, if one of those were to die could i still have the record showing with the others?

@robinrt: 2019-03-29 13:26:37
no, sorry - you cannot show deceased animals in the list of active animals in care. They can be found quickly by name and code from the search box at the top. Why would you need them to be accessible in shelter view? How often are you accessing deceased records and why?

@laubot: 2019-03-29 14:23:58
Ok thank you.


Shelter View

@jimdunne: 2019-03-28 20:18:55
Is it possible to change colours on the shelter view? We have several incubators/ICU's that I would like to make prominent on the shelter view screen - is that possible?


Lost and Found

@bkrodle: 2019-03-28 14:37:26
Is there anyway for the lost and found search to just return results for animals that are currently in the shelter? When I go to the match lost and found I get hits for animals that have already left the shelter. We get so many reports of lost animals it would be easier if it only matched to current inventory.

@robinrt: 2019-03-28 14:50:19
The shelter inventory matches look for animals that are on shelter, or were transferred, escaped or were released after the lost date. Have you done something like creating an internal location for adoptions instead of using movements so none of your animals are really leaving the shelter?

@bkrodle: 2019-03-28 16:13:06
Ok. I didn't realize it matched from transfers. Those are the numbers showing up in the search. Thanks! Love the program by the way.


Person Comments section

@gailsexton: 2019-03-25 09:15:09
I am adding a few bits of data for a person record in the comment section but want to have a new line to make reading it easier. Does anybody know how to get the data to be on a new line in the comments section?

@robinrt: 2019-03-25 09:25:12
You can just press return. Are you looking at a report or using a template that's removing the new lines after or something?

@gailsexton: 2019-03-25 09:39:24
I'm just creating records for all our volunteers. It's in the header part of the person record it just all wraps around. any way to split it up a bit there?

@robinrt: 2019-03-25 09:49:07
No, that's deliberate - putting line breaks in the banner at the top would break the layout of the form. It's only to give a flavour of any import info. The banner comments are also limited to 100 letters.


Search only displays 43 results

@glherriott: 2019-03-22 19:39:10
HI everyone. For some reason, all of a sudden, when doing a person search (with empty parameters) in order to display all person records I am now only receiving the first 43 results. I used to receive all records. Is there a setting somewhere dictating the amount of search records to return? Many Thanks in advance.

@robinrt: 2019-03-22 19:40:42
There's always been a limit of 1,000. I have no idea where 43 could be coming from. Why would you regular search all person records ever? Is your browser's autofill feature putting something in one of the search boxes maybe?

@glherriott: 2019-03-22 20:06:36
I've checked for any autofill but couldn't see any. Sometimes some of the staff like to do that to see how many people are on the system etc.

@glherriott: 2019-04-03 21:51:55
Sorry to keep pestering on this subject but I'm getting a lot of people asking me to try and fix this issue... I still only get 43 results (all beginning with 'A') on a blank person search. I've just done another search with the word 'Kent' in the County contains box' and I only get 31 results with only the 'A's and 'B's' (firstnames) being returned yet I know through reports that there are a whole lot more than this. Is there a way for me to refresh the database somehow or clean the data or something? I'm at a bit of a loss! It's only recently started happening. Thanks again in advance for your help. I really do appreciate it.

@robinrt: 2019-04-04 08:40:57
are you a sheltermanager.com customer? Drop us a line at help@sheltermanager.com with your account number and we'll take a look. If it's ASM3 open source, could you paste the address bar URL of the person find results screen? It contains an encoded version of the search and it does sound very much like autofill putting something in one of your name boxes prior to the search. Thankfully, no-one else is reporting this as a problem.

@glherriott: 2019-04-05 09:54:53
Thanks for replying so quick. I'm not a customer I use the ASM3 open source. The URL after doing a person search is:- http://box.pawprints2freedom.co.uk:5000/person_find_results?mode=ADVANCED&county=kent&jurisdiction=-1 I can't see anywhere where there is some autofill being put in. This above search returns 32 results showing just people with first names beginning with 'A' and about 4 people with first names beginning with 'B'. If I do a blank person search which used to bring up all 1000 results (we have many more but I know there is a 1000 person result limit) I only get the first 43 in alphabetical order. The result URL for that is: - http://box.pawprints2freedom.co.uk:5000/person_find_results?mode=ADVANCED&jurisdiction=-1 I tried removing jurisdiction=-1 and get the same result. Hope you can see something obvious that I'm missing! Many Thanks in advance.

@robinrt: 2019-04-05 11:33:00
Ok, what version of ASM3 do you have? Here are some other things that might cause it depending on updates: 1. Your user doesn't have the "View staff person record" or "View volunteer person record" permission and the flag is null in your database. Try logging in with a super user (disregard if you already are). 2. The SiteID value on your person records is null and your user is set to a non-zero value. Fix with this query at Settings->SQL Interface: --- UPDATE owner SET SiteID = 0 WHERE SiteID Is Null ---

@glherriott: 2019-04-05 11:44:20
Hi, I ran the SQL query above. (0 rows affected). then tried the searches again and I still have the same results. I am logged in as the system admin. I'm running ASM3_40.

@robinrt: 2019-04-05 11:46:47
If you run some queries to search people records directly, what do you get? --- SELECT COUNT(*) FROM owner --- --- SELECT ID, OwnerName, OwnerAddress FROM owner ORDER BY ID ---

@glherriott: 2019-04-05 13:19:59
With the first query I get 3880. With the second I get 3938 rows returned.

@glherriott: 2019-04-08 11:25:18
Anymore thoughts on this one Rob? I'm currently trying to upgrade to v 42 but I'm having issues just doing that at the moment (probably my fault!).

@robinrt: 2019-04-08 12:25:59
42 isn't actually released yet, so I guess you're trying to update to 41? Let's get that sorted and see if it fixes the search issue as that code was rewritten in 41.

@glherriott: 2019-04-08 16:01:16
Hi there, I've managed to upgrade, when I create the .deb file it definitely says version 42! After the upgrade I restarted everything and I still have the same issue with the search results :( We are looking to move over to your paid system now as I am unable to keep up with everyone's requests. Am I able to export the DB entirely in order to be able to import into a new account on your hosted system? If so, what is the best way to do this as it is a large DB and I don't want to mess it up! Many Thanks

@robinrt: 2019-04-08 16:29:43
Oh, you've downloaded the source and are building your own deb file. That's a bit hardcore for most, well done! There are multiple ways to do a person search. What happens if you enter this into the search box at the top? It should also do a blank person search. --- p: --- If you do want to move to sheltermanager.com, we can take a MySQL dump of your database and will handle import for you.

@glherriott: 2019-04-08 16:31:56
If I do that in the main search box on the main page I just get the same 43 results :(

@glherriott: 2019-04-08 16:32:27
I've just signed up. so will do a SQL dump now and when the account is setup will go through getting that imported. Thanks for all your help anyway!


localhost/asm

@goldmoon: 2019-03-22 04:19:02
I managed to get everything installed and the database populated. Now when I go to localhost/asm (using my url), the browser jumps to http://localhost:5000/main and gives the error: Hmmm...can’t reach this page Try this Make sure you’ve got the right web address: http://localhost:5000 Search for "http://localhost:5000" on Bing Refresh the page Details There was a temporary DNS error. Try refreshing the page. Error Code: INET_E_RESOURCE_NOT_FOUND I am at a complete loss. I know that the reason is apache is not using wsgi, however I checked and apache shows no errors and the wsgi mod is enabled. Sheltermanager3 starts up fine as well. It would be much appreciated if you can toss some ideas my way. Thank you so much!

@robinrt: 2019-03-22 08:40:12
Your browser is redirecting to localhost:5000 which won't work since you don't have ASM on your local computer. Are you actually visiting http://1.2.3.4/asm ? where 1.2.3.4 is the remote IP address of your server?

@goldmoon: 2019-03-22 14:41:22
No. I'm visiting http://my_domain.com/asm and it redirects me to http://localhost:5000/main. It's a VPS that I am using. Sheltermanager3 is definitely running: ● sheltermanager3.service - Animal Shelter Manager Loaded: loaded (/etc/systemd/system/sheltermanager3.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2019-03-22 09:38:54 CDT; 52s ago Main PID: 13340 (python) Tasks: 11 (limit: 2367) Memory: 56.9M CGroup: /system.slice/sheltermanager3.service └─13340 /usr/bin/python code.py 5000 I restarted apache and sheltermanager3 several times just to make sure.

@robinrt: 2019-03-22 14:43:29
Can I see your Apache config?

@goldmoon: 2019-03-22 16:28:29
Absolutely! root@furbaby911:/etc# service sheltermanager3 status ● sheltermanager3.service - Animal Shelter Manager Loaded: loaded (/etc/systemd/system/sheltermanager3.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2019-03-22 09:38:54 CDT; 2min 39s ago Main PID: 13340 (python) Tasks: 11 (limit: 2367) Memory: 56.9M CGroup: /system.slice/sheltermanager3.service └─13340 /usr/bin/python code.py 5000 Mar 22 09:38:54 furbaby911.furbaby911.com systemd[1]: Started Animal Shelter Manager. Mar 22 09:38:54 furbaby911.furbaby911.com python[13340]: config: /etc/asm3.conf root@furbaby911:/etc# cd apache2 root@furbaby911:/etc/apache2# nano apache2.conf Error in /root/.nanorc on line 1: Unknown option "const" GNU nano 3.2 apache2.conf # (the actual bytes sent including headers) instead of %b (the size of the # requested file), because the latter makes it impossible to detect partial # requests. # # Note that the use of %{X-Forwarded-For}i instead of %h is not recommended. # Use mod_remoteip instead. # LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %O" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent # Include of directories ignores editors' and dpkg's backup files, # see README.Debian for details. # Include generic snippets of statements IncludeOptional conf-enabled/*.conf # Include the virtual host configurations: IncludeOptional sites-enabled/ # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

@robinrt: 2019-03-22 16:31:46
Sorry, not the generic bit - the file where you added the WSGI directives. Which file did you add it to? It should have been either a new file or the existing default.conf in /etc/apache2/sites-available

@goldmoon: 2019-03-22 16:50:33
Oops, sorry. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost> WSGIScriptAlias /asm /usr/lib/sheltermanager3/code.py/ WSGIPythonPath /usr/lib/python2.7:/usr/lib/python2.7/dist-packages:/usr/lib/shelterma nager3:/usr/lib/sheltermanager3/l$ Alias /asm/static /usr/lib/sheltermanager3/static AddType text/html .py <Directory /usr/lib/sheltermanager3> Require all granted </Directory> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

@goldmoon: 2019-03-22 17:22:43
Sorry, that's only partial. Here is the entire thing. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost> WSGIScriptAlias /asm /usr/lib/sheltermanager3/code.py/ WSGIPythonPath /usr/lib/python2.7:/usr/lib/python2.7/dist-packages:/usr/lib/shelterma nager3:/usr/lib/sheltermanager3/locale Alias /asm/static /usr/lib/sheltermanager3/static AddType text/html .py <Directory /usr/lib/sheltermanager3> Require all granted </Directory> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

@goldmoon: 2019-03-27 17:26:50
Do you have any idea what could be wrong?

@robinrt: 2019-03-27 17:43:49
Not sure if it's copy/paste but your WSGIPythonPath should be all on one line and looks like you've got a space that shouldn't be there in shelterma nager3

@goldmoon: 2019-03-27 19:27:47
It's just the copy and paste. There is no space in the original.

@robinrt: 2019-03-28 09:22:05
Ok, which file did you put the config in? default or default-ssl? If it was ssl, do you have mod-ssl enabled and is the site enabled? --- a2enmod ssl a2ensite default a2ensite default-ssl ---

@goldmoon: 2019-03-28 20:26:03
The file is 000-default.conf that I put the config in. Here is my mods-enabled: /etc/apache2/mods-enabled# ls access_compat.load cgi.load mime.conf reqtimeout.load actions.conf dav_fs.conf mime.load rewrite.load actions.load dav_fs.load mpm_prefork.conf setenvif.conf alias.conf dav.load mpm_prefork.load setenvif.load alias.load deflate.conf negotiation.conf socache_shmcb.load auth_basic.load deflate.load negotiation.load ssl.conf auth_digest.load dir.conf passenger.conf ssl.load authn_core.load dir.load passenger.load status.conf authn_file.load env.load php7.0.conf status.load authz_core.load fcgid.conf php7.0.load suexec.load authz_host.load fcgid.load proxy.conf wsgi.conf authz_user.load filter.load proxy_fcgi.load wsgi.load autoindex.conf headers.load proxy.load autoindex.load include.load reqtimeout.conf /etc/apache2/sites-enabled# ls 000-apps.vhost 000-default.conf 000-ispconfig.vhost 000-default.bac 000-ispconfig.conf default-ssl.conf I've tried each one of those configuration files just in case I was missing something. # a2enmod ssl Considering dependency setenvif for ssl: Module setenvif already enabled Considering dependency mime for ssl: Module mime already enabled Considering dependency socache_shmcb for ssl: Module socache_shmcb already enabled Module ssl already enabled # a2ensite default ERROR: Site default does not exist! # a2ensite default-ssl Enabling site default-ssl. To activate the new configuration, you need to run: systemctl reload apache2 # systemctl reload apache2 # a2ensite default ERROR: Site default does not exist! # a2ensite default-ssl Site default-ssl already enabled

@robinrt: 2019-03-29 10:06:03
Ok, then it's --- a2ensite 000-default ---

@goldmoon: 2019-03-29 17:04:08
# a2ensite 000-default Site 000-default already enabled I really do appreciate all the help. Is there someone I can pay to take a look? I would like to learn more but I need the program running pretty soon.


Automate Reports for Email

@mhs_jeff: 2019-03-20 23:10:08
I'm trying to modify an existing report to run at the end of every month and email out. I have tried to remove the select inputs and replace with time variables that allow it to generate a report for the entire month. First I'm not even sure if this is correct syntax and second when I try to change and save I get a "Reports must be based on a SELECT query." error. Can anyone help? Thanks! SQL listed below: $Const LastMonth = DATEADD(MONTH,-1,CURRENT_TIMESTAMP)$ SELECT ownerdonation.Date, owner.OwnerName, donationtype.DonationName, Donation AS amt, ownerdonation.VatAmount, owner.OwnerAddress, owner.OwnerTown, owner.OwnerCounty, owner.OwnerPostcode, donationpayment.PaymentName, ownerdonation.ReceiptNumber FROM ownerdonation INNER JOIN owner ON ownerdonation.OwnerID = owner.ID INNER JOIN donationpayment ON donationpayment.ID = ownerdonation.DonationPaymentID INNER JOIN donationtype ON donationtype.ID = ownerdonation.DonationTypeID WHERE ownerdonation.Date BET WEEN '$LastMonth$' AND '$CURRENT_DATE$' ORDER BY donationtype.DonationName, donationpayment.PaymentName, ownerdonation.Date

@adoptamutt: 2019-03-22 13:20:26
Will something like this work? select a.datebroughtin, sheltercode from animal a WHERE a.datebroughtin >= date_trunc('month', current_date - interval '1' month) and a.datebroughtin < date_trunc('month', current_date) and select the "Beginning of month" option for runtime.


PDF Generation Error

@katereby: 2019-03-20 13:33:53
I seem to be running into an issue with generating PDFs. Forms and templates work fine and can even be printed, but I can't use the PDF button to convert to it. I get the following error: <type 'exceptions.OSError'> at /document_gen [Errno 2] No such file or directory Python /usr/lib/python2.7/subprocess.py in _execute_child, line 1046 Any idea how I can correct this? I have python 2.7, 3, 3.6, and 3.7 installed.

@robinrt: 2019-03-20 14:36:36
ASM requires an external program to do HTML to PDF conversion - wkhtmltopdf. If you don't have it installed, you'll need to install it from your distribution.

@katereby: 2019-03-21 01:19:56
Thanks! It used to be there, but appears to have been broken at some point. I reinstalled it, but now it acts like its generating a pdf, but nothing is actually generated. Any ideas? [Screenshot (1)](//muut.com/u/sheltermanager/s3/:sheltermanager:z68t:screenshot1.png.jpg)

@robinrt: 2019-03-21 08:42:20
I'd forgotten about this, but the wkhtmltopdf in the Debian repository requires X and most people will be running ASM on a headless server. To fix it, Install xvfb from your Debian repository (an X framebuffer) and update the HTML-TO-PDF command in your asm3.conf or sitedefs.py to this command instead: --- xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf --orientation %(orientation)s %(papersize)s %(input)s %(output)s --- You can also download wkhtmltopdf from https://wkhtmltopdf.org and use that version instead of the Debian one - it has non-free patches that Debian cannot distribute and does not need X.


ASM3 database schema

@goldmoon: 2019-03-19 18:08:22
Okay, I am not sure where to get the schema I need to populate my asm3 database. Advice please?

@robinrt: 2019-03-19 18:22:28
You don't need one - visiting the /database target will create all the tables and views, you just need to have done the CREATE DATABASE first and set its name in asm3.conf

@goldmoon: 2019-03-20 00:37:04
Okay, thank you! I finally got it to go to the database url but now it is telling me: 1045, "Access denied for user 'robin'@'localhost' I had taken robin @ localhost out of the asm3.conf. I'm not sure if there are any other places it could be?


ASM3 database

@goldmoon: 2019-03-18 21:32:27
Is there something I need to do to populate a new database? I finally have apache starting up with wsgi. YAY! However, I am not sure what the database schema looks like. I thought when it was finally running and I went to host_url/asm that it would populate it when I logged in for the first time. But when I go there it sends me to localhost:5000/database. When I first restart apache it shows me this: root@furbaby911:/etc# service apache2 restart root@furbaby911:/etc# systemctl status apache2 ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2019-03-18 15:55:52 CDT; 4s ago Process: 36338 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Process: 36350 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 34800 (code=exited, status=0/SUCCESS) Tasks: 30 (limit: 9830) CGroup: /system.slice/apache2.service ├─36382 /usr/sbin/apache2 -k start ├─36383 vlogger (access log) ├─3 6384 /usr/sbin/apache2 -k start ├─36385 Passenger watchdog ├─36388 Passenger core ├─36395 Passenger ust-router ├─36415 /usr/sbin/apache2 -k start ├─36416 /usr/sbin/apache2 -k start ├─36417 /usr/sbin/apache2 -k start ├─36418 /usr/sbin/apache2 -k start └─36419 /usr/sbin/apache2 -k start Mar 18 15:55:52 furbaby911.furbaby911.com systemd[1]: Stopped The Apache HTTP Server. Mar 18 15:55:52 furbaby911.furbaby911.com systemd[1]: Starting The Apache HTTP Server... Mar 18 15:55:52 furbaby911.furbaby911.com apachectl[36350]: AH00548: NameVirtualHost has no effect and will be removed in th Mar 18 15:55:52 furbaby911.furbaby911.com systemd[1]: Started The Apache HTTP Server. then when I try to go to host_url/asm it gives me this: root@furbaby911:/etc# systemctl status apache2 ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2019-03-18 15:55:52 CDT; 30s ago Process: 36338 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Process: 36350 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 34800 (code=exited, status=0/SUCCESS) Tasks: 31 (limit: 9830) CGroup: /system.slice/apache2.service ├─36382 /usr/sbin/apache2 -k start ├─36383 vlogger (access log) ├─36384 /usr/sbin/apache2 -k start ├─36385 Passenger watchdog ├─36388 Passenger core ├─36395 Passenger ust-router ├─36415 /usr/sbin/apache2 -k start ├─36416 /usr/sbin/apache2 -k start ├─36417 /usr/sbin/apache2 -k start ├─36418 /usr/sbin/apache2 -k start ├─36419 /usr/sbin/apache2 -k start └─36441 /usr/sbin/apache2 -k start Mar 18 15:55:52 furbaby911.furbaby911.com systemd[1]: Stopped The Apache HTTP Server. Mar 18 15:55:52 furbaby911.furbaby911.com systemd[1]: Starting The Apache HTTP Server... Mar 18 15:55:52 furbaby911.furbaby911.com apachectl[36350]: AH00548: NameVirtualHost has no effect and will be removed in th Mar 18 15:55:52 furbaby911.furbaby911.com systemd[1]: Started The Apache HTTP Server. Mar 18 15:56:09 furbaby911.furbaby911.com apache2[36418]: CRITICAL asm Database.execute (1045, "Access deni c, s = self.cursor_open() File "/usr/lib/sheltermanager3/dbms/ c, s = Database.cursor_open(self) File "/usr/lib/sheltermanage c = self.connect() File "/usr/lib/sheltermanager3/dbms/mysql.p return MySQLdb.connect(host=self.host, port=self.port, user=se return Connection(*args, **kwargs) File "/usr/lib/python2.7/di super(Connection, self).__init__(*args, **kwargs2) Operational Mar 18 15:56:09 furbaby911.furbaby911.com apache2[36418]: CRITICAL asm Database.execute failing sql: select lines 1-33/33 (END) I'm excited that I have gotten this far finally, but I'm not sure what I need to do next.

@goldmoon: 2019-03-19 00:41:20
Sorry, I just realized this did a partial copy. Will you please delete it? Thank you

@robinrt: 2019-03-19 09:45:33
The failure is the software being unable to connect to your MySQL database - that's the 1045 Access Denied message. You'll need to make sure you can access MySQL with the username/pass you've set in /etc/asm3.conf and that you've created a database for the software to populate (also specified in the conf) When you say delete it, do you mean this forum post?

@goldmoon: 2019-03-20 00:38:51
Yes, I meant the forum post. It only copied half of the error and I wanted to repost when I found more information. You guys have been awesome! I'm only having problems getting it to look at my /ect/asm3.conf that I removed robin from. There is something else that has robin but grep takes too long to find it (if it is actually looking that long).

@robinrt: 2019-03-20 11:32:34
grep should take a fraction of a second. It assumes stdin if you only give it one argument. Eg: grep robin /etc/asm3.conf

@goldmoon: 2019-03-20 19:28:43
Thank you. I have already changed the asm3.conf file and it is not looking for the user and password I entered. It is finding robin someplace else. So I would have to grep all of the files. There has to be something in another file that I cannot find.

@goldmoon: 2019-03-20 19:42:38
Here is the error I am getting: Mar 20 10:37:03 furbaby911 INFO asm dbupdate.install_default_data creating default database schema Mar 20 10:37:03 furbaby911 CRITICAL asm Database.execute (1045, "Access denied for user 'robin'@'localhost' (using password: YES)") File "/usr/lib/sheltermanager3/dbms/base.py", line 278, in execute#012 c, s = self.cursor_open() File "/usr/lib/sheltermanager3/dbms/mysql.py", line 27, in cursor_open#012 c, s = Database.cursor_open(self) File "/usr/lib/sheltermanager3/dbms/base.py", line 146, in cursor_open#012 c = self.connect() File "/usr/lib/sheltermanager3/dbms/mysql.py", line 21, in connect#012 return MySQLdb.connect(host=self.host, port=self.port, user=self.username, passwd=self.password, db=self.database, charset="utf8", use_unicode=True) File "/usr/lib/python2.7/dist-packages/MySQLdb/__init__.py", line 81, in Connect#012 return Connection(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 204, in __init__#012 super(Connection, self).__init__(*args, **kwargs2) Ope rationalError: (1045, "Access denied for user 'robin'@'localhost' (using password: YES)") Mar 20 10:37:03 furbaby911 CRITICAL asm Database.execute failing sql: CREATE TABLE accounts (ID INTEGER NOT NULL PRIMARY KEY,Code VARCHAR(255) NOT NULL,Description VARCHAR(255) NOT NULL,Archived INTEGER NULL,AccountType INTEGER NOT NULL,CostTypeID INTEGER NULL,DonationTypeID INTEGER NULL,RecordVersion INTEGER NULL,CreatedBy VARCHAR(255) NOT NULL,CreatedDate DATETIME NOT NULL,LastChangedBy VARCHAR(255) NOT NULL,LastChangedDate DATETIME NOT NULL)


Ansible deployment scripts

@inghamn: 2019-03-18 13:51:28
I am working on fixes to the ansible deployment scripts to account for config changes for v41. Is the ansible playbook useful to folks? Would it be better if I pulled that out into a separate project, on Github?


Navigate to http://localhost/asm

@goldmoon: 2019-03-18 02:09:23
I am setting up asm3 remotely and I am unsure how I can connect to the localhost remotely. Thank you for any suggestions you can give.

@robinrt: 2019-03-18 09:26:22
localhost always points to the current machine. You need to use the machine's IP address or external hostname. https://en.wikipedia.org/wiki/Localhost

@goldmoon: 2019-03-18 16:47:49
Okay, that is what I thought. The folder /asm is not there. Would the .deb package have created it? Thank you!

@robinrt: 2019-03-18 16:59:07
/asm is a script alias. You should either get a working install or an internal server error. If you don't get either, Apache is not using your WSGI configuration. If you get the latter, you'll need to look at the Apache error logs to find out what the problem is.

@goldmoon: 2019-03-18 17:36:57
Okay, thank you. I cannot get apache to start when I add this to my apache configuration file: WSGIScriptAlias /asm /usr/lib/sheltermanager3/code.py/ WSGIPythonPath /usr/lib/python2.7:/usr/lib/python2.7/dist-packages:/usr/lib/shelterma nager3:/usr/lib/sheltermanager3/locale Alias /asm/static /usr/lib/sheltermanager3/static AddType text/html .py <Directory /usr/lib/sheltermanager3> Require all granted Here is what it says in the error logs: [ 2019-03-18 12:22:31.9212 54686/7fd439083700 age/Cor/CoreMain.cpp:532 ]: Signal received. Gracefully shutting down... (send signal 2 more time(s) to force shutdown) [ 2019-03-18 12:22:31.9212 54686/7fd43f8ac600 age/Cor/CoreMain.cpp:901 ]: Received command to shutdown gracefully. Waiting until all clients have disconnected... [ 2019-03-18 12:22:31.9213 54686/7fd438882700 Ser/Server.h:817 ]: [ServerThr.2] Freed 128 spare client objects [ 2019-03-18 12:22:31.9213 54686/7fd438882700 Ser/Server.h:464 ]: [ServerThr.2] Shutdown finished [ 2019-03-18 12:22:31.9214 54686/7fd41bfff700 Ser/Server.h:817 ]: [ApiServer] Freed 0 spare client o bjects [ 2019-03-18 12:22:31.9215 54686/7fd41bfff700 Ser/Server.h:464 ]: [ApiServer] Shutdown finished [ 2019-03-18 12:22:31.9215 54686/7fd439083700 Ser/Server.h:817 ]: [ServerThr.1] Freed 128 spare client objects [ 2019-03-18 12:22:31.9215 54686/7fd439083700 Ser/Server.h:464 ]: [ServerThr.1] Shutdown finished [ 2019-03-18 12:22:31.9257 54698/7f51e4b1c700 age/Ust/UstRouterMain.cpp:422 ]: Signal received. Gracefully shutting down... (send signal 2 more time(s) to force shutdown) [ 2019-03-18 12:22:31.9268 54698/7f51eb16a600 age/Ust/UstRouterMain.cpp:492 ]: Received command to shutdown gracefully. Waiting until all clients have disconnected... [ 2019-03-18 12:22:31.9269 54698/7f51e4b1c700 Ser/Server.h:464 ]: [UstRouter] Shutdown finished [ 2019-03-18 12:22:31.9403 54698/7f51d7fff700 Ser/Server.h:817 ]: [UstRouterApiServer] Freed 0 spare client objects [ 2019-03-18 12:22:31.9404 54698/7f51d7fff700 Ser/Server.h:464 ]: [UstRouterApiServer] Shutdown finished [ 2019-03-18 12:22:31.9410 54698/7f51eb16a600 age/Ust/UstRouterMain.cpp:523 ]: Passenger UstRouter shutdown finished [ 2019-03-18 12:22:31.9646 54686/7fd43f8ac600 age/Cor/CoreMain.cpp:967 ]: Passenger core shutdown finished [Mon Mar 18 12:22:32.003531 2019] [mpm_prefork:notice] [pid 34800] AH00169: caught SIGTERM, shutting down

@robinrt: 2019-03-18 17:50:51
There's no info in there. Try running: --- apachectl configtest --- To have apache check your config and tell you of any problems.

@goldmoon: 2019-03-18 18:41:59
apachectl configtest gives the following output: AH00526: Syntax error on line 32 of /etc/apache2/sites-enabled/000-default.conf: WSGIPythonPath cannot occur within <VirtualHost> section Action 'configtest' failed. The Apache error log may have more information. Line 32 in my default configuration is: WSGIPythonPath /usr/lib/python2.7:/usr/lib/python2.7/dist-packages:/usr/lib/shelterma nager3:/usr/lib/sheltermanager3/locale What files should that line be looking for under those paths? Incidentally, when I try to start wsgi after installation it gives me the following: Failed to restart wsgi.service: Unit wsgi.service not found. But then a2enmod wsgi gives me: Module wsgi already enabled systemctl status wsgi: Unit wsgi.service could not be found.

@goldmoon: 2019-03-18 19:54:29
Okay, you can kick me. I have read and installed asm3 about 20 times without noticing the "outside virtual host" line. I'm sorry. I am able to reboot apache but I still cannot access the script alias. Thank you for all your help. I will start a new thread if I cannot figure out the problem.


Mod_wsgi

@goldmoon: 2019-03-17 00:04:37
Hello, I am trying to install animal shelter manager 3 on a VPS that I purchased just for that reason. All goes perfectly until I install mod_wsgi then I cannot restart apache. It kills my httpd every time and I have to get the company to help. The error log says that I cannot run python and wsgi at the same time. However, when I disable both mods I still cannot start apache. My system specifications are below: Python version 2.7.13 Apache/2.4.25 Debian version 9.8 I have been fighting this for a month. It has been about 15 years since I have played around with programming and I'm just lost on what I need to do to keep this from happening anymore. Please help in simple terms? Thank you so much!

@robinrt: 2019-03-17 10:48:30
Could you post the actual error messages from Apache's error log? ASM only needs mod-wsgi - it does not need mod-python (which is very old and was superceded by mod-wsgi).

@goldmoon: 2019-03-17 17:23:31
Thank you so much for your response. The VPS hosting service has already reinstalled Apache2 so the error has been removed. I do remember it said that I could not run python and wsgi together in the error log. I don't want to reinstall until I figure it out. How do I remove python? Disabling it did not work. I thought that I needed python to run the package. I appreciate the help.

@robinrt: 2019-03-17 17:30:53
Python is an interpreted runtime environment, used to run Python code modules. mod-python is an Apache module used to run webpages that contain Python code with the Python runtime environment. mod-wsgi is an Apache module used to run Python applications that conform to the WSGI interface. Again, the Python runtime environment is needed. mod-wsgi and mod-python are not compatible and should not be loaded in the same Apache instance. If you want to access ASM via Apache you need mod-wsgi

@goldmoon: 2019-03-17 22:07:30
Thank you. I was definitely confused. mod-python is not the same as the Python runtime environment? Is there a way to remove mod-python? I'm sorry for all the questions, I am just now starting out on Python .

@robinrt: 2019-03-17 22:16:38
You have to disable or uninstall the Apache module. For Debian installs it can be done with the commands. --- a2dismod python service apache2 restart --- It's not something that comes with Apache, it would have had to have been installed and enabled to be a problem.

@goldmoon: 2019-03-17 23:28:58
Okay, thank you so much for all of your help!


Payment questions

@rabbitatsrabbitrescue: 2019-03-15 23:46:44
I'm not sure just from the demo if this will work for our rabbit rescue, if we start with three months, can we expand to an annual subscription in a week or to and get the credit for what we paid already? Also, do we need a credit card or can we pay with Paypal?

@robinrt: 2019-03-16 09:04:19
Hi, you can pay with either. You're welcome to switch to a 12 month subscription after the first 3 months is up. If you decide the system is not for you, we're happy to give you a full refund within 30 days.


Shelter or Small Animal Group?

@rabbitatsrabbitrescue: 2019-03-15 23:43:39
We have a main shelter and some satellite sanctuaries. The data will be centrally located at the shelter, but we do need the sanctuary managers and fosters to be able to fill in info, should we mark that we're a shelter or small animal groups? All totalled we should be less than 200 new animals a year at this point (although we do have 300+ to fill in to start).

@robinrt: 2019-03-16 09:03:09
Hi, that info on the signup page is just for our records - there are no limits on how many animals you can add or the number of users or locations you can access the system with/from.


Create Animal

@1gkwc6: 2019-03-15 15:55:07
When creating an animal, one has the choice of changing the *DATE BROUGHT IN* field, which is very useful as we don't always enter an animal immediately. However when an animal is created from the *Waiting List*, the option of changing the entry date is not available, and once and animal has been created, there does not seem to be a way of changing the *Date brought in field*. How can I change the entry date? or how can I choose the correct date when creating an animal from the waiting list?

@robinrt: 2019-03-15 16:08:42
It's under the Entry slider of the animal's record. If you can't change it, it's because you've set the option "Once assigned, codes cannot be changed" under Settings->Options->Animal Codes. Your code will be dependent on the year portion of the date brought in, so that option locks the date brought in to prevent invalidating the code.


Report display horizontally

@knafus: 2019-03-13 14:56:14
Hi - Is there a way to display information in a table horizontally instead of vertically? For example: we created a form that will display the HW preventative given. For dogs that have been here for a few months, we would like to display the information something like this: 11/01/2018 SS 12/01/20198 SS 01/01/2019 SS 02/01/2018 SS 03/01/2019 SS Any information you can provide would be greatly appreciated. Thanks Karen

@candidhominid: 2019-03-13 20:59:57
Could you post your code?


Email image within report

@knafus: 2019-03-13 14:50:44
Hi I need to email some reports that include an image of the animal. How can this be done? Using the url is only for internal ASM use but I need to send the images outside of ASM. Any help would be greatly appreciated. Thank Karen


Timeout when running Export All Animals to csv

@jgochsner: 2019-03-12 17:07:31
A timeout is occurring when trying to generate this csv for all of our animals. It shows a diagram showing my PC and CloudFlare working fine, but there is an error on the Host side (us08.sheltermanager.com). My associates have tried it from there PCs as well, and are getting the same error. We would like to be able to generate it as a backup file, so any help would be most appreciated.

@robinrt: 2019-03-12 17:32:55
Hi, please email help@sheltermanager.com with your account number and we'll investigate.


Generating clinic invoice

@magpie97537: 2019-03-11 23:05:56
I enter individual amounts for services but when I go to print the clinic invoice the description of services is blank. All the other information is filled in. What am i missing here? Thanks!

@robinrt: 2019-03-12 08:12:32
It sounds like you could have hidden formatting. The tokens needed to access invoice item descriptions are <<ClinicInvoiceDescriptionX>> where X is a number from 1-100 to access that invoice item. Try making sure those tokens are in your document template and if they are, deleting and retyping those tokens to remove any hidden formatting.

@magpie97537: 2019-03-12 14:53:40
Thanks for the reply. Now I understand that I'm missing a critical piece of information - I don't know where to find those tokens that access invoice item descriptions. Thanks for your help with this!

@robinrt: 2019-03-12 14:55:10
[See clinic tokens in the manual](https://www.sheltermanager.com/repo/asm3_help/wordkeys.html#clinic-keys)

@magpie97537: 2019-03-12 15:24:58
I have read that part of the manual. I think the part I'm not understanding is this: <<ClinicInvoiceDescriptionX>> where X is a number from 1-100 to access that invoice item. Where do I find the number to describe the clinic service? Thank you.

@robinrt: 2019-03-12 15:26:54
The number corresponds to the items that you added on the clinic invoice screen in the order that you added them. If you look at the clinic tab of the person or animal with the appointment (or the waiting room screens), there's a little invoice icon to the right of the appointment status. That lets you edit the invoice items. You print a clinic invoice with the invoice button on the clinic tab or waiting room screens.

@magpie97537: 2019-03-12 16:26:20
Here's what I'm doing: I click on the calculator icon, new screen comes up: Clinic Invoice, New Item: Description, feline spay. Amount, $40. The total amount then appears on the animal's Clinic screen. Then, from the Animal tab I select Document, clinic invoice. Here nothing appears under Description and Amount. Thank you.

@robinrt: 2019-03-12 17:34:29
Hi, you need to stay on the clinic screen of the animal - there's a Document button on there. Generating the document from the base animal record, the system can't know which clinic appointment you're generating the invoice for - so you have to choose the appointment on the clinic tab and use the document button on there.

@magpie97537: 2019-03-12 21:45:06
Thanks for sticking with me on this and helping me get over the "hump"!

@magpie97537: 2019-03-12 21:48:15
Now I have the individual charges but lost the organization name...

@magpie97537: 2019-03-13 15:20:02
Here's what I'm talking about: the organization information is in the clinic invoice template but doesn't appear when I access it from the clinic tab for the animal. [Asm_clinic_inv](//muut.com/u/sheltermanager/s2/:sheltermanager:QHEF:asm_clinic_inv.png.jpg)


Cat weight will not save

@jwpupecki: 2019-03-07 14:27:12
One cat had the wrong weight entered (11 lbs 10oz). When we edit the record, type in the correct weight and click save, it reverts back to the 11.10 and won't save. How can we get the record to save?

@robinrt: 2019-03-07 14:39:12
Are you a sheltermanager.com customer? If so please send your account number and info on which cat it is that won't save to support@sheltermanager.com so we can take a look.


Adding 1 and 2 doesn't seem to work if the record has only 1 entry

@jwpupecki: 2019-03-05 16:05:57
Some cats will only have 1 worming, 1 fecal or 1 flea treatment and some cats may have 2 or more treatments in any of these areas. If I use the word keys with a 1 at the end and add a second entry with a 2, in case the cat does have a second treatment, the key works but if it only has one treatment it fails to pull the data. For example: <<MedicalStartDateFleas1>> <<MedicalStartDateFleas2>> If there are 2 flea treatments then I see: 12/18/18 1/5/19 But, if this record only had one flea treatment then results come back BLANK for <<MedicalStartDateFleas1>>. If I change the word key to <<MedicalStartDateFleas>> then I do get the date 12/18/18. How can I get the document to work so it can handle both scenarios if a cat only has one treatment or two? Thank you in advance!

@robinrt: 2019-03-05 16:37:51
You can only use a number OR a name to qualify items, but not both. I have no idea how what you've described could be working - unless you've been naming your medical treatments Fleas1 and Fleas2. <<MedicalStartDate1>> returns the first medical on file, whatever it is. <<MedicalStartDateFleas>> returns the first medical on file with the name Fleas. You can also use "Recent" to go backwards and get the most recent medical item by its name, eg: <<MedicalStartDateRecentFleas>>


Shelter View

@alldogsmatter: 2019-03-05 10:50:33
Hi all, Our charity is new to shelter manager - using it since Jan 2019. We're struggling to use the shelter view feature all of a sudden. We used to show our fostered dogs in there and now they have gone (we did mess around in options a little). We have also just started using 'trial adoption'. Is there a way to get this to show in the shelter view? We have seen the tickbox in options in for 'Treat trial adoptions as part of the shelter inventory' and 'Treat foster animals as part of the shelter inventory' but they don't seem to be making a difference... Thank you all, ADM

@robinrt: 2019-03-05 10:52:47
If you changed them in the past, you need to update the animal records to reflect the new option values. Go to Settings->Trigger Batch Processes->Recalculate ALL animal locations

@alldogsmatter: 2019-03-05 10:56:02
AMAZING! Thank you so much for the help! Fixed in an instance.


Age in In/Out reports

@pzappen: 2019-03-01 16:08:08
We would like to have age listed in a consistent form throughout the In/Out reports, preferable in months. AnimalAge doesn't function for us because it doesn't work for sorting. I tried modifying AgeGroup into more segments but, even though I save my changes, something about how I used this in the report doesn't work - I get some age groups listed but most often I get the AnimalAge reported back. (All I did ws substitue Animal Group for AnimalAge in the query). I know that I don't understand how age works for animals and I am not competent with the query language. Can anyone help with a method of getting age reported in a uniform time frame? Months are great, years with fractions would be acceptable.

@robinrt: 2019-03-01 16:16:53
Ok, first open the In/Out report that you want to modify. Next, you need to replace every occurrence of AnimalAge in all 22 or so queries that make up the In/Out report. It's on its own line in each subquery. Replace each AnimalAge, with this expression to use years with fractions. You could use 30.5 instead of 365.0 if you want rough months, but months isn't a great measure as it's hard to read once an animal is more than a couple of years old. EXTRACT(DAY FROM CURRENT_DATE - DateOfBirth)::integer / 365.0 as AnimalAge,

@pzappen: 2019-03-01 16:17:27
I will give it a try. Thank you!

@pzappen: 2019-03-01 16:23:16
I am getting this error: syntax error at or near ";" LINE 30: EXTRACT(DAY FROM CURRENT_DATE – DateOfBirth)::integer ... ^ Can you help? Thank you.

@robinrt: 2019-03-01 16:24:30
There shouldn't be a semi-colon anywhere in there - where have you got a semi-colon? Could you copy/paste the bit that's causing the error?

@pzappen: 2019-03-01 16:25:04
EXTRACT(DAY FROM CURRENT_DATE – DateOfBirth)::integer / 365.0 as AnimalAge,

@pzappen: 2019-03-01 16:36:14
This is a larger piece of the query in case the error is in a different line: UNION ALL SELECT DateBroughtIn AS thedate, (SELECT ReasonName FROM entryreason WHERE ID = animal.EntryReasonID) AS Reason, ShelterCode, IdentichipNumber, AnimalName, (SELECT AnimalType FROM animaltype WHERE ID = animal.AnimalTypeID) AS AnimalTypeName, (SELECT SpeciesName FROM species WHERE ID = animal.SpeciesID) AS SpeciesName, EXTRACT(DAY FROM CURRENT_DATE – DateOfBirth)::integer / 365.0 as AnimalAge, (SELECT Sex FROM lksex WHERE ID = animal.Sex) AS SexName, (SELECT LocationName FROM internallocation WHERE ID = animal.ShelterLocation) AS Location, (SELECT OwnerName FROM owner WHERE ID = animal.BroughtInByOwnerID) AS OwnerName, 'Animals Transferred In' AS CategoryName, 'Animals In' AS OutOrIn FROM animal WHERE IsTransfer = 1 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$ 23:59:59' AND NonShelterAnimal = 0

@robinrt: 2019-03-01 16:45:14
That looks fine to me. The error is occurring at line 30 and there are 20+ subqueries in this report. Could you paste the query around line 30? There should be line numbers displayed on the left of the editor.

@pzappen: 2019-03-01 16:50:40
This is lines 7 to 54 SELECT DateBroughtIn AS thedate, (SELECT ReasonName FROM entryreason WHERE ID = animal.EntryReasonID) AS Reason, ShelterCode, IdentichipNumber, AnimalName, (SELECT AnimalType FROM animaltype WHERE ID = animal.AnimalTypeID) AS AnimalTypeName, (SELECT SpeciesName FROM species WHERE ID = animal.SpeciesID) AS SpeciesName, AgeGroup, (SELECT Sex FROM lksex WHERE ID = animal.Sex) AS SexName, (SELECT LocationName FROM internallocation WHERE ID = animal.ShelterLocation) AS Location, (SELECT OwnerName FROM owner WHERE ID = animal.BroughtInByOwnerID) AS OwnerName, 'Animals Brought In' AS CategoryName, 'Animals In' AS OutOrIn FROM animal WHERE IsTransfer = 0 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$ 23:59:59' AND NonShelterAnimal = 0 UNION ALL SELECT DateBroughtIn AS thedate, (SELECT ReasonName FROM entryreason WHERE ID = animal.EntryReasonID) AS Reason, ShelterCode, IdentichipNumber, AnimalName, (SELECT AnimalType FROM animaltype WHERE ID = animal.AnimalTypeID) AS AnimalTypeName, (SELECT SpeciesName FROM species WHERE ID = animal.SpeciesID) AS SpeciesName, EXTRACT(DAY FROM CURRENT_DATE – DateOfBirth)::integer / 365.0 as AnimalAge, (SELECT Sex FROM lksex WHERE ID = animal.Sex) AS SexName, (SELECT LocationName FROM internallocation WHERE ID = animal.ShelterLocation) AS Location, (SELECT OwnerName FROM owner WHERE ID = animal.BroughtInByOwnerID) AS OwnerName, 'Animals Transferred In' AS CategoryName, 'Animals In' AS OutOrIn FROM animal WHERE IsTransfer = 1 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$ 23:59:59' AND NonShelterAnimal = 0 UNION ALL SELECT adoption.ReturnDate AS thedate, (SELECT ReasonName FROM entryreason WHERE ID = adoption.ReturnedReasonID) AS Reason, ShelterCode, IdentichipNumber, AnimalName, (SELECT AnimalType FROM animaltype WHERE ID = animal.AnimalTypeID) AS AnimalTypeName, (SELECT SpeciesName FROM species WHERE ID = animal.SpeciesID) AS SpeciesName, EXTRACT(DAY FROM CURRENT_DATE – DateOfBirth)::integer / 365.0 as AnimalAge,, (SELECT Sex FROM lksex WHERE ID = animal.Sex) AS SexName, (SELECT LocationName FROM internallocation WHERE ID = animal.ShelterLocation) AS Location, (SELECT OwnerName FROM owner WHERE ID = adoption.OwnerID) AS OwnerName, 'Animals Returned From Adoption' AS CategoryName, 'Animals In' AS OutOrIn FROM animal INNER JOIN adoption ON adoption.AnimalID = animal.ID WHERE adoption.MovementType = 1 AND adoption.MovementDate Is Not Null AND adoption.IsTrial = 0 AND adoption.ReturnDate >= '$@from$' AND adoption.ReturnDate <= '$@to$' AND NonShelterAnimal = 0

@robinrt: 2019-03-01 16:52:01
You've got two commas in the second subquery - look for as AnimalAge,, it should be just one.

@pzappen: 2019-03-01 16:54:06
I found that and fixed it. I still get this error message: syntax error at or near ";" LINE 30: EXTRACT(DAY FROM CURRENT_DATE – DateOfBirth)::integer ... ^

@robinrt: 2019-03-01 17:21:01
are you a sheltermanager customer? Could you email your account number and which In/Out report it is to support@sheltermanager.com so I can take a look?


Adopted animals still listed on petfinder?

@alexusk97: 2019-03-01 13:22:24
Some of the animals that have been marked adopted on sheltermanager in movements, and no longer say "available for adoption" are still showing up on our petfinder page… they are not showing up under the list of animals that qualify for publishing on sheltermanager. They are not marked as courtesy postings either. What gives?

@robinrt: 2019-03-01 13:48:23
PetFinder are very slow to process update files at times - sometimes it can be days or more. Unfortunately, there's nothing we can do to fix it and this is the number one support issue we've been getting for months. It's very frustrating.

@alexusk97: 2019-03-01 14:26:25
Thank you! Most of the animals were adopted within the past few weeks so it’s more understandable. One of the dogs was adopted several years ago though!


Forms

@1gkwc6: 2019-03-01 10:27:55
Our forms open up in a popup window on our website, and I have just noticed that on an iPad the longer forms can not be scrolled down to the bottom. I'd prefer to keep our forms in a popup, has anyone got any solutions? Even without using popups, I think it would be usefull to have a pagebreak in longer forms. Is there a way to achieve this?

@robinrt: 2019-03-01 11:49:28
It's a quirk in how iOS/Safari handles scrolling in iframes. There's an article here with an example of how to enable iOS scrolling in your web page that contains the iframe popup: https://davidwalsh.name/scroll-iframes-ios


sponsored animals

@heyjay: 2019-02-28 15:27:24
Is there a place to mark on an animal's record when its adoption fees have been sponsored?

@robinrt: 2019-02-28 15:58:40
There isn't a sponsor specific section, but I we have a sponsorship payment type by default and you can add a new payment for the sponsor under the animal's payment tab.


Help with report

@pzappen: 2019-02-28 15:10:44
I am still having problems with Adopted non-neutered/psayed animals. I want to select the date range but I still get all animals from all time returned in the report. I added the first two lines to the existing report but I still get all animals meeting the other criteria regardless of the selected date range. Thank you for your help. $VAR from DATE Enter from date$ $VAR to DATE Enter to date$ SELECT animal.ShelterCode, animal.shortcode, animal.AnimalName, lksex.Sex, animaltype.AnimalType, species.SpeciesName, animal.DateOfBirth, animal.AcceptanceNumber, lksmovementtype.MovementType, animal.ActiveMovementDate, owner.OwnerName, owner.OwnerAddress, owner.OwnerTown, owner.OwnerCounty, owner.OwnerPostcode, owner.HomeTelephone, vaccinationtype.VaccinationType, animalvaccination.DateRequired FROM animal INNER JOIN species ON species.ID = animal.SpeciesID INNER JOIN animaltype ON animaltype.ID = animal.AnimalTypeID INNER JOIN lksmovementtype ON animal.ActiveMovementType = lksmovementtype.ID INNER JOIN lksex ON animal.Sex = lksex.ID INNER JOIN adoption ON animal.ActiveMovementID = adoption.ID INNER JOIN owner ON adoption.OwnerID = owner.ID LEFT OUTER JOIN animalvaccination ON animalvaccination.AnimalID = animal.ID LEFT OUTER JOIN vaccinationtype ON animalvaccination.VaccinationID = vaccinationtype.ID WHERE animal.Neutered = 0 AND animal.Archived = 1 AND animal.ActiveMovementType = 1 ORDER BY animal.ShelterCode

@robinrt: 2019-02-28 15:57:46
You haven't actually put the filter in the WHERE clause. Replace WHERE onwards with this: --- WHERE animal.ActiveMovementDate >= '$@from$' AND animal.ActiveMovementDate <= '$@to$' AND animal>neutered = 0 AND animal.Archived = 1 AND animal.ActiveMovementType = 1 ORDER BY animal.ShelterCode ---

@pzappen: 2019-02-28 16:11:32
I did this and get an error: syntax error at or near "=" LINE 34: AND animal>neutered = 0 AND animal.Archived = 1 ^ when the report is as follows. I wish I could help myself but don't know what to fix. Thank you. $VAR from DATE Enter from date$ $VAR to DATE Enter to date$ SELECT animal.ShelterCode, animal.shortcode, animal.AnimalName, lksex.Sex, animaltype.AnimalType, species.SpeciesName, animal.DateOfBirth, animal.AcceptanceNumber, lksmovementtype.MovementType, animal.ActiveMovementDate, owner.OwnerName, owner.OwnerAddress, owner.OwnerTown, owner.OwnerCounty, owner.OwnerPostcode, owner.HomeTelephone, vaccinationtype.VaccinationType, animalvaccination.DateRequired FROM animal INNER JOIN species ON species.ID = animal.SpeciesID INNER JOIN animaltype ON animaltype.ID = animal.AnimalTypeID INNER JOIN lksmovementtype ON animal.ActiveMovementType = lksmovementtype.ID INNER JOIN lksex ON animal.Sex = lksex.ID INNER JOIN adoption ON animal.ActiveMovementID = adoption.ID INNER JOIN owner ON adoption.OwnerID = owner.ID LEFT OUTER JOIN animalvaccination ON animalvaccination.AnimalID = animal.ID LEFT OUTER JOIN vaccinationtype ON animalvaccination.VaccinationID = vaccinationtype.ID WHERE animal.ActiveMovementDate >= '$@from$' AND animal.ActiveMovementDate <= '$@to$' AND animal>neutered = 0 AND animal.Archived = 1 AND animal.ActiveMovementType = 1 ORDER BY animal.ShelterCode

@robinrt: 2019-02-28 16:24:35
Sorry, it's a typo on my part - animal>neutered should be animal.neutered

@pzappen: 2019-02-28 16:40:27
Perfect. Thank you.


Administering Vet and License WordKey Not Working

@jwpupecki: 2019-02-27 20:07:49
I have copied exactly from the word key doc <<VaccinationAdministeringVetName>> and <<VaccinationAdministeringVetLicence>> and inserted them into my rabies document. I've also confirmed that the vet has been entered into our system, has the flag vet associated with them, and also has their license number stored. I've also reviewed the rabies entry underneath the cat to make sure it was documented which vet administered the vaccine. Yet, when I run the document using the above 2 word keys to pull the vet name and their license number the report runs blank in those 2 fields. How do I get this to work?!

@robinrt: 2019-02-28 09:05:49
You need to tell it which vaccination type you're interested in, for example if you want rabies then use <<VaccinationAdministeringVetNameRecentRabies>> and <<VaccinationAdministeringVetLicenceRecentRabies>>

@jwpupecki: 2019-03-05 15:59:01
@robinrt, thank you so much, that did it! :)


Publishing Bonded Pairs

@jewing: 2019-02-26 20:53:17
In order to publish a bonded pair, do you have to merge them?

@robinrt: 2019-02-28 09:07:49
No. They'll publish as separate animals. If you have the option on to merge them, the system will only output the first of the bonded records and merge the name fields for you. That option is Publishing->Set Publishing Options->Animal Selection->Merge bonded animals into a single record


stock control of microchips

@ears: 2019-02-26 04:04:58
Can the software be used to control a stock of microchips? Does one enter by each individual chip # or name them microchip and list the numbers? Then do deductions need to be made manually?

@robinrt: 2019-02-28 09:08:39
It can't keep stock by number, no. The stock control screen could let you manage say a box of chips and how many are left (you could even make the implant procedure a one-off medical treatment and deduct stock), but not the numbers.

@ears: 2019-03-01 15:50:24
thanks. I've been experimenting with putting them in as single stock. It takes a little while, but the clone feature helps a lot. They seem to disappear from stock when I assign that number to a particular animal.


No Sign Button for Electronic Signatures?

@da_hepcat: 2019-02-22 12:55:56
Is there an option to enable electronic signatures that I'm missing somewhere? My local instance of ASM3 doesn't seem to have a "Sign" button on the animal media menu, nor does "Change User Settings" have an option for the user to store their electronic signature. I've looked through the configuration options multiple times, but I'm not finding anything relevant.

@da_hepcat: 2019-02-27 12:13:52
Interesting. I discovered that the "sign_document" method works via the service API. For whatever reason, though, I still don't have a "Sign" button on any of the document tabs. See the attached screenshot. [Asm_nosign](//muut.com/u/sheltermanager/s3/:sheltermanager:MlA9:asm_nosign.png.jpg)


LINKS

@ears: 2019-02-19 03:00:49
How is the “Links” tab used? It does not automatically link the adopter and the animal? Thanks, Kathy

@adoptamutt: 2019-02-19 04:12:28
The Links tab displays things like if a person ever surrendered an animal (original owner - Entry Section), ever found an animal (brought in by - Entry Section), or is on a waiting list to bring in an animal. Things like that. The Movements Tab displays adoptions, transfers, reclaims, etc

@ears: 2019-02-19 04:30:58
Thanks.


Stock control

@jimdunne: 2019-02-18 16:47:59
I find the stock control system very long winded, for example if we give an animal an injection, we can account for the medication used when we 'give' the treatment in ASM, but then I have to manually go in and change the stock for the needle and syringe, and in some cases sterile water or saline etc. This is easy to forget, and could lead to running out of stock when the system still thinks we have some. Is there a better way of doing this at present, and are there any plans to develop the stock control system? There also appears to be no way of allocating the cost of these items to the animal they were used on. I come from a logistics background in vehicle parts, and am used to being able to book out multiple items under one 'kit' part number, is there anyway something like this could be implemented? i.e we could create a part and add items to it that would be 'booked out' when used? As an example, here is a screen shot of some of our needles and syringes that I have to manually change, along with any other item we use.

@jimdunne: 2019-02-18 16:48:56
[Screenshot from 2019-02-18 16-44-48](//muut.com/u/sheltermanager/s3/:sheltermanager:YiP4:screenshotfrom20190218164448.png.jpg)


Diary notes

@1gkwc6: 2019-02-17 09:36:50
We recently enabled the *Email users their diary notes each day* , in the email it does not say who has added the notes. Is there a way I can get this to show in the emails?

@robinrt: 2019-02-17 12:11:46
There isn't a way, no. I can raise this on the development list to be added in future.


Heartworm Test Results

@adoptamutt: 2019-02-15 14:14:30
I have a user who has created multiple test results for Heartworms such as 'No Antigen Detected', 'No Eggs Seen', etc. I know that ASM is looking for Negative/Positive and that this will negatively effect reports and emblems, but can the <<HeartwormTestResult>> pull the custom result names? It appears that it can only pull Negative/Positive at this time.

@robinrt: 2019-02-15 18:52:21
They're two different things - <<HeartwormTestResult>> is the field from the Health and Identification slider of the animal record and it is locked to one of unknown/negative/positive. The other test results are for the test records (which you can access with <<TestResultRecentNAME>> ) ASM will try to update the field under H&I if you add a test record called Heartworm. It will default to "Unknown" and if the fragment "egativ" is found, set negative otherwise if "ositiv" is found, sets it to positive. So, you can still include the word negative or positive in your test result even if you qualify it with extra info to have this work.


Help please! Service API user permissions.

@jompress: 2019-02-15 08:05:40
What are the minimum user permissions required for an ASM user account that will be used exclusively for json or xml calls? I see a user option under System for "Publish Animals to the Internet." Does this provide sufficient access for data pulls without allowing additional access to our account?

@robinrt: 2019-02-15 08:24:37
No, all you need is the VIEW_ANIMAL permission.

@jompress: 2019-02-15 08:36:09
Great! Thank you!


All Movement Dates Changed to Current Date

@ljm_hrn: 2019-02-15 00:25:11
We updated to 41 last week, and have had a recurrent issue where all movement return dates are being overwritten to the current date. When it happened the first time, I thought it was a fluke and maybe something had gone awry with the update so I set up with a fresh database and imported data with the correct return dates from a backup. It happened again. Is this a bug in this version ? I can't imagine setting 7 years worth of movement returns to the current date is a desirable feature for anyone. We pull these data over to our website via php code, and now our adoption listing are completely borked. I don't want to spend a 3rd weekend on this until I know how to prevent it from happening . Thanks!

@robinrt: 2019-02-15 08:32:32
Wow, that sounds weird. You're right - it's not a desirable feature and there are no updates that would mass change the movement return date, ever. To be honest, it sounds like corruption or something odd at the backend. If you're using MySQL try REPAIR TABLE adoption to see if it helps.

@ljm_hrn: 2019-02-15 12:10:23
I also just got a report the not for adoption flag is being removed. I have to dig into this more to see if I can figure out the timing and if it's connected to any user actions. The database is MySQL 5.6. I'll try REPAIR TABLE. Thanks! I appreciate the quick response.

@ljm_hrn: 2019-02-17 21:00:08
Here's some additional information I got from users who experienced the issues: - Both times it happened, it was when someone was adding images to records and adding records. -I was making updates and noticed it seemed off but at least the website was okay. By off it seems like when you make an update if you do three updates on the [same animal] it shows up 3 times in recent updates - Yesterday afternoon some of the [animals] are showing up 2-3 times as [a volunteer] was updating pics, and then suddenly everything was gone [on the website listing]. The return date and not for adoption corrupted again. Both times in the middle of the day. I was adding some [animals], so I was checking the site to be sure I could see them, so I know it was fine yesterday noonish, but we did have another problem. (Other problem below) -There is an issue if you have multiple images...Now ASM will allow you to have multiple displayable images. So when {a volunteer] would add a pic, it would show up twice on our website, not necessarily their problem, rather we might need to tweak our SQL . - (This was noted about 4 days before corruption) To find the active movement we were checking for a return date of null, but now instead of null, the date is 000-00-00 so I have to test for that instead. (Not really an issue per se, but I'm not sure if that should be happening.) I looked through the log, and noted errors related to images. The date/time is consistent with feedback from users around timing. (server time is PST, we're EST) ---------------------------------------------------------------- 2019-02-14 14:15:16 CRITICAL media.scale_image failed scaling image: cannot identify image file <cStringIO.StringI object at 0x35280fe7938> 2019-02-14 19:24:27 CRITICAL hrn_as... code.image invalid literal for int() with base 10: '' 2019-02-14 19:24:38 CRITICAL hrn_as... code.image invalid literal for int() with base 10: '' 2019-02-14 19:24:40 CRITICAL hrn_as... code.image invalid literal for int() with base 10: '' 2019-02-14 19:40:25 CRITICAL hrn_as... code.image invalid literal for int() with base 10: '' 2019-02-14 19:40:42 CRITICAL hrn_as... code.image invalid literal for int() with base 10: '' 2019-02-14 19:40:56 CRITICAL hrn_as... code.image invalid literal for int() with base 10: '' 2019-02-14 20:54:51 CRITICAL hrn_as... code.image invalid literal for int() with base 10: '' 2019-02-15 08:36:53 CRITICAL media.scale_image failed scaling image: cannot identify image file <cStringIO.StringI object at 0x3a40fad99c0> 2019-02-15 15:07:41 CRITICAL media.scale_image failed scaling image: cannot identify image file <cStringIO.StringI object at 0x3fdfb9c1140> 2019-02-15 15:08:59 CRITICAL media.scale_image failed scaling image: cannot identify image file <cStringIO.StringI object at 0x3fdfbb35b58> 2019-02-16 15:49:35 CRITICAL media.scale_image failed scaling image: cannot identify image file <cStringIO.StringI object at 0x370eaf5e1c8>

@ljm_hrn: 2019-02-17 23:11:25
Forgot to add, but maybe goes without saying, the movement return dates that were changed are in the adoption table only. The ActiveMovementReturn field in the animal table seems to have not changed, and either contains the correct date or is null.

@zanne67: 2019-04-08 17:50:12
We have been able to trace this to a specific function in ASM- when we mark a rabbit adopted via clicking on the "Move" button on top, then "adopt an animal". It took us a few times to figure it out, but it consistently happens. I am not sure if it is changing it to "today's date" or the "return date" since when we were doing it the return date was always the same as "today's date". If we go into an animale file, click on the movements tab and edit movements by hand everything works perfectly fine. However someone accidentally used the other function last week and once again it wiped out our movements. It is a really nasty bug.

@robinrt: 2019-04-08 18:22:06
Are you saying when you create a movement via Move->Adopt an animal, after you create the movement it's setting all return dates in the adoption table to the same date? The only thing that code does is create a new movement on an animal and return any foster movements linked to it. If somehow the get_animal_movements call returned every animal in your database, that would explain it - although that is something it shouldn't be able to do since it only returns foster movements for one animal by ID. It does seem very odd though - that is a heavily used feature and we have 15,000 active users - this is the only report of anything like this so I'd still be inclined to think it's something environmental. There really is nothing that can clear the not for adoption flag - that should only ever be able to be done by a user. Are you checking the audit trail slider to make sure someone hasn't accidentally removed it?

@zanne67: 2019-04-08 18:46:34
Yes what I am saying is that when we do Move->Adopt an animal, it sets the return date to the current date (or adoption date) for all movements in the database. Here is an example of a bunny that was adopted a while ago so her movements have not been touched since she was adopted in Sept however when another rabbit was marked adopted March 31 her records got changed to this. This is for any animal. mysql> select animal.AnimalName,adoption.MovementDate,adoption.ReturnDate from adoption inner join animal on animal.ID = adoption.AnimalID where ReturnDate > "2019-01-01 00:00:00" and animal.AnimalName="Zuzu"order by animal.AnimalName\G *************************** 1. row *************************** AnimalName: Zuzu MovementDate: 2018-05-25 00:00:00 ReturnDate: 2019-03-21 00:00:00 *************************** 2. row *************************** AnimalName: Zuzu MovementDate: 2018-05-30 00:00:00 ReturnDate: 2019-03-21 00:00:00 *************************** 3. row *************************** AnimalName: Zuzu MovementDate: 2018-06-09 00:00:00 ReturnDate: 2019-03-21 00:00 :00 *************************** 4. row *************************** AnimalName: Zuzu MovementDate: 2018-08-26 00:00:00 ReturnDate: 2019-03-21 00:00:00 *************************** 5. row *************************** AnimalName: Zuzu MovementDate: 2018-09-04 00:00:00 ReturnDate: 2019-03-21 00:00:00


Change Adoptable age to 8 weeks for puppies

@caninehumanenetwork: 2019-02-13 02:02:08
How do I change the settings to make dogs 8 weeks or older available and remove the Not Available for Adoption flag?

@robinrt: 2019-02-13 09:07:55
Publishing->Set Publishing Options->Animal Selection->Exclude animals aged under

@amybaron: 2019-02-16 04:41:29
that is not very obvious... but did the trick for me as well; all of a sudden, for no apparent reason, i was no longer able to adopt out kittens younger than 12 weeks of age. there was no default set before - and i never would have guessed to look under publishing.


Report of sponsored animals

@mketcham: 2019-02-12 03:22:18
Is there a report that will produce a list of sponsored animals? I see a report of animals without a sponsor but I'm looking for the opposite.

@candidhominid: 2019-02-12 14:00:51
I would try installing the "Sponsored Animals with Due Donations" report. Or you could try editing the report of animals without a sponsor. See what happens when you edit the report by deleting the word NOT from the line of code below. --- NOT EXISTS (SELECT DateDue FROM ownerdonation INNER JOIN donationtype ON donationtype.ID = ownerdonation.DonationTypeID WHERE AnimalID = animal.ID AND DonationName LIKE '%Sponsorship%') ----


Retail Set Up

@davidcarlson: 2019-02-11 17:26:20
Our shelter currently is in the process of moving from shelter buddy to shelter manager and I am newly in charge of retail. In shelter buddy we can search retail by an assigned (arbitrary) number as well as by title to look up a product to sell. In order to look up by name you have to know specifically how it was entered, not always an easy task. By assigning numbers we are more easily able to look it up by the number (along with the price to the item) that we attach to the product. In looking at shelter manager I don't see a spot to assign retail by number to make this an easy transition. How have others set up retail to make it an easy process for adoption staff to sell? Am I missing an easy solution to have items searchable by number? Any help would be appreciated!


Help with report please

@jimdunne: 2019-02-11 12:28:03
I'm trying to create a report for the Dorset Mammal Group, but am having problems getting a custom field to show - could you advise what is wrong with my coding please. All other fields produce the correct info. $VAR from DATE Enter from date$ $VAR to DATE Enter to date$ SELECT a.ShelterCode, s.SpeciesName, atp.AnimalType, a.TimeOnShelter, a.BreedName, e.ReasonName, o.OwnerName, a.DateBroughtIn, m.MovementDate, a.HealthProblems, a.Sex, a.ReasonForEntry, a.HealthProblems, (SELECT Sex FROM lksex WHERE ID = a.sex) AS sex, oo.OwnerTown AS OriginalOwnerCity, oo.OwnerPostcode AS OriginalOwnerPostcode, CASE WHEN a.DeceasedDate Is Not Null AND PutToSleep = 0 AND IsDOA = 0 THEN 'Died' WHEN a.DeceasedDate Is Not Null AND IsDOA = 1 THEN 'DOA' WHEN a.DeceasedDate Is Not Null AND PutToSleep = 1 THEN 'Euthanasia' WHEN a.ActiveMovementDate Is Not Null THEN (SELECT MovementType FROM lksmovementtype WHERE ID = a.ActiveMovementType) ELSE e.ReasonName END AS OutcomeName, CASE WHEN a.DeceasedDate Is Not Null THEN a.DeceasedDate WHEN a.ActiveMovementDate Is Not Null THEN a.ActiveMove mentDate ELSE Null END AS OutcomeDate, CASE WHEN a.DeceasedDate Is Not Null THEN a.PTSReason WHEN a.ActiveMovementDate Is Not Null THEN o.OwnerName ELSE 'Hamworthy Hedgehog Rescue' END AS OutcomeQualifier FROM animal a INNER JOIN species s ON a.SpeciesID = s.ID INNER JOIN animaltype atp ON a.AnimalTypeID = atp.ID LEFT OUTER JOIN adoption m ON m.ID = a.ActiveMovementID LEFT OUTER JOIN owner o ON m.OwnerID = o.ID LEFT OUTER JOIN owner oo ON a.OriginalOwnerID = oo.ID LEFT OUTER JOIN owner bo ON a.BroughtInByOwnerID = bo.ID INNER JOIN entryreason e ON a.EntryReasonID = e.ID ORDER BY a.DateBroughtIn

@robinrt: 2019-02-11 14:44:46
Where is the code for your additional field? I don't see anything accessing an additional field in there. This looks like the intakes by date with outcomes report, but you've removed the WHERE clause so it's going to show all animal records for all time and you've replaced "On Shelter" with the name of your rescue. Not sure if it's a cut and paste error, but you have a space where there shouldn't be one in a.ActiveMove mentDate

@jimdunne: 2019-02-11 14:58:36
I'm sorry, please ignore my stupidity. It looks like I deleted the report in error DOH! I was doing an incremental change file to see what happened, so I could roll back, and deleted the wrong file. I did use that report as a starting point, and made some changes to fit the info the mammal group need. The attached screenshot shows what I am trying to achieve, without the $firstweight error, of course. [Screenshot from 2019-02-11 14-54-37](//muut.com/u/sheltermanager/s3/:sheltermanager:CfBC:screenshotfrom20190211145437.png.jpg)

@robinrt: 2019-02-11 15:00:32
See this item on adding fields to reports https://sheltermanager.com/site/en_faq_asm3.html , you'll want a subquery in your SELECT something like this: (SELECT af.Value FROM additional af INNER JOIN additionalfield aff ON aff.ID = af.AdditionalFieldID WHERE af.LinkID = animal.ID AND aff.FieldName = 'firstweight') AS firstweight Make sure the case of your fieldname matches.


Considering purchase: questions...

@shelteraco: 2019-02-09 11:44:32
I have been using the demo for a few days. I like everything being easy to customize. Can anyone please tell me if we are able to turn off features like requiring microchips and home visits before finalizing adoptions? Also, are there tutorials if we purchase the subscription? I found most everything easy to navigate but would like to see a few "how to's" to make sure I'm not missing something.

@adoptamutt: 2019-02-09 16:17:17
Yes, you can absolutely turn off the microchip and home visit requirement. There are some videos on the sheltermanager YouTube channel.

@shelteraco: 2019-02-09 18:33:27
Thank you!


Audit trail

@1gkwc6: 2019-02-09 10:29:31
I ran the following report fo find a financial transaction. *Audit Trail: All Changes by Specific user* Although I found reference to the transaction, it does not tell me which accounts, it only refers to *'DESTINATIONACCOUNTID':247* and *'SOURCEACCOUNTID': 182*. How can I find out which account 247 and 182 refer to?

@robinrt: 2019-02-11 10:08:08
Run this at Settings->SQL Interface: SELECT ID, Code FROM accounts WHERE ID IN (182, 247)


Auditing Vaccination changes by User

@caninehumanenetwork: 2019-02-08 18:35:29
here have been several instances where our animals are being recorded as receiving a vaccination however our vaccination team has not input that information into the system. Does ASM autopopulate and GIVE vaccines? Can we create an audit log of changes to the vaccines?

@robinrt: 2019-02-11 10:09:13
ASM never autopopulates and gives vaccinations. You can see which person recorded and last changed the vacc by editing it and clicking the user icon at the lower left of the dialog. Vaccinations are audited in the log, but not currently linked to the animal record - something we will be addressing in the current release.


ASM3 Login Loop

@ljm_hrn: 2019-02-08 14:29:24
I just updated our ASM3 install to v41, and am running to an odd issue where it keeps tossing users back to the login page. Occasionally I have been able to get past the login page, but it always tosses me back. Some people can't get past the login page at all. I tried a clean install, and same issue. We run ASM on a shared hosting environment using the tar. Server is running Ubuntu-14.04 and Python 2.7.15 virtualenv. URLs in the config file are set correctly as far as I can tell. Thanks!

@robinrt: 2019-02-08 14:33:06
This can be multiple things, make sure you have memcached running if you're using it. Make sure session-secure-cookie is set to false in /etc/asm3.conf if you aren't using HTTPS on your install (also you will have to reconfigure your ASM if you haven't already as it has a separate config file in /etc/asm3.conf now and sitedefs is not user editable).

@ljm_hrn: 2019-02-08 15:48:27
Thanks for the quick reply! I'm not using memcached, and it's not an option to use it. I don't know if that makes a difference. I was running one of the early ASM3 versions, and didn't have this issue. I am using HTTPS, and session-secure-cookie is set to true. URLs are set to HTTPS as well in the asm3.conf file.

@jimdunne: 2019-02-08 16:55:08
I had the same problem, Restarting memcached fixed it.

@ljm_hrn: 2019-02-15 00:34:06
The issue seemed to be connected with old user permissions in the users table. Once I deleted the data in that column, it stopped happening. Then when I released the update to production it cropped up again, which makes me wonder if there's a separate issue related to having more than one user logged in at the same time. That seems to be the pattern. Our volunteers access ASM through the web, and this is common, but this behavior is new since we updated.

@da_hepcat: 2019-03-04 04:56:18
Did you ever find a resolution for this? I set up ASM3 on a machine at home and had no issues. Now I'm trying to migrate to a shared web hosting service so that we can access the database from anywhere. From what I read, memcached is not recommended for shared web hosting situations due to security concerns. If I disable it, though, I see this login loop. Once in a while I can get in, but then I get kicked out again soon after.

@katereby: 2019-03-20 03:45:09
Has anyone found a solution? I have tried removing and installing the software but can't get it to work. I even added memcached to see if I could get it running, alas no. I can't get logged in at all.

@katereby: 2019-03-21 03:39:52
Restarting memcached hasn't worked for me. Manually restarting sheltermanager doesn't generally work. However, if I open asm3.conf, close it, then restart the service, it sometimes lets me log in. Has anyone found a permanent solution?

@zanne67: 2019-04-08 16:21:57
I believe we are having the same problem too- sessions are timing out constantly and bringing people back to the login screen. I don't believe it has anything to do with number of users logged in at once. We

@zanne67: 2019-04-08 16:22:46
Oops- sorry entered before I finished. We have lots of session timeouts when we work with movements and images. It never happens when working with person records

@robinrt: 2019-04-08 16:27:15
There are many different reasons you could get this - a too small memcache pool, your browser removing cookies, not using memcache with Apache/WSGI. Are you using Apache/WSGI and memcache?

@zanne67: 2019-04-08 16:34:41
I am not the person who installed it- let me see what I can find out

@zanne67: 2019-07-25 04:27:34
We are not using memcache - we can't because we are on a shared hosting service. Is there a way around this? It is pretty unusable as it is.

@robinrt: 2019-07-25 08:25:21
if you don't use memcache, you can only use a single instance with the built in webserver (not Apache or WSGI). I suspect you probably can't run the app directly for the built in webserver either due to it being shared webhosting. I'd recommend buying a VPS to install on - you can get some as cheap as $2.50/mo

@stelmo: 2019-10-03 16:11:04
Hello. In Ubuntu 18.04 I needed to install memcached and solved. Folow this to install memcached https://www.howtoforge.com/tutorial/how-to-install-memcached-on-ubuntu-1804/


Logo not uploading.

@susandawg: 2019-02-06 12:44:40
I've followed the directions for uploading a logo and splash, but they are not showing up. Please advise.

@robinrt: 2019-02-06 15:14:47
Did you make sure they were called logo.jpg and splash.jpg ? If you replaced existing images with these names and you are seeing the old ones, you'll need to press CTRL+R to get your browser to reload them.

@susandawg: 2019-02-06 15:28:55
I did all of that. Names are correct. I logged out and back in again and also refreshed my browser. I am using google chrome and a macbook.

@robinrt: 2019-02-06 15:43:37
are you with sheltermanager.com or is this an open source install? If it's sheltermanager please email support@sheltermanager.com with your account number and I'll take a look

@susandawg: 2019-02-06 15:48:27
Thanks, I will email you. I also changed the size of the files as per the video.

@robinrt: 2019-02-11 10:10:00
For info to others with the same issue, the names logo.jpg and splash.jpg should be all lower case and not capitalised.


Attaching documents to a cat's record

@jillbukata: 2019-02-06 01:28:43
How can you attach a medical file - rabies certificate for example, to a cat's record? We are interested in using the software and this is a feature we would need.

@1gkwc6: 2019-02-06 06:58:51
Via the media tab, you can attach any pdf or jpg file to the animal record.


More than 2 bonded animals field?

@msterling21: 2019-02-05 06:55:52
So for rabbits, there are often times when there are 4+ bonded together. Is there any way to add more than 2 bonded animals? I’m running release 39.

@robinrt: 2019-02-05 08:25:47
I'm afraid there isn't and it's limited to bonded pairs.

@lisazorn: 2022-02-05 20:58:14
I'd like to +1 this request for our rabbit rescue -- It looks like we can have up to 2 bonded now which is great (works for trios!) and if we could get up to 3 (for quads) then that would be wonderful! Thank you <3


missing animals information

@kaykaynga: 2019-02-04 17:49:16
I seem to be having trouble on the add new animal tab some of them are not showing up

@robinrt: 2019-02-04 20:30:39
Hi, what is it that isn't showing up? Could you give a bit more info on the problem you are having?


Email PDF add to log by default?

@1gkwc6: 2019-02-03 20:19:34
Is there a way I can change the default for the tick box to *ticked*, for an email do be added to the log? It is embarrassing to send a second email, when we have forgot to tick the *Add to log* tick box, just for the benefit of having proof of the email in the log. [Emailpdf](//muut.com/u/sheltermanager/s1/:sheltermanager:Tw1D:emailpdf.png.jpg)

@robinrt: 2019-02-04 20:30:22
There isn't currently, but I'll raise that on the development list for the future.


How do you search incidents?

@bkrodle: 2019-01-30 14:15:17
I've entered several incidents into the software and can print a report of those incidents, but when I try the search incident function I can't get anything to show up. I'm trying to search a specific address that I know is in the system as an incident location, but nothing populates in the search function. I'm new to ASM so it may be something I'm missing.

@robinrt: 2019-01-30 15:06:40
Try changing the filter on the search screen (dropdown at the bottom right) - by default it only searches open incidents (those without a completion date)

@bkrodle: 2019-01-30 16:00:22
Thanks! That did it. I could have sworn I tried that, but I must not have.


Remove species from Animal View on website

@daveplummer: 2019-01-30 11:44:38
Hi, Is there a way to remove the 'Species' drop-down from the Animal View page on a website? We've only got cats so it's a tad redundant! I've had a look in the HTML template editor but couldn't see it there. Thanks.

@robinrt: 2019-01-30 11:46:41
Set an asm3-adoptable-filters line without species and include the dropdowns you do want. See https://www.sheltermanager.com/repo/asm3_help/service.html#filters

@daveplummer: 2019-01-30 13:07:54
Thanks Robin. I hoped there'd be a check box but as bit of code n ever hurt anyone.


Petfinder help

@carlabrown: 2019-01-28 03:41:32
I have obtained the proper codes from petfinder and entered them in asm. However, when I ask asm to publish, nothing is uploaded to Petfinder. Help,,, please !!

@robinrt: 2019-01-28 08:51:23
Hi, I answered your support request too. It's PetFinder being slow to process the update files - they info, but might not process it for a day or two.


Undo Import

@mketcham: 2019-01-28 00:09:44
Is there a way to undo a CSV import? I accidentally ticked the "Clear tables before importing" and now there is nothing in my database. Yikes!

@robinrt: 2019-01-28 08:51:40
I've got your support request and will restore the database.


Entering Spouses/Partners

@dorabud: 2019-01-27 21:21:07
How is the best way to enter a spouse's name when adopting an animal? If the adopters have the same last name we have been putting in "John and Jane" in the first name field and "Doe" in the last name field. When they don't have the same last name it doesn't work. How is the best way to handle this?

@robinrt: 2019-01-28 08:54:35
It's a bit hacky, but use the first name field for the first partner and last name for the second. Eg: First: John Smith and Last: Jane Jones This will work fine if your owner name format is set to {first} {last} as it is by default. It means you can search by either name.


Adopted non-neutered/spayed animals mail merge report

@gweeks: 2019-01-26 09:33:31
Hi, Is there a way to exclude certain animal types from this report? We rehome cats and dogs but also small animals i.e. hamsters, rats, birds that are not neutered and therefore would not want to send these adopters a reminder email using the in built mail function asking them to do so now their animal is 6 months old. The only way I can see would be to check the box to say the animal is neutered but think this may cause confusion. Thanks Gary

@robinrt: 2019-01-26 10:03:21
It's probably simpler to just include non-neutered animals by the species you want (just dogs and cats). If you edit the WHERE clause for the mail merge, you can add AND SpeciesID IN (1,2) to only include dogs and cats.


Prescription labels

@rachie_672: 2019-01-23 21:08:27
Does ASM have a way to print prescription labels? I was able to make a label template but cannot generate it anywhere I can click on a medication. I have a Dymo 450 printer.

@robinrt: 2019-01-24 09:14:04
They're usually just regular printers with a non-standard paper size. This section of the manual shows you how to set the paper size for your label printer so that you can produce a PDF to print to it (scroll down until you see the directive on papersize exact): https://www.sheltermanager.com/repo/asm3_help/documents.html#documents

@rachie_672: 2019-01-28 22:18:20
I am wondering if there is way to choose a medical regimen and then make label document to print. As of now you cannot choose to make a document from the medical section of the animals profile.

@robinrt: 2019-01-29 12:27:49
If you know the name of the regimen your document is for, then you can access it via name: https://www.sheltermanager.com/repo/asm3_help/wordkeys.html#medical-keys As you say though, you can't explicitly pick one medical regimen and generate a document for it.


Display users real name

@srupe05: 2019-01-23 18:10:18
I would like to generate a report of treatments given on a particular day, however; I would like the "Given By" to list the users real name as entered in the system user account rather than the username. Can I edit a report in some way to make that possible? Thanks!

@robinrt: 2019-01-23 18:17:06
Sure. Is there a report you're already using and happy with? The technique is to use a subquery in the report query with the GivenBy field like this: SELECT GivenBy, (SELECT RealName FROM user WHERE UserName = GivenBy) AS GivenByRealName,

@srupe05: 2019-01-23 18:24:16
Thank you. The report that works for what I need is Medical, vaccinations, and tests given between two dates by species

@robinrt: 2019-01-23 18:38:19
are you a sheltermanager.com user? If you email your account number to support@sheltermanager.com I'll add it to the report for you.


Transfers showing as adoptable

@carlabrown: 2019-01-21 15:57:42
I have transferred a dog to another rescue but it is still showing in my shelter view and as adoptable. How can i fix this?

@carlabrown: 2019-01-21 16:33:20
and now poof he is moved off.... can there be a lag time for this to happen?

@robinrt: 2019-01-21 16:38:07
Shelter view has a 2 minute cache for performance - if you make a change, it can take shelter view upto 2 minutes to update.


Compatibility information not displaying on Petfinder

@jewing: 2019-01-17 16:36:50
Hello -- We recently configured auto-upload for both Petfinder and Adoptapet. Our adoptable dog listings on Adoptapet accurately specify Yes or No to the "Good w/ Kids/Dogs/Cats?" questions. Our adoptable dog listings on Petfinder only indicate when one of our animals is NOT good with other dogs, cats, and/or kids. We'd like Petfinder listings to also indicate when an animal does get along with others. How can I fix this? Thank you!

@robinrt: 2019-01-17 16:38:43
There isn't a way to fix it - the PetFinder import spec only accepts the NOT version of flags I'm afraid.

@jewing: 2019-01-17 16:44:36
OK, thank you!


Auto generated names

@jimdunne: 2019-01-17 15:42:34
Just a quick one, I cannot for the life of me find where the auto generated names come from - Is the file editable, and could somebody point me in the right direction for finding it please.

@robinrt: 2019-01-17 15:56:07
The file is not editable, it's the animalname module which contains 4000 or so random names. It mixes these with names that have been previously used in the animal database, preferring less well used names and based on the gender of the animal. The random module effectively rolls a dice to decide what to do. If it gets 1-3, then it chooses one from the animalname module. If it gets a 4 or 5 it picks one from the least used set of names for that gender (a "lesser used" name is one that appears 3 times or fewer in the animal database). Otherwise, it chooses one at random from all the names in the animal database.


Reverse proxy only for form access from website

@achmark: 2019-01-14 21:11:14
I want to allow access to the forms only from website but have the rest of the system totally locked down. I plan to have a reverse proxy that only allows /service URI though on port 443 and everything else will be allowed on a non-privileged port (e.g. 1234) which itself has extra authentication layer outside of the ASM setup (nginx). I am using nginx as the proxy, but wanted to confirm if the only URI I need to allow through is the /service or if there would be others that are needed? I want to do this from a security perspective mostly.

@achmark: 2019-01-14 21:13:44
# The base URL to the ASM installation as seen by the client BASE_URL = "https://mysite.mydomain.tld" # The URL to asm's service endpoint to be shown in online forms screen SERVICE_URL = BASE_URL + "/service" This is how I have my sitedefs setting setup. (obviously with my actual site URL in)

@achmark: 2019-01-18 10:37:34
Not sure if my question was clear enough? I basically want the API/WebServices running on their own port when internet facing so I can separate from the main UI. I already have an extra layer of authentication on the UI side, but have to remove that for the services connection, hence this question.

@robinrt: 2019-01-18 13:01:11
I don't see any reason why you can't do that and have a separate reverse proxy for /service. Any data received from /service also POSTs back to /service and never anywhere else. You may have to add some kind of rewriting rule for things like online forms where the response contains HTML and a <form> tag that posts back to service so that it posts to your new endpoint.

@achmark: 2019-01-18 13:19:42
Thanks, I will post back how I get on


Number of animals in foster?

@jamiepea: 2019-01-11 18:10:40
What is the easiest way to see the total number of animals in foster at any given time? Also, what reports can I generate showing this on a monthly and yearly basis?

@robinrt: 2019-01-13 09:16:23
Shelter view shows animals in foster with a total.

@jamiepea: 2019-01-15 21:34:13
Is there a place I need to enable this in settings? My shelter view definitely doesn't show animals in foster.

@robinrt: 2019-01-16 09:57:45
Choose the "Location" mode of shelter view from the dropdown at the top right. You can also use Move->Foster Book

@jamiepea: 2019-01-16 17:39:48
Shelter View>Location only shows Adoption cats/dogs, Medical cats/dogs, Quarantine cats/dogs, Clinic. No foster. The Foster Book shows all animals in foster, but no number.

@jamiepea: 2019-01-17 21:21:22
Any ideas?

@jamiepea: 2019-01-24 18:13:01
Me again. I really need to be able to do this. Is there another way?

@robinrt: 2019-01-25 08:35:18
Are you looking at "Location and Unit" or something? Just "Location" has a section for foster animals with a count. Are you a sheltermanager customer? If you email our support at support@sheltermanager.com with your account number I'll take a look as that doesn't sound right.

@mketcham: 2019-01-27 03:25:15
There is a report under the Auditing Category called "Active Fosters". It will list all the foster animals, by foster family. There is a sum per foster family, and at the bottom of the report there is a total sum.

@mketcham: 2019-01-27 03:26:29
There are also similar reports like Active Fosters (Unaltered/unneutered) that I find useful.


Assign media to multiple animals (eg a litter)

@daveplummer: 2019-01-09 12:51:33
Hi, Does anybody know if there's a way to assign one image to multiple animals? I've a photo pf a cat litter which I want to use for all six kittens but would rather avoid uploading it for each one if possible. Thanks.

@robinrt: 2019-01-09 12:54:13
There isn't an easy way once all the animal records have been created. When you clone an animal, the media is copied and cloned as well, so (if you hadn't created them already) you could create the first kitten with the correct picture and details, then clone it 5 times.

@daveplummer: 2019-01-09 13:08:07
Thanks Robin. Something to remember for next time!


Excel template for bulk imports

@mketcham: 2019-01-09 01:29:07
Does anyone have an Excel template for bulk importing animals? I can put one together but would rather use an existing one if I can.


Pictures not publishing on rescuegroups.org

@sccpets: 2019-01-08 17:48:27
Pictures of some animals are not being published on rescuegroups.org. It is mostly newer listings or ones that have been updated in the last few days. When I look at the publishing logs for all of them it looks similar to this one, where it says it is deleting and then adding files of the same name, but the pictures are never showing up on rescuegroups. Processing: D18Y069: Diogee (52 of 54) delete: D18Y069-1.jpg delete: D18Y069-2.jpg Retrieved image: 578::1806.jpg::D18Y069-1.jpg Uploading: D18Y069-1.jpg Animal has 2 media files (2 recently changed) Retrieved image: 578::1807.jpg::D18Y069-2.jpg Uploading: D18Y069-2.jpg SUCCESS: Processed: D18Y069: Diogee (52 of 54) I can't tell if this is something on the ASM end or their end.

@robinrt: 2019-01-09 08:23:30
There aren't any errors and the uploads are successful, so ASM is sending the images. RG aren't processing them I guess. This seems to be a recurring issue with RG, AdoptAPet and PetFinder, who all use the same mechanism to receive uploads by FTP - sometimes the process at their end that checks for uploaded files breaks or slows down.


How can I download the MDB or at least the DDLs?

@mark_murphy: 2019-01-08 16:51:21
Tried learning SQL to do more complex reports, but no go. Enlisted the help of a colleague who is a DBA. She said that if she has the DDLs she can use the data I dumped from within SM to import it and assist me. How can I get the DDLs for the table data? Or even the MDB file. What I gave her was only the data as that was all I could export. Thanks, Mark Murphy Animal Adoption Foundation aafpets.org c: 513-349-4766

@robinrt: 2019-01-09 08:25:15
You can download DDL for a number of database platforms, along with a data dump at Settings->SQL Interface->Export The report editor and SQL interface support autocomplete. You can press CTRL+SPACE to get a list of the tables and if you type tablename followed by a dot and CTRL+SPACE you get a list of columns in that table. You can inspect existing reports to see what columns are used and there's also a guide in the manual here: https://www.sheltermanager.com/repo/asm3_help/databasetables.html


Not working on Windows 8

@montbatcol: 2019-01-08 01:03:23
Hi, I have been using the ASM3 on Windows 7 and it worked perfect. Now, I must change the computer running on windows 8. I have installed ASM3 but it does not work. I believe it is a phyton problem.Can anyone help? Thanks.

@robinrt: 2019-01-08 10:05:59
Sorry, ASM3 is ot supported on Windows and I've never heard of phyton? Perhaps if you included some of the error messages you're seeing and what you're doing I can help?


Available for Foster

@pawsdarwin: 2019-01-07 18:51:55
How can I export a list of animals 'In shelter' (not on foster) to our website & social media so we can advertised them as requiring a foster home?

@pawsdarwin: 2019-01-13 01:04:47
bump

@robinrt: 2019-01-13 09:17:52
If you're using the javascript include method outlined in the manual, use a filter that excludes animals with an active foster, like this: return a.ACTIVEMOVEMENTTYPE == 0; The info on javascript filters is here: https://www.sheltermanager.com/repo/asm3_help/service.html#filters


Medical Regimes

@pawsdarwin: 2019-01-07 10:52:53
How can I add medical regimes to forms? I have seen the wordkeys but they are not working?

@pawsdarwin: 2019-01-13 01:05:09
bump

@robinrt: 2019-01-13 09:18:31
What word keys are you using that are not working? Which screen are you generating your forms from?

@pawsdarwin: 2019-01-13 12:09:03
Sorry Documents not forms. For example I have a medical regime named 'Dog Worm'. I can't get this to appear on a form using any of the wordkeys under Medical Keys at this link https://sheltermanager.com/repo/asm3_help/wordkeys.html

@robinrt: 2019-01-13 15:16:13
What are the actual keys you are using? For example if you want to get the date the last treatment was given for Dog Worm, you'd use <<MedicalLastTreatmentGivenDogWorm>> spaces are not included in the key.

@pawsdarwin: 2019-01-17 23:53:01
Perfect. This worked thanks. Didnt realise I needed to add it on to the end.


What is the best way to enter an animal that has been adopted and then returns?

@ears: 2019-01-06 16:07:25

@robinrt: 2019-01-06 16:08:12
Edit the adoption movement under the animal's movement tab - complete the return date at the lower right of that dialog. More fields will appear, allowing you to set a return reason and who returned the animal.

@ears: 2019-01-06 17:35:13
Thanks


Publishing

@pawsdarwin: 2019-01-06 00:02:10
Does anyone have the code to publish multiple pics not just the main pic selected in SM?

@robinrt: 2019-01-06 16:08:34
What is it you're trying to do?

@pawsdarwin: 2019-01-07 10:50:38
I'm trying to publish all the media JPG for the animal not just the selected pic. Like Petrescue do.

@robinrt: 2019-01-07 14:23:45
To where, is this for your website? Could you give me a link to where you're seeing only one image?

@pawsdarwin: 2019-01-07 18:45:52
http://pawsdarwin.org.au/animals-available-for-adoption/

@pawsdarwin: 2019-01-13 01:04:59
bump

@pawsdarwin: 2019-01-17 23:53:36
bump

@pawsdarwin: 2019-01-22 12:20:13
bump

@robinrt: 2019-01-22 12:21:59
Page returns a 404? How are you populating your website - is it the static publisher, service calls or the javascript include? If you're a sheltermanager.com customer you can email support@sheltermanager.com for immediate help instead of having to wait on the forum.

@pawsdarwin: 2019-01-22 12:32:21
The Javascript.

@pawsdarwin: 2019-01-22 12:34:05
Sorry please try this link... http://pawsdarwin.org.au/animals-available-for-adoption-2/#

@robinrt: 2019-01-22 12:44:11
You have the old version of the animalview template. The newer one shows 4 images by default. It looks like you've made changes to your existing one, so I won't replace it but I've added the newer one to your data as animalviewnew under Publishing->Edit HTML Publishing Templates so that you can copy bits as necessary.

@pawsdarwin: 2019-01-23 08:07:23
Thankyou!!!


Petrescue Publishing Errors

@pawsdarwin: 2019-01-04 02:14:27
Where can I find information to help me fix the Petrescue publishing errors?

@robinrt: 2019-01-04 08:56:35
Publishing->View Publishing Logs

@pawsdarwin: 2019-01-05 00:54:47
Sorry yes this is where I find that there are errors however how do I interpret the information to find the fix?

@robinrt: 2019-01-05 09:32:35
could you paste some of the errors?

@pawsdarwin: 2019-01-05 23:53:28
These are the two alerts: ALERT: HTTP 504, headers: ['Content-Length: 0\r\n', 'Connection: Close\r\n'], response: ALERT: HTTP 400, headers: ['Cache-Control: no-cache\r\n', 'Content-Type: application/json; charset=utf-8\r\n', 'Date: Sat, 05 Jan 2019 18:18:19 GMT\r\n', 'Server: nginx/1.11.9\r\n', 'Status: 400 Bad Request\r\n', 'Vary: Origin\r\n', 'X-Content-Type-Options: nosniff\r\n', 'X-Request-Id: 58369e9d-d009-42dd-bad7-ac0645e594cb\r\n', 'X-Runtime: 51.971268\r\n', 'X-XSS-Protection: 1; mode=block\r\n', 'transfer-encoding: chunked\r\n', 'Connection: Close\r\n'], response: {"errors":{"postcode":["Can't be blank","Is invalid","Can't be blank"],"location":["Can't be blank"]},"error_code":"invalid_listing"}

@robinrt: 2019-01-06 16:07:22
The errors are at the end of the HTTP 400. Location and Postcode are blank - make sure your address is set correctly under Settings->Options->Shelter Details

@pawsdarwin: 2019-01-07 10:51:24
The address is correct. This is for 3 of 90 odd animals?

@pawsdarwin: 2019-01-07 18:46:23
Also are you able to assist with 504?

@pawsdarwin: 2019-01-13 01:04:53
bump

@pawsdarwin: 2019-01-17 23:53:44
bump

@robinrt: 2019-01-18 13:02:24
No, sorry, I don't know what that is, something malformed possibly. We did apply some text encoding fixes since then, so hopefully that should have sorted itself out.

@pawsdarwin: 2019-01-18 14:39:17
Okay so as at today I have five errors out of 88. 3x ALERT: HTTP 504, headers: ['Content-Length: 0\r\n', 'Connection: Close\r\n'], response: 2x ALERT: HTTP 400, headers: ['Cache-Control: no-cache\r\n', 'Content-Type: application/json; charset=utf-8\r\n', 'Date: Thu, 17 Jan 2019 18:06:30 GMT\r\n', 'Server: nginx/1.11.9\r\n', 'Status: 400 Bad Request\r\n', 'Vary: Origin\r\n', 'X-Content-Type-Options: nosniff\r\n', 'X-Request-Id: e4008b20-0a81-476f-b43a-393ef09acfc1\r\n', 'X-Runtime: 52.599817\r\n', 'X-XSS-Protection: 1; mode=block\r\n', 'transfer-encoding: chunked\r\n', 'Connection: Close\r\n'], response: {"errors":{"postcode":["Can't be blank","Is invalid","Can't be blank"],"location":["Can't be blank"]},"error_code":"invalid_listing"}

@pawsdarwin: 2019-01-22 12:20:05
Bump

@pawsdarwin: 2019-01-22 12:24:10
Thanks. I checked Settings/Options/Shelter Details when first suggested above. They are correct and there is a postcode.

@robinrt: 2019-01-22 12:24:32
The blank postcode is likely to be caused by you having no postcode set on the fosterer person record - we use the fosterer's postcode to geolocate the animal if it is on foster. The 5xx errors are server side errors at the PetRescue end so we'll need to talk to them to figure out what the issue is as we can't see it from our side.

@pawsdarwin: 2019-01-22 12:25:32
Thanks will check it out.

@pawsdarwin: 2019-01-22 12:30:28
Brilliant. That fixed the 400 thankyou :)

@pawsdarwin: 2019-01-22 12:36:56
This is the only error left Processing: C2017010: Ink (24 of 67) Sending POST to https://www.petrescue.com.au/api/v2/listings to create/update listing: {"status": "active", "contact_preferred_method": "email", "species_name": "Cat", "contact_details_source": "self", "incompatible_with_cats": false, "interstate": true, "vaccinated": true, "photo_urls": ["https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=3092.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=3086.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=3087.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=3088.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=3089.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=3090.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=3091.jpg", "https://service.sheltermanager.com/asmservice?accou nt=zz0770&method=dbfs_image&title=3093.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=3094.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=3095.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=5038.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=5039.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=6235.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=6236.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=7952.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=7953.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=7954.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=7955.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=7956.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=7957.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=8242.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=8243.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=12836.jpg", "https://service.sheltermanager.com/asmservice?account=zz0770&method=dbfs_image&title=12837.jpg"], "intake_origin": "community_cat", "needs_constant_care": false, "location_suburb": "Bellamack", "best_feature": "Looking for love", "foster_needed": false, "location_postcode": "0832", "adoption_fee": "99.00", "contact_name": "PAWS Darwin", "desexed": true, "senior": false, "size": "", "contact_number": "08 89471272", "coat": "short", "breed_names": ["Domestic Short Hair"], "name": "Ink", "heart_worm_treated": null, "incompatible_with_kids_under_5": false, "gender": "male", "contact_method": "email", "remote_id": "756", "multiple_animals": false, "mix": false, "medical_notes": "", "date_of_birth": "2017-04-01", "shelter_code": "C2017010", "incompatible_with_dogs": false, "remote_source": "SMzz0770", "wormed": null, "contact_email": "pawsdarwinteam@gmail.com", "location_state_abbr": "NT", "incompatible_with_kids_6_to_12": false, "adoption_process": "", "microchip_number": "", "personality": "Meet Ink! \nInk is a very affectionate cat who loves be next to you! A young boy still, he is highly playful and affectionate, and just loves cuddles with humans! This friendly feline is also is very social with all other cats. Ink is a good eater and loves his food, which contributes to his handsome sleek & shiny coat. Ink would be suited to a home where he has a cat friend (or two) to play with.All PAWS Darwin animals come with de-sexing, up to date vaccinations and worming plus micro-chipping. In addition to this all dogs are eligible for 4 free socialisation classes. For more information or to meet the animal please complete this form https://aus01.sheltermanager.com/service?account=zz0770&method=online_form_html&formid=27"} ALERT: HTTP 504, headers: ['Content-Length: 0\r\n', 'Connection: Close\r\n'], response:

@robinrt: 2019-01-22 12:41:06
My guess would be that the use of the & in sleek & shiny coat is causing some kind of text encoding error at PR's end, but it's impossible for us to debug. Try switching that & to the word "and" and see if it fixes it.

@pawsdarwin: 2019-01-23 08:09:11
Thanks :)

@pawsdarwin: 2019-01-23 08:13:38
Bugger. Nope that didnt work.


Medical Regimen

@pawsdarwin: 2019-01-04 01:48:30
Where can I modify and add Medical Regimens?

@pawsdarwin: 2019-01-04 04:44:28
Please ignore I have found!


Facebook publish by species

@pawsdarwin: 2019-01-03 07:58:27
I have been able to set up a Tab on Facebook with a list of all adoptable animals by using this script. Is anyone able to tell me how I can modify this script so I can have one Tab with Dogs & one Tab with Cats? Also hoping to do a tab that just has Ón Shelter' Animals who need a foster home. Any help appreciated. <iframe src="https://public.sheltermanager.com/animals/zz0770/" width="100%" height="600px"></iframe>

@robinrt: 2019-01-03 09:29:17
Assuming that you set the option for separate pages by species (Publishing->Set Publishing Options->HTML/FTP Publisher), then there will be a page for each one and you can set the src attribute accordingly. Eg: for dogs, use: https://public.sheltermanager.com/animals/zz0770/Dog.html

@pawsdarwin: 2019-01-03 23:42:47
Brilliant thanks!! Got it working. Do you know if there is a way to have another script that shows animals who are currently on shelter (ie not in foster)?


report for agency transfer

@svkinsey: 2019-01-02 20:41:41
How would I generate a report that lists the specific animals transferred to another agency during a certain time period?

@robinrt: 2019-01-02 20:43:49
There are a few reports that can do this, but I think "Transfers by Destination" is the one you want. Install it under Settings->Reports->Browse sheltermanager.com


Publish to website.

@pawsdarwin: 2019-01-02 06:11:18
Okay so I have been able to enable the publishing to Petrescue and our FB page but I just cant seem to get it to publish to our website. I have no idea what I am doing but have just been using the manual https://sheltermanager.com/repo/asm3_help/website.html I have tried inserting this script with the word ACCOUNT substituted for our account number <div id="asm3-adoptables" /> <script src="https://service.sheltermanager.com/asmservice?method=animal_view_adoptable_js&account=ACCOUNT"></script> I have also tried inserting this script with the word ACCOUNT substituted for our account number <div id="asm3-adoptables" /> <script src="https://service.sheltermanager.com/service/asmservice?account=ACCOUNT&method=animal_view_adoptable_js"></script> What am I doing wrong???? Please help. Thanks

@robinrt: 2019-01-02 09:41:11
Could you give us a link to the page where you using it so we can see what's happening? The snippet you've posted looks correct.

@pawsdarwin: 2019-01-03 02:54:54
http://pawsdarwin.org.au/animals-available-for-adoption/

@pawsdarwin: 2019-01-03 02:57:37
Could you please let me know which snippet is correct?

@robinrt: 2019-01-03 09:33:32
Sorry I can't advise further on the specifics of the tool you're using for your website, but the snippet is HTML code and needs to be inserted as a raw value into your page. Most website editing tools usually have a tab or pane when you can edit the raw HTML directly (sometimes labeled "Source"). The snippet has been escaped as content (the < > angle brackets have been replaced with HTML entities), which means the browser does not recognise it as code and is just displaying the snippet instead of executing it.

@pawsdarwin: 2019-01-03 22:56:54
Thankyou!!!!! I got it working!!!!

@pawsdarwin: 2019-01-03 23:05:26
Although it is not using the HTML publishing template I selected?

@pawsdarwin: 2019-01-03 23:41:43
All good. Sorted :)


Vaccinations

@cindiczyzakkaiser: 2019-01-02 01:37:58
Previously if an cat was adopted any vaccines in the future did not show up on the calendar. Now they are and I have to manually delete the expiration date. Please help as this is time consuming and frustrating.

@pawsdarwin: 2019-01-02 07:22:19
Can you check your settings in Options/Medical?

@robinrt: 2019-01-05 09:33:39
Yes, the option "Settings->Options->Medical->Include off-shelter animals in medical books and calendars" has been turned on.


Online forms

@1gkwc6: 2018-12-30 11:42:54
Has anybody got any idea how I can make the process of sending out online forms easier? It is a bit of a catch 22. For example I can not use the ASM mail function to send out a form to an new adopter or new volunteer because I have not yet got their details on the system. Ideally, I would like to tick the box to the left of the online form and click on "EMAIL". Although most of our forms are embedded on our website some our volunteers find it challenging to copy and paste the url between applications when they are responding to and email or directing people to the forms via social media.

@bajadogslapaz: 2019-01-01 00:09:23
I don't know if this helps you, but what we do is use the ASM forms and imbed them as an Iframe in our website. Then we use the functions associated with those forms to send out emails to the person who just submitted a form. There is not yet a record for the person at that time and it works great. They have to input their email address in the form -- but it goes out automatically to them once they submit it. Here is a link to the page and when they click on the form they want, it opens a modal with the form in it. They submit and get an automatic reply back depending on which form they submitted. https://bajadogslapaz.org/adoption-application/

@1gkwc6: 2019-01-04 09:19:24
Thank you for the link to your website, it gave us some ideas of how to improve our forms.


Animal Merge

@sharondennis: 2018-12-27 22:18:16
Our staff and I have been unable to locate the animal merge option. I found the person merge. I also looked under the animal section. Thank you!

@robinrt: 2018-12-28 09:16:04
The "Delete Animal" permission is needed for the merge button to be visible on the animal details section. It's required because the merged animal is deleted afterwards.

@inghamn: 2019-01-02 15:24:04
Where should the merge option show up? Here, in Bloomington, we're trying out a deployment from the master branch but are also not seeing the merge function. We've updated the role to have "delete animal" permission, but still don't see it.

@sharondennis: 2019-01-02 18:16:19
Okay. We had taken away the delete function in order to keep animals from being deleted from our system without merging.

@robinrt: 2019-01-02 20:44:05
The merge option is a button on the animal details toolbar.

@inghamn: 2019-01-02 20:54:41
Okay, thanks very much. For us, it turned out to be a problem with our deployment. I've updated our Ansible scripts and redployed. The button shows up now.


Foster Home - Limit View

@catniptam: 2018-12-26 19:06:59
Our foster home organization is in the process of implementing ASM and I can tell it will be a task for me because of the quirks of the group! I have a couple of founders who don't want the newer foster homes to be able to see the foster animals in their homes. I'm not sure I can build a Chinese wall around each of the foster homes and in a few cases, I WANT foster homes to be able to see each other's fosters. Any ideas?

@robinrt: 2018-12-28 09:17:37
Yes, if you enable "Location Filters" under Settings->Options->Display, you can then optionally assign filters to the user accounts. One of the filters you can choose is "My Fosters". Setting that filter will prevent a user seeing anything but the animals they are currently fostering.

@catniptam: 2019-01-07 20:09:25
Thank you!


Adopted non-neutered/spayed animals report

@pzappen: 2018-12-23 22:51:03
This report would be more helpful if we could select a date range for the output. The report now includes all appropriate records from the beginning - our our case, from 2005. I can sort that easily enough but choice of date range would be nice. Any ideas?

@adoptamutt: 2018-12-23 23:07:25
Go to Settings > Reports and Clone that report. You can look at other reports that use date criteria, but you can simply add the below before your select statement. $VAR from DATE Enter from date$ $VAR to DATE Enter to date$ Then you include these variables in your WHERE statement: and animal.ActiveMovementDate >= '$@from$' AND animal.ActiveMovementDate <= '$@to$ 23:59:59'

@pzappen: 2018-12-24 12:32:16
Thank you.

@pzappen: 2018-12-24 12:33:31
Hmm, I did this, got the prompt for date range, and got the same results of records since 2005. I'll try again.


Animal weight on entry

@jimdunne: 2018-12-22 16:26:07
I'm writing a few custom reports for our Hedgehog rescue so that we can pass information on to the Mammal Society. One of the fields they need is weight on entry - I'm really struggling with this, is there a way to extract this please?

@robinrt: 2018-12-22 17:05:14
I think the log only starts recording weights when the first change is recorded. Either use the current weight (animal.Weight) or add weight on entry as an additional field (Settings->Additional Fields).

@candidhominid: 2018-12-23 16:40:07
In case it's helpful, you could add this to reports to access the first weight recorded in an animal's log: --- (SELECT l.Comments FROM log l INNER JOIN logtype lt ON lt.ID = l.LogTypeID WHERE l.LinkType = 0 AND l.LINKID = a.ID AND lt.LogTypeName like 'Weight' /* Change if you are using a different log name for weights */ ORDER BY l.Date ASC LIMIT 1 OFFSET 0) AS firstweight ---

@candidhominid: 2018-12-23 17:01:23
Or, it occurs to me, you could add --- AND l.date = a.DATEBROUGHTIN --- to the WHERE statement to access a weight log from the entry date.

@jimdunne: 2018-12-24 15:06:34
Thank you both, I'll give those ideas a go.


HTML Publishing options

@joshnoonan: 2018-12-10 16:53:23
Good morning, I basically just installed ASM3 and got it up and running. I have 1 demo dog listed as adoptable. I am trying to test out the html publishing options. I am leaving the publish to folder blank. Looking at the publishing logs it is publishing something, but I cannot find any of the files on the server, I am also not sure on how to link to the published files to show on the website. Any help would be appreciative. Thanks!

@robinrt: 2018-12-10 17:01:08
If you leave the folder blank, it will be publishing to a temporary folder in /tmp You'll need to either specify FTP credentials to upload pages to your site, or use a webserver on the machine running ASM3 to expose the folder containing published files.

@joshnoonan: 2018-12-10 18:01:43
Got it thanks! I was able to setup a FTP server to capture the files. I do not see any sort of general index.html or do we need to setup our website to display display all the files? Also I am assigning a static IP for the webserver and there is a FQDN associated with the IP also. Is there a way to configure the program to use that hostname instead of localhost? (so when I click on an online form is shows www.hostname.com/form... instead of localhost/form etc. Thanks again for this awesome program!

@joshnoonan: 2018-12-10 19:27:23
Nevermind...I got it. Rookie mistake. I did not edit my base url in site sitedefs.py. Thanks!

@robinrt: 2018-12-11 14:21:47
Depending on publishing mode, the pages output are either 1.html or all.html - you can assign those as index pages in your Apache .htaccess file with the DirectoryIndex directive (assuming you're using Apache that is).


Publishing is including adopted anima

@herreraandres360: 2018-12-10 07:05:37
Hello, Looking for some help. Recently since 12/5 we have noticed that the publishing from ASM is including some dogs that have been adopted for a long time and we do not know why? The last movement on the animals is an adoption. We even tried to add some different flags like do not publish. We are getting calls about dogs that have already been adopted. Please help! Example Diego: [PublishingError1](//muut.com/u/sheltermanager/s3/:sheltermanager:aAM6:publishingerror1.png.jpg) [PublishingError2](//muut.com/u/sheltermanager/s3/:sheltermanager:klcc:publishingerror2.png.jpg)

@robinrt: 2018-12-10 09:47:47
Do these animals have the "Courtesy Listing" flag? That flag is an override that forces any animal to be adoptable. It's used so you can publicise non-shelter animals, or animals previously adopted where the owner is handling the adoption, etc.

@herreraandres360: 2018-12-10 22:41:41
That was the problem! Thank you so mcuh!


Certification for Shelter Manager Users

@sharondennis: 2018-12-09 00:50:45
Is there a certification program available for users of Shelter Manager? Thanks!

@robinrt: 2018-12-09 18:09:50
Hi, there isn't, but that's a really fantastic idea for something we should be offering in future!


Auto Vac. and test

@618animalcontrol: 2018-12-05 19:14:12
Is there a way to set it up to where certain tests/vaccinations auto populate when a new animal is added? If so, can it be set up for certain dates after entry?

@robinrt: 2018-12-05 19:20:23
Yes and yes. https://sheltermanager.com/repo/asm3_help/animals.html#template-animals

@618animalcontrol: 2018-12-05 19:37:48
Perfect. thank you.


Document Temp. Upload

@618animalcontrol: 2018-12-04 15:03:22
Is there an easy way to edit a document outside of the manager interface and upload it later on? Also, Is there a way to search for or look at a document someone else has created that might be what I'm already looking for? I'm not the best at formatting these sheets.


App use on mobile

@1gkwc6: 2018-12-04 06:50:54
I find that I rely heavily on using the ASM app on my mobile phone when looking for a telephone number of a volunteer for instance. Is there a way of hyperlinking the telephone number field on the person entity so that one can click it to dial the number? I find it tedious having to select the telephone number first, then having to copy it and create a new contact on my phone before I can dial the number.

@robinrt: 2018-12-04 09:51:48
Hi this should definitely be the case in the smartphone interface. Are you using the tablet/desktop interface via the mobile app?

@1gkwc6: 2018-12-04 18:27:16
Aaah, yes, I am using desktop/tablet. I have just tried and it works with the smartphone interface. Thank you


Additional fields on forms

@1gkwc6: 2018-12-03 17:28:55
Is it possible to add additional fields to forms? I have search PERSONADDITIONAL and ANIMALADDITIONAL in the manual, but can only find reference to it CSV imports.

@robinrt: 2018-12-03 18:28:59
Not right now, but this is something we're adding in the next week as part of planned development. There are a few planned improvements to online forms.

@1gkwc6: 2019-07-17 11:17:25
Hello, has this development been deployed? I don't seem to have the option of adding additional fields to our forms.

@robinrt: 2019-07-17 14:34:48
Yes, it was added a while ago. Your form fields need to have the same name as your additional fields, but with the prefix "additional". For example, say you have an additional field called "MyField", then you'd name your form field "additionalMyField"

@1gkwc6: 2019-07-21 21:10:47
Thank you.


Printing vaccinations

@mdeprima1964: 2018-12-01 00:34:46
I have modified the medical form template. I'm struggling with vaccinations. We are creating a record for the next vaccination due, but when I print using "VaccinationNameLast(N) and "VaccinationGivenLast(N)", the records with no date given yet are causing the entries to be out of sync. Help!! Also, my new template looks really pretty, I'll share it with you when I'm done 😁.

@mdeprima1964: 2018-12-01 00:49:25
They also seem to be printing oldest to newest by date and newest to oldest by name

@mdeprima1964: 2018-12-01 00:54:58
Never mind! I figured it out! I was missing "Last" on the date column. Thank you.


scanning in old records

@eloving101: 2018-11-28 23:21:15
Our shelter is trying to scan in old records from before we had ASM. Is there a way to streamline the process versus scanning separate records and dropping them in one by one?

@robinrt: 2018-11-29 09:12:35
Sorry, there isn't a way to bulk attach scans to the different media tabs of records I'm afraid.


Merge animals

@srupe05: 2018-11-27 20:40:40
I tried the merge animal feature for the first time today (something I had been waiting for). It seems to be duplicating all records (vaccines, tests, medical, movements, etc.) for the animal that was merged into one. When I tried to delete one movement record (a duplicate of the original adoption movement) both were deleted. Not sure if this is something that has already been noted or not. [Duplicates](//muut.com/u/sheltermanager/s1/:sheltermanager:GUcD:duplicates.png.jpg)

@srupe05: 2018-11-27 20:43:47
Additionally, creating any new record generates a duplicate.

@robinrt: 2018-11-28 10:36:32
Are they actually duplicates or were the records created twice? Merge animal reparents all of the medical/test/vacc/movements from the merged record into the selected record and then deletes the merged record. If you keyed in the records twice against both then it will look like duplicates. It would be dangerous for it to try and delete items that look like duplicates.

@srupe05: 2018-11-28 13:54:38
It appears like duplicates. The record that was merged into another (and was then deleted) did not have any vaccine, medical, or movement records prior to the merge. In the new merged animal record, I cannot create any new vaccine, medical, movement, etc. records without it creating a duplicate entry. Attempting to delete one of the duplicates, deletes both.

@robinrt: 2018-11-28 16:59:55
Ah, this sounds like a problem with a join making it appear like there are 2 versions of a record when there are 1. If you're using sheltermanager.com could you let me know your account number and point me at a record where this has happened so we can figure out what's going on? As you've seen, they aren't really duplicates and deleting them will delete the records. Email support@sheltermanager.com


neutered in care report

@pzappen: 2018-11-27 14:20:51
When an animal is altered at the shelter and then dies at the shelter, the column for "neutered in care" shows 'no" and the active movement field is blank. I am guessing that the neutered in care column says no because there is no end date at the shelter. If that is correct, can someone suggest a remedy? I don't see that I can add "died at shelter" to the movement options. Any help to change the "neutered in care" column to a "yes" for animals dying after they are altered?

@robinrt: 2018-11-28 10:40:39
I've fixed the neutered in care report in the repository to cope with now deceased animals. Delete and reinstall it to update.


Log print?

@jimdunne: 2018-11-26 11:34:13
We have some hedgehogs that are being transferred back to Vets for on-going care (We look after them over the weekends for the Vets) and would like to print out a list of observations etc for the Vets. We use the log facility to record observations using a 'History' flag, and also weight recordings, food/water intake, toileting etc - all important information in building a picture of an animals recovery. Is there a way to produce a report based on the log entries? The medication given is covered by the 'Medical Print' report in the Reports>Auditing section. Many thanks.

@robinrt: 2018-11-26 11:45:38
The "Print Animal (for adopters)" report could be customised to only include the bits you want to give the vet. That's probably the easiest way to go.


Starting to automate sending microchip info

@mdeprima1964: 2018-11-25 19:44:09
I'm never sure whether to use Community or Support. We're a Shelter.com customer but it's a question, not a support issue. I've checked community and didn't see an answer. We want to turn on the function to automatically upload microchip information (to petlink for now) upon adoption. I'll figure out how to do that soon. But our question is... we've manually processed microchip information up to now, how do we prevent all the old info from going to PetLink and overlaying what's already been entered online by the client when we turn the function on? We only want to send the data going forward. thank you! Michelle

@robinrt: 2018-11-25 21:03:52
Adoption and reclaim are the defaults for microchip registration. You can set which events cause registration under Publishing->Set Publishing Options->All Publishers->Register Microchips after You could use this query to set the "Do not register" flag for animals that have already left the shelter so that your current shelter inventory (and any future animals) will have their microchips registered when adopted. UPDATE animal SET IsNotForRegistration=1 WHERE Archived=1 Queries should be run under Settings->SQL Interface

@mdeprima1964: 2018-12-01 00:35:36
Thank you as always for your help!!

@mdeprima1964: 2019-03-14 06:21:43
So, I finally received my group account number and enabled the publishing option for SmartTag. It was very easy! The only clarification I need is: we've had about 4 kittens adopted with the SmartTag chips. We've already processed the movement. Will they be registered automatically?

@robinrt: 2019-03-15 08:57:10
Yes, they will. You can check under Publishing->View Publishing Logs to make sure they've gone. It will also show on the "Publishing History" slider of the kittens records.

@mdeprima1964: 2019-03-15 11:24:59
Thank you! As I added a new microchip, I see that there's a new checkbox in "health and identification" that specifically says SmartTag PetId. What is that for? If I check it, there's a drop down for a subscription term?

@robinrt: 2019-03-15 12:38:40
It's for registering their pet tags. If you are only implanting chips, you can ignore it.


Medical regimes

@mjmcclane: 2018-11-23 23:27:49
Is there a way for medical regimes to 'end' once the animal is adopted or is this something we have to do manually?

@robinrt: 2018-11-24 08:59:22
That's the normal behaviour and you should not be alerted for any medical treatments related to animals who have left the shelter. Did you turn on the option to ignore that behaviour? It's Settings->Options->Medical->Include off-shelter animals in medical books and calendars


Email merge tokens

@1gkwc6: 2018-11-22 08:34:37
Am I limited to the tokens shown on the Send email on the mail merge screen or can I add Person additional fields?

@robinrt: 2018-11-22 09:16:27
The mail merge can only access fields from the query SELECT statement of the merge itself. There's nothing to stop you adding additional fields to the mail merge itself to have them available as tokens. There's info here on using subqueries to access additional fields: https://sheltermanager.com/site/en_faq_asm3.html

@1gkwc6: 2019-11-03 18:55:45
I created a custom sub query with an *Owner additional field* that I have tested on the *SQL Interface*. But I can't seem to get it to work when I add it to a *Membership Mail Merge.* This is my code: $VAR flag PERSONFLAG$ SELECT DISTINCT o.OwnerName,o.OwnerAddress, o.OwnerTown, o.OwnerCounty, o.OwnerPostcode, o.HomeTelephone, o.WorkTelephone, o.EmailAddress, o.OwnerTitle, o.OwnerForenames, o.OwnerSurname, o.MembershipExpiryDate FROM owner o WHERE o.ExcludeFromBulkEmail = 0 AND o.IsDeceased = 0 AND (o.AdditionalFlags LIKE '$@flag$|%' OR o.AdditionalFlags LIKE '%|$@flag$|%') ORDER BY o.OwnerSurname SELECT ownerName, (SELECT af.Value FROM additional af INNER JOIN additionalfield aff ON aff.ID = af.AdditionalFieldID WHERE af.LinkID = owner.ID AND aff.FieldName = 'fayrestallnumber') AS YourField FROM owner

@robinrt: 2019-11-04 09:28:34
see answer to separate question you posted.


import additional fields

@1gkwc6: 2018-11-21 08:56:38
Does ASM support importing Additional Fields via the importing a CSV file? I could not get it to work, but was unsure if I was maybe doing it wrong?

@robinrt: 2018-11-21 09:05:28
I'm afraid not. Only the fields listed here are supported: https://sheltermanager.com/repo/asm3_help/csvimportfields.html#csvimportfields

@adoptamutt: 2018-11-21 14:23:16
The user guide mentions using ANIMALADDITIONAL<fieldname> to import additional fields. I haven't tried it, but in the past, I have just stored the data I needed in ANIMALMARKINGS or ANIMALHIDDENCOMMENTS and then once the CSV was uploaded, ran an SQL to update another field based on the value of the markings field. For example, I imported the word "Declawed" in ANIMALMARKINGS and then ran this SQL after import: update animal set declawed = 1 where markings like 'Declaw%'. I think you could do the same with the additional fields after import.

@robinrt: 2018-11-21 14:57:04
Oh it does. I'm really sorry, giving out bad information! Yes, you can import additional fields via ANIMALADDITIONAL as Karen says.

@1gkwc6: 2018-11-21 22:05:45
Actually the additional fields I want to import are person related not animal. Would that work too?

@1gkwc6: 2018-11-22 08:05:49
I found the PERSONADDITIONAL<fieldname> in the userguide. Tested it and it worked.


How to bulk edit and/or delete Person Records

@colson1920: 2018-11-20 21:14:12
I have two questions - 1) Does anyone know how to do a bulk edit of a person record to remove a particular flag 2) Is there a way to bulk delete person records with a particular flag. We are trying to clean-up our database which has gotten very outdated over time. Does anyone know how to do either of these two tasks. I suspect it can all be done with SQL but unfortunately I only know enough SQL to be dangerous and am afraid of making a mistake which I believe there is no undo once you execute the SQL script. Chris

@robinrt: 2018-11-26 09:44:41
It depends on whether the flag you want to remove is one of the built in ones or one you've added yourself as to the SQL needed. The same applies to question 2. What flag is it you want to remove and which people do you want to remove based on flag?


Report - medical tab

@mjmcclane: 2018-11-20 06:49:17
Is there is a report to capture the medical tab information; specifically if there are animals without anything in the medical tab.

@robinrt: 2018-11-20 09:42:17
Yes, there's a report called "Animals without medical treatment". It lets you search for animals who don't have a medical regimen with the name you're searching for (handy for identifying shelter animals who haven't been defleaed or wormed for example). There's no report that looks for a completely empty medical tab, but it could be done with a query. SELECT AnimalName, ShelterCode FROM animal WHERE ID NOT IN (SELECT AnimalID FROM animalmedical) You run queries under Settings->SQL Interface

@mjmcclane: 2018-11-20 10:30:13
Aren't you a gem! Thank you. Can I run a query for current animals? The above did alllllll (we just imported so have lots of updating to do)

@mjmcclane: 2018-11-20 10:38:14
Actually; I'm even more annoying. I'm after current animals with an overdue regime. I'm not fluent in SQL so while I fiddle around I thought I would ask.

@robinrt: 2018-11-20 14:08:20
There are reports to cover that - the "Medical Diary" report will do it, you can also view overdue items in Medical->Medical Book and Medical->Medical Calendar. The same query for just shelter animals is: SELECT AnimalName, ShelterCode FROM animal WHERE Archived = 0 AND ID NOT IN (SELECT AnimalID FROM animalmedical)


Email media template?

@mjmcclane: 2018-11-20 06:48:52
I'm wondering if there is a way to have a default message appear in the Media--> Email PDF box?

@robinrt: 2018-11-20 09:39:40
Not at present, but it is on our development list.


Medical regimen

@jimdunne: 2018-11-17 16:53:06
We have hedgehogs undergoing lungworm treatment at the moment, the regimen is 3 different injections, twice a day for three days. This is the easy part, and is handled by creating a multi treatment medical profile. The difficult part is that this treatment then has to be carried out again from day thirteen after completion of the first set of treatments. Is there a way this can be created automatically in asm, or would I have to create a diary entry for each and every hog as a reminder?

@jimdunne: 2018-11-20 13:22:54
No reply?


Template animal feature - Distinguishing between non-shelter and shelter.

@adoptamutt: 2018-11-16 14:09:40
I'm using the TemplateSpecies feature to add default vaccinations on new animals, but don't want the template to affect new non-shelter animals. Is there a way to do this?

@robinrt: 2018-11-16 16:19:51
There isn't, that's a really good spot! I think by default we shouldn't apply templates to new non-shelter animals. I'll raise that as an issue now. Thanks!

@srupe05: 2018-11-19 16:22:47
I just noticed this update and wanted to point out that my shelter utilizes the template feature for non-shelter animals (specifically for animals entering our public spay/neuter clinic - the template allows the automatic generation of medical treatments and vaccines.) It is quite a time saver and without will require the manual entry of each medical treatment/vaccine. In order to separate the non-shelter and shelter animal templates, we utilize TemplateType for non shelter (our animal type being Public Surgery for surgery patients and Non-Shelter Animal for any other) and TemplateSpecies for shelter animals. We have not had any issues with doing it this way.


Can ASM3 track Food stocks, or Other Items including drugs in storage

@danhongo: 2018-11-16 14:08:26

@adoptamutt: 2018-11-16 14:21:53
Yes it can. Look under Stock Control in the user manual.


Unable to view staff record

@jimdunne: 2018-11-15 11:32:10
I am a super user for our own hosted asm3 installation and am having a problem in that I view, and therefore edit, some records. I get the error "Permission Error cannot view user staff record". There seem to be no settings for Super User under the 'Edit roles' tab - is there anyway I can change this?

@jimdunne: 2018-11-15 12:00:32
*That should be cannot view, sorry.

@robinrt: 2018-11-15 14:46:54
You've linked a staff record to your user account directly. If you break that link you can view it. It's editable in your user account itself rather than a role.


Slide Show

@jankemp: 2018-11-14 22:50:23
Is there capability within shelter manager to play a slide show of all the adoptable animals on a tv/monitor for viewing in the lobby?

@robinrt: 2018-11-15 09:25:38
There isn't, but I've added this as a future HTML template for us to add.


s/n cost and neutered in care report

@pzappen123: 2018-11-13 12:10:41
One more medical question. We would like to have the cost included for s/n and we also want the s/n to show up on the neutered in care report. My solution is to enter this data twice - once as a medical regimen and once on the Animal health and identification tab. Is there a better way? (we will probably skip the medical regimen to save on time if there isn't a better way.)

@robinrt: 2018-11-13 12:39:17
There isn't, that's a perfectly acceptable way of doing it.


Neutered in care

@pzappen123: 2018-11-13 12:07:41
I would like to add the vet clinic to the neutered in care report. Can anyone help me with this? Thank you.

@robinrt: 2018-11-13 12:39:58
It already is - you must have an old version of it. Delete it under Settings->Reports and reinstall it with the Browse sheltermanager.com button.

@pzappen123: 2018-11-13 13:26:45
You made the day better and easier. Thank you.


Animal medical record

@pzappen123: 2018-11-13 12:04:57
We want to track the cost of medical procedures such as amputations. We have entered this as a medical regimen. Is there a better or more appropriate idea?

@robinrt: 2018-11-13 12:05:34
No, that's definitely the best way of doing it.

@pzappen123: 2018-11-13 12:06:50
thank you.


AnimalFlags

@jimdunne: 2018-11-12 12:50:43
I have created an odt document to use on cage tags for our rescue hedgehogs, which works fine with one exception. I have created an animal flag 'return for release' so that we can easily identify which hedgehogs are required to be returned to the finder for release into their garden in the spring. The flag works (for example, if I change shelter view by flags, they show up). The problem is that the <<AnimalFlags>> wordkey on the odt document does not seem to pull the flag over - all the other fields are fine, any ideas please?

@robinrt: 2018-11-12 14:26:07
You've probably got hidden formatting in it. If you delete the <<AnimalFlags>> token in your document and retype it, that should remove any extra formatting.

@jimdunne: 2018-11-12 15:06:31
Cheers, that worked - I copied and pasted the original in so probably was formatting.


Which fields get published to Petfinder?

@jamiepea: 2018-11-08 23:19:55
Hello all. I've asked the support people at Petfinder Pro this question, but they don't know the answer. Which fields in ASM get published to Petfinder Pro? I'd like to be able to publish an aditorial animal description along with the species, gender, name, and size. Where should I write this to make sure it gets published to Petfinder?

@robinrt: 2018-11-09 09:03:29
This is the import map that we send to PetFinder. It lists all the fields we send. This is also the complete list of fields that PetFinder support for import last time we checked: "#SHELTERID:%s\n" \ "#0:Animal=Animal\n" \ "#1:Breed=Breed\n" \ "#2:Age=Age\n" \ "#3:Name=Name\n" \ "#4:Size=Size\n" \ "#5:Sex=Sex\n" \ "Female=F\n" \ "Male=M\n" \ "#6:Description=Dsc\n" \ "#7:SpecialNeeds=SpecialNeeds\n" \ "#8:HasShots=HasShots\n" \ "#9:Altered=Altered\n" \ "#10:NoDogs=NoDogs\n" \ "#11:NoCats=NoCats\n" \ "#12:NoKids=NoKids\n" \ "#13:Declawed=Declawed\n" \ "#14:HouseBroken=HouseBroken\n" \ "#15:Id=Id\n" \ "#16:Breed2=Breed2\n" \ "#ALLOWUPDATE:Y\n" \ "#HEADER:N"

@jamiepea: 2018-11-09 16:42:38
Where on ASM is #6:Description? I'm not seeing that field. If I need to add or enable it, how do I do that? Thank you!

@robinrt: 2018-11-09 16:52:12
It depends on what you have configured under "Publishing->Set Publishing Options->All Publishers->Animal descriptions". By default, the description is the comments field under the notes slider of the animal but you can set that option to "Use notes from the preferred photo" if you want to assign the description to the notes accompanying the animal's preferred picture on the media tab.

@jamiepea: 2018-11-09 23:59:22
Great, thank you. Final questions. Do I have to manually push all publishing to Petfinder semi-regularly? Or does it run in the background on a schedule?

@robinrt: 2018-11-10 09:13:15
If you're a sheltermanager.com customer, or you have ASM3 with Cron setup correctly, it will publish automatically every night. You can see information for each time the publisher runs under Publishing->View Publishing Logs


java error

@kytti: 2018-11-07 19:08:35
Suddenly I am getting a java.lang.illegalArgumentException when trying to open the program. I've tried updating Java which went fine, but the program still won't open. I'm a little panicky as 12 years of data is in that program I can't open!

@robinrt: 2018-11-07 20:56:56
Hi, we're going to need more info than that. Could you paste the stack trace? At whta point does the error occur? Could you take screenshots?

@kytti: 2018-11-07 21:49:34
This is what the log says, I don't know what a stack trace is? Happens right when starting the program before it ever gets to the screen where I put in my username and password: 2018-11-07 16:31:28 INFO [Startup.setStatus] Starting Log... 2018-11-07 16:31:28 INFO [Startup.setStatus] Reading Settings... 2018-11-07 16:31:28 INFO [Startup.setStatus] Checking Locale... 2018-11-07 16:31:28 INFO [Startup.setStatus] Setting product information 2018-11-07 16:31:28 INFO [Startup.setStatus] Checking for other ASM instance... 2018-11-07 16:31:28 INFO [Startup.setStatus] Getting date/time and currency from locale... 2018-11-07 16:31:28 INFO [Startup.setStatus] Starting system log 2018-11-07 16:31:28 INFO [Welcome] Animal Shelter Manager - 2.8.15 (Wed 28 Mar 21:40:34 BST 2018) 2018-11-07 16:31:28 INFO [Welcome] Copyright(c)2000-2010, R.Rawson-Tetley 2018-11-07 16:31:28 INFO [Welcome] 2018-11-07 16:31:28 INFO [Welcome] Using: 2018-11-07 16:31:28 INFO [Welcome] ASMSwing 1.30 (200810) 2018-11-07 16:31:29 INFO [Welcome] SQLRecordset 3.3 (190910) http://sqlrecordset.sf.net 2018- 11-07 16:31:29 INFO [Welcome] On: 2018-11-07 16:31:29 INFO [Welcome] Windows 7 6.1/x86 (Owner) 2018-11-07 16:31:29 INFO [Welcome] 2018-11-07 16:31:29 INFO [Welcome] This program is distributed in the hope that it will be useful, 2018-11-07 16:31:29 INFO [Welcome] but WITHOUT ANY WARRANTY; without even the implied warranty of 2018-11-07 16:31:29 INFO [Welcome] MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2018-11-07 16:31:29 INFO [Welcome] General Public Licence for more details. 2018-11-07 16:31:29 INFO [Welcome] 2018-11-07 16:31:29 INFO [Startup.setStatus] Loading Database drivers 2018-11-07 16:31:29 INFO [DBConnection.loadJDBCDrivers] MySQL driver... 2018-11-07 16:31:29 INFO [DBConnection.loadJDBCDrivers] PostgreSQL driver... 2018-11-07 16:31:29 INFO [DBConnection.loadJDBCDrivers] HSQL driver... 2018-11-07 16:31:29 INFO [Startup.setStatus] Locating database... 2018-11-07 16:31:29 INFO [LocateDatabase.LocateDatabase] Attempting to read JDBC URL from configuration file 2018-11-07 16:31:29 INFO [LocateDatabase.readJDBCUrlFromConfig] Loading JDBC URL from: C:\Users\Owner\.asm\jdbc.properties 2018-11-07 16:31:29 ERROR [net.sourceforge.sheltermanager.asm.db.LocateDatabase] java.sql.SQLException: java.lang.IllegalArgumentException at org.hsqldb.jdbc.Util.sqlException(Unknown Source) at org.hsqldb.jdbc.Util.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source) at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source) at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at net.sourceforge.sheltermanager.cursorengine.DBConnection.testConnectio n(DBConnection.java:214) at net.sourceforge.sheltermanager.asm.db.LocateDatabase.checkForLockedLoc al(LocateDatabase.java:189) at net.sourceforge.sheltermanager.asm.db.LocateDatabase.<init>(LocateData base.java:77) at net.sourceforge.sheltermanager.asm.startup.Startup.run(Startup.java:21 9) at net.sourceforge.sheltermanager.asm.startup.Startup.main(Startup.java:4 84) Caused by: org.hsqldb.HsqlException: java.lang.IllegalArgumentException at org.hsqldb.error.Error.error(Unknown Source) at org.hsqldb.persist.Log.processScript(Unknown Source) at org.hsqldb.persist.Log.open(Unknown Source) at org.hsqldb.persist.Logger.openPersistence(Unknown Source) at org.hsqldb.Database.reopen(Unknown Source) at org.hsqldb.Database.open(Unknown Source) at org.hsqldb.DatabaseManager.getDatabase(Unknown Source) at org.hsqldb.DatabaseManager.newSession(Unknown Source) ... 10 more Caused by: java.lang.IllegalArgumentException at org.hsqldb.store.BaseHashMap.<init>(Unknown Source) at org.hsqldb.persist.Cache.<init>(Unknown Source) at org.hsqldb.persist.DataFileCache.<init>(Unknown Source) at org.hsqldb.persist.Log.getCache(Unknown Source) at org.hsqldb.persist.Logger.getCache(Unknown Source) at org.hsqldb.persist.Logger.newStore(Unknown Source) at org.hsqldb.Table.createDefaultStore(Unknown Source) at org.hsqldb.Table.<init>(Unknown Source) at org.hsqldb.ParserDDL.compileCreateTable(Unknown Source) at org.hsqldb.ParserDDL.compileCreate(Unknown Source) at org.hsqldb.ParserCommand.compilePart(Unknown Source) at org.hsqldb.ParserCommand.compileStatement(Unknown Source) at org.hsqldb.Session.compileStatement(Unknown Source) at org.hsqldb.scriptio.ScriptReaderText.readDDL(Unknown Source) at org.hsqldb.scriptio.ScriptReaderBase.readAll(Unknown Source) ... 17 more

@kytti: 2018-11-07 21:52:49
[Untitled-1 copy](//muut.com/u/sheltermanager/s1/:sheltermanager:gpUb:untitled1copy.png.jpg)

@kytti: 2018-11-08 08:13:34
I also have a disk backup, but am not sure what files to try and restore. Restoring the ASM folder didn't make any difference. thanks,

@robinrt: 2018-11-09 09:07:31
It looks like a corrupted database. Hopefully it's only some damage rather than truncation (which means data loss). I'm afraid there isn't anything I can tell you to do except restore from a backup if you have one. It's the files that start with localdb in c:\users\YOURUSER\.asm that need to be restored. Otherwise, if you'd like to zip up and send that folder c:\users\YOURUSER\.asm to us at support@sheltermanager.com I can take a look to see if I can repair it by hand for you, but I'll warn you that the chances are not good.

@kytti: 2018-11-09 14:10:14
OK. restored those and got this message, did I miss one? [Untitled-1](//muut.com/u/sheltermanager/s1/:sheltermanager:UVZD:untitled1.jpg.jpg)

@kytti: 2018-11-09 14:17:23
Should I reinstall and then try and restore those files?

@kytti: 2018-11-09 14:50:14
Hmm, I restored the whole .asm folder under the user and the program opened but didn't recognize my username and password. There must be something I am missing

@kytti: 2018-11-09 14:58:57
Narrowed it down to the localdb.script file that causes the new error, maybe I need to reinstall java?

@kytti: 2018-11-09 15:34:51
Even a script file from October gives the same error screenshot above, so I don't think it is the file itself?

@robinrt: 2018-11-09 15:47:03
Just in case there's anything being cached lying around, try deleting all the localdb files in .asm before restoring them from your backup.

@kytti: 2018-11-09 17:33:17
OK, I got the same error in script file line public.fs error I tried removing the jdbc.properties and restoring that as well, same error.

@kytti: 2018-11-10 20:17:45
Uninstalled ASM, reinstalled ASM, and restored backup files from October but it throws the same error. How can database files kept on an external hard disk get corrupted the same as on the computer?

@kytti: 2018-11-11 02:15:58
I went back and pulled a backup from September. Still got an error but it is different, maybe more help? Or not Still don't understand why I could use it last week but now the backups from October and September won't work. I guess if we ever do get this fixed I need to find a better way to backup rather than saving those localdb files? [Septerror](//muut.com/u/sheltermanager/s3/:sheltermanager:gGWZ:septerror.jpg.jpg)

@robinrt: 2018-11-11 09:21:37
That is the correct way to do it - the only caveat is that ASM should not be running when a backup takes place. All of the errors you're seeing imply some kind of corruption, which is worrying and very odd considering it was working until very recently. As I said, I'm happy to have a look at your latest localdb.script to see if I can fix it manually if you'd like to send it over.

@kytti: 2018-11-11 12:13:38
OK, will give that a shot. I only open the ASM program when I'm using it and when I do backups they are done when I'm sleeping, so it isn't running. Thanks!


Animal code - generated from where?

@jimdunne: 2018-11-07 14:31:44
I'm adding animals to the asm3 app, and noticed that the generated codes for animals seem to have jumped a couple of digits i.e. I'm creating animal 59, but the code given is 62. I've had a look through the files where I thought this code may come from,, but could not find it. I see there is a 'next receipt number - '0' is there something similar to this for the animal code so that I can reset it to carry on continuous instead of jumping a couple of numbers? Cheers.

@robinrt: 2018-11-07 14:55:56
The generated numbers are in the animal table. This query will reset them back to where they were at the start of the month: UPDATE animal SET YearCodeID = 0, UniqueCodeID = 0 WHERE DateBroughtIn >= '2018-11-01' It won't affect existing codes, but the next code will start from the next unused number.

@jimdunne: 2018-11-07 15:39:10
Brill, thanks!


Unable to install ASM3 on ubuntu

@jimdunne: 2018-11-05 15:15:17
I gave up trying to install asm on my mac, and am now trying to install it on ubuntu 18.04. I have apache LAMP installed, python 2.7, mysql and phpmyadmin. All work. I can see the default ubuntu page on localhost, so I know apache is working When I try to run the .deb package from software installer, it shoes instilling for about 1 second, but appears not to have installed. I tried to install from terminal using sudo dpkg -i which looks like it installs, but does not create any of the files in the usr/lib directory. When running the apt-get install make python python-imaging python-webpy python-mysqldb python-psycopg2 script, I get errors, mainly telling me that python-imaging cannot be installed, and that it has been replace by pil. I tried using the linux package, and manually added the files by creating the folder usr/lib/sheltermanager3 and copied all the files in (I have root access to the system files). As far as I can see, I need to install pil and need to know how to change the dependancies - how do I do that? Is there a line by line instruction for how t o install this app? I am not bone, and can usually muddle my way through stuff, but this is really giving me a hard time. I am trying to set this up for a local co-op of wildlife rescue groups so that we can keep decent records. I would really appreciate help doing this. Cheers [Screen Shot 2018-11-05 at 14](//muut.com/u/sheltermanager/s3/:sheltermanager:GRil:screenshot20181105at14.58.04.png.jpg) [Screen Shot 2018-11-05 at 14](//muut.com/u/sheltermanager/s3/:sheltermanager:8k6M:screenshot20181105at14.59.22.png.jpg)

@jimdunne: 2018-11-05 15:16:50
* shoes should be shows lol

@jimdunne: 2018-11-05 15:22:18
[Screen Shot 2018-11-05 at 15](//muut.com/u/sheltermanager/s2/:sheltermanager:3ohp:screenshot20181105at15.18.10.png.jpg) [Screen Shot 2018-11-05 at 15](//muut.com/u/sheltermanager/s2/:sheltermanager:Xl0Q:screenshot20181105at15.21.19.png.jpg)

@robinrt: 2018-11-05 15:22:32
You can verify whether the package is installed with this command: dpkg -l | grep sheltermanager You should also be able to test by visiting host:5000 to access your ASM install. Ideally though once installed, sitedefs.py needs to be configured to point at a new MySQL host/database before you restart the ASM service. Once you have, you should be able to access it via localhost:5000 and have it install the database. There are instructions in the README on how to configure Apache with wsgi.

@robinrt: 2018-11-05 15:23:42
https://github.com/bobintetley/asm3

@jimdunne: 2018-11-05 15:36:18
Sorry, yes - I created a database called asm3 prior to 'installing' asm - I attached a screenshot of the phpmyadmin screen showing the (empty) asm3 database, I also changed the settings in sitedefs.py to point to the database, with password etc. The verification code you posted above does not show anything (see screenshot below). I have made the changes in the redeem.md file you linked too for apache. I am unable to see anything on localhost:5000 I really feel that the 'install' package is actually not installing.... [Screen Shot 2018-11-05 at 15](//muut.com/u/sheltermanager/s1/:sheltermanager:PHyD:screenshot20181105at15.28.50.png.jpg) [Screen Shot 2018-11-05 at 15](//muut.com/u/sheltermanager/s2/:sheltermanager:O42Z:screenshot20181105at15.32.52.png.jpg)

@robinrt: 2018-11-05 15:39:02
If the command didn't output anything, it is indeed not installed. Try using this command to install the deb file so that errors are captured at the console: dpkg -i sheltermanager*deb Make sure you're in the folder with the .deb file before running!

@jimdunne: 2018-11-05 16:18:18
That seem to have worked for the install (even though it looked like it did before) ---------------------------------------------------------------------- ------- jimdunne@ubuntu:~$ dpkg -l | grep sheltermanager iU sheltermanager3 40 all Web-based management solution for animal shelters and sanctuaries ---------------------------------------------------------------------- ------ I have checked all the settings/edits again and re-done them where necessary, but am unable to connect to the app using http://localhost:5000/ or to a database using http://localhost:5000/database I also still have the python-imaging error any ideas please?

@robinrt: 2018-11-05 16:28:49
If you install a package using dpkg -i, it won't install any of the package dependencies and will leave things broken (the U in the list is for unconfigured). You need to run: apt-get install -f next to install the dependencies and that should fix it and get everything installed correctly. This is a Debian thing, not us in particular.

@jimdunne: 2018-11-05 16:36:19
Thanks for your patience - I do my best lol. Running that command REMOVES asm?? [Screen Shot 2018-11-05 at 16](//muut.com/u/sheltermanager/s1/:sheltermanager:yE4i:screenshot20181105at16.34.36.png.jpg)

@robinrt: 2018-11-05 16:39:32
well.... that's certainly not supposed to be the case. What was the output of dpkg -i when you installed it?

@jimdunne: 2018-11-05 16:49:42
jimdunne@ubuntu:~/Downloads$ sudo dpkg -i sheltermanager*deb Selecting previously unselected package sheltermanager3. (Reading database ... 198734 files and directories currently installed.) Preparing to unpack sheltermanager3_40_all.deb ... Unpacking sheltermanager3 (40) ... dpkg: dependency problems prevent configuration of sheltermanager3: sheltermanager3 depends on python-webpy; however: Package python-webpy is not installed. sheltermanager3 depends on python-imaging; however: Package python-imaging is not installed. sheltermanager3 depends on python-memcache; however: Package python-memcache is not installed. sheltermanager3 depends on python-mysqldb; however: Package python-mysqldb is not installed. sheltermanager3 depends on python-psycopg2; however: Package python-psycopg2 is not installed. dpkg: error processing package sheltermanager3 (--install): dependency problems - leaving unconfigured Processing triggers for ureadahead (0.100.0-20) ... Processing triggers for systemd (237-3ubuntu10.3) ... Processing triggers for rsyslog (8.32.0-1ubuntu4) ... Errors were encountered while processing: sheltermanager3

@jimdunne: 2018-11-05 16:58:07
I have re-installed, the ran dpkg -l | grep shelter manager with the following result - jimdunne@ubuntu:~/Downloads$ sudo dpkg -l | grep sheltermanager iU sheltermanager3 40 all Web-based management solution for animal shelters and sanctuaries Then if I go to run apt-get install -f it tells me it will remove asm - The following packages will be REMOVED sheltermanager3 0 to upgrade, 0 to newly install, 1 to remove and 162 not to upgrade. 1 not fully installed or removed. so I cancelled that option, and ran sudo apt-get install make python python-imaging python-webpy python-mysqldb python-psycopg2 with the following result - jimdunne@ubuntu:~$ sudo apt-get install make python python-imaging python-webpy python-mysqldb python-psycopg2 Reading package lists... Done Building dependency tree Reading state information... Done Package python-imaging is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python-pil:i386 python-pil E: Package 'python-imaging' has no installation candidate and I'm going to have to leave it there for now as I have to go to a committee meeting. Thanks for all your help so far, it is appreciated.

@robinrt: 2018-11-05 16:58:23
Weird, that looks right - install -f should have installed the dependencies afterwards. You could try installing them manually first before doing the dpkg -i sheltermanager*deb command eg: apt-get install -y python-webpy python-imaging python-memcache python-mysqldb python-psycopg2 && dpkg -i sheltermanager*deb

@jimdunne: 2018-11-05 18:06:51
Sorry, nope, still not configuring asm - jimdunne@ubuntu:~/Downloads$ sudo apt-get install -y python-webpy python-imaging python-memcache python-mysqldb python-psycopg2 && dpkg -i sheltermanager*deb Reading package lists... Done Building dependency tree Reading state information... Done Package python-imaging is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python-pil:i386 python-pil E: Package 'python-imaging' has no installation candidate jimdunne@ubuntu:~/Downloads$ dpkg -l | grep sheltermanager iU sheltermanager3 40 all Web-based management solution for animal shelters and sanctuaries jimdunne@ubuntu:~/Downloads$

@jimdunne: 2018-11-05 18:25:37
I ran sudo dpkg -i sheltermanager*deb && sudo apt install -f from the directory where the asm deb file is, with the following result - jimdunne@ubuntu:~/Downloads$ sudo dpkg -i sheltermanager*deb && sudo apt install -f (Reading database ... 201197 files and directories currently installed.) Preparing to unpack sheltermanager3_40_all.deb ... Unpacking sheltermanager3 (40) over (40) ... dpkg: dependency problems prevent configuration of sheltermanager3: sheltermanager3 depends on python-webpy; however: Package python-webpy is not installed. sheltermanager3 depends on python-imaging; however: Package python-imaging is not installed. sheltermanager3 depends on python-memcache; however: Package python-memcache is not installed. sheltermanager3 depends on python-mysqldb; however: Package python-mysqldb is not installed. sheltermanager3 depends on python-psycopg2; however: Package python-psycopg2 is not installed. dpkg: error processing package sheltermanager3 (--install): dependency problems - leaving unconfigured Processing triggers for ureadahead (0.100.0-20) ... Processing triggers for systemd (237-3ubuntu10.3) ... Processing triggers for rsyslog (8.32.0-1ubuntu4) ... Errors were encountered while processing: sheltermanager3 Is there another way to configure the dependancies, or is there something wrong with the .deb file? I downloaded it again, and used the new copy, with the same result. Cheers

@jimdunne: 2018-11-06 14:56:39
OK, the current state of play is; I read back some of my terminal logs, and because of the messages I saw, I installed; libmysqlclient20 libpq5 python-imaging from http://ftp.uk.debian.org/debian/pool/main/p/pillow/python-imaging_2.6.1-2+deb8u3_all.deb Python-imaging is an obsolete package, and has been replaced by pil - should you not change this in the installation package? I found an old copy in an archived post on an ubuntu user forum and was able to install from that (link above) The I ran the command; sudo apt-get install -y python-webpy python-memcache python-mysqldb python-psycopg2 libmysqlclient20 libpq5 && sudo dpkg -i sheltermanager*deb This insatlled asm; jimdunne@ubuntu:~/Downloads$ dpkg -l | grep sheltermanager ii sheltermanager3 40 all Web-based management solution for animal shelters and sanctuaries jimdunne@ubuntu:~/Downloads$ However, I still cannot connect to it via browser; Firefox can't establish a connection to the server at localhost:5000. I have edited the siteprefs.py with the db settings; # Database info DB_TYPE = "MYSQL" # MYSQL, POSTGRESQL, SQLITE or DB2 DB_HOST = "localhost" DB_PORT = 3306 DB_USERNAME = "jim" DB_PASSWORD = "********" DB_NAME = "asm3" I previously created an empty database called asm3 with the user jim and password using phpmyadmin Base url is set; BASE_URL = "http://localhost:5000" Have I missed anything? Having spent the last 5 days on this, I'd really like to get it working. Cheers in advance, Jim

@robinrt: 2018-11-06 15:06:52
Yes, the problem is python-imaging. It's a compatibility package in Debian and still works fine in Debian Buster - however, it's not present in Ubuntu. You're right that it can be replaced very easily with python-pil so I'll do that for the next release. Another safe approach you could have used is to apt-get install python-pil (so you have the necessary dependency) and then: dpkg -i --force-all sheltermanager*deb to force the package to install without checking the dependencies since you know you have them. To investigate what's going on, I would try starting ASM from the command line. First run: service sheltermanager3 stop to make sure it isn't trying to run from systemd or sysvinit. Then try: python /usr/lib/sheltermanager3/code.py 5000 That should manually start ASM's built in webserver running on port 5000 to enable you to connect. You should be able to go to http://host:5000 to access it where "host" is the name or IP of the machine you are running it on.

@jimdunne: 2018-11-06 15:28:03
Getting there - stopping the service and restarting with the above commands seems to have worked, and opening localhost:5000 took me to the create database page, and the database has been populated (confirmed in phpmyadmin, BUT I'm now stuck at the login page, which is blank. There are a cartload of 404 errors in terminal, which I don't understand as those files are present (checked in files folder), so it looks like it cannot resolve the images. Also, does terminal have to be open to run asm? I ask because everything is echoing in the terminal window. [Screen Shot 2018-11-06 at 15](//muut.com/u/sheltermanager/s3/:sheltermanager:f9aM:screenshot20181106at15.25.24.png.jpg) [Screen Shot 2018-11-06 at 15](//muut.com/u/sheltermanager/s2/:sheltermanager:zRiB:screenshot20181106at15.27.03.png.jpg)

@robinrt: 2018-11-06 15:30:07
Did you set BASE_URL in your sitedefs.py ? Seems odd that you're getting those 404s as the paths are valid.

@jimdunne: 2018-11-06 15:44:37
BASE_URL = http://localhost:5000 Also, if I close the terminal window, it appears to stop the asm service - is there anyway around that, or do I have to open terminal, start the service and leave terminal open overtime I want to use asm? Also, I have a lot of data on asm2 on my mac, there appears to be no database dump facility in asm2 - how can I dump the data from there and import it into asm3 on the ubuntu machine? I really appreciate your help, which would be first class for a paid application, let alone a free one! BZ to you.

@robinrt: 2018-11-06 16:04:14
If you're accessing it on the same machine, then localhost should be ok. Closing a terminal closes anything the terminal has spawned. I was giving you the command to do some testing. Assuming everything is working ok now, you should be able to do: sudo service sheltermanager3 start to kick it off and close the terminal. There is a database dump in ASM2, but you need to enable debug mode to get to it (it appears under System->Database Tools) https://sheltermanager.com/site/en_faq_asm2.html

@jimdunne: 2018-11-06 16:48:39
aaaannnnd we're in! I changed the base url to 127.0.0.1:5000 and started the service with the code you gave and all seems to be working - I am currently doing the config settings. The db import doesn't seem to have tallied up, data is in the database, but not all shows up in the app. I'll sort that out and we're good to go. I will change as I go, giving the local install a .test url so it can be accessed by something like asm3.test, then once the group sort out a web host I'll port it over. Many thanks for your patience and help. I would definitely buy you a pint!

@robinrt: 2018-11-06 17:26:38
weird, for 127.0.0.1 to work and localhost not, it must be missing from the /etc/hosts file in Ubuntu - that's good to know if odd :) glad you're sorted.


Pull secondary photo to document template

@jamiepea: 2018-11-03 02:18:40
Hello all, I have created a document template that I use to print cage cards. It pulls a photo using this code:  <<DocumentImgLink>>. I would like to occasionally use a better photo than the one we snap on intake. Without replacing the intake photo in ASM, I want to add another photo to the media tab, and tell ASM to use that one for the cage card. I tried temporarily marking the second photo "Default image for this record and the web" and then generating the document, but that didn't work. It still pulled the original photo. Ideas? Thank you!

@robinrt: 2018-11-03 09:06:25
There's a preferred image for documents button - it's the little document icon next to an image in the list and it controls which image is used for cage cards and templates. It's right next to the web preferred button.


Will ASM3 run on Mac? How to install?

@jimdunne: 2018-11-01 11:28:31
Hi, I downloaded ASM2 to try it out for our local co-op of wildlife rescue groups, and have this almost setup. However, I have been told that ASM3 is better. I have downloaded it, but cannot suss out hoot install it on my iMac running OSX El Capitan 10.11.16. I have MAMP Pro so I can run on localhost, but cannot see how to install ASM to it. Any advice please? I can't afford £30 to buy a manual....

@robinrt: 2018-11-01 14:55:39
You need a python environment and a database backend (eg: MySQL). The actual packages you'll need (which you'll have to install via pip if you're on Mac) are in the README here along with instructions on how to start things up and deploy with Apache: https://github.com/bobintetley/asm3

@robinrt: 2018-11-01 14:56:56
You could also use VirtualBox, Parallels or another virtual machine type tool to install Debian Linux on your Mac and then just follow the Debian package/instructions.

@jimdunne: 2018-11-01 19:54:46
I have Python 2.7 installed, and PIP. I have MAMP Pro, which gives me the option of an Apache or a Unix server. I would like to run this as a web host with the url "sheltermanager.test" - I have set up loads of other sites this way, and they work, but this is doing my head in. Typing "apt-get install make python python-imaging python-webpy python-mysqldb python-psycopg2" gives an error that apt-get is an invalid cmd. Typing pip install make python python-imaging python-webpy python-mysqldb python-psycopg2 gives the following error:- Last login: Thu Nov 1 19:45:47 on ttys000 jim-dunnes-imac:~ jimdunne$ pip install make python python-imaging python-webpy python-mysqldb python-psycopg2 Collecting make Could not find a version that satisfies the requirement make (from versions: ) No matching distribution found for make jim-dunnes-imac:~ jimdunne$ There is no indication of where the files need to be to install, or, as far as I can see, a method of doing it. I would prefer it to be in the 'normal' mac environment rather than a virtual box, as I would like to network i t locally so that we can access the app on another machine in the hedgehog shed. I'd really appreciate further help.

@robinrt: 2018-11-01 20:35:29
make is not a python library - remove it from your pip install list. python itself is already installed as it is a dependency of pip so should also not be needed - just do: pip install python-imaging python-webpy python-mysqldb python-psycopg2 to get the dependencies you need. make is a standard command line tool and the binary that processes Makefiles. You should *probably* already have it as part of the standard Mac environment and for certain if you have xcode installed. It is not needed to run ASM and is only used for building. You can test if you have it by just running "make" at a command line. apt-get is the Debian package manager, it will not work on a Mac.


Transport and movements

@ivod: 2018-10-26 16:08:37
Is it possible completion of transport to make also movement. We have transports to other shelters that should mark the animals not in the shelter?

@robinrt: 2018-10-26 16:32:07
It's not possible. Transports are to track animals being transported while in the care of the shelter, it covers things like moving between foster homes, to vets and back, etc. If a transport is for final transportation, you should create the appropriate movement as well (eg: Transfer)

@ivod: 2018-10-30 17:15:21
Is there a way to generate movements based on transport automatically. I can make it with SQL query but I'm looking for more intelligent way. API? The case is that we have mass adoptions from other shelters that are abroad. There is a pack of documents like licenses and etc. that we want somehow to record. We cannot add custom fields to the movements, so we decided to make it like transport and add the data in the notes, but unfortunately it is not getting the animals out of the shelter.


ASM and Petfinder - should adopted animals be automatically removed?

@ketalabama: 2018-10-23 14:41:07
I haven't been able to determine what should be the expectation. But if animals previously published to Petfinder are then marked as adopted in ASM, should they be marked as adopted in Petfinder? I don't see the adopted animals noted in the publish log. And they don't show in the publish list. Is this update feature supported or do we need to manually update Petfinder? Thanks!

@robinrt: 2018-10-23 17:58:42
When animals are marked adopted in ASM, they're no longer sent to PetFinder. When PetFinder process an update from us, they remove any animals that are not included in the update. So adopted animals are removed from PetFinder rather than marked as adopted - this is the way their import system works.

@ketalabama: 2018-10-23 21:27:16
Hmmm I wonder what we are doing wrong then. We have animals marked as adopted last week. I've been regularly publishing to Petfinder as we are updating photos and profiles. And that is when I noticed some are still showing. I'll reach out to Petfinder support to see why not removed. thanks

@robinrt: 2018-10-24 09:03:22
Are some of these animals that you might have manually entered in their members area previously? Items you add manually to PetFinder cannot be removed by an import and need to be removed manually.

@saferescue: 2018-11-08 21:53:50
we are having a similar issue with PetFinder not updating regularly - adoptable animals who were published last night are showing up without photos in petfinder today.

@robinrt: 2018-11-09 09:01:30
It's all at petfinder's end I'm afraid - they have been slow to process updates for weeks now.


Test Results on a document

@kayde1: 2018-10-19 13:05:00
Hello! Question - How do you show the newest dated test results generated on a document/report? When we use <<TestResultFELV>> and <<TestResultFIV>> for example, it shows the first set of results and not the newest. Is there a work around?

@robinrt: 2018-10-19 14:27:57
<<TestResultRecentFELV>> and <<TestResultRecentFIV>>

@kayde1: 2018-10-19 14:36:03
Thank you!!! easy enough


Other languages available?

@wulank: 2018-10-19 08:32:19
Hi, are there other languages available for the software? Not all our helpers speak fluent english...

@wulank: 2018-10-19 08:37:41
ooops, soory.. I just read that there are 15 languages available... /blush

@wulank: 2018-10-19 08:45:17
But still: is Croatian one of these 15 languages


How to print a complete information record

@mcalicchio: 2018-10-15 18:03:34
I need to print a complete vaccination record for a dog. I got to "animal", "documents" and then "dog information". It pulls up an information sheet but, it only contains 2 of the 6 vaccines the dog had. Does anyone know how to print a complete vaccination record? And, while we're on the topic, is there anyway to email records to adopters that contain spay/neuter, vaccinations and microchip?

@robinrt: 2018-10-15 18:05:11
There are a couple of useful reports that do that - "Print Animal Record (for adopters)" shows everything, including full medical history but leaving out anything sensitive such as original surrenderer. There's also a "Medical History" report that just shows medical info. New reports can be installed under Settings->Reports->Browse sheltermanager.com

@mcalicchio: 2018-10-15 18:10:39
Thank you so much. So, that tab is not active for me. I need to go to the administrator to get privileges it sounds like? Once I have access to that, can we email records directly from shelter manager to the adopter?

@kpakucko: 2018-10-18 16:11:10
I cannot find the "print animal report" tab to print, nor the "medical history" tab to print. Do I have to activate these? Or are they already active and I cannot find them?

@robinrt: 2018-10-18 16:14:18
You have to install them first from Settings->Reports->Browse sheltermanager.com

@kpakucko: 2018-10-18 22:25:56
thanks, but I did not see the "print animal report" under Browse sheltermanager.com. I looked under medical, then looked through them all. I did find the ability to print reports, but not for one specific animal . What am I missing?

@kpakucko: 2018-10-29 18:59:02
I cannot find the "print animal report" selection that I can install.. Help.

@candidhominid: 2018-10-30 00:32:33
This is what it looks like when you browse for and find the report in question. [6DC128AA-8A06-432A-B228-851C7C03AD0C](//muut.com/u/sheltermanager/s2/:sheltermanager:2GFl:6dc128aa8a06432ab228851c7c03ad0c.jpeg.jpg)

@kpakucko: 2018-10-30 15:00:06
I do not have that option in the browsesheltermamager.com screen.

@kpakucko: 2018-10-30 15:00:53
all I get is "print incident report" and "print accounts". :(

@robinrt: 2018-10-30 15:01:21
Is that because you already installed it? Look under the Reports menu in the Auditing subcategory.

@kpakucko: 2018-10-30 15:02:33
I'm a dork! There it is! Thank you for your patience!


Parasite calendar

@mjmcclane: 2018-10-12 11:28:30
Is there a way to see what animals are due for worm and flea based off the flea and worming date field under Health and Id tab? How do other people track which animals are due?

@robinrt: 2018-10-12 12:22:59
There isn't a standard ASM field for flea and worming under Health and Id - did your shelter add this as an additional field? The normal method of scheduling and recording worm and flea treatments is to use medical regimens under the medical tab.


Is there a way to write a report using the Publisher Logs?

@adoptamutt: 2018-10-11 18:30:25
Is there a way to write a report using the Publisher Logs? For example, I would like to write a report that would check for a failed registration due to an invalid phone number. Are these messages stored in a table?

@robinrt: 2018-10-11 18:40:04
Yes, they are. The table is "publishlog", it contains columns for ID, PublishDateTime, Name, Success, Alerts and LogData. Success and Alerts are integer counts. LogData is the field you want to do pattern matching against.


Using email feature

@ketalabama: 2018-10-08 20:03:49
It may be that we don't have the mail server set up and I am checking on that. But I do have some questions about the Mail feature in AMS4. It looks like I can pull up the Mail Merge - Hills Science Diet Adopters List. I can opt for Email feature and set up the subject and body of my mail. 1. No ability to selectively audit the list - i.e., we have some adopters since banned and / or who have returned animals and would want to filter them out. Is there a way to filter the list or can I create a custom report for this? 2. When I did a trial run on a small date range I knew was safe it said mail sent but then the mails never actually seemed to be sent (the recipients never received them) - this may be noted to some mail set up issues (i'm getting sys admin access to see if can see that type of setup).

@robinrt: 2018-10-09 17:57:30
1. Shouldn't they still be included? It's for Hills marketing purposes isn't it? Also, whether or not they've opted in to email is included in the data file. I think it was intended that you'd only ever use that mail merge for generating the CSV file to send to Hills rather than as source data for emailing adopters. If you want to email adopters, use the "Non-Returned Adoptions" mail merge, which filters out banned owners and people who returned animals. 2. If you're using sheltermanager.com, I can look into that for you to find out what's happened - there shouldn't be any mail config needed. If you have a self-hosted install, you'll need to investigate your mail server logs.

@ketalabama: 2018-10-12 15:46:16
For #1 it looks we had not imported that mail merge. I have it now. Thanks! For #2 we are using the website and not a local install. We do have our email address configured in the Setting > Options > Email tab


Display image based on value

@gldnsrule: 2018-10-08 03:11:20
I'd like to be able to display an image in a report; let's say a colored circle, based on the value in a field. If the field value is 'blue', it will display a blue circle image; if the value is 'red', it will display a red circle, etc. I have a feeling that this can be done using CSS or Javascript, but I don't know any coding at all. Can anyone help please? Cheers

@robinrt: 2018-10-09 17:53:35
Sure, in the HTML portion of your report (and this is a report, not a document template), output a circular div and set the background colour to the value of your field. Eg: if your field is called "colordot" then add this in your HTML where you want the dot to appear: <div style="width: 16px; height: 16px; border-radius: 50%; background: $colordot"></div>

@lisazorn: 2021-04-06 07:16:05
I have this question about a Document Template (not a report). Is it possible to do this in a Document Teemplate (e.g. in a cage card template)?


Deleting a vaccine that was entered in error

@mcalicchio: 2018-10-06 20:48:14
Does anyone know if there is a way to delete a vaccination once it's been entered? I cloned a litter of puppies and then realized that one of the puppies did not have one of the vaccines the other ones had so I need to delete it off her record.

@robinrt: 2018-10-09 17:47:52
There's a delete button on the vaccination tab. If you don't see it, your user doesn't have permission to delete vaccinations.


Filter Animal by Species

@camccg: 2018-10-05 17:28:33
I'm using the javascript filter to sort out certain animal species for separate pages on our website. The problem is that while the filter works perfect, the drop down menu still shows all animal species or breeds. On a page where I only want to show dogs, the drop down will still show rabbit, cat, horse, etc species and breeds. Is there a way to have the filter include the drop down? I don't want to get rid of the drop down because it's tied to the description under the animal. Any help is appreciated.

@robinrt: 2018-10-09 17:47:35
Sorry, it's not currently possible. I could raise an issue for us to consider filtering the dropdowns based on the visible items from any filter that has been set.

@camccg: 2018-10-10 14:10:42
Thanks for the response Robin, at least now I know it's not something I'm missing. If you could raise that as a possible future capability, it would be greatly appreciated!


ASM 3.40 | Animal.AgeGroup not updating as animal ages

@ampien: 2018-10-02 13:31:30
Hi, I don't use AgeGroup all that much, but now that I'm displaying adoptable animals on our website, the AgeGroup field that remains baby even though the animal is over 6 years old is a bit puzzling. I can manually "update animal set agegroup = 'Adult' WHERE animalid = 'xyz';" but I'm afraid of corrupting my database. Can anybody suggest a more elegant method?

@robinrt: 2018-10-02 13:45:52
AgeGroup is locked at the group the animal was in when it most recently entered the shelter. There's another column AgeGroupActiveMovement that records the group at exit. If you're using the publisher, javascript include or service API to retrieve animal data, ASM is supposed to update the age group on the returned rows to the age group "now" when it returns the data to you. I just checked and this is something we applied a fix for early in 41 (which we're trying to get out asap) and is not available in 40. Your options are to either update to the latest code from github, or wait for us to get 41 out.

@ampien: 2018-10-03 12:09:27
Thanks, Robin. I will wait for 41.

@ampien: 2021-02-28 18:02:15
Update: After upgrading to ver 41, and also 42, this is no longer an issue for me.


Files FTP'd to Petfinder but not imported?

@ketalabama: 2018-09-28 20:04:13
We set up to FTP files from ASM to petfinder. But more than 12 hours later, despite the publishing logs showing success, images are still not showing. I'm working with Petfinder support but they seem stumped. Was just wondering if anyone else has experienced a similar issue?

@robinrt: 2018-09-28 20:09:59
Yes - everyone, PetFinder sometimes take days to process updates unfortunately.

@ketalabama: 2018-09-28 20:27:19
oh wow! good to know! thank you for the quick reply


Reports on own Server

@pvhspres: 2018-09-27 17:15:24
We have ASM installed on our own local server, and are trying to get some of the prebuit reports from sheltermanager.com. when we click Browse sheltermanager.com it says internal server error. we have a connection to the internet on the server. any ideas as to why it is not working?

@robinrt: 2018-09-27 18:27:00
Is there anything in the log? By default asm logs to syslog, so check /var/log/syslog. If you're using Apache with mod_wsgi, there may be errors in /var/log/apache2/error.log

@pvhspres: 2018-09-28 01:23:36
This is what is logged - is it trying to call the wrong IP - Sep 27 07:36:03 pvhsprograms python[1503]: 192.168.1.10:54412 - - [27/Sep/2018 07:36:03] "HTTP/1.1 GET /person_embed" - 200 OK

@robinrt: 2018-09-28 09:14:41
I don't think that line is relevant - that's the embedded person widget getting data. I'd be looking for some kind of HTTP error.

@pvhspres: 2018-09-28 17:49:04
is this the one? Sep 28 11:47:45 pvhsprograms python[1507]: 127.0.0.1:57770 - - [28/Sep/2018 11:47:45] "HTTP/1.1 POST /reports" - 500 Internal Server Error

@pvhspres: 2018-09-28 17:55:47
or possibly somewhere in this: Sep 28 11:53:53 pvhsprograms python[1507]: return html.json(extreports.get_smcom_reports(dbo)) Sep 28 11:53:53 pvhsprograms python[1507]: File "/usr/lib/sheltermanager3/reports.py", line 404, in get_smcom_reports Sep 28 11:53:53 pvhsprograms python[1507]: s = utils.get_url(URL_REPORTS)["response"] Sep 28 11:53:53 pvhsprograms python[1507]: File "/usr/lib/sheltermanager3/utils.py", line 708, in get_url Sep 28 11:53:53 pvhsprograms python[1507]: r = requests.get(url, headers = headers, cookies=cookies, timeout=timeout) Sep 28 11:53:53 pvhsprograms python[1507]: NameError: global name 'requests' is not defined


Displaying person: strange behavior

@grosbarbu: 2018-09-27 14:01:47
Good morning (Sorry for my English !) I installed ASM3 on Debian 9, and i'm testing/playing with it. I added 6 persons: with 1 or 2 Firstname and 1 or 2 Lastname (usual in Spain), in "Adding new person" i wrote the "Forname(s)" with only the fist letter in uppercase letter, and the "Surname(S)" is writen in all uppercase letters, changing "When displaying person names, use the format:" (Settings Options Display), and making *Trigger Batch Process" -> *Regenerate person names in selected format" as result, i have in the first column filled with the SAME (random?) person (NOT corresponding to the right writings), even after a machine restart. If i edit and save a wrong record, (without changing anything, just adding and deleting a "space" to activate the save menu), it appears ok Here screens copy: [Before](//muut.com/u/sheltermanager/s1/:sheltermanager:Khtb:before.jpg.jpg) [After](//muut.com/u/sheltermanager/s1/:sheltermanager:PxOo:after.jpg.jpg) [Problem1](//muut.com/u/sheltermanager/s1/:sheltermanager:IKZ6:problem1.jpg.jpg) (NB: May not help ... the Debian os is Swiss-french, the ASM locale is Spanish(Spain) , and user locale English(Great Britain) Best regards

@robinrt: 2018-09-27 15:04:38
That is really weird, I have no answer. I went and checked the source for 40 in case we changed this in the current build, but it's the same code. It only updates based on ID so I can't see how it happened. Does running the regenerate person names process again fix it?

@grosbarbu: 2018-09-28 01:13:59
No. I dropped database, initialized a new one (locale English GB, user English GB) . The name column seems to depend from the last entry: adding and triggering a person with ONLY a surname set the width to only the surname adding and triggering a person with firstname and lastname set the width to firstnme+surname. added 5 (4 + last) persons: [Test5-01](//muut.com/u/sheltermanager/s1/:sheltermanager:t7bM:test501.jpg.jpg) changed display order and triggered batch process: [Test5-02](//muut.com/u/sheltermanager/s1/:sheltermanager:KuQW:test502.jpg.jpg) added 5 and 6 (without firstname) , triggered batch process: [Test5-03](//muut.com/u/sheltermanager/s1/:sheltermanager:Tt0v:test503.jpg.jpg) added 7 WITH Firstname [Test5-04](//muut.com/u/sheltermanager/s1/:sheltermanager:SfcT:test504.jpg.jpg) and triggered: [Test5-05](//muut.com/u/sheltermanager/s1/:sheltermanager:PDdc:test505.jpg.jpg) Regards.

@robinrt: 2018-09-28 17:09:03
I can't reproduce this. What name format are you choosing? I can't imagine why that would make any difference, but I can at least try and do what you're doing. Could you also confirm that you're using the ASM40 stable build?

@grosbarbu: 2018-09-30 14:53:28
Installed new Debian 9 (changed HDD) English ASM version downloaded from: https://www.sheltermanager.com/site/en_oss_asm3.html (The latest version is 40, released on 2nd February, 2018) Updated only OS, not sheltermanager Created 4 persons: with: "name" and "SURNAME" un PREMIER deux DEUXIEME trois TROISIEME quatre DERNIER without changing anything a "ASM -> Find person": [Test9-01](//muut.com/u/sheltermanager/s1/:sheltermanager:fzom:test901.jpg.jpg) The first column "OwnerCode" is empty, and the column "NAME" is formed with name+SURNAME Only triggering (without changing format) gives: [Test9-02](//muut.com/u/sheltermanager/s1/:sheltermanager:kijz:test902.jpg.jpg) first column "OwnerCode" empty and column "NAME" formed with name+SURNAME of the LAST entered Choosing a format (Last First, in this case) and triggering batch: [Test9-03](//muut.com/u/sheltermanager/s1/:sheltermanager:I1iX:test903.jpg.jpg) The first column "OwnerCode" deseapears, and the format is "Last Fisrt" A question: why Column "Name" is formed with "name+SURNAME" ?


changing weight from lb and oz to kg and g

@megwilson: 2018-09-25 14:19:58
When selecting an individual animal, on their details there is an option to put the weight in. Is there a way I can change this to be in kg and g?

@robinrt: 2018-09-26 08:28:47
Yes, the option is under Settings->Options->Display


ASM3.40 own server - Other URL than localhost:5000

@ampien: 2018-09-24 21:28:02
Hi, all. I am very stuck. I want to list the adoptable animals on our Wordpress web page (Same box as the ASM box). Our ASM page have been reverse-proxied using Nginx so I want to use that URL for the links inside the adoptable animals obviously localhost:5000 does not deliver any content. I've edited sitedefs.py to reflect the real URL in the BASE_URL field, but it still manages to put localhost:5000 in the URL. Anybody help would be really appreciated.

@robinrt: 2018-09-25 08:58:00
I'm not sure I'm understanding - are you saying that ASM is redirecting you to localhost when you try to access it, or you're trying to access it from another machine using localhost? If it's the first, look at SERVICE-URL as well as BASE-URL in sitedefs.py, if it's the second, replace localhost with the IP address or hostname of the server you want to access. ---

@ampien: 2018-09-25 14:41:29
The Wordpress website calls it right, but the content being displayed (adoptables and pics) has the link http://localhost:5000 prepended instead of the real URL that's reachable from the Internet. Check this URL to make this clearer: http://luckylucy.org/asm.

@ampien: 2018-09-25 14:43:28
If "localhost:5000" gets replaced by "asm.luckylucy.org" on both the animal links and images, everything will work perfectly.

@robinrt: 2018-09-26 08:31:10
That looks like your SERVICE-URL value is wrong in sitedefs.py - that's what controls the prefix of the image url.

@ampien: 2018-09-26 18:54:02
The relevant settings in /usr/lib/sheltermanager3/sitedefs.py is: BASE_URL = "http://asm.luckylucy.org" # The URL to asm's service endpoint to be shown in online forms screen SERVICE_URL = BASE_URL + "/service" Should they change?

@robinrt: 2018-09-26 19:36:20
Looks ok, the only thing I'm not sure about is whether there's an http:// on the front of your base url due to the forum software.

@ampien: 2018-09-27 14:32:15
Thank you for your patience, Robin. It turns out that my problem was that my server was unable to restart sheltermanager3 properly and could thus not refresh the sitedefs.py content. I used the kill command and then restarted it. Now it does what you say it should do ;-) Thank you so much Ampie


Best way to mark an animal "Available for foster"?

@jamiepea: 2018-09-22 16:41:36
I'd like to mark some incoming animals "Available for foster". I'd rather not do this with movements if possible. Should I do this with flags (how do I add one?) or Additional fields (screenshot attached of my first attempt)? I think I prefer flags so that I can easily sort the shelter view. [Screenshot 2018-09-22 08](//muut.com/u/sheltermanager/s2/:sheltermanager:Ze6y:screenshot2018092208.36.33.png.jpg)

@robinrt: 2018-09-22 16:42:33
Use a flag. You can add animal flags under Settings->Lookup Data->Animal Flags There's a flag mode of shelter view too.


Shelter Inventory by age groups?

@jamiepea: 2018-09-22 01:13:34
Me again. We're being asked to produce a daily report of shelter inventory that divided dogs into dogs and puppies and cats into cats and kittens. Can I use age groups to do this? I see Age Groups defined under Settings > Options, but don't see these values enabled on the Animal profiles (which I assume drive the Shelter Inventory reports. TIA!

@jamiepea: 2018-09-22 16:21:40
I think I've figured this out -- never mind.


Add field to foster book?

@jamiepea: 2018-09-21 04:42:59
Anyone know how I can add a field to the foster book screen? I'd like to assign users to be case managers for animals in foster, and need a way to sort by case manager. Open to ideas! TIA.

@robinrt: 2018-09-21 08:57:43
It's not possible to add fields to the foster book - only to the animal and the fosterer. There is an "adoption coordinator" field on animal records that might be what you're looking for though. Shelter view can separate animals by both fosterer and adoption coordinator (the mode can be chosen from the dropdown at the top right). Adoption coordinators are people that the both adopters and fosterers deal with for that animal.

@jamiepea: 2018-09-21 16:42:18
Thank you so much. Do I need to add the "adoption coordinator" field to the animal record display? If so, I'm not seeing it on the Additional Fields Person dropdown menu.

@robinrt: 2018-09-21 16:45:53
No, it should already be there - the adoption coordinator field is under the animal's Entry slider, above the original owner field.

@jamiepea: 2018-09-21 16:47:33
[Screenshot 2018-09-21 08](//muut.com/u/sheltermanager/s3/:sheltermanager:5j6q:screenshot2018092108.46.55.png.jpg) Am I crazy? It's not here, right?

@robinrt: 2018-09-21 17:13:58
It was added in the ASM 40 release. If you aren't using sheltermanager.com or you're using an open source ASM3 older than 40, you don't have it I'm afraid. You can see the version number of ASM at the bottom right of the home page.

@jamiepea: 2018-09-21 17:23:46
It says ASM 41u. Thanks for helping me with this.

@robinrt: 2018-09-21 17:26:44
Oh, you should see it there. Has someone disabled it under Settings->Options->Remove->Remove hte adoption coordinator field from animal entry details ?

@jamiepea: 2018-09-22 01:15:15
Bingo! Now is there a way to view animals by Adoption Coordinator?

@robinrt: 2018-09-22 09:34:38
Shelter view - choose "Adoption Coordinator" or "Adoption Coordinator and Fosterer" from the dropdown at the top right.

@jamiepea: 2018-09-22 15:18:52
This is perfect! Thank you!

@jamiepea: 2020-05-23 20:45:26
Hi Rob. I know this is an old thread, but I have a follow up question. I am assigning Adoption Coordinators to animals in foster homes. When I try to run a shelter view by Adoption Coordinator, they don't show up. Is there any way I can see a list of animals in foster sorted by Adoption Coordinator?

@robinrt: 2020-05-24 09:48:29
They should be showing up. Did you turn off "Treat animals in foster as part of the shelter inventory" ? That will exclude animals in foster homes from shelter view.


Wild card

@1gkwc6: 2018-09-17 21:01:53
Is there a wildcard search option available? I am searching for a dog, but I am not sure about the spelling of its name. It would be helpful if I could replace the bit that I am unsure about with an *.

@robinrt: 2018-09-18 07:45:13
The search handles partial matches, so you can search for the portion you are sure about. You *should* be able to use % as a wildcard for any character and _ for a single character as well - you'll have to experiment.

@1gkwc6: 2018-09-18 10:08:51
Thank you


Forname and Surname

@vsauder: 2018-09-17 18:46:35
Is there any discussion about separating the names in the search boxes? Combining the names has lead to names being entered multiple times due to search results sorting alphabetically by the combined names.

@robinrt: 2018-09-17 19:15:00
You can change how person names are displayed and sorted - Settings->Options->Display, there are a number of options to choose from, such as Surname, Forename. If you do change the name format, make sure you update all records to use it at Settings->Trigger Batch Processes

@vsauder: 2018-10-09 16:52:29
That worked, thanks! Is there a way to modify searches in some of the "sub" fields? Such as when adding an animal and looking up the person who is bringing the animal in, the search box searches the person's name as well as address, etc. This has lead us to enter duplicate individuals. The ability to just search by person name would be helpful.


Movement Types

@1gkwc6: 2018-09-15 17:43:09
As the movement types are not editable, could I request that Stolen and Disappeared be added to the list on your next release?

@robinrt: 2018-09-15 17:59:36
Stolen is already in the list, as is Escaped?

@1gkwc6: 2018-09-18 09:41:38
Thank you, just spotted Stolen. Feedback from one of our users is that Escaped is not quite the same as Disappeared.

@robinrt: 2018-09-18 09:42:45
Unless you have doggy magicians, I'm not sure disappeared is a valid thing!

@1gkwc6: 2018-09-18 10:11:59
[Magician](//muut.com/u/sheltermanager/s1/:sheltermanager:Iswj:magician.jpg.jpg)


Gravity Forms integration

@jones1474: 2018-09-15 17:36:24
We currently use Gravity Forms on our WordPress site for adoption applications. Once an application is submitted, a PDF copy gets emailed to our shelter and someone has to manually create a new user in ASM then upload a copy of the application as a media file. I am looking for a way to automate this. Gravity Forms does allows for Web API calls to get new form submission from either PHP or Javascript calls. I was wondering if I created an online adoption form on our ASM site, is it possible to map the JSON response from Gravity Form to populate the ASM form fields and create a user that way and then attacth the PDF file as a media file or would I have to recreate the entire adoption form on ASM and map them one to one from the Gravity Form fields? Any other suggestions are welcomed if you anyone knows of another way to do this. Than you in advance!

@robinrt: 2018-09-15 18:01:54
I don't know how much flexibility gravity forms gives you. One approach that might be possible is to create the form in ASM, view source to get the action attribute from the form and the name attributes from all the form fields and use those with your gravity forms to make it send to ASM's post handler.

@ken2950: 2021-09-12 22:55:28
Hi Support Team, I am working with another shelter that has used the above method to successfully integrate Gravity Forms with Shelter Manager. While the use submission successfully makes it from our website and into ASM, we are trying to automate the list of adoptable animals that appears in the adoption form on our website such that it auto-refreshes and is always current with our list of adoptable animals in ASM. As an example, in ASM forms, the question "which animal are you interested in?" always shows animals currently available for adoption. We would like to have this auto-refreshing list available in our adoption form (via Gravity Forms) on our website. How does ASM generate the list of adoptable animals for its forms, and can we use similar code for the same effect in Gravity Forms?

@robinrt: 2021-09-13 09:58:57
SM injects the list into the page when it generates the form at the backend. You won't be able to do this. There is a service API call you can make to retrieve the list of adoptable animals as a JSON document, which you could use to populate a list. https://sheltermanager.com/repo/asm3_help/service.html#json-adoptable-animals-and-xml-adoptable-animals

@ken2950: 2022-02-05 05:46:59
@robinrt - Following up on my post from Sep 2021. Gravity Forms has a "Dynamically Populating Fields" feature which I think may be able to leverage the Adoptable Animals API endpoint and populate the list of adoptable animals. Please review the linked article to let me know if any of the methods (I'm thinking query string) will work for my intended use case. https://docs.gravityforms.com/using-dynamic-population/

@robinrt: 2022-02-05 09:06:20
It looks like it could work, but it doesn't say what format they want responses in or even if they can parse JSON or XML. The example they show looks like URLencoded


Disappearing notes & vaccines (maybe)?

@sjras: 2018-09-14 16:40:13
I want to first say that I'm doubting this is an ASM issue and is almost definitely a user issue. I'm being told that our techs are entering vaccines and they randomly (and infrequently) disappear. They also say that they've had notes in the 'health problems' field disappear on them (again, not frequently). We have 30 staff members using the hosted ASM for 9 months now and there are only 3 that have ever had this issue. And we used the free local version for 10yrs before that. I've checked the logs and audit history etc. with no ability to tell that these items were ever even created. We even changed our cage cards to include vaccines so that we would know that they HAD been entered (if they 'disappeared'). Since that change we've had one issue with health problems and one with vaccines. The one with the vaccines, the animal never had a cage card printed, so we were unable to substantiate the claim that it was in fact entered in the first place. I was just wondering if there's a way I'm not thinking of to verify that this IS a user issue.

@robinrt: 2018-09-14 18:32:09
It sounds like they're sometimes forgetting to hit Save/Ok to me. It also sounds like you're doing everything you can to show that the records weren't created in the first place.


Ability to search by medication?

@sjras: 2018-09-14 16:21:37
We just had an incident where we needed to find animals treated with a certain medication as part of their medical treatments/medical profiles. Is there any way to do this without going thru each record? We tried just a general search for the medication name, but that produced no results. If it's not something available now, is it something that's even possible with the way ASM works? Just figured we'd ask while we were thinking of it.

@robinrt: 2018-09-14 18:29:39
There's a report called "Animals with a medical treatment" which searches and shows all shelter animals who have a particular treatment.

@sjras: 2018-09-14 21:02:34
Perfect! Thanks so much!


Change Defaults

@deserthaven: 2018-09-13 14:53:36
Is it possible to change the defaults and/or descriptions in: 1. Details > Type 2. Details > Color 3. Details > Coat Type 4. Details > Species 5. Details > Breed 6. Details > Location Thanks!

@robinrt: 2018-09-13 14:59:56
You can edit them under Settings->Lookup Data. You can choose the default values for all those things under Settings->Options->Defaults

@deserthaven: 2018-09-13 19:32:29
Thank you!

@jennifer_holt20: 2021-09-11 19:53:01
What if I want to add more locations with in the shelter? I am at the screen to change the default location but all it shows me is shelter. It does not give me the option to add a new location.

@robinrt: 2021-09-12 08:42:14
Settings->Lookup Data, then Internal Locations from the dropdown at the top right.


Average Monthly Animals In Care by Species report

@crystalhunter: 2018-09-11 22:03:48
Does the Average Monthly Animals In Care by Species report include ALL animals or just by certain location? We want to get average monthly for all animals, including ones in foster care or at the vet. This is the SQL of the report SELECT Month, Year, Average, SpeciesName FROM animalfigures INNER JOIN species ON species.ID = animalfigures.SpeciesID WHERE Code = 'SP_ONSHELTER' ORDER BY SpeciesName, Year, Month Does the WHERE Code = 'SP_ONSHELTER' only specify a certain location or all animals? If only animals on site at the shelter, is there another value I can put to get the data on ALL animals. Thank you.

@robinrt: 2018-09-12 08:53:54
It's using the monthly figures calculated by the overnight batch. SP_ONSHELTER is a code in that table that highlights rows calculated for all animals in care by species. It includes any animal that is in care (if an animal appears in shelter view, it's in care). Those figures are not live though, and if you go back and change records for a previous month you may need to update the figures for that month. You can do that by going to Settings->Trigger Batch Processes->Recalculate Monthly Figures


Reports - Email

@fayettefcar: 2018-09-10 15:04:18
Is there a way to email reports on a set day versus day of the week or beg/end of month? For example I need to send a report on the 24th of each month? Thank you.

@robinrt: 2018-09-13 15:00:48
There isn't at the moment, no. Sorry. Is there a particular reason for the 24th rather than the end of the month?


Setting up ASM2 MySQL server

@redvenomweb: 2018-09-08 22:58:34
I'm preparing to migrate an existing ASM2+MySQL server to a new machine and newer Ubuntu installation. However, I'm trying to locate the directions to set up the MySQL database for ASM before I import the most current backup. Where can I find this information?

@robinrt: 2018-09-09 09:38:17
If you're just moving the installation, it's not really ASM specific. You'll need to take a mysqldump of your existing database to get a version agnostic file that you can then execute on your new MySQL server to recreate the database. http://webcheatsheet.com/sql/mysql_backup_restore.php

@redvenomweb: 2018-09-28 04:44:37
So after setting up the new server and successfully migrating the database, I can't get past the following ASM client error (Ubuntu 14.04 on the workstation, 18.04 on the MySQL server): java.net SocketException MESSAGE: java.net ConnectException: Connection refused In the `mysql_secure_installation` setup, I've tried both enabling and disabling: - anonymous access - test database - remote root login None seem to help. Do I specifically need to open a port on the server? I'm at a loss so far.

@robinrt: 2018-09-28 09:16:37
Your new MySQL server is probably listening on 127.0.0.1 rather than 0.0.0.0. If you edit /etc/mysql/my.cnf on your server machine there will probably be a line that says bind-address 127.0.0.1 - delete it and restart MySQL.

@redvenomweb: 2018-09-29 21:33:26
`/etc/mysql/my.cnf` didn't have that line, but I did a bit of digging and found it in `/etc/mysql/mysql.conf.d` (Apparently they changed the location after Ubuntu 14.04) After deleting that line, the error I get now when trying to connect from the client is: java.net SocketException MESSAGE: Connection reset I did a little bit more research on MySQL networking; after restoring the database, do I need to go back into the MySQL console and manually grant network access again, or are those permissions inherited during the db restore? The command I saw was something along the lines of: `GRANT ALL ON asm.* TO '[user]' IDENTIFIED BY '[password]' WITH GRANT OPTION;` Or am I barking up the wrong tree, and the error means something else entirely?

@robinrt: 2018-09-30 09:18:51
You need to grant permissions again to create your user as MySQL user info is not stored in your ASM database.


Report-Only Show some records

@fayettefcar: 2018-09-08 20:00:45
So have my monthly prevention reports looking perfect and wanted to take it one step further. We have to weigh each animal if they are within 5 lbs of the dosage amount. I have my report and used the Case statement to put a 1 when the animal needs to be checked. And that would work... but my preference is to make it cleaner and only show the animals that fall within that weight criteria. Is there a way to make it only show the records where CHECK = 1 or is there a better way to do this? SQL: SELECT a.ShelterCode, a.AnimalName, a.MostRecentEntryDate, a.IdentichipNumber, a.AnimalAge, a.BreedName, a.Weight, a.Markings, t.AnimalType, s.SpeciesName, CASE WHEN a.ActiveMovementType = 2 THEN (SELECT MovementType FROM lksmovementtype WHERE ID = a.ActiveMovementType) ELSE i.LocationName END AS DisplayLocationName, CASE WHEN ActiveMovementType = 2 THEN '<div style=page-break-before: always"></div' ELSE '' END AS PageBreak, CASE WHEN a.Weight >= 15 AND a.Weight <= 25 THEN 1 WHEN a.Weight >= 50 AND a.Weight <= 60 THEN 1 WHEN a.Weight >= 83 AND a.Weight <= 92 THEN 1 END AS CHECK FROM animal a INNER JOIN animaltype t ON t.ID = a.AnimalTypeID INNER JOIN species s ON s.ID = a.SpeciesID INNER JOIN lksex sx ON sx.ID = a.Sex INNER JOIN internallocation i ON i.ID = a.ShelterLocation WHERE (a.Archived = 0 OR a.ActiveMovementType = 2) ORDER BY CASE WHEN a.ActiveMovementType = 2 THEN (SELECT MovementType FROM lksmovementtype WHERE ID = a.ActiveMovementType) ELSE i.LocationName END, s.SpeciesName, a.animalName HTML: $$HEADER HEADER$$ $$GROUP_DisplayLocationName $$HEAD <h2>$DisplayLocationName</h2> $$FOOT <p><b>Total $DisplayLocationName: {COUNT.LocationName}</b></p> <hr style="page-break-after: always;" /> GROUP$$ $$GROUP_SpeciesName $$HEAD <h3>$SpeciesName</h3> <table border=1><tr> <td><b>Name</b></td> <td><b>Weight</b></td> <td><b>Check</b></td> <td><b>New Weight</b></td> </tr> $$FOOT </table> <p>Total $SpeciesName: {COUNT.SpeciesName}</p> GROUP$$ $$BODY <tr> <td>$animalname</td> <td><center>$weight</td> <td>$CHECK</td> <td>$markings</td> </tr> BODY$$ $$FOOTER FOOTER$$ Thank you!

@candidhominid: 2018-09-09 03:40:22
Yes, that is possible. You just need to move the 'check' code/logic to the where statement. --- FROM animal a ... WHERE (a.Archived = 0 OR a.ActiveMovementType = 2) AND ((a.Weight >= 15 AND a.Weight <= 25) OR (a.Weight >= 50 AND a.Weight <= 60) OR (a.Weight >= 83 AND a.Weight <= 92)) ---

@fayettefcar: 2018-09-10 14:54:29
Worked Perfectly. Thank you so much!


Movement between people

@yvonne_jones: 2018-09-08 07:20:42
How can we transfer dog ownership from the person who adopted him to another person without the dog coming back into the shelter? If we bring into the shelter and adopt again it will inflate our adoption figures. We just want to keep a record of who adopted the dog and then who they gave the dog to. Thank you.

@robinrt: 2018-09-08 10:08:08
The short answer is that you can't currently. It's something that's been raised previously and is on our development list to do something about. Our planned fix is to separate the animal's current owner from the last adopter, but it won't be available until the next milestone. In the meantime, all you can do to workaround it at present is put something in the notes to say the animal has a new owner.


Adopted animals still showing on kijjii?

@tammyhbr: 2018-09-06 04:00:10
does anyone else have any issue with animals still showing up on kijji weeks after they have been adopted

@robinrt: 2018-09-08 10:09:24
I had to look up what kijjii is - I guess you're referring to the Canadian classified site? ASM has no integration with it, so if you're putting them on there, you have to take them off too.


Custom report with union to csv/excel

@ivod: 2018-09-04 16:05:16
I've created a custom report based on the ASM data. For reporting purposes I want to make union to some legacy data that we have in Excel. What will be the best solution? SQL union to external source (excel, csv, sql ...), to create a custom table in the existing installation (on server EUR02, PostgreeSQL) or to abandon the idea :)


If Then Statement

@fayettefcar: 2018-09-03 20:46:13
I want to create a report for each month when we give prevention. So i have the animal's name and weight and based on that weight, I want it to insert the correct dose based on 9-20 = 1, 21-54 = 2.5 and 55-88 = 4. I have tried various CASE and If/then SQL statements to no avail. Can you help? Also I want the Fosters to print on a separate page from the Shelter animals but I can't seem to figure out where to put code for a page break between sections? Thank you! SELECT a.ShelterCode, a.AnimalName, a.MostRecentEntryDate, a.IdentichipNumber, a.AnimalAge, a.BreedName, a.Weight, a.Markings, t.AnimalType, s.SpeciesName, CASE WHEN a.ActiveMovementType = 2 THEN (SELECT MovementType FROM lksmovementtype WHERE ID = a.ActiveMovementType) ELSE i.LocationName END AS DisplayLocationName FROM animal a INNER JOIN animaltype t ON t.ID = a.AnimalTypeID INNER JOIN species s ON s.ID = a.SpeciesID INNER JOIN lksex sx ON sx.ID = a.Sex INNER JOIN internallocation i ON i.ID = a.ShelterLocation WHERE (a.Archived = 0 OR a.ActiveMovementType = 2) ORDER BY CASE WHEN a.ActiveMovementType = 2 THEN (SELECT MovementType FROM lksmovementtype WHERE ID = a.ActiveMovementType) ELSE i.LocationName END, s.SpeciesName, a.animalName ------------------- HTML part: $$HEADER HEADER$$ $$GROUP_DisplayLocationName $$HEAD <h2>$DisplayLocationName</h2> $$FOOT <p><b>Total $DisplayLocationName: {COUNT.LocationName}</b></p> GROUP$$ $$GROUP_SpeciesName $$HEAD <h3>$SpeciesName</h3> <table border=1><tr> <td><b>Name</b></td> <td><b>Weight</b></td> <td><b>Adv Multi Dose</b></td> <td><b>Complete</b></td> </tr> $$FOOT </table> <p>Total $SpeciesName: {COUNT.SpeciesName}</p> GROUP$$ $$BODY <tr> <td>$animalname</td> <td>$weight</td> <td>$markings</td> <td>$markings</td> </tr> BODY$$ $$FOOTER FOOTER$$

@robinrt: 2018-09-03 21:42:49
I don't see anything like that in your example? Eg: ... CASE WHEN Weight >= 9 AND Weight <= 20 THEN 1 WHEN Weight >= 21 AND Weight <= 54 THEN 2.5 WHEN Weight >= 55 AND Weight <= 88 THEN 4 END AS Dosage, You can start a new page by embedding a div with page-break-after set to always, eg: <div style="page-break-after: always"></div> So, to do it for fosters, you could use another CASE - eg: CASE WHEN ActiveMovementType = 2 THEN '<div style="page-break-before: always"></div>' ELSE '' END AS PageBreak, Then, you can just put $PageBreak at the very top of the $HEAD section of your displaylocationname group. It will then output the page break when it hits the first fosterer.

@fayettefcar: 2018-09-03 23:40:28
I kept deleting it out when I get errors. Where am I supposed to put it? I tried various places with the code above and all I tried and I always get errors. I think I'm not putting in the right place. Thank you!!

@fayettefcar: 2018-09-03 23:44:43
I tried this. Tried adding in the a.weight in case it needed the table and still errors. SELECT a.ShelterCode, a.AnimalName, a.MostRecentEntryDate, a.IdentichipNumber, a.AnimalAge, a.BreedName, a.Weight, a.Markings, t.AnimalType, s.SpeciesName, CASE WHEN a.ActiveMovementType = 2 THEN (SELECT MovementType FROM lksmovementtype WHERE ID = a.ActiveMovementType) ELSE i.LocationName END AS DisplayLocationName CASE WHEN a.Weight >= 9 AND a.Weight <= 20 THEN 1 WHEN a.Weight >= 21 AND a.Weight <= 54 THEN 2.5 WHEN a.Weight >= 55 AND a.Weight <= 88 THEN 4 END AS Dosage FROM animal a INNER JOIN animaltype t ON t.ID = a.AnimalTypeID INNER JOIN species s ON s.ID = a.SpeciesID INNER JOIN lksex sx ON sx.ID = a.Sex INNER JOIN internallocation i ON i.ID = a.ShelterLocation WHERE (a.Archived = 0 OR a.ActiveMovementType = 2) ORDER BY CASE WHEN a.ActiveMovementType = 2 THEN (SELECT MovementType FROM lksmovementtype WHERE ID = a.ActiveMovementType) ELSE i.LocationName END, s.SpeciesName, a.animalName

@fayettefcar: 2018-09-03 23:49:52
OMGoodness, it worked! I was missing a comma after the first case. THANK YOU!


Animal ShelterCode Changing

@kitten_division: 2018-09-02 21:59:03
I have noticed on some recent record corrections that I made that an animals sheltercode is changing when I save. So, I went to Options and checked the box to not change once a sheltercode is issued. Moments ago I tried to correct an intake date on an animal and found that I cannot change it if the sheltercode is locked. Unchecked the box in Options, corrected the intake date, and once again it automatically changed the sheltercode for that animal. The sheltercode goes on all paperwork for the animal and randomly changing sheltercode really makes this an issue. Now I understand that if they sheltercode includes a date, that it would be an issue but the only part of the shelter code we use for a date is YY.

@kitten_division: 2018-09-02 22:08:32
[Screenshot (2371)](//muut.com/u/sheltermanager/s3/:sheltermanager:M4mY:screenshot2371.jpg.jpg)

@srupe05: 2018-09-05 18:34:47
I noticed this too. When contacting the developer we were informed that changing the intake date causes a new shelter code to be entered. There was no fix or any work around for it. Just have to pay attention if/when changing intake dates and making sure to replace the new shelter code with the old.


Cage card for animals in transit

@1gkwc6: 2018-09-01 08:58:19
We transport animals across europe and a Cage card with the Drop Off address will be very useful. Has anybody got any ideas?

@robinrt: 2018-09-01 09:31:27
I guess we didn't get around to adding wordkeys for the data on the animal transport tab. I'll raise an issue for us to add that in development. In the meantime, there isn't really a workaround for getting transport data into documents.


Custom Reports Help

@deserthaven: 2018-08-29 21:17:58
I'm new in a manager's position at our shelter and in the midst of familiarizing myself with ASM. I have experience with different/similar products, and could probably figure out how to create custom reports, but time is a limitation. Does ASM provide any paid services for helping with things like creating custom reports? If so, who do I contact for more information? Thank you!

@robinrt: 2018-08-30 14:22:19
Hi, yes, if you're a sheltermanager.com customer we can give advice and help you with reports as part of the support. If you want brand new reports that are specific to your shelter, we charge $70/hour for developer time in writing reports. You can get in touch with us directly at info@sheltermanager.com

@deserthaven: 2018-08-30 19:50:28
Thanks, Robin - just sent an email. Marked it "urgent." :)


"Lookup Values" in Additional Fields

@deserthaven: 2018-08-29 13:21:51
Are notes added in the Lookup Values area of additional fields searchable? If so, what's the best language to use there? If not, what is the field's purpose?

@robinrt: 2018-08-29 14:50:58
If your field is of type lookup, the system will show a dropdown to the user and the available values in the dropdown are those from the lookup values box. They should be separated by a pipe, eg: item 1|item 2|item 3

@deserthaven: 2018-08-29 21:03:41
Understood. Thanks, Robin! :)


Publishing fosters to maddiesfund

@jgochsner: 2018-08-28 17:26:22
We setup Maddie’s app for adopters only initially and now want our fosters to be able to use MPA. I changed the admin setting in Maddie’s to both (fosters and adopters) and publishing options seem correct in sheltermanager but it isn’t publishing the fosters. Does anyone have experience in getting this to work? Thanks in advance!

@robinrt: 2018-08-28 18:41:20
Hi, ASM always sends adopters and fosterers regardless of the setting in MPA (I didn't know you could do that!). They should already have all the info on your fosterers - they were just choosing not to use it.

@jgochsner: 2018-08-29 14:19:25
Thank you so much! I saw our fosters in the publish logs so have been very confused! I’ll reach out to the folks at MPA.


Information Included in Timeline

@deserthaven: 2018-08-25 20:26:11
Is there a way to control/edit the information that appears in the "timeline" that's visible in shelter view?

@robinrt: 2018-08-26 13:13:21
There's only one option that affects it and that's the "Hide deceased animals from the home page" under Settings->Options->Home Page

@deserthaven: 2018-08-29 13:15:28
Thank you!


Change the Order of Fields

@deserthaven: 2018-08-25 07:55:19
Is it possible to change the order of the default fields (not the "additional fields") in the "details" section (or any section, really) of an animal record?

@robinrt: 2018-08-25 09:45:32
No, not without reprogramming the application. We try to make ASM is customisable as we can, but there are limits!

@deserthaven: 2018-08-25 20:21:20
Makes sense to me, Robin - just wanted to make sure I knew for sure. Thanks! :)


Adding Daily Tasks at a Shelter

@tmccreight: 2018-08-24 21:53:38
I volunteer at a shelter and we track daily tasks using paper records right now, for three shifts of volunteers. The tasks include: walks (yes/no), water replaced (yes/no), food (yes/no) walk behavior (4 X 7 system) and comments on the dog. Is it possible to create a tab that could hold this data? We have three shifts of volunteers for each dog, and we're starting to lose some of the information between shifts. Thanks!


search results limited to 1000 & Another ?

@sjras: 2018-08-24 17:52:18
My director almost just had a heart attack (lol) because she did a search for all animals entering our facility this year and only received 1000 results. She knew that was about 1500 shy of where we should be at this time of year & came running to my office thinking there was a problem with the system. I found them all 2751 in one of the reports but we were wondering if there's a way to remove the 1000 results cap when the find a person/animal search is used? We've been so used to an older version where it listed everything that we've gotten a little cheat happy about getting a number we need quickly without using a report function. Also - the "adopters" flag is gone from the find a person flag options. This was useful in limiting the field if we were trying to figure out who someone was but didn't have their info complete. Say if we knew what city they were in and part of a last name, pulling just the adopters gave us a shorter list to sort thru than looking th ru everyone. Is there any way to get this back other than having staff manually throw a custom flag for each adopter?

@robinrt: 2018-08-24 17:57:11
Sorry, there isn't really a way to lift the cap - reports are the right way to get a list of 3,000 intakes! I had to go check the ASM2 source for the adopters filter - you're right, it must have somehow been left out of ASM3 when we first developed it! I'll raise a development issue now to put that back as it was useful.

@sjras: 2018-08-24 18:02:14
Thank you so much for the info. We'll look forward to the change & we'll practice getting numbers from real reports instead of cheating lol.


What is the practical difference between using "Diary" and using "Log" ?

@tjlawson: 2018-08-23 14:46:34
I cannot seem to locate any definitive standard which clarifies which is feature is preferably used for - only 'how' to use it in the mechanical sense of what to do to use the feature... but not anything which says "You should use the "diary" feature for ________ and ________ situations and circumstances." and "It is preferable to use the "Log" feature for when you want to document _________ and ________ ." I need to understand the variable differences in the two features to determine which each one is best used for..... maybe I am just missing it...

@robinrt: 2018-08-23 17:44:37
Log is for recording notes with a date. Diary is a reminder for someone to do something on a particular date and will appear on the home page. https://sheltermanager.com/repo/asm3_help/generaldiary.html

@1gkwc6: 2018-08-26 23:32:37
Are Logs searchable? If not, can they be made searchable? We keep a paper logbook in the office with details of what happened on shifts and notes for the next shifts etc. We would now like to start recording this details electronically, and I wonder of Logs would work for this? Or are there any other suggestions?

@robinrt: 2018-08-27 10:34:11
That sounds like a reasonable use of logs. Logs aren't currently searchable within the UI but it is possible with reports.

@nicoleporter: 2018-10-29 01:06:54
So would diary be the best to use if we want to log/schedule baths?

@candidhominid: 2018-10-30 00:44:47
You could use diaries to schedule the baths and then use logs to record that they happened. (You could also set up a diary task to make adding adding the bath diaries a bit easier. ) Alternatively, you could add a “bath” medical profile and schedule/record baths from the medical tab. Not sure that either way is better. I would test out both and see which you like more.


Find Animal

@vsauder: 2018-08-14 19:17:51
When doing a find animal search and selecting "all" for the location, the search does not pull up deceased animals. Is this part of the search design or do we have an error to attend to?

@robinrt: 2018-08-15 09:27:38
Choose "Include deceased" from the filter dropdown.

@vsauder: 2018-08-21 14:44:02
Our search for deceased works, but all does not include these, so we need to run multiple searches to find a specific animal. Is there a reason that "all" does not include all?


Form Templates

@pawsdarwin: 2018-08-13 06:00:56
Are there form templates anywhere that can be used. Eg for surrenders, volunteers etc?

@robinrt: 2018-08-13 09:26:24
There are standard surrender/volunteer/fosterer forms for both document templates and online forms. Do you not have them under Settings->Document Templates and ASM->Edit Online Forms? They can be extracted from the source and imported, but if you are a sheltermanager.com user, drop us a line at support@sheltermanager.com with your account number and we'll check/add them for you.

@mdeprima1964: 2020-02-08 11:25:36
Hi Rob - we are missing a document template. I actually used it, and now it's gone. It's the Print Animal Record (for adopter's) document. Can it be reloaded please? td1674

@robinrt: 2020-02-09 10:49:57
It's not a document, it's a report. You can reinstall it under Settings->Reports->Browse sheltermanager.com. It should appear under Reports->Auditing.


Clinic

@pawsdarwin: 2018-08-13 05:57:55
We are setting up a clinic at the shelter however are very confused as to how to assign costs and create invoices. Is there further information on this? Eg a clinic diary appointment has a cost field but no way to enter a cost?

@robinrt: 2018-08-13 09:27:18
The appointment has an invoice amount total. You can edit the invoice line items by clicking the little calculator symbol to the right of the appointment.


Vouchers

@pawsdarwin: 2018-08-13 05:56:49
I can't find the 'Vouchers' tab? Where is it?

@robinrt: 2018-08-13 09:24:20
On person records.


Vaccinations

@georgevychron: 2018-08-09 20:25:28
Is there any way to edit the vaccination type field under each animal? The only options now are pre-filled, but we have several animals that have received additional vaccinations that are not in the drop down list provided.

@candidhominid: 2018-08-09 22:17:04
Settings->Lookup data->Vaccination Types (pull down menu to the right)

@georgevychron: 2018-08-11 02:09:47
Ok, thank you very much.


HOW TO REMOVE "PREVIOUSLY SURRENDERED" FROM A PERSON?

@camillemirandavenable: 2018-08-09 16:38:08

@robinrt: 2018-08-09 17:07:59
Hi, could you give more info on the problem you're having? If "Previously Surrendered" is a person flag that you've added to your system, you can remove it by going to the "Type" slider on their person record and clicking the X to the right of the flag name.

@camillemirandavenable: 2018-08-09 17:57:44
I checked the person's "type" and there is no flag there. What we do is have a "person" that is our temporary folder. When our shelter adopts out we put the cat in the "person" until I go in and process the adoption. It's just temporary but takes it out of the "available for adoption" list. So, this "person" comes up every time (when I process the movement) as "This person has previously surrendered an animal." I'm not sure where it is coming from and trying to figure out how to remove the message? Thank you for your help!

@robinrt: 2018-08-09 18:01:44
You can turn off that warning under Settings->Options->Movements->Warn when adopting to a person who has previously brought an animal to the shelter If it's just a temporary place to put adoptions, why has that person surrendered an animal? If you go to the "Links" tab for that person you should be able to see which animal it is down as the surrenderer (Brought In By or Original Owner) and remove it.

@camillemirandavenable: 2018-08-09 18:07:42
Yes, I found the animal that shows "Brought In By"! How do I remove it? I did this in error, it should not have surrendered under the temp person.

@robinrt: 2018-08-09 18:10:42
Click the little trash icon to the right of the link in the brought in by field for that animal and save.

@camillemirandavenable: 2018-08-09 18:41:42
I don't have the trash can, I believe it's because I'm a volunteer. I will ask the owner of the shelter to correct it for me. Thank you so much, it has been driving me crazy!!!!

@ears: 2019-02-19 00:41:58
How is the "Links" tab used? It does not automatically link the adopter and the animal? Thanks, Kathy

@robinrt: 2019-02-19 09:03:31
You link the adopter and animal under the movement tab. The links tab fills in automatically when the person has been used as the brought in by, original owner, vet or other relationship where that person has been linked to another record but that relationship doesn't have it's own tab on the person record. It's generally considered good etiquette to start your own thread for a new question instead of resurrecting someone else's as they will get notifications.

@ears: 2019-02-19 15:24:37
Thanks


Specifying image size in Document Templates

@adoptamutt: 2018-08-09 13:36:13
Is there a way to specify the size I want an image to display at when using <<DocumentImgLink>>?

@adoptamutt: 2018-08-09 13:37:18
I'm trying to display it at about 5" x 5".

@robinrt: 2018-08-09 15:00:41
Yes. You can suffix DocumentImgLink with one of 200, 300, 400 or 500 - that chooses the height of the image in pixels. Eg: <<DocumentImgLink500>>


Document Templates

@pawsdarwin: 2018-08-07 04:00:33
How do I access document templates?

@robinrt: 2018-08-07 10:00:16
Settings->Document Templates You may not see the settings menu if your user does not have permission.


Including Comments in Foster Report

@fayettefcar: 2018-08-04 15:18:07
I would like to include the Comments field from the Movement when someone fosters an animal in my foster report however I have not been able to get it working. I found in the Help the list of tables and the field is called COMMENTS in the OWNER table. I think I'm not calling out that field in the SQL part or ? Below is my code: SELECT OwnerName AS FosteredTo, OwnerAddress, OwnerTown, OwnerPostcode, EmailAddress, HomeTelephone, MobileTelephone, ShelterCode, AnimalName, (SELECT Sex FROM lksex WHERE ID = animal.Sex) AS Sex, (SELECT BaseColour FROM basecolour WHERE ID = animal.BaseColourID) AS Colour, BreedName, DateOfBirth FROM animal INNER JOIN adoption ON adoption.AnimalID = animal.ID INNER JOIN owner ON owner.ID = adoption.OwnerID WHERE MovementType = 2 AND DeceasedDate Is Null AND ReturnDate Is Null ORDER BY FosteredTo $$HEADER <table border="1"> <tr> <th>Name</th> <th>Fosterer</th> <th>Contact</th> <th>Comments</th> </tr> HEADER$$ $$BODY <tr> <td>$ANIMALNAME</td> <td>$FOSTEREDTO</td> <td>$EmailAddress<br/> H: $HOMETELEPHONE<br/> M: $MOBILETELEPHONE</td> <td>$COMMENTS</td> </tr> BODY$$ $$FOOTER </table> FOOTER$$ Thank you!

@fayettefcar: 2018-08-04 16:54:17
Disregard - I figured it out! But can't figure out how to delete my post. Thanks.

@robinrt: 2018-08-04 22:09:10
No problem, I love it when people answer their own questions! Guess you found the comments field in the adoption table :)

@fayettefcar: 2018-08-04 22:11:20
Yes and then played around with it til I stumbled on how to get it to show up. Pretty proud of myself :)


Show Adopted Animals with details of the owner

@djsteven: 2018-08-03 19:13:33
Hi There is a way to see all the adopted animals, also we noticed that in the single animal view we saw the owner information on the red marked area but now no and the movement tab disappear as well, please see the attached screenshots. [Adopted dog](//muut.com/u/sheltermanager/s3/:sheltermanager:Loep:adopteddog.jpg.jpg) [Regular dog](//muut.com/u/sheltermanager/s3/:sheltermanager:ZI09:regulardog.jpg.jpg)

@robinrt: 2018-08-03 19:22:06
You've set your adopted dog as non-shelter. Non-shelter means the animal is owned by a member of the public and not part of the shelter inventory (and cannot have movements).

@djsteven: 2018-08-14 22:55:11
Thank you!


Emailing media

@1gkwc6: 2018-07-25 23:57:14
From the media tab, and selecting multiple images, when I click on mail and send, it generates a separate email for each media file. How do I include them all in one email?

@robinrt: 2018-07-26 09:47:08
You can't, it's a limitation of the email code. We do already have an issue on the development to look at merging multiple attachments into one email.


Import from Petpoint using Windows 10

@jessiewollmuth: 2018-07-19 17:43:12
I want to know I can transfer our information from PetPoint to this program but there is no info on using Windows 10. Any help would be greatly appreciated.

@robinrt: 2018-07-19 17:50:02
Not with the open source build I'm afraid. We do have a PetPoint importer that we use to import data into sheltermanager.com accounts, but it's a programmers tool we use at this end rather than something designed for end users.


Recording vet fees and discounts

@yvonne_jones: 2018-07-12 02:34:32
Is there a way to enter vet fees at the standard rate and at the discounted rate? We would like to report cost of caring for a dog with the discounted rate and at the standard vet rate.

@robinrt: 2018-07-19 17:50:41
You can set a cost for medical regimens by creating a medical profile for those items under Medical->Medical Profiles.


available for adoption

@idgsr: 2018-07-11 17:05:29

@idgsr: 2018-07-11 17:06:58
I am trying to show dogs as available for adoption and am having trouble finding the option to change the dog's status from "not available for adoption". Any help would be appreciated. Thanks.

@candidhominid: 2018-07-11 17:47:58
There is a Not for Adoption flag to deselect. It's under the details slider of the animal tab. If they are still not available for adoption after doing that, the reason they aren't available should be stated in the red info box under the "Added by" and "Last changed by" section of an animal's page.

@idgsr: 2018-07-11 17:52:54
Thank you very much, that worked. We just got the subscription and I'm working on learning everything. I appreciate your reply.


What is the best way to record mass periodical manipulations as deworming.

@ivod: 2018-07-09 16:30:14
What is the best way for recording bulk mass periodical manipulations as deworming or flea treatment. Something similar to vaccination?

@robinrt: 2018-07-09 17:36:19
A single/one-off medical regimen. You can bulk apply them to multiple shelter animals in one go under Medical->Medical Book


Additional fields in Bulk Transport and Medical Regimen

@ivod: 2018-07-09 16:27:39
Can additional fields be added in Bulk Transport and Medical Regimen? It will be very useful if it is possible to add text field for document or license number for the transport or some additional data in the medical regimen.

@robinrt: 2018-07-09 17:35:45
It's not possible at the moment, sorry. Allowing additional fields in satellite/dialog screens like those is part of our roadmap and on the next milestone.


Shelter animals count report

@srupe05: 2018-07-09 14:42:34
I have tried numerous times to edit the SAC report but am not able to figure out what I am doing wrong. I would like the report to pull the animal type rather that the entry reason. Our shelter uses specific entry reasons for our owner surrenders and animal control, therefore, having the report pull the type would be much easier.

@ivod: 2018-07-09 16:52:59
What is the name of the report that you are using? Can you post the SQL code

@robinrt: 2018-07-09 17:41:24
The report only uses the entry reason to separate strays. Assuming that you have an animal type that identifies strays, you could replace all the queries that join to entryreason with a join to animal type instead - replace these lines: INNER JOIN entryreason ON entryreason.ID = animalEntryReasonID with this line instead: INNER JOIN animaltype ON animaltype.ID = animal.AnimalTypeID You can then compare to the AnimalType field instead of ReasonName. So change all the clauses that say AND ReasonName (NOT) LIKE '%Stray%' to AND AnimalType (NOT) LIKE '%Stray%' That assumes your type has the word Stray in it. Adjust the clause if you're looking for another word in the type.

@srupe05: 2018-07-10 14:15:28
Below is the SQL I have used (each species and age interval has been edited): (SELECT COUNT(*) FROM animal INNER JOIN animaltype ON animaltype.ID = animal.AnimalTypeID WHERE AnimalType LIKE '%S (Stray)%' AND AnimalType LIKE '%A (Animal Control)%' AND IsTransfer = 0 AND DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND SpeciesID = 1 AND DateOfBirth < DateBroughtIn - INTERVAL '5 months' AND NonShelterAnimal = 0) AS AdultDogStray, I even tried using the integer associated with the animal type rather that the character string. The image attached is the result of the SQL above with a stray/ at larger intake of 0. Also an image of an In/Out by Type summary report for they same time period. Thanks for the help. [Report](//muut.com/u/sheltermanager/s2/:sheltermanager:Bhuu:report.jpg.jpg) [Report 2](//muut.com/u/sheltermanager/s2/:sheltermanager:qbcd:report2.jpg.jpg)

@robinrt: 2018-07-10 14:25:16
This is wrong: WHERE AnimalType LIKE ‘%S (Stray)%’ AND AnimalType LIKE ‘%A (Animal Control)%’ It can't be both, you need to bracket and OR that expression like this to count for both: WHERE (AnimalType LIKE ‘%S (Stray)%’ OR AnimalType LIKE ‘%A (Animal Control)%’ )

@srupe05: 2018-07-10 16:34:03
Finally! This is what I got to work! Thank you!! (SELECT COUNT(*) FROM animal INNER JOIN animaltype ON animaltype.ID = animal.AnimalTypeID WHERE (AnimalType='S (Stray)' OR AnimalType='A (Animal Control)') AND IsTransfer = 0


Shelter animals count report

@srupe05: 2018-07-09 14:42:33
I have tried numerous times to edit the SAC report but am not able to figure out what I am doing wrong. I would like the report to pull the animal type rather that the entry reason. Our shelter uses specific entry reasons for our owner surrenders and animal control, therefore, having the report pull the type would be much easier.


API call?

@grahamparsons: 2018-07-02 18:19:55
Hi, Is there an API call to get a list of stray animals at the shelter - either combined with or separate to, adoptable animals?

@robinrt: 2018-07-02 19:26:54
You could use the json or xml shelter-animals API calls and then filter the data for just the strays. https://sheltermanager.com/repo/asm3_help/service.html#json-shelter-animals-and-xml-shelter-animals


Vouchers

@ngaa: 2018-07-01 13:32:25
We offer spay/neuter vouchers. I know how to put them in but how do we mark them as used?

@robinrt: 2018-07-01 13:35:51
Hi, the usual approach is to make the expiry date the used date and put a comment on them.

@ngaa: 2018-07-01 14:17:54
Will it show on the spay/neuter reports? Also is there a way to make to have a report that distinguishes between spay & neuter? We are trying to track the spay/neuter owner assistance.

@robinrt: 2018-07-01 15:08:48
Vouchers don't show on the spay/neuter reports. The report "Neutering by Date" groups by gender so you can see which ones were spay operations. Install new reports under Settings->Reports->Browse sheltermanager.com


Vet visits

@sds4ptime: 2018-07-01 00:17:59
How do you record a trip to the vet? For example a dog gets injured or sick and needs to see the vet? Thanks in advance. I'm a new user

@robinrt: 2018-07-01 09:40:11
Usually as a single medical treatment under the Medical tab. You can also schedule vet visits in this way and they'll appear on the medical calendar and alerts will be shown until the treatment is "given" (ie. the animal has seen the vet).


ASM suddenly forbiding adding new animals

@sjras: 2018-06-29 19:30:47
we're suddenly having no luck in adding animals, we're getting the forbidden message for anyone trying to create new animals other than the super user, which is me, and I know I haven't changed any settings for over a week. Any issues currently going on with the hosted ASM?

@robinrt: 2018-07-01 09:39:16
It was a temporary fault, it should have been corrected pretty quickly. Let me know if this is still happening for you.


Entry category

@yvonne_jones: 2018-06-29 09:17:15
can we make viewing this field restricted under user roles? We use this field to enter the pound the dog came from and we don't want this visible to all volunteers. Or is there another option, maybe having the pound name as a "person"? We need to be able to report the number of dogs rescued from the various pounds. Thanks :)

@robinrt: 2018-06-29 09:26:34
The pound should be a person. If you tick the "Transfer In" box on the entry category you can assign them in the "Transferred From" field. You can then deny some user roles access to view person records and they won't see it. There's no way to block specific users from seeing specific people though.

@yvonne_jones: 2018-06-29 09:49:34
Thank you, we're happy to restrict a role from viewing people generally so that should work fine.


Up for adoption issue.

@djsteven: 2018-06-28 17:07:19
Hi I changed some animals for adoption, but cannot see on the section Up for adoption. There is another step i'm missing?

@djsteven: 2018-06-28 17:12:38
[01](//muut.com/u/sheltermanager/s2/:sheltermanager:l5Qn:01.jpg.jpg)

@djsteven: 2018-06-28 17:12:49
[02](//muut.com/u/sheltermanager/s1/:sheltermanager:is91:02.jpg.jpg)

@candidhominid: 2018-06-29 04:22:39
The animals you circled are not altered. My first thought is that you probably have "Include unaltered animals" set to "No" under the Publishing Options section.

@djsteven: 2018-06-29 17:09:53
Thank you very much, that was the issue!


Incidents and citations

@tommycondrey: 2018-06-27 20:35:08
Is there anyway to modify the incident and citation numbers ?


Setting up Avid & Identibase registration

@gweeks: 2018-06-25 12:18:05
Hi, I am looking to use the automatic microchip registration function using Avid/Petrac & Identibase. I have enabled the Identibase option and entered our vet code, but on the Avid/Petrac I am not sure what the serial number is? We have registered for an online account so have an account username and password. Also how do I add a digital signature to the authorised persons file? Thanks, Gary

@robinrt: 2018-06-25 12:42:46
I'm afraid only AVID can issue the serial number to you and you'll have to contact them. The digital signature can be set by logging in as the authorised person, clicking on the user menu at the top right and choosing "Change User Settings". It works better with some kind of touch device!

@gweeks: 2018-06-25 13:49:08
Thanks for the info.

@gweeks: 2018-06-27 16:20:58
Hi, I have some follow up questions... We now have the required details and have set up the AVID automatic registration. Can I just check how the registrations are supposed to work with ASM? Am I correct in saying that any chips which which start with 977 will be registered with AVID and any chips which start with 9851/9861 will be automatically registered with Identibase? I assume that any animals we take in which have other type of chips have to be registered to their respective databases manually by ourselves. Now we have activated the automatic registration with AVID and Identibase I have seen we have a publisher error which shows animals that have been adopted previously which have AVID type chips are showing as - 'Microchip date cannot be blank, cannot process' Do we just need to put a date in and does it matter if we do not know the date of implant as these animals were already chipped prior to entry. Also these animals would have already been manually re gistered so will it cause confusion if they are trying to be registered again via ASM? Sorry for all the questions, just trying to get an understanding of how it all works Thanks Gary


Rabies Certificate

@lialang: 2018-06-22 16:13:10
I am unable to locate the rabies certificate template. I know I had one as I had set it up and all, but cannot find it now. Where can I get a new template from?

@robinrt: 2018-06-22 17:02:17
You can obtain the source from the code repository. Create a new rabiestemplate file under Settings->Document Templates, then paste the code from below into Tools->Source and save it. https://github.com/bobintetley/asm3/blob/master/src/media/templates/rabies_certificate.html

@lialang: 2018-06-22 18:56:52
I am unable to get the vet's name to print out using <<VaccinationAdminsteringVetNameRabies>>, or FirstName or LastName instead of just name?

@robinrt: 2018-06-23 11:05:58
<<VaccinationAdministeringVetNameRabies>> is the correct key. I noticed that you've spelled it "Adminstering" instead of "Administering" in the example above - if you have that in your template it won't work.

@lialang: 2018-06-27 15:06:48
<p><span style="font-family: arial, helvetica, sans-serif;"><span style="font-size: 12pt;">(Signature)   <<VaccinationAdminsteringVetNameRabies>></span ></span></p> is the code, and this below is the result: (Signature)    License Number:  VET009412 06/27/2018

@lialang: 2018-06-27 15:09:02
also trying to put organisation email address with <<OrganisationEmailAddress>> but nothing comes out.


cell phone log in

@ddchs38024: 2018-06-15 21:35:57
is anyone else having problems logging in with their cell phones? i have an iPhone 7plus and downloaded the app in the playstore. This afternoon, every time I try to log in i get an ASM error.

@robinrt: 2018-06-15 22:07:55
We're getting reports of SSL errors occuring for some users and this seems to be linked. I'm investigating and working on a fix now.


Health & Identification

@heyjay: 2018-06-13 15:19:49
Is there a way to set up a one time medical regimen of Spay or Neuter to automatically tick the "Altered" box in the Health & Identification section?

@robinrt: 2018-06-13 16:54:13
There isn't, no. Sorry.


Fobidden

@annabarnes: 2018-06-11 00:34:39
Good morning. all members of my rescue group are getting forbidden when making changes. I was wondering what that meant. Thank you

@robinrt: 2018-06-11 09:40:12
It means that they don't have permission to save that record. If it happens when saving animal records, they'll need the "Change Animal" permission for example.


Signature Features (WACOM STU-430)?

@supercatanddog: 2018-06-04 11:46:50
Hello, I want to know if the signature features will work with a WACOM STU-430. Info: https://www.wacom.com/en-tw/enterprise/business-solutions/hardware/signature-pads/stu-430 Hoping you can contact me soon as possible.

@robinrt: 2018-06-04 15:52:32
Sorry, we don't support hardware signature pads at present (they don't play nicely with web browsers). This is something we're looking into though as it's a popular request.


Repeat diary entries.

@1gkwc6: 2018-06-04 11:03:14
Would it be possible to give diary notes the option to be repeated? It would be very useful to have a diary of the due dates of when payments to our creditors are due. every month.

@robinrt: 2018-06-04 15:52:46
That's a good future suggestion, I'll put it on the development list.


subreport

@knafus: 2018-05-30 00:28:28
I have created subreports just fine. Recently the last two I created show up in the reports menu menu when the others do not. Why are these showing up when the others are not? They were created the same way. Please help. Thanks

@candidhominid: 2018-05-30 13:51:52
They don't appear in the menu when $PARENTKEY$ or $PARENTARGX$ are included in the SQL portion of the report. From the manual: $PARENTKEY$ - Substitutes the field value named in the report calling this subreport. For example, a report could pass an Animal ID as the parent key to a subreport for filtering data correctly. *When you use this key in your report SQL, ASM assumes that this report is a subreport and will not display it on the menu.* $PARENTARGX$ - Substitutes argument X passed to the subreport. For example, a subreport generated with {SUBREPORT.Myreport.ID.ShelterCode.AnimalName} could access the parent AnimalName field with $PARENTARG3$. *When you use this key in your report SQL, ASM assumes that this report is a subreport and will not display it on the menu.*

@knafus: 2018-05-30 17:28:50
Any way to pass a dummy variable that the subreport does not need? I am returning counts based on size groupings?

@candidhominid: 2018-05-30 17:43:12
You don't actually have to pass anything. You can just add $PARENTKEY$ somewhere in the SQL. Example: --- a.AnimalAge, a.HIDDENANIMALDETAILS, $PARENTKEY$ owner.OWNERNAME AS OName, --- But don't put a comma after $PARENTKEY$. That will cause an error because you are basically putting a comma after nothing.

@robinrt: 2018-05-30 17:53:42
If you put single quotes around the PARENTKEY token, it will always evaluate as a string but won't cause any issues with presence/non-presence, eg: a.HiddenAnimalDetails, '$PARENTKEY$', owner.OwnerName


Donor List and Thank you Letters

@sharondennis: 2018-05-27 23:04:47
Can we store our donor mailing list and send thank you letters with Shelter Manager?

@robinrt: 2018-05-28 08:49:53
Yes. If you install one of the donor mail merges under Settings->Reports->Browse sheltermanager.com (eg: "Donors who donated over an amount between two dates"). It will appear under the Mail menu at the top, you can then use its entry to send bulk emails, print mailing labels and write letters.


ASM40 Upgrade

@chrismad: 2018-05-27 03:56:10
I am attempting to upgrade to 40 from 39 and everytime I login syslog states "updating database to version 34021" but nothing seems to be updated. I looked in the configuration table and DatabaseVersion still has 2870 . Any suggestion on how I can get the database updated?

@chrismad: 2018-05-27 05:20:30
I found my issue was a lock on the database, I just restarted the database engine and it did the upgrade.


Production code

@inghamn: 2018-05-25 14:50:45
What version of the code are you running in production? Are you pushing changes to production from master branch as you commit? Do you wait to complete all the issues in the 41 milestone before pushing the new release changes to production?

@robinrt: 2018-05-25 16:44:14
No, our production pretty closely tracks the trunk. We do new development on feature branches and then merge with trunk. sheltermanager production is typically no more than a week behind trunk and most of the time upto date with it.


Change font color on report based on value

@knafus: 2018-05-25 04:31:47
How can you change the color of the font on a report based on the value a specific field is? For example, if the animal is on a special diet, we want to display that in yellow, if they are on a regular diet display that in black, etc. Thanks

@robinrt: 2018-05-25 10:06:37
There are many ways. Are you familiar with HTML, CSS and Javascript? The simple way is to just make a CSS class with that name. For example, if it's the dietname field that holds your diet, you could do something like this: <span class="diet-$DIETNAME">$DIETNAME</span> In the header of the report, have a style block that declares the different styles, eg: $$HEADER <style> .diet-Standard { color: black; } .diet-Special { color: yellow; } </style> HEADER$$ This assumes that your diets are called "Standard" and "Special". You could also use javascript in the BODY section, eg: $$BODY <script> if ('$DIETNAME' == "Standard") { document.write('<span style="color: black">Standard</span>'); } if ('$DIETNAME' == "Special") { document.write('<span style="color: yellow">Special</span>'); } </script> BODY$$

@knafus: 2018-05-30 01:21:41
I tried both but neither is working. Is there a report that uses scripting I can use/see as an example?

@candidhominid: 2018-05-30 13:55:00
If you post the SQL and HTML sections of your report I can show you why they aren't working.

@knafus: 2018-05-30 17:32:53
My field name is Food and values are Adult, Special, Puppy, Small Bites, etc. Once I get one working, I can add color for the others. <span class="food-$Food">$Food</span> $$HEADER <style> .food-Adult { color: black; } .food-Special { color: yellow; } </style> ......... <tr> <td width="16%">$Food</td>

@robinrt: 2018-05-30 17:55:18
In your example, the $Food token is not surrounded by a tag that is applying the class. Eg: <td width="16%" class="food-$Food">$Food</td>


Animal Medical Exam

@ivod: 2018-05-14 19:28:13
What is the best practice to log Animal Medical Examination. When is conducted, by which vet and what is done. This is relevant for shelter and non-shelter animals. Is it a TEST with type EXAM?

@robinrt: 2018-05-14 22:36:21
The usual approach is a one-off/single medical treatment, but there's no reason why you couldn't create a test type for that and log it as you suggested.


Animal control suspect animal list

@sharondennis: 2018-05-14 03:19:14
Is it possible to search and find a person and print a report that includes demographics and a list of their animals?

@robinrt: 2018-05-14 16:29:38
There's a "Print Person Record" report that includes person info with all movements. What do you mean by demographics?

@sharondennis: 2018-05-15 17:01:10
Address, phone #, etc.

@sharondennis: 2018-05-27 22:49:46
Found it! Thank you!


Filter call back

@lialang: 2018-05-14 02:06:22
I am trying to show only barn cats on my webpage but the following script is not working. <script> function asm3_adoptable_filer(a,index,arr) {return a.ANIMALTYPENAME == "B (Barn)"; } </script> <div id="asm3-adoptables" /> <script src="http://localhost:5000/service?method=animal_view_adoptable_js&account=XXXXX"></script>

@robinrt: 2018-05-14 16:28:52
your function name looks to be asm3-adoptable-FILER instead of FILTER (using - instead of underscore as it should be as the forum software turns it into emphasis)


Mail Setup

@jensfissenebert: 2018-05-13 11:14:38
Not being an IT expert I can't figure out how to configure the mail set up on a local installation. I believe it is done via sitedefs.py but cant figure out how. Can you maybe give an example?

@robinrt: 2018-05-13 15:00:56
Sure, there are some in the sitedefs.py file - it's the SMTP_SERVER value you need to set with info on your email server. Out of the box, the default is sendmail, so whatever mail server you have installed will be used: SMTP-SERVER = { "sendmail": False, "host": "mail.yourdomain.com", "port": 25, "username": "userifauth", "password": "passifauth", "usetls": False } SMTP-SERVER = { "sendmail": False, "host": "mail.yourdomain.com", "port": 25, "username": "", "password": "", "usetls": False } SMTP-SERVER = { "sendmail": True }

@jensfissenebert: 2018-05-13 16:33:24
Thank you Robin for your reply. I have have changed the sitedef as below but without success, any other idea? I am not sure which of the three smtp options I have to use.. # SMTP_SERVER = { "sendmail": False, "host": "mail.yourdomain.com", "port": 25, "username": "userifauth", "password": "passifauth", "usetls": False } # SMTP_SERVER = { "sendmail": False, "host": "mail.yourdomain.com", "port": 25, "username": "", "password": "", "usetls": False } SMTP_SERVER = { "sendmail": True, "host": "smtp.ourProvider", "port": 465, "username": "info@OurDomain", "password": "UserNamePassword" , "usetls": False } # SMTP_SERVER = { "sendmail": True } I also tried Port 25 without result. Removed the


Advanced find an animal

@srupe05: 2018-05-07 18:21:59
When using advanced find to locate a non-shelter animal, 0 results are being returned. Am searching by animal type (specifically for an animal that may have come through our public clinic, all of which have a designated non-shelter animal type.) Previously I have been able to receive results when searching the same way. Thank you for your help.

@robinrt: 2018-05-08 08:41:12
Hi, you need to enable "Include non-shelter animals" from the filter dropdown at the lower right of that screen.

@srupe05: 2018-05-08 14:48:27
I knew it had to be something simple. Thanks!

@srupe05: 2018-05-08 14:50:09
Side note - I am anxiously awaiting the completion of the vet clinic interface :)

@robinrt: 2018-05-08 15:13:38
it's coming! Just working on the invoicing portion of it today!

@srupe05: 2018-05-08 16:37:43
Side note #2 - a stray animal was able to be reunited with his owner thanks to the advanced search features. Thanks for the great program!

@ivod: 2018-05-14 18:53:50
Sorry for the offtopic, but what is included in this vet clinic interface and do you have expected release date?


Petfinder not posting

@cindiczyzakkaiser: 2018-05-02 18:25:14
Only one of our cats is posting to Petfinder. The publishing log is set to run automatically and there has never been an issue. I manually ran publishing and it still only shows one cat. Please explain in plain terms what needs to be done to get our cats on petfinder. I am not savvy with computer gibberish. Thanks.

@robinrt: 2018-05-02 18:37:08
If you go to Publishing->View Animals Matching Publishing Options, do you still see only the one cat? If so, it sounds like your cats are excluded from adoption. Go to shelter view and change the dropdown at the top right to "Status". It will separate your animals into adoptable and not adoptable. If you click on some of the non-adoptables to view their records it should tell you why they are not adoptable in the banner at the top right. Let me know what it says, we can then set the rules under Publishing->Set Publishing Options->Animal Selection to include them. For example, by default animals in a foster home aren't adoptable until you set "Include Fosters" to yes on that screen.


Crystal Report HELP!

@rsting69: 2018-05-01 14:15:30
Hello, I am new to Shelter Manager and trying to run some reports for our committee and I added a new field under ADD NEW ANIMAL module called "OWNER SURRENDER REASON" I want to create a report to total number of Owner Releases and reason they were owner surrendered based off of the data in the OWNER SURRENDER REASON Field. Thanks

@robinrt: 2018-05-01 17:48:03
https://sheltermanager.com/site/en_faq_asm3.html has info on using subqueries to access custom fields. I think you might have raised this as a support ticket too? It looks like you've created a new field instead of using entry category. If you can find a report that does what you want, but is based on entry category I could modify it to use your additional field.

@tmc210: 2019-07-15 02:24:31
Hi! Similar question. I added a yes/know in additional fields for Person-type. How do I set up the query in a report? Thank you for any help.

@robinrt: 2019-07-15 09:25:54
https://sheltermanager.com/site/en_faq_asm3.html the lower bit about checkbox/yesno fields.

@tmc210: 2019-07-15 19:13:40
I get a message saying subquery must return only one column LINE 18: (SELECT AnimalName, ^

@robinrt: 2019-07-15 20:19:36
Please post your full query - the error message is no use without the query!


Autopublish

@vsauder: 2018-04-30 21:01:56
I can't figure out how to set our system to autopublish. We were set up to upload animals to petfinder and register microchips every evening. We recently upgraded to ASM 40 and this removed the auto-publish options. What am I missing?

@robinrt: 2018-05-01 08:25:13
40 shouldn't have removed publishing options? Are they just disabled and need re-enabling under the publishing settings?

@vsauder: 2018-05-01 18:23:37
It looks like everything transferred fine. When we hit the publish button, everything goes through. Previously we had it set up to publish every evening automatically. This is the portion that is not working.

@robinrt: 2018-05-01 18:32:12
You'll need to make sure that the cron.py script is being called each night to run the batch. By default, the package installs a file in /etc/cron.d/sheltermanager3 - make sure that's configured correctly to run.

@sibow: 2018-05-02 15:18:30
This script is being called every night, but I do not see in the code that petfinder ftp upload script is being called. The code in cron.py mention that if it is not html is handled separately and I do not see any part in the cron.py that the other publisher scripts are being called. We can run the petfinder publish from the interface but not from cron.py any help

@robinrt: 2018-05-02 17:10:34
When you call cron.py you can pass a parameter for what you'd like it to do. The default is "daily". If you call it a second time from cron, you can pass "publish_3pty" to run all 3rd party publishers including petfinder.

@inghamn: 2018-05-02 18:33:21
We are running it using the cron script installed using Ansible https://github.com/bobintetley/asm3/blob/master/scripts/ansible/templates/cron.sh I can confirm the cron script is running every day. It's creating backups and writing to the log file. Does the 'daily' parameter not cover publishing? Do we need to run cron.py twice every day? Once with 'daily' and then once with 'publish_3pty'?

@inghamn: 2018-05-03 14:09:11
Running cron.py twice with different flags looks like it did the trick. I should look through all the rest of the arguments for cron.py. Should we be doing more of those every night?


ASM3.40 Install On Ubuntu 16.04.9 AWS t2.medium/Apache

@tgage: 2018-04-26 19:06:30
I have painstakingly followed the installation instruction contained within the README file, but cannot seem to produce a working installation. I am able to create the database then login with the default user/password. If I then try to do anything (Options/Add System User/etc.), something breaks. Once broken, I am not longer able to login as the default user or access the ASM home page. If I then drop all tables in the database and recreate the database, I can once again login until I try to do something. I tried 3.41 from GIT, but all I get is a server error; I cannot even initialize the database. Installation was done using dpkg -i with the 3.40 .deb file. Thanks for any help/ideas.

@inghamn: 2018-04-26 19:21:26
If you're familiar with Ansible, you might try the Ansible scripts. They do not put things in quite the same place as the DEB package. Even if you don't run the Ansible scripts, it's worth looking at. It's what we've used, here in Bloomington, Indiana to provision virtual machines with ASM.

@robinrt: 2018-04-27 08:20:06
It's hard to diagnose without any error messages. Do you see anything in /var/log/syslog - ASM outputs info and error messages there with more info in /var/log/debug It sounds like your issue might be due to session management. If you're using Apache and mod_wsgi, it will start multiple processes. That means every time you get a different process you have to login again as each has its own session manager. To use a shared session manager, install memcached and set MEMCACHED-SERVER to 127.0.0.1:11211 in sitedefs.py

@tgage: 2018-04-30 05:45:45
Removed tables from database, ran asm/database to create database, then logged in and save an option. Page now displays 404 when I go to https://domain.com/asm. Syslog below: Apr 30 04:38:24 ip-172-31-53-254 CRITICAL shelte... Database.execute (1146, "Table 'sheltermanager.animal' doesn't exist") File "/usr/lib/sheltermanager3/dbms/base.py", line 271, in execute#012 s.execute(sql) File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 226, in execute#012 self.errorhandler(self, exc, value) File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler#012 raise errorvalue ProgrammingError: (1146, "Table 'sheltermanager.animal' doesn't exist") Apr 30 04:38:24 ip-172-31-53-254 CRITICAL shelte... Database.execute failing sql: select count(*) from animal Apr 30 04:38:28 ip-172-31-53-254 INFO shelte... dbupdate.install_default_data creating default database schema Apr 30 04:38:33 ip-172-31-53-254 INFO shelte... dbupdate.install_default_data creating default data Apr 30 04:38:35 ip-172-31-53-2 54 INFO shelte... dbupdate.install_default_media creating default media Apr 30 04:38:35 ip-172-31-53-254 INFO shelte... dbupdate.install_default_onlin... creating default online forms Apr 30 04:38:38 ip-172-31-53-254 CRITICAL shelte... Database.execute (1406, "Data too long for column 'Label' at row 1") File "/usr/lib/sheltermanager3/dbms/base.py", line 271, in execute#012 s.execute(sql) File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 226, in execute#012 self.errorhandler(self, exc, value) File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler#012 raise errorvalue DataError: (1406, "Data too long for column 'Label' at row 1") Apr 30 04:38:38 ip-172-31-53-254 CRITICAL shelte... Database.execute failing sql: INSERT INTO onlineformfield (ID, OnlineFormID, FieldName, FieldType, Label, DisplayIndex, Mandatory, Lookups, Tooltip) VALUES (359, 11, 'contractagreement', 3, 'I have read the foregoing and certify that the answers I have given are complete, true and not misleading in any way. I am authorizing you to contact landlords, associations and veterinarians. You are also aware that we cannot guarantee the health and temperament of the animal.', 890, 0, 'Yes|No', ''); Apr 30 04:38:38 ip-172-31-53-254 CRITICAL shelte... dbupdate.install_default_onlin... error importing form: (1406, "Data too long for column 'Label' at row 1") Apr 30 04:38:50 ip-172-31-53-254 INFO shelte... users.web_login user successfully authenticated from 71.15.31.10 Apr 30 04:38:50 ip-172-31-53-254 INFO shelte... users.login user logged in Apr 30 04:39:01 ip-172-31-53-254 CRON[24287]: (root) CMD ( [ -x /usr/lib/php/sessionclean ] && /usr/lib/php/sessionclean) Apr 30 04:39:02 ip-172-31-53-254 INFO shelte... users.web_login user successfully authenticated from 71.15.31.10 Apr 30 04:39:02 ip-172-31-53-254 INFO shelte... users.login user logged in Apr 30 04:40:54 ip-172-31-53-254 INFO shelte... users.web_login user successfully authenticated from 71.15.31.10 Apr 30 04:40:54 ip-172-31-53-254 INFO shelte... users.login user logged in Apr 30 04:41:05 ip-172-31-53-254 INFO shelte... users.web_login user successfully authenticated from 71.15.31.10 Apr 30 04:41:05 ip-172-31-53-254 INFO shelte... users.login user logged in

@tgage: 2018-04-30 05:46:58
@inghamn If I can't get the .deb package to work (fixed), then I will try the Ansible script. Thx

@tgage: 2018-06-03 19:07:25
bump. I am now testing with a hosted version of Shelter Manager, but would really like to have direct access to the database. Sadly it seems that the open source version doesn't want to function. The CSV import functionality doesn't grant access to all animal detail fields (although the ability to add custom fields is nifty).

@tgage: 2018-06-21 18:12:35
I find it hard to believe that I am the only one that cannot get a clean install of Shelter Manager 3.40 (or 3.41u) to operate once installed on a clean Ubuntu 16.04.4 LTS / Apache 2.4.18 / MySQL 14.14 Distrib 5.7.22 / PHP 7.0.30-0ubuntu0.16.04.1. The first obvious issue that I see is that every screen that I go to requires that I login. It seems as though the PHP session is being ignored. I have tried with cookies set to secure/not secure (I am using HTTPS). Another weird behavior is that the software seems to be brain damaged when saving settings, users, etc. Take a look at what happens when I try to add a new superuser with a real password (NOT letmein; the password contains only letters and numbers not special characters that might confuse MySQL). ANY HELP WOULD BE APPRECIATED. [Sm](//muut.com/u/sheltermanager/s3/:sheltermanager:IAk9:sm.png.jpg)

@tgage: 2018-06-21 18:52:26
*Initial login* to https://sheltermanager.secondchancenc.org/asm/main: _(Session ID set to 6e97b42d90364c9c7e28e498d09525878b122dd3')_: --- Jun 21 17:48:21 ip-172-31-53-254 DEBUG MemCacheStore.__contains__ contains(04acd0a56582c55f7ea1a42921c475f61ca3cf26)=False Jun 21 17:48:21 ip-172-31-53-254 DEBUG MemCacheStore.__contains__ contains(6e97b42d90364c9c7e28e498d09525878b122dd3)=False Jun 21 17:48:21 ip-172-31-53-254 DEBUG MemCacheStore.__setitem__ setitem(6e97b42d90364c9c7e28e498d09525878b122dd3, {'searches': [], 'locationfilter': None, 'dbo': None, 'locale': None, 'ip': u'98.121.16.206', 'session_id': '6e97b42d90364c9c7e28e498d09525878b122dd3', 'siteid': None, 'user': None})=None Jun 21 17:48:21 ip-172-31-53-254 DEBUG MemCacheStore.__contains__ contains(6e97b42d90364c9c7e28e498d09525878b122dd3)=True Jun 21 17:48:21 ip-172-31-53-254 DEBUG MemCacheStore.__getitem__ getitem(6e97b42d90364c9c7e28e498d09525878b122dd3)={'searches': [], 'locationfilter': None, 'dbo': None, 'locale': None, 'ip': u'98.121.16.206', 'session_id': '6e97b42d90364c9c7e28e498d09525 878b122dd3', 'siteid': None, 'user': None} Jun 21 17:48:21 ip-172-31-53-254 DEBUG MemCacheStore.__setitem__ setitem(6e97b42d90364c9c7e28e498d09525878b122dd3, {'searches': [], 'locationfilter': None, 'dbo': None, 'locale': None, 'ip': u'98.121.16.206', 'session_id': '6e97b42d90364c9c7e28e498d09525878b122dd3', 'siteid': None, 'user': None})=None Jun 21 17:48:21 ip-172-31-53-254 DEBUG MemCacheStore.__contains__ contains(6e97b42d90364c9c7e28e498d09525878b122dd3)=True Jun 21 17:48:21 ip-172-31-53-254 DEBUG MemCacheStore.__getitem__ getitem(6e97b42d90364c9c7e28e498d09525878b122dd3)={'searches': [], 'locationfilter': None, 'dbo': None, 'locale': None, 'ip': u'98.121.16.206', 'session_id': '6e97b42d90364c9c7e28e498d09525878b122dd3', 'siteid': None, 'user': None} Jun 21 17:48:21 ip-172-31-53-254 DEBUG MemCacheStore.__setitem__ setitem(6e97b42d90364c9c7e28e498d09525878b122dd3, {'searches': [], 'locationfilter': None, 'dbo': None, 'locale': None, 'ip': u'98.121.16.206', 'session_id': '6e97b42d90364c9c7e28e498d09525878b122dd3', 'siteid': None, 'user': None})=None Jun 21 17:48:25 ip-172-31-53-254 INFO asm users.web_login user successfully authenticated from 98.121.16.206 Jun 21 17:48:25 ip-172-31-53-254 INFO asm users.login user logged in Jun 21 17:48:25 ip-172-31-53-254 CRITICAL asm configuration.asm_news Failed reading ASM news: <class 'requests.exceptions.SSLError'> Jun 21 17:48:25 ip-172-31-53-254 DEBUG asm code.main main for 'user', 0 diary notes, 0 messages Jun 21 17:48:25 ip-172-31-53-254 DEBUG MemCacheStore.__contains__ contains(988d2d1d1f921c4cda34f393817cde24b30b00a7)=False Jun 21 17:48:25 ip-172-31-53-254 DEBUG MemCacheStore.__contains__ contains(474272dc9f914ec80407a723910747726e0718c7)=False Jun 21 17:48:25 ip-172-31-53-254 DEBUG MemCacheStore.__setitem__ setitem(474272dc9f914ec80407a723910747726e0718c7, {'searches': [], 'locationfilter': None, 'dbo': None, 'locale': None, 'ip': u'98.121.16.206', 'session_id': '474272dc9f914ec80407a723910747726e0718c7', 'siteid': None, 'user': None})=None ---

@tgage: 2018-06-21 18:55:23
*After clicking (Calendar view)* https://sheltermanager.secondchancenc.org/asm/login?target=calendarview _(Note that login is still in the URL even though I have already logged in)_ --- Jun 21 17:54:38 ip-172-31-53-254 INFO asm users.web_login user successfully authenticated from 98.121.16.206 Jun 21 17:54:38 ip-172-31-53-254 INFO asm users.login user logged in Jun 21 17:54:39 ip-172-31-53-254 DEBUG asm code.calendarview calendarview found 0 events (2018-05-28 00:00:00->2018-07-09 00:00:00) ---

@tgage: 2018-06-21 19:12:27
If I try to add a user, the system flakes out. It imbeds HTML in the user table and causes a JQuery error on any subsequent attempts to access ASM. Clearing all ASM DB tables and rebuilding them clears the JQuery issue, but the core issue remains. --- main menu_html: function(): --- *Uncaught ReferenceError: js?v=header.js&k=06211613:211 asm is not defined* See JQuery error: [Sm_jserror](//muut.com/u/sheltermanager/s1/:sheltermanager:08C4:sm_jserror.png.jpg) Note: examining the users table in the database shows that the new user has not been added.

@robinrt: 2018-06-22 10:35:21
It looks like you're getting a new session id with each page transition. Do you have a cookie path set on your session cookie that doesn't match the path the app is being accessed from maybe? If the asm javascript object is not defined, that points at a possible config issue. After logging in and visiting /main, do a view source and have a look at the contents of config.js where the asm object is defined. sitedefs.py holds the values that are fed to config.js

@tgage: 2018-06-22 15:01:20
Very odd: while attempting to troubleshoot the problem I had to turn off HSTS in order to utilize an HTTPS debugging proxy. Removing HSTS seems to have resolved the issues that I was seeing. (Note: I did not change anything in the sitedefs.py file). I have tested with 3.40 and 3.41u. --- /etc/apache2/sites-available/default-ssl.conf: <IfModule mod_headers.c> # HSTS #Header always set Strict-Transport-Security "max-age=63072000" Header always set Strict-Transport-Security "max-age=0; includeSubDomains" </IfModule> --- Further, even though I am using HTTPS to connect to the server, if I enable secure cookies I receive a server error when trying to connect to ASM. --- sitedefs.py: SESSION_SECURE_COOKIE = True --- --- /var/log/apache2/error.log: [Fri Jun 22 13:48:15.301430 2018] [wsgi:error] [pid 1668] [client 71.15.31.10:53313] ImportError: cannot import name get_locales [Fri Jun 22 13:48:43.178496 2018] [wsgi:error] [pid 1647] /usr/lib/sheltermanager3/dbms/base.py:518: Warn ing: Incorrect datetime value: ''2018-06-01 00:00:00'' for column 'DateBroughtIn' at row 1 [Fri Jun 22 13:48:43.178517 2018] [wsgi:error] [pid 1647] s.execute(sql, params) --- @robinrt - I can grant access to this server as it is a staging machine.

@robinrt: 2018-06-22 17:04:09
Both are just browser hints? HSTS just forces the browser to use HTTPS for communication and the secure flag is set on the cookie itself to tell the browser to only pass the cookie when communicating over HTTPS. I'm not sure why disabling HSTS fixes the problem for you unless there's something wrong with your SSL setup. I've also seen similar weird bugs caused by the use of systemd private-tmp folders with Apache, which you might also want to check out.

@hlsiira: 2018-08-28 00:24:03
Did you ever get it to work? I had a similar issue trying to install it on Debian Stretch under Apache, but after playing with it, I got it to work. I don't remember which thing fixed it, but I kept notes of everything I did to my install to get it to function, so here are my notes: When creating the database use: CREATE DATABASE asm CHARACTER SET utf8 COLLATE utf8_general_ci; Open /usr/lib/sheltermanager3/code.py Find the line that looks like: web.header(“X-Frame-Options”, “SAMEORIGIN”) Comment it out, when looking for it, I searched for SAMEORIGIN, and used the second one that was found. Restart ShelterManager Install MEMCACHED to prevent having to log in every page refresh. I also did some weird changes to the django set up, but I don't think that was related to the issue.


Setup Help Ubuntu16.04 Shelter Manager

@rigel4: 2018-04-25 15:21:08

@robinrt: 2018-04-25 15:27:22
Do you have a question? You can use the DEB package with Ubuntu and the docs are in /usr/share/docs/sheltermanager3/README (or see github)

@rigel4: 2018-04-25 15:34:43
sorry i didnt mean to post that as is.. I have installed on ubuntu 16.04 but cannot find the application after install. if its webbrowser login.. then whats the default URL as http://localhost doesnt work. Any help greatly appreciated

@robinrt: 2018-04-25 15:41:20
it's localhost:5000 once you have the service running and have created a DB. Did you follow the instructions in the README?


Cannot open my download

@sarc: 2018-04-25 15:01:51
Hi, PLEASE help. I am no ITech fundi and has just downloaded the ASM free program but cannot open it to use it. It asks me to extract my files and once done then I cant use the program!

@robinrt: 2018-04-25 15:28:22
it sounds like you're expecting a desktop application and have downloaded a source tarball. You can get the older desktop software installer here: https://sheltermanager.com/site/en_oss_asm2.html


Auto export CSV

@hlsiira: 2018-04-19 14:19:15
Is there a way to have ASM auto export a CSV file? I use the CSV file of all the animals in a script that I'd like to have updated weekly. Is there a way to have ASM create a CSV everyweek and save it on the host somewhere? Similar to an auto backup

@robinrt: 2018-04-20 08:54:18
Yes, you could have a weekly cron job that calls cron.py with a parameter of maint-db-dump-animalcsv It outputs to stdout, so you'll need to redirect it somewhere. Eg: python cron.py maint-db-dump-animalcsv > /tmp/animalsweekly.csv Note that the dashes - should be underscores due to this forum software using them as an emphasis toggle.

@hlsiira: 2018-04-20 20:22:39
Thank you


Financial-Accounts

@1gkwc6: 2018-04-17 14:36:16
It there a way of printing or exporting a single Account?

@robinrt: 2018-04-20 08:56:58
It depends what you're after. There's nothing to stop you entering an account and hitting print in the browser (ASM will hide the toolbars and things from your printer). You could export the income and expenditure report to CSV and chop out the bits you don't want, or modify it to choose just the account you do want.

@1gkwc6: 2018-04-20 10:32:39
Thank you. Printing from the browser will do the job.


Can't seem to create database

@hlsiira: 2018-04-15 22:01:23
I'm trying to install the ASM3, and have connected to the host, but the create data base keeps giving me an error. [Error](//muut.com/u/sheltermanager/s3/:sheltermanager:qQwG:error.png.jpg) I've tried several times dropping the database, even renaming it, but I'm not sure what else to do. I'm installing it on a linux system, using SSH into the server. Any advice or pointers on where to look would be appreciated.

@robinrt: 2018-04-15 22:05:14
It's the collation on your MySQL database, it's causing issues when creating indexes. Use utf8_general_ci when creating your database like this: CREATE DATABASE asm CHARACTER SET utf8 COLLATE utf8-general-ci; Note that it should be underscores between uf8, general and ci but I can't use them because it's the emphasis character in this forum software and there seems to be no way to escape it.

@hlsiira: 2018-04-15 22:22:52
Well gorsh darnet. You actually beat me to it, as soon as I posted, I found the answer and now it's working perfectly. Thank you, I've heard you guys have great support, but a 5 minute turn around is pretty amazing.


Multiple drivers

@1gkwc6: 2018-04-11 13:30:00
We do regular long distance journeys between Spain, Holland, UK and Germany. We always have two drivers for these trips. Is there anyway we can add a second driver to the Transport Book screen?

@robinrt: 2018-04-11 13:53:38
Sorry, there isn't at the moment.


Limited Access

@rinsrig: 2018-04-11 00:56:13
I have an Officer who has a family member involved in an incident, is there anyway that I can lock the Officer out of the call so that it prevents them from being able to access the information?

@robinrt: 2018-04-11 09:19:47
There is - you can set one or more "View Roles" on an incident. Set a view role on that incident and make sure your officers who you do want to access that incident have it and the one that you don't, doesn't. You can add roles under Settings->Roles, and assign them to users under Settings->Edit System Users

@rinsrig: 2018-04-14 04:41:20
Robin, I went through the process like you stated above, all persons have access to view investigations whether they have been granted to them or not.

@robinrt: 2018-04-14 08:46:56
Are your users all super users? Super users always have access to everything and it overrides the roles.

@rinsrig: 2018-04-14 14:07:24
No

@rinsrig: 2018-04-14 14:10:27
No, none of the other staff are superusers, I tested with a low access and they were still able to access the investigation files. I double checked to make certain that no others could view investigations, however, everyone is still able to access all investigation files.

@robinrt: 2018-04-14 15:11:04
thanks, I'm going to raise this as a bug now and try to reproduce it in dev. It's odd though, I'm sure there are a couple of shelters who rely on it. Do you have a self hosted install or are you on sheltermanager.com? If it's sheltermanager.com could you let me know your organisation name and the incident and user who shouldn't be able to see it so I can take a look?

@rinsrig: 2018-04-14 15:25:42
what email would you like me to send the information to?

@rinsrig: 2018-04-14 22:13:27
Sent info under customer support ticket

@robinrt: 2018-04-15 10:02:25
Hi, I've not seen it arrive at this end. Did you send an email to us at support@sheltermanager.com or did you use the support form on the website?

@robinrt: 2018-04-15 10:04:26
I can see it in the server logs, for some reason Google are not putting through support tickets. I've got the info now, I'll reply to you directly by email.


Animal vs Person Logs

@julier: 2018-04-02 06:50:08
In defining User Roles, I have some users for whom I would like to be able to access Logs for animals, but not people; and then I have other users for whom I would like to be able to access Logs for people, but not animals. It looks as if that's not possible??

@robinrt: 2018-04-02 08:31:28
Sorry, it isn't. Denying a role access to view person records would stop it seeing person logs if that helps? Could I ask what the use case/reasoning behind it is?


Medical Logs

@julier: 2018-04-02 05:29:43
Has consideration ever been given to having a separate Log feature within the Medical Tab? We have created various medical related logs within the Log tab, but it would be useful to (1) keep all of the medical related info on an animal in one place, (2) make it easier for the vet/s to find and follow medical notes (sorting by Log Type helps, but is still cumbersome as we have multiple types of medical logs that get mixed in with every other type log when trying to follow chronologically), (3) allow for restricting access, and (4) be able to print medical-related notes/logs along with the other medical information for an animal.

@robinrt: 2018-04-02 08:29:59
I think we have looked at this before and there is an issue on the backlog. Rather than injecting logs into the medical tab though, we were considering having given treatments written into the log so that the log became that one place to see everything.

@daveplummer: 2019-01-30 13:12:08
Hi, We could do with something like this too. At present we record medical notes in the Health & Identification section of the animal record and the log but neither show up in the Medical Report, which is where we really need them to be.


Import CSV movements not working?

@mketcham: 2018-03-30 02:34:02
I'm trying to import data from a previous year. I have used the headings that the manual gives for MOVEMENTTYPE and MOVEMENTDATE. For some reason my movements are not importing. Any idea what I'm doing wrong?

@robinrt: 2018-03-30 08:36:25
do you have ANIMAL and PERSON data on the same line? Both are required for movements.

@mketcham: 2018-03-31 21:38:18
I don't have person data. That must be it. Thanks.


Change of Pet Owner

@kitten_division: 2018-03-27 21:40:12
Is there any way to show a transfer of ownership of a pet adopted from us without showing it as a return and adopted again? The issue is an animal that was adopted from us at 10 weeks of age, state law mandates that if the animal is in our care and is 12 weeks old, that we have to provide a rabies vaccination. Since the animal was only 10 weeks old at time of adoption, there was no rabies vaccination done. The original adopter has now given the animal away to someone else. We would like to update our records to show the new owner, however in order to do that I have to show it as a return, then an adoption. It was not a return to us and then subsequent adoption, the animal is now over 12 weeks old so by showing a new owner, we are in direct violation of the law by not having the animal vaccinated for rabies.

@robinrt: 2018-03-28 09:13:58
Sorry, there isn't right now. This is something we know about and is on our current development milestone. It's not quite as easy as it first appears as many reports will be affected. The best you can do to workaround it at the moment is a leave a prominent note in the hidden animal comments so you at least know when you open the file what's happened.


Tracking logins

@adoptamutt: 2018-03-27 18:17:49
Is there a way to track logins of users? For example: last date / time of login of each user?

@robinrt: 2018-03-27 18:23:50
They're in the audit log. If you don't have it, install the report "Audit Trail: All Changes by Date" from Settings->Reports->Browse sheltermanager.com. It installs to Reports->Auditing. It tracks logout too if they logged out.


Any Bird Rescue Using AMS?

@exoticbirdrescue: 2018-03-26 14:58:50
We are looking at starting up with AMS and wanted to reach out to see if there are any bird rescue non profits who use AMS. We would like to contact you to find out how you modified the program to best use for birds. We are so excited to have stumbled upon this opportunity as our IT guy was looking at building a program for us. Thank you kindly!

@robinrt: 2018-03-26 15:02:10
Hi, I can't speak for them but we do definitely have a couple of bird only rescue customers. If you email us at info@sheltermanager.com I'll put you in touch.


Update Species Types

@exoticbirdrescue: 2018-03-25 15:41:29
We are an avian rescue group that want to know if we would have the ability to update the drop down lists to accommodate the species of bird, For instance Cockatoo and the type could be Umbrella, Goffins, Sulfur Crested, etc There are many different bird combos and it would be so important to differentiate like it would with dog and cat breeds.

@robinrt: 2018-03-25 15:42:21
Settings->Lookup Data - you can customise everything. Use the dropdown at the top right of that screen.


Permission for customer signature

@amills11: 2018-03-24 01:32:04
We started doing paperless adoptions using tablets. What box needs to be checked to give a user role the ability to have a customer sign on the screen?

@robinrt: 2018-03-24 08:25:41
"Change Media" is need for sign on screen.


microchip registered flag?

@lialang: 2018-03-23 14:44:04
Is there anyway in ASM that shows when the microchip was registered?

@candidhominid: 2018-03-23 14:57:41
Yes, look under the Publishing History slider of the Animal tab.

@lialang: 2018-03-25 00:54:34
thank you


putting links in SM generated emails

@lialang: 2018-03-21 12:05:00
I tried to put a picture and a logo in an email we sent out to our donors: /document_repository/ekittens.jpg image?db=zt1590&mode=dbfs&id=/reports/logo.jpg but neither of them came out in the email. What am I doing wrong?

@robinrt: 2018-03-22 10:24:25
Those links are internal ones within ASM - you have to be logged into ASM for them to work. You can use the extra-image service call to get your logo, but there's no way to retrieve docs from the repository from outside a logged in ASM. See here for info on the service API and calling extra_image: https://sheltermanager.com/repo/asm3_help/service.html#extra-image


#'s for state report

@catlovercindi: 2018-03-21 01:13:09
I have to do a report for the State. Is there a way to get a total umber for the year of intakes under six months, over six months, returned to owner and shelter animals euthanized. I only need the total number for each category

@robinrt: 2018-03-21 10:12:43
Yes. The report "Annual Figures" shows totals for those values and its default cutoff for puppies and kittens is under/over 6 months. You can install it from Settings->Reports->Browse sheltermanager.com

@catlovercindi: 2018-03-24 00:39:14
I need more help - I have no idea what I am supposed to input and get the report. Please help.


Reports Question

@sjras: 2018-03-20 20:11:23
We need provide (on a monthly basis) a list of animals picked up from each municipality. We are using the "picked up" check box along with the "location" for each different municipality. I just went into the reports to generate one, and every report I'm seeing that includes "by location" is actually using the internal location at the shelter (dog kennel/cattery/office) and not the incoming location . Is there a way to have this added to the reports list? I have NO knowledge of SQL and though I'm trying to get into it I just haven't had the chance. We're unable to use the "by jurisdiction" reports because we have a few ACOs that do multiple cities, so that throws off the report by jurisdiction. Any other ways to do that I may have missed other than building a new report?

@robinrt: 2018-03-21 10:08:45
There are existing reports for this - try "Intakes by Pickup Location with Outcomes" and "Pickup Location Figures". You can install new reports under Settings->Reports->Browse sheltermanager.com

@sjras: 2018-03-23 16:55:23
Aha! After my initial install of reports available I completely forgot there were a ton more out there that I hadn't installed! Thanks so much for reminding me! I'll remember it now. (those reports are EXACTLY what we needed!)


Report by Size or Weight

@rpoling: 2018-03-19 23:47:37
Has anyone been able to create a report of dog intakes by size (small, medium, large) or by weight?

@robinrt: 2018-03-21 10:11:26
I don't think there's a report that does that, but you can certainly add those values to the animal find results screen (Settings->Options->Find Animal/Person) and then use the advanced find animal page to find animals by intake date and then click on those column headings to sort them. Adding a report to do that would be pretty easy. The "Shelter Inventory with Pictures" report includes the size and it would be pretty easy to change the sort and add a grouping for size if needed.


Sever down

@herreraandres360: 2018-03-19 16:36:18
Hello all, I would appreciate some help. The link below is not working today. It has worked for months. Am I doing something wrong. http://service.sheltermanager.com/?method=animal_view_adoptable_js&account=zs1297 Thank you Andres

@robinrt: 2018-03-19 16:52:54
It's invalid. It should be: https://service.sheltermanager.com/asmservice?method=animal_view_adoptable_js&account=zs1297

@herreraandres360: 2018-03-19 16:58:58
Thank you! Was something changed? That link I had was working.

@robinrt: 2018-03-19 17:11:23
We added the new service.sheltermanager.com pattern recently, the old one was sheltermanager.com/asm/service or sheltermanager.com/service/asmservice - all of those should still work. The one you pasted would never have worked?

@herreraandres360: 2018-03-19 17:45:47
ya my original post i grabbed the wrong url. This is what i should have posted: http://us8.sheltermanager.com/service?method=animal_view_adoptable_js&account=zs1297 I understand my problem now. Thank you for the quick reply and straightening me out. Thanks!


VetEnvoy microchip registration setup page

@lialang: 2018-03-16 17:41:29
Can someone send me a printout/screenshot of what the VetEnvoy microchip registration setup page looks like when you are setup for HomeAgain microchip registration?

@adoptamutt: 2018-03-19 00:16:28
Mine is just Userid, password, and ‘Yes’. Is that was you mean?

@lialang: 2018-03-19 13:52:11
where do you setup when the microchip is registered, ie upon adoption?

@robinrt: 2018-03-19 13:57:31
That's under Publishing->Set Publishing Options->All Publishers->Register microchips after ...

@lialang: 2018-03-19 13:59:32
thank you


Automatically including animal name in Adoption Application form

@paullawleyjones: 2018-03-16 12:11:11
I'm trying to edit the `animalview` HTML template so that it includes a link to the online adoption application form and automatically puts the animal's name into the `reserveanimalname` field. So far, I've got... --- <script type="text/javascript"> { document.write("<h3><a target=\"_blank\" href=\"http://domain.tld/asm/service?method=online_form_html&formid=11&reserveanimalname=$$AnimalName$$\">Click here to adopt $$AnimalName$$</a></h3>"); } </script> --- ...and I'm stuck. This is as far as my scripting/programming ability goes. The link displays the animal's name, but when I click it the name is not in the form field. Any help is appreciated.

@robinrt: 2018-03-16 12:28:18
It should be reserveanimalname=$$AnimalName$$::$$ShelterCode$$ It may also break if you use =, ? or & in your animal names so watch out for that.

@paullawleyjones: 2018-03-16 13:11:52
That did not work.

@paullawleyjones: 2018-03-16 13:17:31
The form field type is `Adoptable Animal`. Perhaps it should be something different?

@robinrt: 2018-03-16 13:23:03
That is the format for adoptable animal. I just tested it on a local form and it seems to be working OK for me. Is there a reason you're putting it in a document.write? There's no logic I can see in there so you could just embed the tags in the template and leave out the script and document.write bit altogether to simplify things.

@paullawleyjones: 2018-03-16 13:38:16
> Is there a reason you're putting it in a document.write? Yeah. Because I don't really know what I'm doing as regards scripting. Programming is really not my thing. I now only have... --- <a href="http://domain.tld/asm/service?method=online_form_html&formid=11&reserveanimalname=$$AnimalName$$::$$ShelterCode$$">Click here to adopt $$AnimalName$$</a> --- It shows with the animal's name and shelter code in the browser address bar, but does not complete the form.

@robinrt: 2018-03-16 13:58:27
You've managed formatting and blockquotes in this forum software, so that's better than me. Is there any chance you can share the URL to the actual form so I can take a look?

@paullawleyjones: 2018-03-16 23:30:57
--- http://cams.careanimalrights.org/asm/service?method=online_form_html&formid=11 ---

@robinrt: 2018-03-17 08:03:01
Ah, I can see the problem now. Setting a default value for the adoptable type from parameters is only in the latest sheltermanager. If you look at the code being pulled in to your page from onlineform-extra, it's only considering lookups: http://cams.careanimalrights.org/asm/js?v=onlineform_extra.js&k=02021249 You could fix it to include adoptable animals by replacing your file static/js/onlineform-extra.js with the latest version from github: https://github.com/bobintetley/asm3/blob/master/src/static/js/onlineform_extra.js Note that it's an underscore between onlineform and extra - this ridiculous forum software uses it to indicate italics and I've yet to find a way to turn that off.

@paullawleyjones: 2018-03-18 00:44:33
Success! Thanks again.


Upgrade ASM 40

@jbe38342: 2018-03-16 10:33:37
Hello Robin, for over a year I tourve with the 40u version. I would like to migrate to the final verison. Could you help me by explaining how to do this update. thank you

@robinrt: 2018-03-19 13:58:25
Should be the same as any of the others - unpack the source tarball over your last version and set all local settings such as database location, etc. in sitedefs.py


Does anyone use donor management software that integrates with ASM? I'm with a

@pzappen: 2018-03-14 22:31:15
medium sized shelter in Wisconsin.


servers down USA

@ddchs38024: 2018-03-14 15:20:18
The server that covers Dyersburg, TN 38024 USA.

@ddchs38024: 2018-03-14 15:21:31
double checked error and its us8

@ddchs38024: 2018-03-14 15:22:12
its back sorry to bother

@robinrt: 2018-03-16 18:40:04
For info, us8 has been upgraded to a new server us08. It's now 4 times more powerful and based on US soil - you should hopefully notice an improvement in service.


Wrong shelters data

@yvonne_jones: 2018-03-14 06:38:21
When we log on to SM we get the data from different shelters!

@fbrc: 2018-03-14 06:43:22
We are getting this too. Either getting the wrong user when logged in, or worse the wrong user and wrong shelter! Major issues and possibility for breach of data protection too.

@robinrt: 2018-03-14 11:18:49
Hi, the issue was with our cache provider. Thankfully, you were never logged into anyone else's account but could see some pages that had been wrongly cached. They made a change that they had no permission or right to and they've had a flea in their ears today. Many apologies for any inconvenience caused, the problem should have been fixed as of 8am UTC.


Settings button

@sharondennis: 2018-03-14 02:53:17
Our Shelter Manager does not have the settings button next to the reports button. Suggestions please.

@robinrt: 2018-03-14 11:19:17
If it isn't there, your user account doesn't have permission to view the settings menu.


Invoicing

@1gkwc6: 2018-03-08 19:00:44
One of our homing partners can take up to 20 animals. Is it possible to create a multi line invoice , similar to the Large Invoice template, but rather than have Description = PaymentType, to have Description = the animal in the Payment?

@robinrt: 2018-03-08 19:03:46
It's not possible, the donation document only includes tokens for the animal on the first payment. There's nothing to stop you putting animal info in the payment comments though and using that as your line item?

@1gkwc6: 2018-03-08 21:34:59
OK, that will work. How do I reference the Comment field on the invoice? i.e. what is the merge field between the <<?>>

@candidhominid: 2018-03-13 18:09:52
I'm guessing <<PaymentComments>> https://sheltermanager.com/repo/asm3_help/wordkeys.html#payment-keys


Adding in a vaccination that isn't currently on the list

@crcsdogs: 2018-03-08 14:41:59
Canine Influenza does not come up as a vaccination under the current list of vaccinations in the drop down box. Is there a way to add that to the list?

@robinrt: 2018-03-08 19:02:08
Settings->Lookup Data->Vaccination Types


AgeGroup not captured properly on FTP feed

@jimmieakin: 2018-03-07 21:14:45
We have placed the code into our web page to display the pet inventory data from ShelterManager: www.larashouseshelter.org/gallery/ In ShelterManager, in Settings > Options > Age Groups, we have 4 categories that appear like this in the table: 1.5.......Baby 5.........Young Adult 10........Adult 20........Senior However you will notice from the link above that every pet is forced to be either "Baby" or "Young Adult" regardless of their actual birthdates. The categories assigned seem to be arbitrary. What could I be doing wrong? Thanks

@robinrt: 2018-03-08 19:01:56
It's because they're being calculated from age at entry. I've raised an issue to calculate age groups during publish to fix this asap.

@kitten_division: 2018-04-12 06:06:35
This is also a problem when sorting by age groups in the Shelter View tab.

@robinrt: 2018-04-12 08:43:59
Thanks, I've raised a dev issue for this now.

@melatronics: 2018-07-25 17:27:12
I see that issues #422 and #396 in the git repository related to this have been closed. Our site is currently experiencing this problem. I've attempted to re-enter both the date brought in and DOB for the affected animals to hopefully force a recalculation. This did not work. Any advice you have to solve this problem would be appreciated!

@robinrt: 2018-07-26 09:46:37
Are you using the latest code from the trunk or using sheltermanager.com? The fixes are not in a release build yet.

@melatronics: 2018-07-26 19:40:22
We are using sheltermanager.com. An ETA would be helpful so I know if I need to develop a workaround for the website or not.

@robinrt: 2018-07-26 19:42:44
Oh. The fixes definitely should be active on sheltermanager. Could you email us at support@sheltermanager.com with your account number and some animals that have incorrect age groups on your site (and a link to your site) so we can investigate what's happening? Thanks

@melatronics: 2018-07-26 19:52:11
Sent, Thanks you!

@robinrt: 2018-07-31 15:20:07
For others reading, one of the fixes had been reverted and the other did not cover all cases. Both have been fixed now on sheltermanager.com and the trunk of the codebase.


Report query

@gweeks: 2018-03-06 16:43:07
Hi, We currently use a report 'Time from Entry to Adoption' which gives us a list of animals that have been adopted between two dates which includes the dates from entry to adoption. I would like more detail and would also like to add the date the animal was put up for adoption. I can see in on the animal tab under publishing history that it records the date the animal was adoptable and published for the first time. Is there a way of including this date in my report? Thanks

@robinrt: 2018-03-06 17:13:52
Yes, you need to use a subquery in your SELECT, eg, to show all shelter animals when they first became adoptable: SELECT AnimalName, (SELECT sentdate FROM animalpublished WHERE AnimalID = animal.ID AND publishedto = 'first') AS FirstAdoptable FROM animal WHERE Archived = 0

@gweeks: 2018-03-10 07:55:30
Hi, Thanks for the info. I have tried to see if I could insert it into my report but clearly dont have enough of an undestanding of it as cant get it to work. This is the report I am using, are you able to tell me where the subquery needs to be inserted? $VAR from DATE Enter from date$ $VAR to DATE Enter to date$ SELECT ShelterCode, AnimalName, DateBroughtIn, MovementDate, species.SpeciesName, animaltype.AnimalType AS theType, animal.BreedName, oo.OwnerName AS OOName, oo.OwnerAddress AS OOAddress, oo.OwnerTown AS OOTown, oo.OwnerCounty AS OOCounty, oo.OwnerPostcode AS OOPostcode, oo.EmailAddress AS OOEmail, no.OwnerName, no.OwnerAddress, no.OwnerTown, no.OwnerCounty, no.OwnerPostcode, no.EmailAddress FROM adoption INNER JOIN animal ON adoption.AnimalID = animal.ID INNER JOIN owner no ON adoption.OwnerID = no.ID INNER JOIN animaltype ON animaltype.ID = animal.AnimalTypeID INNER JOIN species ON species.ID = animal.SpeciesID LEFT OUTER JOIN owner oo ON animal.OriginalOwnerID = oo.ID WHERE MovementType = 1 AND MovementDate BETWEEN '$@from$' AND '$@to$' ORDER BY AnimalType

@candidhominid: 2018-03-12 13:38:41
--- SELECT ShelterCode, AnimalName, DateBroughtIn, MovementDate, (SELECT sentdate FROM animalpublished WHERE AnimalID = animal.ID AND publishedto = ‘first’) AS FirstAdoptable, species.SpeciesName, ---

@gweeks: 2018-03-12 15:12:40
Hi, Thanks for the suggestion. I have tried putting it into the report but it doesn't seem to like it and I get an error - syntax error at or near ";" LINE 5: ...HERE AnimalID = animal.ID AND publishedto = ‘firstR... ^ Is there something I am doing wrong? Any help appreciated. Thanks

@candidhominid: 2018-03-12 15:19:18
The problem is the quote marks around the word first that I copied from above. They should be the single mark made by tapping the quotation mark key. --- (SELECT sentdate FROM animalpublished WHERE AnimalID = animal.ID AND publishedto = 'first') AS FirstAdoptable, ---

@gweeks: 2018-03-12 15:40:27
Thanks that seems to have done the trick Many Thanks


Home screen message

@crcsdogs: 2018-03-04 15:41:37
When going to the home screen now we are getting an error message saying the site is not secure and that there's a problem with the certificate. Is anyone else having this problem?

@robinrt: 2018-03-04 15:43:41
Hi, there was a recent server upgrade and if you were on us1 or us3, they've moved to us01 and us03. As long as you login at http://account.sheltermanager.com (substitute account for your account number) it will send you to the correct place. If you've bookmarked the old server you will see that error.

@crcsdogs: 2018-03-04 15:44:28
Ok that helps! Thank you very much!


Reports state "No data to show on the report" for a particular animal

@castatz: 2018-03-03 15:04:23
There is data for this animal, but not showing up

@robinrt: 2018-03-03 15:18:55
Which report, which animal, who are you?


Organize Document Depository

@beaglegirl: 2018-03-02 08:22:49
Is there a way to make folders or a Table of Contents in the Doc. Depository? Can doc names be changed? Ours has become one long list.

@robinrt: 2018-03-02 11:07:00
Documents can have a path, which I think is the default sort for that screen - it means documents that share a path are grouped together in the list. It does seem to be missing a rename function (you have to delete and reupload) so I'll raise that as a bug today.

@beaglegirl: 2018-03-03 11:32:04
Thank you - That would be great. I just uploaded a test file and titled the path "Jan 2018 ..." and it went to the bottom of the list because all our path names start with /document_repository/ So it became /document_depository/January_2018_Bank_Statements. Not a very easy name to find! Plus, that would just be for one statement. Is there a way to "roll up" a path, so just "Bank Statements" would show?

@beaglegirl: 2018-03-03 11:33:39
I should add, right now the company files bank statements by creating a "person" called "Bank Statement x " and uploading them to "Media" which works, except there is no index or table of contents.


Animal Status

@paulajacksonlg: 2018-03-01 19:35:32
Looking at software first time - when I add an animal what determines the animals "status". I can see where you can add the flag to put them as "not available" to override to make sure they are not shown on the internet. I don't understand where the "status" comes from though. I have added a animal to play with the software - and I did NOT add a flag to say not available for adoption - and yet at the top right hand side it says Not Available For Adoption. It also says unaltered - but I don't see where I'd enter that info either.

@paulajacksonlg: 2018-03-01 19:46:37
Ok I figured out how to check altered and then it changes to no description - where is it looking for a description? I guess I'm looking to understand how an animals status is determined - We currently use status like Intake, Hold, Available - and it's clear which status WILL show on the available animals list and which won't - looking for something similar here I guess - or an understanding of what areas are going to auto force an animal to be NOT available

@robinrt: 2018-03-02 11:05:33
The adoptable rules are all set up under Publishing->Set Publishing Options->Animal Selection. Description means a description/bio for the animal under the notes slider.

@paulajacksonlg: 2018-03-02 12:21:44
Hey thanks so much!


Forms are duplicating

@coleymarie80: 2018-02-27 21:20:40
I'm receiving the same form multiple times. [Forms](//muut.com/u/sheltermanager/s1/:sheltermanager:xzmv:forms.png.jpg)

@coleymarie80: 2018-02-27 21:37:32
People are reporting that they don't know if their form was submitted - we have it set to send a confirmation email, but it is not being received (I do have an email address field in my forms). There is also a message displayed on screen, but after the form is submitted, the page stays at the bottom and people don't know to scroll up to see the message.

@robinrt: 2018-03-02 11:04:38
Can you give a link to the form so I can take a look? It sounds like the issue is with the redirect URL going to a page that isn't confirming receipt of the submission.

@coleymarie80: 2018-03-07 02:49:23
?account=kc1608&method=online_form_html&formid=23


Animal codes keep changing

@lialang: 2018-02-27 13:01:16
We set up our system to generate animal codes automatically, so we have 2018-001, 2018-002, etc. The problem we are having is each time we change the animal type, the code changes. We use animal type to indicate, waiting, available, adopted, released, etc. If you change it to not allow changes to animal codes, then this animal type is greyed out and we cannot change it.

@robinrt: 2018-03-03 13:00:39
Animal type should be the shelter's classification for figures purposes and should not change throughout the animal's time with you. It sounds like you're using it as a status field? ASM does track most of those statuses internally, but if you want to manually select one you might be better to create an additional status field to hold that information (Settings->Additional Fields, use type "Lookup" with lookup values of Available|Waiting|Adopted|Released ) Type is usually a way of counting groups of animals who have entered and left. The default is to split stray animals from surrendered animals, but they can be anything that makes sense to your organisation.


Diet and Food

@creativecredent: 2018-02-27 04:11:24
Is there anyway that I can add a diet to a animal then in the main screen under alerts it would pop up saying so many animals need fed and allow me to click certain animals add like a log that says when I fed them and in the feed menu it would also tell me if there is any special dietary needs and if it involves medicine when I click it it would take that medicine out of stock.

@robinrt: 2018-03-03 13:01:27
There isn't I'm afraid. Wouldn't tracking every feed electronically create a huge data entry burden?


Media Notes in animalview template

@akhiloar: 2018-02-26 19:35:40
I was wondering how to get medianotes for an animal into the animalview template. The $$MEDIANOTES$$ placeholder is incorrect, but that is the column name. Exactly what tables can you access from the HTML Publishing Templates?

@robinrt: 2018-02-26 21:21:43
Everything that you can for an animal document - it's the same wordkeys with a $$ delimiter: https://sheltermanager.com/repo/asm3_help/wordkeys.html

@akhiloar: 2018-04-21 00:11:49
Thanks. I definitely missed than in the docs.


Cage card to include littermates

@plank40: 2018-02-25 19:11:46
How do i go about editing a cage card for our new mums to include all the kittens she has given birth to, and also a thumbnail picture of each kitten?

@robinrt: 2018-02-26 15:55:43
Hi, I'm afraid that's not possible with the document template system. It's a really good suggestion though and I'll raise that for development.

@candidhominid: 2018-02-26 16:02:49
I have a report that is very similar but doesn't include the mom. When I get a chance I'll change it to include the mom and post here.

@plank40: 2018-02-27 07:05:57
that would be great thank you.

@candidhominid: 2018-02-28 20:17:18
Plank40, does something like this (see pic) work for you? If so, I'll post the code. [Cage Card (litter + mom)](//muut.com/u/sheltermanager/s3/:sheltermanager:Miyt:cagecardlittermom.png.jpg)

@plank40: 2018-02-28 20:26:34
yes that looks perfect, thank you.

@candidhominid: 2018-02-28 22:12:51
Main report (check Omit header/footer and Omit criteria) SQL : --- SELECT a.ID AS AnimalID, l.PARENTANIMALID, a.AnimalName, t.AnimalType, a.BreedName, a.IDENTICHIPNUMBER, l.AcceptanceNumber, l.NumberInLitter, l.Comments, basecolour.basecolour, row_number() OVER (ORDER BY a.AnimalName) AS rownum, to_char(a.datebroughtin::date, 'fmMM/fmDD/YYYY') AS DateBroughtInDisplay, trim(both '.' from a.ANIMALAGE) AS AgeDisplay, (SELECT Sex FROM lksex WHERE ID = a.sex) AS thesex, (SELECT m.ID FROM media m WHERE m.LinkID = a.ID AND m.LinkTypeID = 0 AND m.WebsitePhoto = 1) As imgID, CASE WHEN a.IDENTICHIPPED = 0 then '' ELSE 'MC:' END as MCYN, CASE WHEN l.NumberInLitter >= 6 then '120' WHEN l.NumberInLitter >= 5 then '150' WHEN l.NumberInLitter >= 4 then '180' ELSE '220' END AS IMGSize, CASE WHEN l.NumberInLitter >= 5 then 'less' ELSE '' END AS PaddingAmount, CASE WHEN l.NumberInLitter >= 6 then 'catnamesmaller' ELSE 'catname' END AS NameSize, CASE WHEN l.NumberInLitter >= 5 then 'catimgsmaller' ELSE 'catimg' END AS TDSize, CASE WHEN (SELECT COUNT(ID) FROM media m WHERE m.LinkID = a.ID AND m.LinkTypeID = 0 AND m.WebsitePhoto = 1) = 0 THEN 'nodisplay' else '' END AS DisplayYN, CASE WHEN extract(day from current_date - a.dateofbirth)::integer - 365 <= 0 THEN '(as of ' || to_char(current_date::date, 'fmMM/fmDD/YYYY') || ')' ELSE '' END AS AgeAsOf, CASE WHEN a.ESTIMATEDDOB = 1 THEN '~' || to_char(a.dateofbirth::date, 'fmMM/fmDD/YYYY') ELSE to_char(a.dateofbirth::date, 'fmMM/fmDD/YYYY') END AS DateOfBirthDisplay, CASE WHEN a.BreedName = 'Domestic Short Hair' THEN 'DSH' WHEN a.BreedName = 'Domestic Medium Hair' THEN 'DMH' WHEN a.BreedName = 'Domestic Long Hair' THEN 'DLH' ELSE trim(trailing 'Mix' from a.BreedName) END AS BreedNameDisplay FROM animallitter l INNER JOIN animal a ON a.AcceptanceNumber = l.AcceptanceNumber INNER JOIN basecolour ON basecolour.ID = a.basecolourID INNER JOIN animaltype t ON a.AnimalTypeID = t.ID WHERE l.ACCEPTANCENUMBER = '$ASK LITTER$' AND a.DECEASEDDATE is NULL -- AND a.ARCHIVED = 0 ORDER BY a.AnimalName --- Main report HTML: --- $$HEADER <table cellspacing="0" cellpadding="0"> {SUBREPORT.SUBREPORT_LitterMomCageCard.PARENTANIMALID.IMGSize.NameSize .TDSize.PaddingAmount} HEADER$$ $$HTMLHEADER <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Cage Card (litter + mom)</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style type="text/css"> * { font-size: 14px; } * { font-family: Verdana, Arial, Helvetica, Sans-Serif; } table { margin: 0 0 0 0; padding: 0 0 0 0; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; } td { padding: 0px 33px 33px 0px; } td.catimg { width: 220px; } td.catimgsmaller { width: 200px; } td.nodisplay { display: none; } span.catname { font-weight: bold; font-family: Arial; font-size: 44px; font-style: none; } span.catnamesmaller { font-weight: bold; font-family: Arial; font-size: 33px; font-style: none; } hr.spacer { margin: 6px 0 6px 0; width: 100%; border: 0; border-bottom: 1px dashed #000000; background: #ffffff; } a.remove { color: red; } @media print { .noprint { display:none; } } </style> HTMLHEADER$$ $$BODY <tr id="$rownum"> <td class="$DisplayYN $PaddingAmount $TDSize"><img height="$IMGSize" src="image?mode=media&id=$imgID" /></td> <td class="$PaddingAmount" contenteditable="true"><span class="$NameSize">$ANIMALNAME</span><br/>$THESEX / $BreedNameDisplay / $BASECOLOUR <br/>$AgeDisplay old $AgeAsOf<br/>{SUBREPORT.SUBREPORT_WeightHistory.ANIMALID}<br/>$MCYN $IDENTICHIPNUMBER</td> <td class="noprint"><a onclick="document.getElementById('$rownum').style.display='none'; return false;" href="" class="remove">REMOVE</a></td> </tr> BODY$$ $$FOOTER </table> </body> </html> FOOTER$$ $$HTMLFOOTER HTMLFOOTER$$ --- SUBREPORT_LitterMomCageCard SQL: --- SELECT a.ID AS AnimalID, a.IDENTICHIPNUMBER, '$PARENTARG2$' AS IMGSize, '$PARENTARG3$' AS NameSize, '$PARENTARG4$' AS TDSize, '$PARENTARG5$' AS PaddingAmount, to_char(a.datebroughtin::date, 'fmMM/fmDD/YYYY') AS DateBroughtInDisplay, a.AnimalName, t.AnimalType, a.BreedName, basecolour.basecolour, (SELECT Sex FROM lksex WHERE ID = a.sex) AS thesex, trim(both '.' from a.ANIMALAGE) AS AgeDisplay, (SELECT m.ID FROM media m WHERE m.LinkID = a.ID AND m.LinkTypeID = 0 AND m.WebsitePhoto = 1) As imgID, CASE WHEN a.IDENTICHIPPED = 0 then '' ELSE 'MC:' END as MCYN, CASE WHEN (SELECT COUNT(ID) FROM media m WHERE m.LinkID = a.ID AND m.LinkTypeID = 0 AND m.WebsitePhoto = 1) = 0 THEN 'nodisplay' else 'catimg' END AS DisplayYN, CASE WHEN extract(day from current_date - a.dateofbirth)::integer - 365 <= 0 THEN '(as of ' || to_char(current_date::date, 'fmMM/fmDD/YYYY') || ')' ELSE '' END AS AgeAsOf, CASE WHEN a.ESTIMATEDDOB = 1 THEN '~' || to_char(a.dateofbirth::date, 'fmMM/fmDD/YYYY') ELSE to_char(a.dateofbirth::date, 'fmMM/fmDD/YYYY') END AS DateOfBirthDisplay, CASE WHEN a.BreedName = 'Domestic Short Hair' THEN 'DSH' WHEN a.BreedName = 'Domestic Medium Hair' THEN 'DMH' WHEN a.BreedName = 'Domestic Long Hair' THEN 'DLH' ELSE trim(trailing 'Mix' from a.BreedName) END AS BreedNameDisplay FROM animal a INNER JOIN basecolour ON basecolour.ID = a.basecolourID INNER JOIN animaltype t ON a.AnimalTypeID = t.ID WHERE a.ID = $PARENTKEY$ --- SUBREPORT_LitterMomCageCard HTML: --- $$HEADER HEADER$$ $$BODY <tr id="0"> <td class="$DisplayYN $PaddingAmount $TDSize"><img height="$IMGSize" src="image?mode=media&id=$imgID" /></td> <td class="$PaddingAmount" contenteditable="true"><span class="$NameSize">$animalname</span><br/>$THESEX / $BreedNameDisplay / $BASECOLOUR <br/>$AgeDisplay old $AgeAsOf<br/>{SUBREPORT.SUBREPORT_WeightHistory.AnimalID}<br/>$MCYN $IDENTICHIPNUMBER</td> <td class="noprint"><a onclick="document.getElementById('0').style.display='none'; return false;" href="" class="remove">REMOVE</a></td> </tr> <tr id="0A"> <td colspan="2"> <hr class="spacer" /> <span style="font-size: 23px;">$animalname<!---->'s<!----> kittens: <!-- Change to litter if shelter also cares for dogs --></span> <br/> </td> <td class="noprint"> <a onclick="document.getElementById('0A').style.display='none'; return false;" href="" class="remove">REMOVE</a> </td> </tr> BODY$$ $$FOOTER FOOTER$$ --- SUBREPORT_WeightHistory (if this causes any issues based on how you enter weights, I have a simpler version without all the regular expression stuff, which is intended to trim out everything but the actual number) SQL: --- SELECT to_char(l.Date, 'fmMM/fmDD/YYYY') AS DateDisplay, regexp_replace(regexp_replace(regexp_replace(regexp_replace(l.Comments , '^[a-zA-Z\s]+', '', 'g'), '\/', '', 'g'), '(\s[0-9]+)|([a-zA-Z][.]+)', '', 'g'), '[^0-9.~]+', '', 'g' ) AS CommentsDisplay -- 0) Remove all letters and spaces from the beginning of the string. -- 1) Remove all slashes -- 2) Remove all numbers preceded by a space and all periods preceded by letters. -- 3) Remove anything that isn't a number, period, or tilde. -- Reminder: The caret symbol represents negation when it's inside of a character class. FROM log l INNER JOIN logtype lt ON lt.ID = l.LogTypeID WHERE l.LinkType = 0 AND l.LINKID = $PARENTKEY$ AND lt.LogTypeName iLIKE '%Weight%' ORDER BY l.Date DESC LIMIT 1 OFFSET 0 --- SUBREPORT_WeightHistory HTML: --- $$HEADER HEADER$$ $$BODY <span>$CommentsDisplay</span># <!-- Change # as desired if using metric, etc. --> on $DateDisplay BODY$$ $$FOOTER FOOTER$$ ---

@plank40: 2018-03-01 00:09:35
Thank you


Open Office Templates

@sjras: 2018-02-23 17:17:46
We have a ton of forms built from when we were using ASM locally hosted and were hoping to have them move over to our hosted version now. So we downloaded the templates from the old ASM and have tried to upload them into the hosted one, which worked as far as uploading them. Now when we click on them to edit them or to use them to generate a document we get the option to save them locally on our computers... any idea what we are doing wrong? We just want to generate them & print them. [ASM Capture](//muut.com/u/sheltermanager/s3/:sheltermanager:eu2J:asmcapture.jpg.jpg)

@robinrt: 2018-02-24 10:18:35
That's all that can be done with OpenOffice documents. You can set your browser to open them with Openoffice when it sees that mime type so you get the option to open as well as save, but they cannot integrate quite as well as the built in HTML documents.


voucher customization

@lialang: 2018-02-22 23:26:57
IS there a way to add fields to the voucher to customize it?

@robinrt: 2018-02-24 10:17:26
I'm afraid there isn't. This is one area that is on our list to improve, along with the ability to print and edit your own voucher documents.


Building instruction missing

@robertrapplean: 2018-02-22 22:24:53
I created a new Ubuntu 16.04 VM and ran through the installation instructions. After installing all of the dependencies, mysql, and all of the development dependencies, the build failed on the tags target. It appears that it's missing install instructions for exuberant-ctags. sudo apt install exuberant-ctags Not sure where that would go. It's probably missing from the README.md, but thought I'd put a comment here so it doesn't get forgotten.

@robinrt: 2018-02-24 10:17:01
Thanks, I've added info to README.md and the make deps target.


Issue priority?

@robertrapplean: 2018-02-22 18:55:20
Hey, there. My wife volunteers for a shelter that is using your software, and she's asked me to look into a few enhancements that might make the data entry easier. Instead of plowing in and throwing a pull request at you, I'd like to start by working on a few of the things that your user base has already requested. Is there a list somewhere of which of the 148 current issues is most urgent/useful/appropriate for first-time? For reference, here are my credentials: https://www.linkedin.com/in/mythologicalbeast/

@robinrt: 2018-02-24 10:14:33
We don't, and really should put a first-time label on a few issues. The priority order is what you get when viewing the next milestone (currently 41). I'll make a note to label a few easy first-time issues. Thanks for getting involved!

@robertrapplean: 2018-02-26 19:02:48
Thanks. I'll keep an eye out for that. Is there any particular issue that I could take my time with? I'm currently trying to correct ETL issues with my shelter's database transfer.


Payments made, not received

@coleymarie80: 2018-02-21 16:21:04
Where can I log payments that we've made (to vets, clinics, etc)? All I see is where I can log payments that we've received from donors, etc.

@robinrt: 2018-02-21 16:29:16
You can either put them under the cost tab if they relate to an animal, or log them in the accounts - Financial->Accounts.

@coleymarie80: 2018-02-21 16:31:29
I have payment history (in pdf form) to the vets and was hoping to keep them all together. All I see is Financial > Payments.

@robinrt: 2018-02-21 16:38:18
Your user account either don't have permission to the accounting module, or it's been disabled under Settings->Options->Accounts

@coleymarie80: 2018-02-21 16:39:44
I see, I enabled it. Looks like I have to go through and enter every single transaction. I was really just looking for a way to create a folder (maybe in document repository) to store the pdfs.

@robinrt: 2018-02-21 19:20:42
If the payments relate to an animal, you could store them under the media tab of their record?

@lynnep: 2020-08-26 15:21:10
Create a dummy dog, such as ACC-VET then store all your vet bills in the media tab


Good guide for getting started and compiling Python?

@justinwbell: 2018-02-20 23:42:38
Hi. I have plenty of experience with web development, but only with script languages like PHP and Ruby. I just found out that the source code isn't a bunch of web scripts, but source code to be compiled into an executable? Does anyone have a good guide on how to do this, with regards to getting ASM 3 working in a MAMP installation? Thanks, Justin.

@robinrt: 2018-02-21 09:31:20
Python is interpreted rather than compiled. The ASM source code includes a webserver or can run in WSGI mode under Apache. The README file included in the source code has info on running it.

@robertrapplean: 2018-02-22 20:15:02
If you're new to Python, I recommend the Hitchhiker's Guide to Python. It has instructional resources for every level of developer. http://docs.python-guide.org/en/latest/intro/learning/

@robinrt: 2018-02-24 10:15:32
There's an online book called "Dive into Python" that's quite good and aimed at programmers coming from other languages.


Additional fields

@knafus: 2018-02-17 12:28:55
Is there a way to specify the exact location of an additional field instead of having it added to the end of the section?

@robinrt: 2018-02-17 13:58:35
No, it would be just too complex to implement.


Email reports

@knafus: 2018-02-17 12:25:08
Is there a way to directly email a report out of ASM or do you have to save it / download it then email from your won email address?

@robinrt: 2018-02-17 13:58:16
As long as your report has no criteria (eg: In/Out Today), you can have ASM run and auto-email reports on a schedule. Set that in the report definition under Settings->Reports


API To Post Updates

@andresh: 2018-02-17 00:09:45
Hello All, I'm new to sheltermanager and trying to help my rescue foundation to automate everything they do. They use shelter manager to keep track of their dogs, but they are forced to manually update sheltermanager once a dog is adopted which obviously can be somewhat tedious. I was hoping to write them a web page that accepts all the data and pushes all the info to shelter manager via the service api. However, reading the documentation, it seems the api is only for getting information out. Is there any way to automate the updating of data in shelter manager? Thank you, Andres Herrera

@andresh: 2018-02-17 00:22:13
Oh i just found the Online Forms, that is will come in handy.

@robinrt: 2018-02-17 08:21:15
Sure, you can create records from online forms. I'm a bit baffled though - at some point they're going to have to tell the system that a dog is adopted (unless you're working on a brain interface!). So you're going to write a new web interface that involves posting online forms instead of using the web interface that's already there under Move->Adopt an animal ?

@andresh: 2018-02-17 18:41:23
I know sheltermanager already has the Move->Adopt, but the goal would be to automate everything. Currently the process is entirely manual. Adoption paperwork is done with real paper. They collect all the paper work at the end of the day and and enter in all the updated information about adoptions using the Move -> Adopt menu. On busy days, that's up to 20 dogs, so it takes some time to complete. The goal would be to make all the paper into online forms that the customer enters, pays, etc. Then all that data is automatically updated in sheltermanager without having to manually go into the "Move->Adopt" menu. My goal was to write that form in the rescue foundation's website, then programmatically push the data to sheltermanager via the service api. This would remove any manual intervention for adoptions. Does that make sense? Thanks, Andres


Hospitilisation

@1gkwc6: 2018-02-16 08:21:02
Has anyone any suggestions on how to show that an animal is in hospital (for 3 days)? I would have thought movement screen would be the obvious place to enter this information but none of the available are relevant?

@robinrt: 2018-02-17 08:22:48
I'd make a fosterer record for the hospital so you can see that animals are there, but they're still in your care/responsibility. Doing it as a foster means you can track and report on the history of animals at the hospital if you want.


Stray Animals

@inghamn: 2018-02-15 21:23:58
If I wanted to get the list of stray animals that were not adoptable....would that be looking through all the shelter animals? Here in Bloomington, our animal shelter folks would like to list the strays along with the found animals. The strays come in and are not up for adoption for a period of time in order to give owners time to call in.

@robinrt: 2018-02-15 21:26:33
The normal way to do that is to give stray animals a "Stray" entry category and assign a hold and hold until date. When the date passes, ASM removes the hold and the animal becomes adoptable.

@inghamn: 2018-02-15 21:27:42
Yes, that is exactly what we do. It's just that I'm looking through the web services and trying to figure a way to get the list of strays on hold that are not adoptable yet.

@robinrt: 2018-02-15 21:30:15
Ah, you can't get non-adoptables from the webservice. You could have a report that returned held animal details and access it via the csv_report call?

@inghamn: 2018-02-15 21:32:07
Cool, I will try it out that way, thanks.

@inghamn: 2018-02-16 16:18:02
This is coming from a citizen perspective. To a citizen, the list of ASM:found animals and ASM:stray animals on hold is the same list. The citizen just wants to know if we've found their pet. On our city website, we're attempting to combine animals from those two lists into one screen.


Publish option missing

@coleymarie80: 2018-02-14 17:05:43
I've just set up integration with petfinder and I'm trying to publish a new test animal. However, the publish now option has gone missing. I've used it twice already today, is there a limit to how many time you can use it before it's disabled? Not sure why I can suddenly only view publishing logs.

@robinrt: 2018-02-14 17:12:55
It automatically disables if the credentials you have entered for PetFinder are wrong. The PetFinder password that you put in is not the same as the one you use for the members area - it has to be an "FTP" password and you have to request it from their helpdesk if you don't have one (send an email to help@petfinder.com) and let them know you're sending animals via ASM.

@coleymarie80: 2018-02-14 17:29:03
I have the FTP password and have not changed it since entering it in the Publishing options.

@coleymarie80: 2018-02-14 17:30:25
Ah - I went back and looked and somehow the "Enabled" checkbox had been cleared. Strange. Thank you!

@coleymarie80: 2018-02-14 17:37:49
Does it happen to take a while for Petfinder to catch up? My logs show that publishing was successful, but I'm not seeing my new animal on Petfinder.

@robinrt: 2018-02-14 17:59:52
I'm afraid it does - it can take a few hours sometimes when their site is busy.

@coleymarie80: 2018-02-14 18:05:51
ok, thank you!


Template and Documents permissions

@tesscrossen: 2018-02-14 01:38:04
How do we share template and documents in the system? Users are getting permission denied or forbidden.

@robinrt: 2018-02-14 09:05:00
There isn't a way to set permissions on individual templates or documents. Users need the "Generate Documents" permission on one of their roles to be able to create documents from templates. Just to clarify, what exactly is it your users are doing when they see these messages?

@tesscrossen: 2018-02-14 19:02:06
I have created an Applicant Report that appears under Documents. It is set to pull in some info off of their records and that is working well. But when they try to customize the document with more info garnered from background checks, they get a "Forbidden" error. Is there a way that we can all use and customize the same template.

@tesscrossen: 2018-02-14 19:22:57
Oh, and these are marked as "applicant_report.html"

@robinrt: 2018-02-15 15:44:31
What is it they're actually doing when they see the forbidden message? Is it getting to Settings->Document Templates? Is it after they edit the template and hit save? Is it when they make a change to the document generated from the template and hit save?

@robinrt: 2018-02-15 15:45:03
if you're a sheltermanager.com user, email us your account number at support@sheltermanager.com and I'll take a look.

@tesscrossen: 2018-02-15 15:53:34
It is after they edit the template and hit save, and when they make a change to the document generated from a template and hit save. Is da1061 the correct number?

@robinrt: 2018-02-15 16:28:40
Yes, it is. The message is consistent with them not having the "Generate Documents" permission. Having said that, I've looked at your roles and they all pretty much have that permission set so I'm not sure why they're seeing it. Could you let me know which user accounts it is that are having trouble so I can trace it through?

@tesscrossen: 2018-02-15 16:54:59
jstewart; lcole; vishler; nkaye; mtomkiel; lstrickler;

@robinrt: 2018-02-15 17:03:02
Ok, so your AC role. I see the issue now, you can save it the first time to send it to the media tab, but then they can't edit it from the media tab afterwards. To do that, you'll need to give them the "Change Media" permission on the AC role. It's in the left most column near the bottom when editing the role. Also, there's a slight bug there that they're allowed to save the first time - you should need the "Add Media" permission to be able to save a document to the media tab of a record, so add that one at the same time.


Microchip field

@lialang: 2018-02-12 20:39:13
What is the 2nd microchip field for under animal Health and Identification? Is there a way to put a date when the microchip was registered to new owner?

@robinrt: 2018-02-13 08:39:49
Sometimes animals are double chipped by accident. ASM lets you store two implant dates and chips. ASM will track when an a microchip was registered - but only if ASM registered it electronically, it can't be entered manually.


Logo not coming over in emailed report

@lialang: 2018-02-12 15:53:18
I tweeked the Active Voucher report to include our logo, but when the report is emailed every day, the logo is missing.

@robinrt: 2018-02-12 17:05:50
Use the extra-image service call to embed your logo - http://sheltermanager.com/repo/asm3_help/service.html#extra-image


Adopted Animals shown in shelter view?

@lialang: 2018-02-12 15:33:12
I am wanting to see all the animals listed in shelter view. We have a report that will show all the animals and their statuses, but if we want to see an adopted animal we have to run the report, find the animal, then type it in the search box. There does not seem to be a way to see all cats that have passed through the shelter in 1 place. It seems if you adopt or transfer the animal, they disappear from the shelter view (location and status/type).

@robinrt: 2018-02-12 17:04:16
Yes, shelter view only shows animals currently in the care of the shelter. If you go to ASM->Animals->Find Animal and pick "Advanced", you can change "On Shelter" to "(all)" in the location dropdown followed by search to see a list of all animal records. You can also change that dropdown to "Adopted" if you just want to see adopted animals. You can also use Move->Return an animal from adoption, to quickly see animals adopted in the last 30 days. We don't show all animals all the time as many of our users have hundreds of thousands of historic records.


Default transaction view

@1gkwc6: 2018-02-11 12:52:21
With default transaction view = This year, selected the Balance column is all wrong. (image1), only when I click on Refresh, does it calculate correctly. (image2) [Image1](//muut.com/u/sheltermanager/s1/:sheltermanager:NPpl:image1.jpeg.jpg) [Image2](//muut.com/u/sheltermanager/s1/:sheltermanager:IAes:image2.jpeg.jpg)

@robinrt: 2018-02-11 13:27:14
That sounds pretty interesting - the balance calculations look ok on your screenshots, is it the starting balance that's wrong? Do you not have transactions before the first date?

@1gkwc6: 2018-02-11 15:42:04
Balances are OK on image 2, but not on image 1. Now, the opening balance was on 01/01/2018. No entries before.

@1gkwc6: 2018-02-11 15:43:38
It is not the opening balance that is the problem, but the closing balance on the screen that is wrong.

@robinrt: 2018-02-11 16:31:59
I can't see enough info from the screenshots. I can only guess that the loaded state of the transaction screen is different from what's presented in the controls at the top so when you hit refresh you're getting a different result. Is it the difference between reconciled and both? Is it an accounting period date being applied?

@robinrt: 2018-02-12 09:32:52
Hi, thanks for getting in touch by email. For info, the problem was caused by a time component in the defaults when first clicking through to an account. A fix has been applied now. The bug was only in the 41 trunk as a result of refactoring and the recent 40 release was not affected.


Online form URL

@paullawleyjones: 2018-02-11 11:20:19
When trying to view an online form using the link in the Form URL field in the forms list, I get a 404 not found error. --- http://sub.domain.tld/service?method=online_form_html&formid=5 --- = 404. If I manually add `/asm` to the URL, the form is displayed. --- http://sub.domain.tld/asm/service?method=online_form_html&formid=5 --- However, when I submit, it gives me a 404 again.

@robinrt: 2018-02-11 11:22:11
Did you set BASE-URL and SERVICE-URL correctly in sitedefs.py ?

@paullawleyjones: 2018-02-11 11:45:35
BASE-URL was `http://sub.domain.tld` I set SERVICE-URL to `asm/service` I can view the form OK, but I still get a 404 when I submit.

@paullawleyjones: 2018-02-11 11:48:42
It must be something to do with caching. Other forms are OK when I submit. Thanks.


What happened to the CSV download option?

@annmweaver: 2018-02-10 23:23:36
Am I missing a way to download these reports in the CSV format in lieu of pdf?

@robinrt: 2018-02-11 10:01:04
I don't think it's changed? You can download reports as CSV under Settings->Export Reports as CSV


Financial

@1gkwc6: 2018-02-10 13:02:18
For a payment received to appear against a Person and an Income type account, I can enter the transaction in many ways, from the Payment screen of a Person the Financial::Payment book or the Financial::Receive a Payment screens. Is there any difference in using these screens or do they all do the same thing? My problem is when I go to the Deposit account, after entering a payment received, (740001::Donations in our case) the amount resets itself to 0, 00

@robinrt: 2018-02-10 17:30:10
Entering a payment creates a matching transaction. Entering a transaction does not create a matching payment! Always use the Payment tab/book when entering incoming donations and fees. If you're seeing the amount reset itself to 0, is it because you've done something like putting a payment type destination account override to an income account under Settings->Options->Accounts ?

@1gkwc6: 2018-02-11 07:57:36
I have checked the settings as suggested and presuming we are talking about payments received, they match an 'Income' type account. I have also tried removing the 4 presets, and while the payment is posted to the correct account it still resets the amount to 0.

@robinrt: 2018-02-11 10:02:09
That's the problem - if you've manually mapped your income accounts to a payment type on the options screen, you've overridden the destination and not the source. All your transactions will become 0 because the source and destination accounts are the same.

@1gkwc6: 2018-02-11 11:32:30
Sorry Robin, I don't understand. My default source and destination accounts are NOT the same. How do I remove the default settings completely?

@robinrt: 2018-02-11 16:33:14
Do you have any manual mappings for payment types to income accounts under the options page for accounts? Have I asked this before, is this a self hosted install or a sheltermanager account? If it's sheltermanager could you email me your account number at support@sheltermanager.com so I can take a look and see what you're seeing?

@robinrt: 2018-02-12 09:33:41
For info, the problem was that default destination account was set to the same income account. Default destination should always be a bank or cash account.


Found animal image URL

@inghamn: 2018-02-08 21:19:12
Thank you so much for the found animals service. The Drupal integration is coming long well. I've reached the point where I want to display the images for the found animals. What would the URL to the found animal's image be? So far, I've been using the service for "animal_image", but I don't believe found animals are actually animals.

@inghamn: 2018-02-08 21:24:29
The only URL I can find would be: /image?mode=media&id=ID Except that one requires interactive authentication. Is this a case for an additional service?

@robinrt: 2018-02-09 09:38:00
There's a dbfsimage service call that accepts either a qualified dbfs path to the file or a media file name. Eg: service?method=dbfsimage&title=ID.jpg (where ID is the media id from your found animal). There's an underscore between dbfs and image but this stupid forum software doesn't seem to allow a way to escape them that I can figure out. Double underscore and backslash don't work.

@inghamn: 2018-02-09 20:57:07
Thank you for the help. I've got a first pass at the Drupal module to integrate with v40, including the new Found Animals. https://github.com/City-of-Bloomington/drupal-module-asm

@robinrt: 2018-02-10 09:31:29
awesome, I'm sure I've seen posts from a few people using Drupal :)


MailChimp Integration?

@bastropanimalrescue: 2018-02-08 19:54:35
Is it possible to integrate Mail Chimp and Shelter Manager so that person information can be automatically (vs exporting and uploading .csv files) published to our digital mailing lists on a regular basis? "Developer? Want to submit an integration? -- If you’d like to have your integration listed in the Integrations Directory, please begin the application process for our Partner Program here - https://mailchimp.com/partners/ "

@robinrt: 2018-02-09 09:46:58
I guess you're talking about having ASM sync emails as subscribers on lists you hold in mailchimp? The API doesn't seem that complex, but I'm not sure how many of our customers actually use it and whether it's worth the return on development. If you're using sheltermanager.com, is there a reason you wouldnt just use the email list functionality from within it? ASM can do bulk emailing (and letter writing and label printing) to different groups of people and you can make complex rules on which people to include and exclude.


DB migration from 39 to 40

@inghamn: 2018-02-06 14:55:26
To do the upgrade, do we just replace the source code and restart the application? Do the db migrations happen on the first hit of the website? I'm working through that right now, and it's stalled. I just wanted to make sure I was doing what is expected.

@inghamn: 2018-02-06 14:58:10
It's been stalled for 15 minutes on a single query: SELECT * FROM v_owner WHERE ID = (SELECT MIN(ID) FROM owner) LIMIT 1 v_owner looks really complex. I can file it in the issue tracker, if need be.

@robinrt: 2018-02-06 15:34:06
Yes, that's the usual approach. The updates run on first login. You can also run the "daily" task of cron.py, which also runs updates and has no statement timeout set (this is how we run updates on the sheltermanager site, at a time when databases aren't in use). I don't know where that query is coming from though? It's selecting the first owner in the database, but that query doesn't appear anywhere in the source code. In fact, none of the ASM source uses any of the views (v_*) - they're only there for users writing reports (and our repository reports don't use the views either).

@inghamn: 2018-02-06 15:36:18
It could very well be a result of user-defined reports. Our users have written several - with custom fields, too.

@inghamn: 2018-02-06 16:03:35
Where do user defined reports live? Is there a table I can clear out to remove them all?

@inghamn: 2018-02-06 16:21:24
We have 130 custom reports. However, none of them reference v_owner, as far as I can tell.

@robinrt: 2018-02-06 16:31:07
weird, I wonder where it's coming from! All the SQL for reports is in customreport.SQLCommand. SELECT Title FROM customreport WHERE SQLCommand LIKE '%v_%'

@robinrt: 2018-02-07 10:01:41
For others, it's coming from the schemajs call that provides code complete to the SQL editor. It's now been fixed and 40 has been rebuilt with this fix in and the binaries updated.


View Incoming Forms - Organization

@coleymarie80: 2018-02-05 16:06:09
Is there a way to create folders for storing incoming forms? Currently there is just a huge long list of forms and I'd like to organize them.

@robinrt: 2018-02-05 16:14:33
There isn't, no. Be aware that incoming forms are automatically removed after 2 weeks. Forms need to be processed and a record created from them or attached to a record. The form will be permanently attached to a record then. Incoming forms is just a holding area while they are processed and to stop people filling your live data with junk.

@coleymarie80: 2018-02-05 16:14:53
ok, thanks

@coleymarie80: 2018-02-05 16:25:47
So...say I have an applicant that wants a certain breed, isn't applying for a specific dog. What kind of record would I create to keep that application so that I can search for that specific dog breed and pull up saved applicants?

@robinrt: 2018-02-05 16:30:12
Create a person record from that applicant and complete the "Looking For" slider for that person. You can set it to a particular dog breed/sex/age/etc and the system will then let you know when you have something that matches. More info in the manual here: http://sheltermanager.com/repo/asm3_help/people.html#looking-for


Migrate media to file storage

@inghamn: 2018-02-05 15:28:13
Is there an accepted technique for migrating media from the database to file storage on the server hard drive?

@robinrt: 2018-02-05 16:13:07
There is - set DBFS_STORE = "file" and set a location in DBFS_FILESTORAGE_FOLDER in sitedefs,py. Then, run cron.py with the maint_switch_dbfs_storage parameter. It will move all your media out of the database and store it in the filesystem.

@inghamn: 2018-02-05 16:13:33
Oh, wonderful. I'll give that a try

@robinrt: 2018-02-05 16:15:11
Hmm, muut has mangled the underscores and turned them into emphasis...

@inghamn: 2018-02-05 16:16:02
I think I can work out the settings. I've got a test server up and am migrating prod to test right now.


403 Forbidden on LAMP server

@paullawleyjones: 2018-02-05 11:35:46
I'm not installing on localhost; I'm installing on my local server -- Ubuntu 16.04.3 LTS -- which is also running an ownCloud instance. I created a sheltermanager.conf on the server and added all the WSGI directives outside the VirtualHost tag. I added an entry -- sheltermanager.domain.tld -- to the localhost hosts file. I can ping the server name from localhost. I'm not using the 000-default.conf. I followed the instructions in the README, but I get a "403 Forbidden" when I try to access sheltermanager.domain.tld/asm and an directory list when I try to access sheltermanager.domain.tld. I am completely unfamiliar with Python. Any help is appreciated.

@robinrt: 2018-02-05 16:15:51
Did you enable your new sheltermanager.conf ? "a2ensite sheltermanager" on Debian/Ubuntu.

@paullawleyjones: 2018-02-07 03:02:31
Yes.

@paullawleyjones: 2018-02-07 03:14:52
The server is actually running on the CherryPy WSGI server, but I don't want it to. If I stop the server, I get the same results as above.

@paullawleyjones: 2018-02-07 11:36:31
I've just done a fresh install on localhost (Ubuntu 17.10) and I get the forbidden message.

@inghamn: 2018-02-07 14:51:15
It sounds like Apache does not have permission to the shelter manager directory. Apache runs as the www-data user. You can check your error log to confirm this. /var/log/apache2/error.log

@paullawleyjones: 2018-02-07 17:02:27
/usr/lib/sheltermanager3 was owned by www-data. It was the first thing I checked. I get this in the logs... [authz_core:error] [pid 2567] [client 192.168.0.1:48322] AH01630: client denied by server configuration: /usr/lib/sheltermanager3/code.py

@paullawleyjones: 2018-02-07 17:11:22
Solved. In Apache 2.4 the following directives --- Order allow,deny Allow from all --- has been replaced by --- Require all granted ---

@paullawleyjones: 2018-02-08 01:58:00
Now the login is not persistent. Every time I do something, I have to login again.

@paullawleyjones: 2018-02-08 02:29:51
I get this in the asm3.log... --- user successfully authenticated from 192.168.0.1 --- That's the IP address of my router.

@robinrt: 2018-02-08 10:01:52
Make sure memcached is installed and working and enabled in sitedefs.py You'll need to use memcache with Apache - Apache spins up multiple instances of ASM so the default single instance session manager that works with CherryPy server will not work with Apache.

@paullawleyjones: 2018-02-08 11:28:43
Success! Now I just need to translate it into Korean.

@robinrt: 2018-02-08 16:17:02
Good work, I guess it's you that's just added the new Korean translation on Zanata? :D

@paullawleyjones: 2018-02-09 01:17:40
Indeed it is, although I wasn't able to add the new translation myself, I had to get one of the Redhat admins to do it for me. The option wasn't available on the version dropdown menu.

@robinrt: 2018-02-09 09:40:16
I was surprised by that - we normally have to add translations at this end and set people up as individual language translators.


Report to include Additional fields

@jones1474: 2018-02-04 19:06:24
I created a couple of additional fields and would like to run a report between 2 dates. Our state requires us to report what drugs are used for euthanasia and the amount used. The fields I created are called FatalPlus and Ketaset and are linked to the Animal - Death Link. When I try running a report for animals euthanized for that time period, it comes back with an error that it can't find the column "FatalPLus". So my guess it that my query string is not written correctly to pull the information from the additional fields table. And yes, I do have them set to searchable. Any suggestions on how to structure my query string to look up what animals were euthanized between two dates and the amount of drugs used for each animal? Thanks!

@robinrt: 2018-02-04 19:48:00
animal.DeceasedDate has the date of death, so use a WHERE something like WHERE PutToSleep=1 AND DeceasedDate >= '$ASK DATE Euthanised between$' AND DeceasedDate <= '$ASK DATE and $' See this FAQ on accessing additional fields: http://sheltermanager.com/site/en_faq_asm3.html

@jones1474: 2018-02-08 23:43:27
Thanks Robin! I was able to get this working by taking your suggestion and tweaking the example from the FAQ. In case any one else needs to do the same, here is the query I used to get the values for the additional fields. SELECT AnimalName, ShelterCode, DeceasedDate, s.SpeciesName, PTSReason, (SELECT af.Value FROM additional af INNER JOIN additionalfield aff ON aff.ID = af.AdditionalFieldID WHERE af.LinkID = animal.ID AND aff.FieldName = 'FatalPlus') AS FatalPlus, (SELECT ab.Value FROM additional ab INNER JOIN additionalfield aff ON aff.ID = ab.AdditionalFieldID WHERE ab.LinkID = animal.ID AND aff.FieldName = 'Ketaset') AS KetaSet FROM animal INNER JOIN species s ON animal.SpeciesID = s.ID WHERE PutToSleep=1 AND DeceasedDate >= '$ASK DATE Enter date from$' AND DeceasedDate <= '$ASK DATE Enter date to$' ORDER BY DeceasedDate Notice I looking for two additional field values, one with a name of FatalPlus and the second named Ketaset. Be sure to modify to fit your query.


Customizing form style

@coleymarie80: 2018-02-02 18:07:45
Is there a way to customize the form heading and body fonts, size, color, spacing, etc?

@robinrt: 2018-02-02 18:16:24
I presume you're talking about online forms? If so, you can style them with CSS – put a <style> tag in the header of your form and you can declare your own CSS rules there. You can also edit the global header with “Edit Header/Footer” on the edit online forms screen, which also has a style tag in it and the default rules. If you aren't familiar with CSS there's more info here www.w3schools.com/css/


Mobile app - how to access media files?

@coleymarie80: 2018-02-02 13:44:55
When using the mobile app, I'm unable to access each individual animal's media tab...which is where we are storing their vet records.

@robinrt: 2018-02-02 14:20:10
Choose "Desktop/Tablet Interface" when logging into the app. It's below the password field. You can also point your mobile browser to m.sheltermanager.com and access them that way.


Exporting

@debh: 2018-02-01 20:21:41
Can I export data from our old computer to the new computer?

@robinrt: 2018-02-01 20:36:33
I guess you're using the old ASM 2? This page has an entry on how to move ASM 2 local data from one computer to another: http://sheltermanager.com/site/en_faq_asm2.html


Work type

@1gkwc6: 2018-01-31 10:30:48
I want to change one of the Rota reports to return results for "Type of Work" rather than "ROTATYPE". What is the fieldname for "Work Type"? I have tried WorkType and Work, but neither works.

@robinrt: 2018-01-31 11:09:56
WorkTypeID and it joins to lkworktype.ID - the readable field is lkworktype.WorkType The SQL editor will autocomplete field names for you if you press CTRL+SPACE while editing.


Time in location report missing from version

@sc5807: 2018-01-29 22:21:12
Hello, In the demo, there is a report titled "Time in Location" that can be downloaded from the ASM website. However, in our software (we use the ASM3 paid version), this report is not available. I attempted to copy the SQL and HTML code from the demo into our version as a new report, but when run, there were errors in the SQL code. How can I get this report on my version of ASM, or make a similar report with the same functionality (the entrance and exit date from a location within the shelter)?

@robinrt: 2018-01-30 09:53:17
Hi, I checked and it's still in the repository? It appears under Reports->Statistics, are you sure you don't already have it? There's an option you can turn on under Settings->Options->Defaults to have ASM write a message into the log every time an animal changes location. This report uses those log messages to figure out and display a location history for animals over a period.


Multiple Accounts

@mofoster: 2018-01-28 17:40:50
We have a rescue program for adoptable pets and a barn cat program (for ferals). Is it possible to have two separate accounts so we do not have to co-mingle our data?

@robinrt: 2018-01-28 20:37:09
Hi, yes, you could certainly do that but I'm not sure what the benefit would be? It's probably better to keep them all in one account and use different Animal Types to separate the programmes for figures reporting. I imagine you'd have the same person database, staff, volunteers, etc. It's also cheaper!


Export Reports as CSV

@1gkwc6: 2018-01-28 17:26:44
Exporting the "Rota between Two Dates by Person" report, omits the "Time" element from the STARTDATETIME and ENDDATETIME fields.

@robinrt: 2018-01-28 20:48:31
Thanks for reporting this. It's a fault in the CSV export, it removes times from all date fields. I've applied a fix for this now.


Mother of litter not showing

@kristin_bjerkaas: 2018-01-27 13:55:24
Hi, per today we are not able to see offspring of an animal. You can only see it by listing all litters. We have also noticed that litters are disappearing from the main list after some time. Is it possible to have this problem fixed? Regards Kristin, hz0586

@robinrt: 2018-01-27 15:43:43
Hi, as a customer you can email us directly for quicker support. Litters expire when all the animals have left the shelter or reach 6 months of age. Please email us at support@sheltermanager.com and give details of a litter with problems so we can take a look for you.


Moving wild animals

@kristin_bjerkaas: 2018-01-27 13:27:11
Hi, As we are helping wild animals, is it possible to make a moving type in the system for putting animals back to the wild/nature? Regards Kristin, hz0586

@robinrt: 2018-01-27 13:30:35
There should already be one - it's a movement type called "Released to wild"

@robinrt: 2018-01-27 13:34:03
In the Norwegian translation it's "Satt ut pa utekattstasjon". I don't speak Norwegian and have no idea what that means, but that's what "Released to Wild" has been translated as. Google says it means "Set out at the cattle station", but I'm not confident in Google Translate!

@kristin_bjerkaas: 2018-01-27 13:36:45
That's correct - "satt på utekattstasjon" means TNR - trap neuter return project.

@kristin_bjerkaas: 2018-01-27 13:45:15
I believe there's a lot of organisations out there doing TNR for cats/dogs and releasing animals back to the wild such as wild birds, so I hope you will consider make a moving type for both.

@robinrt: 2018-01-27 15:42:43
Hi, that is the type for both - it has been mistranslated. The system automatically turns a "Released to Wild" into TNR on figures reports if the animal being released is a cat.


Foster Book

@coleymarie80: 2018-01-26 21:31:24
I want to view all of my fosters in one location, even if they are not currently fostering an animal. Is there a way I can add someone to the Foster Book without linking them to an animal? Or is there a way I can run a search and have a list come up of all the people flagged "Fosterer?" So far my search come up without any results.

@robinrt: 2018-01-27 11:18:04
Search for “fosterers” in the box at the top, or use advanced find person search with fosterer flag – or use the “Fosterer” mode of shelter view (there's a dropdown at the top right of shelter view) – it shows all fosterers and not just the ones with animals right now. If you have capacities on it can show you which fosterers have space by highlighting them in green. If you prefer this view, you can make it the default for shelter view under Settings->Options->Shelterview.

@coleymarie80: 2018-01-29 14:08:05
Thank you!


Customize monthly figures report by location

@sc5807: 2018-01-26 20:32:45
Hello, I want to customize the monthly figures by species report but cannot figure out the right SQL code. We use ASM 3. At the top of the report, it shows the total number of animals in the entire shelter, with a subset for "In foster". Is it possible to show this total of animals by other locations within the shelter (e.g. "Adoptable Dogs", "Sick Bay", "Foster"), so we can see how the total number of animals in the shelter was divided across categories that day?

@sc5807: 2018-01-26 23:22:04
Alternative: how do I change the Monthly Figures by Species to group by shelter location instead of species.

@robinrt: 2018-01-27 11:19:11
It's not possible with that report. Generating figures is very intensive, so the system makes all the calculations as part of the overnight batch and caches total values. The report is based on these recorded values. I do like the idea though, I'll put it on our development list to expand in future.

@sc5807: 2018-01-27 15:40:27
Thanks very much--is it possible to just get a list or a separate figure of how many dogs were eligible for adoption each day of the month or in a particular area? We are using detailed inventory by day and compiling them by hand currently.


Neutering Vet Keyword?

@sjras: 2018-01-26 17:09:19
Have the TestAdministeringVet and VaccinationAdministeringVet, but I can't find a keyword to pull the info about which vet it was that performed the spay/neuter surgery? They're linked in the altered field, but no keyword. We tried NeuteredAdministeringVet and NeuterAdministeringVet before posting but didn't get anywhere. Any way to get this info?

@robinrt: 2018-01-26 17:21:14
They didn't exist. I've just added them to the sheltermanager.com installation now as <<NeuteringVet*>> (eg: <<NeuteringVetName>>. You can find details of all the NeuteringVet keys in the manual now at http://sheltermanager.com/repo/asm3_help/wordkeys.html

@sjras: 2018-01-26 17:31:57
Thank you!!! And BTW - coming from a non-hosted ASM for the past 10yrs to the hosted version can I just say WOW - you guys are amazing! The work you've put into this system & making it what we all need to function in this crazy animal world is beyond fabulous!


Importing CSV animal records file with a thumbnail image field? Is this possible

@turidkarratha: 2018-01-25 06:55:29

@robinrt: 2018-01-25 10:39:30
Yes. There's an ANIMALIMAGE import field that accepts an absolute URL to an image or a data URI containing the base64 encoded jpg image.


Server

@tommycondrey: 2018-01-24 19:32:43
At the present time we have a free service, If we did a paid service can we add our old data to the server?

@robinrt: 2018-01-24 19:34:22
Yes, we can import data from older (or current) versions of ASM. For older ASM2 installs, we'll need a copy of the localdb data files. For anything else, we'll need a mysqldump or pg_dump of the data. There's no charge to import data from self-hosted installs.

@tommycondrey: 2018-01-24 19:35:44
Thank you

@tommycondrey: 2018-01-29 16:49:42
Can you tell me where to send the copy of our files. Our Account is rz1626

@tommycondrey: 2018-01-29 19:10:40
Found it, I sent it to you via email


Animalview not as iframe popup?

@kg108: 2018-01-23 22:22:51
Right now it seems like the only options to view the individual animals information is either to a. open in a separate window with animalsheltermanager.com domain (out of our site) or b. iframe pop-up that does't have a unique URL. We want each animal on our site to have a unique Link so they can be posted and shared about on our social channels and for those interested. Is there another way to accomplish this, or would we have to take the API route? Our site is built on Drupal 8.

@robinrt: 2018-01-24 09:25:13
The separate window is a unique URL that you can use for that purpose. You can still use it even if you're using the iframe option (all it does is show that unique URL in the iframe). When you use iframe mode, the JS puts a click handler on all the animal thumbnails/links that overrides normal behaviour and loads the target in an iframe. You can still "Copy Link Location As" to get a link to the animalview page or paste it on facebook, etc.

@kg108: 2018-01-24 14:24:33
That makes sense, but then it takes people out of our website and branding and to the sheltermanager.com URL. So from an analytics standpoint it looks like users are bouncing from our site.


Links tab

@jduarte: 2018-01-22 09:00:03
Is there a report available that will return all person (owner) records that have linked records? i.e an entry on the "Links" tab. If not, any chance you could help with a select statement? Many thanks!


Accounts

@1gkwc6: 2018-01-19 15:52:10
When entering transactions we have noticed that although the entries are in date order they do not stay in the order being entered. For example if there are 10 transactions all with the same date, they appear in random order, they don't seem to be in any order, not Description, Account, Deposit or Withdrawal? It makes reconciliation extremely difficult.

@robinrt: 2018-01-19 16:28:19
Thanks for raising this. If you're using sheltermanager.com, I've added a secondary sort on database sequence now so they'll stay in the order entered for each day. If not, the patch is on github for fixing financial.py


Multi-level entry field for colors

@mketcham: 2018-01-19 06:45:36
Is it possible to have a multi-level entry for colors? I want to reduce the number of selections to choose from when entering an animal so it is quicker for most cats but can get down to the detail for others, especially for tabbies. For example, to input a ginger and white tabby with a bullseye classic pattern, I'd like to put: 1. Color scheme: Tabby and white 2. Base Color: Ginger 3. Variety: Classic But if I have a black cat, I just want to choose black. Another multi-level might be: 1. Color scheme: Tortoiseshell 2. Base color: Black, chocolate, brown, etc. 3. Variety: none or dilute

@robinrt: 2018-01-19 09:41:27
There's nothing to stop you using the existing color field as your scheme and adding additional fields for base color and variety.


2nd intake of same animal

@618animalcontrol: 2018-01-18 21:32:01
Hello: We are attempting to add an animal back into the facility that has been picked up and returned to owner once already. How can I do this without creating a new animal and retain statistical information?

@robinrt: 2018-01-19 09:42:06
http://sheltermanager.com/repo/asm3_help/faq.html#how-do-i-bring-an-animal-back-to-the-shelter-after-adoption-transfer-or-fostering

@vsauder: 2018-01-30 21:27:28
As another animal control agency I would love to have the ability to enter more information for these transactions (return to shelter), such as the finder of the animal if a stray, stray hold, pickup location, etc. Basically the same information as the entry field. Is this something that is in the works?

@robinrt: 2018-02-01 20:38:11
Yes, it is in the longer term. For now, you should be returning the previous reclaim movement. A return type of Stray can be chosen (if appropriate) and there's a "Returned By" field where you can set the person who brought the animal back to the shelter. The hold fields on the entry slider can be set again for a new hold.

@vsauder: 2018-02-02 19:24:00
We are not currently hosted on your site. We do not have the "returned by" field. Did we miss an update or has this not been released yet?

@robinrt: 2018-02-04 16:57:15
It's in release 40, which was released on Friday.

@vsauder: 2018-02-05 13:09:49
Wonderful! Thanks.


Petestablsihed

@crystalcoan: 2018-01-18 18:47:34
Anyone important all data from Petestablsihed?


Customizing

@apearce: 2018-01-16 22:23:13
Is there a way we can completely disable the Lost and Found and Animal Control sections of the software? We are a small shelter, and we would not use those sections if we were to buy the data manager. From the demo, the product looks great! Also, can we add additional options to drop down menus? For instance, categories of different types of donations (bake sale, gift shop, calendar fundraiser, etc).

@robinrt: 2018-01-17 10:34:47
Yes - you can disable those areas under Settings->Options->Remove. You can customise all the dropdowns and payment types under Settings->Lookup Data. Access to the options screen is locked in the demo to prevent people breaking it for others.


adoption without person

@mketcham: 2018-01-12 23:55:24
Is it possible to move an animal to adoption without attaching a person?

@robinrt: 2018-01-13 18:47:25
No. Most people get around this by creating a person called "Unknown Person" to assign those adoptions to.

@mketcham: 2018-01-13 20:08:48
Thanks. I can do that.


Customisation

@brockswood: 2018-01-11 10:00:15
How customizable is the full software? We are currently using the open source version of Shelter Manager for our small farm sanctuary, and although we can tailor some of the input values, they still show up when generating print-outs etc. For example things like "Good with Dogs?" are of no use to us with our animals, so could do with not being an option at all and would be nice to completely tailor the software / forms. Just double checking we can do things like this before we dive in and buy the software?

@robinrt: 2018-01-11 19:42:51
It's very customisable, the good with fields can be disabled and you can add your own fields to replace them. All forms, documents and reports are editable, most things can be disabled, your own flags, fields and dropdowns can be modified, etc.

@tmc210: 2019-07-24 01:14:32
How do you do this and make the new fields web facing?

@robinrt: 2019-07-24 09:25:44
Remove them with option under Settings->Options->Remove. Then, add new appropriate fields if you want under Settings->Additional Fields. Your additional fields can be used in the web publishing templates and accessed as $$FIELDNAME$$


Adding up totals in a document

@jones1474: 2018-01-10 01:49:29
I am trying to perform simple addition for specific totals for an invoice document. I know there is a TotalCosts keyword, but there costs I do not wish to add to my calculations. So how can I get the sum total for <<TotalMedicalCost>> + <<TotalTestCost>>+<<TotalVaccinationCosts>>

@robinrt: 2018-01-10 11:20:16
Sorry, the tokens aren't that sophisticated and only do replacement for known values. They don't support expressions or arithmetic.


Webhook on actions?

@jaylyerly: 2018-01-07 23:08:23
Is there any support (or planned support) for web hooks on actions? In particular, I'd like to connect our ASM3 installation with our Slack instance. I'd like to automatically post in Slack when something like a movement occurs so that our rescue group can easily be notified when an animal is taken in/fostered/adopted and so on.

@robinrt: 2018-01-08 12:46:18
Hi, I'm afraid the answer is no and no. You can access an RSS feed of the timeline through the service API though. I don't know whether Slack supports it, but many third party services do support events via RSS.

@jaylyerly: 2018-01-09 19:13:56
The RSS feed looks like it will fit the bill. There's an RSS adapter for Slack that should ingest the feed. Thanks! Looking at our feed, I'm seeing an extra slash between the URL host and the path, like http://www.foo.com//bar. It seems to be breaking the links. I'm sure I've misconfigured something with an extra trailing slash, but I can't locate that setting. Any pointers?

@robinrt: 2018-01-10 11:20:50
I'd look at BASE_URL and SERVICE_URL in your sitedefs.py file - they shouldn't have a trailing slash.

@jaylyerly: 2018-01-10 14:42:11
Hmmm.... no trailing slash on either of those. BASE_URL = "http://localhost:5000" SERVICE_URL = BASE_URL + "/service" I'm running shelter manager behind an nginx proxy, which is handling SSL. The only place I can find that I've actually specified the host name is in the nginx config's 'server_name' parameter. Is shelter manager using that to build URLs? If not, I'm not sure where it's picking up the hostname from. The hostname for this install is sheltermanager.trianglerabbits.org. Grepping through the python files for trianglerabbits didn't return any hits. I poked a bit at the database as well and didn't find any configuration for the base url. Any other hints? Thanks.

@robinrt: 2018-01-12 15:57:05
nginx is not visible to ASM since it's fronting it. Looking at the relevant sections of code (html.timeline_rss and html.rss_item) just BASE_URL is used and I don't see anywhere a double slash could creep in. Very odd.

@jaylyerly: 2018-01-13 14:44:37
I've seen some web apps that use information in the headers that nginx passes to do things like figure out what URL was used to access the site from the outside. Just wondering if that was going on here. But good news! I found the problem. I was looking at the wrong config file -- not the live file -- and there was the trailing slash on BASE_URL. Sorry for the noise and thanks so much for your help and patience. Much appreciated.


Translation Read-Only

@ivod: 2017-12-29 16:50:16
Hello guys, can someone help with info for the translation In the ZANATA it says that the project version 40 is Read-Only and I cannot find 39

@robinrt: 2017-12-29 17:15:04
39 doesn't exist. Which language is it? We have to grant permission to users to work on translations.

@ivod: 2017-12-29 17:19:04
It is for the Bulgarian version. My user is "ivozen". I've translated previous version to 100% :)

@ivod: 2017-12-30 10:01:33
Is something else needed to grant permission?

@robinrt: 2017-12-30 10:23:32
Hi, I've added you now. It seems to be how Zanata operates. Thank you for your work!


Medical regimens & vaccinations after adoption

@heyjay: 2017-12-28 19:14:30
Medical staff in the shelter clinic is adding booster vaccinations and treatments for animals in case the animals are still at the shelter when they become due again. Is there any way for scheduled vaccinations and treatments to be automatically set as Inactive or Completed when the animal has an adoption movement? If not, what's the best way to handle this? (Once animals are adopted, the new owner is expected to take them to their own veterinarian for further treatment/vaccinations.)

@robinrt: 2017-12-29 17:16:10
This is the default behaviour - reminders and reports should only show on shelter animals. Did you turn on the option Settings->Options->Defaults->Include off-shelter animals in medical books and calendars?

@heyjay: 2017-12-29 20:47:37
I did turn it on. Hmm. There are instances when non-shelter animals come in for medical treatments, so I guess it just depends on the animal (whether or not we need them to show in the medical calendar). I don't suppose there is a movement to use or a way to put a non-shelter animal in a location (for example, if I create a "clinic" location) while they're on site temporarily for treatment?


Change currency symbol from $ to ksh

@danhongo: 2017-12-26 17:45:59

@danhongo: 2017-12-26 17:46:51
How can I change the default $ to ksh on my asm install?

@robinrt: 2017-12-26 20:54:13
it needs adding as part of the locale declaration in i18n.py. Where is KSH the currency of?

@danhongo: 2017-12-27 06:43:23
Kenya

@danhongo: 2017-12-27 06:51:44
Time Zone = GMT+3

@danhongo: 2017-12-27 06:52:17
East Africa Time Zone ( EAT )

@danhongo: 2017-12-27 06:59:17
The three letter currency code for the Kenyan shilling is KES and the symbol is KSh


AgeGroup field

@grahamparsons: 2017-12-25 22:42:17
Hi, Any idea why the 'AgeGroup' field in the animal table is empty for all animals? Running 3.9 on our own server. I was expecting to see 'Baby (Under 6 months)' or similar, but they're all empty?

@robinrt: 2017-12-26 20:55:10
Either you aren't running the batch via the cron.py script, or you've got invalid age group values (or both). The age group value should be a floating point number for the upper bound of the age. Eg: 0.5 for baby, 1 for juvenile, etc.


Adoptable Animals Report problem (Good With - dogs,cats,children)

@kayde1: 2017-12-20 16:02:31
Under good with cats,children, dogs I have noticed that the report only generates a yes and no... if a specific animal is in the "unknown" catergory the report defaults to no.. Below is the current text, what needs to be done differently to fix this issue and show "unknown" case when a.IsGoodWithCats = 0 then 'Yes' else 'No' end as IsGoodWithCatsName, case when a.IsGoodWithDogs = 0 then 'Yes' else 'No' end as IsGoodWithDogsName, case when a.IsGoodWithChildren = 0 then 'Yes' else 'No' end as IsGoodWithChildrenName,

@robinrt: 2017-12-20 17:31:52
(SELECT Name FROM lksynun WHERE ID = IsGoodWithCats) AS IsGoodWithCatsName, (SELECT Name FROM lksynun WHERE ID = IsGoodWithDogs) AS IsGoodWithDogsName, (SELECT Name FROM lksynun WHERE ID = IsGoodWithChildren) AS IsGoodWithChildrenName,

@kayde1: 2017-12-20 17:40:19
Replacing the lines above with the new lines gives an error "syntax error at or near "from" LINE 10: from animal a ^"

@robinrt: 2017-12-20 17:54:06
I updated that report in the repository too. If you delete it under Settings->Reports, then reinstall it with the Browse sheltermanager.com button you should get the change.

@kayde1: 2017-12-20 18:44:36
Got it. Thank you


Is the server slow?

@djsteven: 2017-12-18 18:31:31
Hi Robin, the people here said they have some issues about page speed on the system, this started happening since 4 days ago (more or less). The main issue they have is when apply multiple bulk regimen, the system gets stuck and they need to close and open again the page. They are able to do 1 or 2 bulk regimen (slow) And when they want to add more the system freeze.

@robinrt: 2017-12-18 18:40:09
Hi, which server is it?

@djsteven: 2017-12-18 20:07:27
https://us6.sheltermanager.com/

@robinrt: 2017-12-19 13:33:57
Thanks, I'll keep an eye on it today and have a look at resource usage history to see if there are any usage spikes/slowdown.

@djsteven: 2017-12-19 14:04:35
Thanks buddy!


Movement Types

@heyjay: 2017-12-16 03:29:39
Is there somewhere in a Lookup Table to add a movement type? I'd like to have one for when a previously adopted animal comes back into the shelter as a stray.

@robinrt: 2017-12-16 10:59:57
There isn't a way to add movement types. To return a previously adopted animal as a stray, go to the animal's previous adoption on the Movement tab, edit it and set the Return Date. When you set the date, fields will appear for return category, etc. You can choose "Stray" for the return reason.

@heyjay: 2017-12-18 15:12:16
Ok, thanks!

@mketcham: 2018-03-31 04:32:27
Have you considered the option to add other movement types? I realize that would be a monumental undertaking, but we have one type that doesn't quite fit in any of the categories.

@robinrt: 2018-03-31 08:35:22
What's the type? In many cases finer-grained categorisation of figures can be done through other means (animal flags, entry categories, etc)

@mketcham: 2018-03-31 21:37:33
We do a lot of TNR work. Sometimes when we are fixing a colony we will also fix a companion cat for the caretaker of the colony. They are brought in under the TNR program but when they return they go back to their owner. Therefore the "release to wild" doesn't work. I considered using "reclaimed" as the movement type but that is not quite accurate, because they were never lost, and I do not want to confuse them with those that actually were reclaimed.

@robinrt: 2018-03-31 22:06:23
The system already uses released to wild movements on cats to record a TNR on all figures reports.

@mketcham: 2018-03-31 23:02:25
Okay. I actually don't record TNR as the Entry Reason. I use a reason I added called "Companion".

@lialang: 2018-05-13 02:01:58
I am having the same issue, not sure how to classify it as companion as it is not Released to Wild. I thought I could add a movement but you cannot. Did you ever get this resolved?

@robinrt: 2018-05-13 15:02:28
Reclaimed is the correct solution - reclaim is a return to original owner regardless of entry circumstances.


Intake Date

@kitten_division: 2017-12-15 07:04:08
We offer clinic services to the public and track the pet information in ASM along with our shelter animals, utilizing the non-shelter flag. I would like to be able to enter the owner and pet information at the time they sign up for the services, yet mark the intake date as the date they are scheduled to bring in for services. It appears that this cannot be done ahead of time and is very frustrating, ASM will not allow me to add an intake date that is in the future. When we have 20-30 public animals scheduled for clinic, that makes for a lot of paperwork to be done on clinic day when it could have otherwise been done at the time of scheduling.

@robinrt: 2017-12-15 09:20:16
Hi, using intake date would be very unreliable and does not allow for repeat appointments. I'd recommend you book appointments using the diary tab of the animal or person record. You could even create a "Clinic" role to assign those diary notes to and make only the staff who run the clinic members so only they see the appointments. You can then run reports for who is coming in for the week and diary notes appear on the home page as reminders. They can also have times assigned and you can use the diary calendar in day mode to see all the appointments each day.

@robinrt: 2017-12-15 09:24:02
Intake date should not even be appearing for non-shelter animals that are not template animals.

@kitten_division: 2017-12-15 09:28:42
[Screenshot (1590)](//muut.com/u/sheltermanager/s1/:sheltermanager:W9he:screenshot1590.png.jpg)

@kitten_division: 2017-12-15 09:35:31
Adding an appointment under the person record diary tab does not allow for an animal to show up on the clinic schedule. I can't add an animal in advance to place anything in the animal diary tab and nothing is actually needed there, the data is needed under vaccinations, tests and medical tabs so the clinic report shows what procedures that animal is to have. In our case, times are not needed. All public animals for clinic come in the evening before and spend the night so they are ready for the spay clinic the next day.

@robinrt: 2017-12-15 11:49:16
I've had a look at your data, and it seems you've got some Clinic specific reports (I guess we made them for you at some point?). They're all keyed on the medical regimen start date and show treatment/regimen info, so you should be able to set the start date of the medical and due/required date of vaccinations to the visit date. I don't understand the not being able to add an animal in advance - isn't that what you're already doing? It's just that the intake date should be ignored (it now disappears from non-shelter animals as it should never have been there) and the regimen start date should be what you were setting the intake date to previously. Have I misunderstood?


shelteranimalscount.org matrix Report

@kitten_division: 2017-12-15 06:54:03
I just signed up to send data to ShelterAnimalCount, ran the report and found that the ASM report does not calculate the numbers correctly.

@kitten_division: 2017-12-15 07:08:43
[Screenshot (1588)](//muut.com/u/sheltermanager/s2/:sheltermanager:IpfX:screenshot1588.png.jpg) Ending animal count, assuming the numbers in the individual boxes in the report are correct, should be 39 and 54 for a total of 93, that is 13 animals off.

@kitten_division: 2017-12-15 08:42:21
Alright, ran the in/out report for the same time period and cannot determine where the numbers are coming from that are on the shelteranimalscount report. January 2017 total intake from all types was only 32 per in/out, yet shelteranimalscount shows 45. I ran the same two reports for February 2017, the in/out report shows 34 intake from all types while shelteranimalscount report shows 39. I could attempt to calculate the numbers myself using the in/out report, however that will prove to be very frustrating as well since the in/out report shows the age at the time of adoption, not the time of intake, making it necessary to view each animals record to determine their age at intake to know which age bracket to place them in on the shelteranimalscount report.

@candidhominid: 2017-12-17 15:48:18
1) Animals age over the period of a month, so you can't expect the columns to sum the way you might initially expect. Some cats who start in the under 5 months category in the beginning counts, will end up in the adult category by the end counts. To check the accuracy of the report, just worry about the overall counts (all ages combined). In our version of the report, I added a third column for the counts including all ages. 2) Counting the cats in the way described above, I'm only seeing a discrepancy of 3 cats in your report. There are many things that could be causing this. One trick is to run the report for shorter time frames until you find one where it is accurate, then start expanding the time frame. For example: If the report is accurate for 1-1-17 to 1-20-17 but not accurate for 1-1-17-17 to 1-21-17, there's probably something that happened on 1-21-17 that is throwing the counts off. 3) It's been a little while since I customized this report to get accurate counts for our shelter, but I think there is an issue with the logic of the default report. By defaul t, the beginning counts are including/counting all of that days movements. To get the columns to sum in the way you would expect, I think the beginning counts should NOT include/count all of that days movements. In other words, they should represent the counts at the start of the selected day (or end of the previous day). Problem in a nutshell: If the beginning counts include/count all of that days movements, when you sum the columns you end up adding or subtracting movements that have already been added or subtracted (to the beginning counts). So, if five cats were adopted 1-1-17, and you subtract them from the beginning counts, you are subtracting cats that were already subtracted, thus throwing off your numbers. To fix this, the code needs to be edited. In the beginning counts --- '$@from$' --- Should change to --- ('$@from$ 23:59:59'::date - INTERVAL '1 day') --- Using AdultCatBeginning as an example: --- NOT EXISTS (SELECT MovementDate FROM adoption WHERE MovementDate < '$@from$' AND (ReturnDate Is Null OR ReturnDate >= '$@from$') AND MovementType NOT IN (2,8) AND AnimalID = animal.ID) AND DateBroughtIn < '$@from$' AND NonShelterAnimal = 0 AND SpeciesID = 2 AND DateOfBirth < DateBroughtIn - INTERVAL '5 months' AND (DeceasedDate Is Null OR DeceasedDate >= '$@from$')) AS AdultCatBeginning, --- Should change to --- NOT EXISTS (SELECT MovementDate FROM adoption WHERE MovementDate < ('$@from$ 23:59:59'::date - INTERVAL '1 day')AND (ReturnDate Is Null OR ReturnDate >= ('$@from$ 23:59:59'::date - INTERVAL '1 day')) AND MovementType NOT IN (2,8) AND AnimalID = animal.ID) AND DateBroughtIn < ('$@from$ 23:59:59'::date - INTERVAL '1 day') AND NonShelterAnimal = 0 AND SpeciesID = 2 AND DateOfBirth < DateBroughtIn - INTERVAL '5 months' AND (DeceasedDate Is Null OR DeceasedDate >= ('$@from$ 23:59:59'::date - INTERVAL '1 day'))) AS AdultCatBeginning, ---

@robinrt: 2017-12-17 17:32:42
Thanks, that's a very good answer on how to find discrepancies. For beginning counts, movements on the first day should not count and as far as I can tell don't in the default report - however this is a report that has been fixed quite a few times, so it may be the version you started with had this bug. I've updated kitten division's version of the report, so hopefully that should have cleared the discrepancy.

@robinrt: 2017-12-18 18:40:58
For reference, I've just found and fixed a bug in this report. Surrender intakes were being multiple counted. The report is fixed in the repository now.

@vsauder: 2018-06-14 15:43:37
With this report I am experiencing discrepancies with shelter euthanasia and owner requested euthanasia. This is likely due to how we may be entering these animals. Can you tell me where the numbers for owner intended euthanasia's are being pulled from?

@candidhominid: 2018-06-15 19:14:02
Looking at the code, it seems that a euthanasia is "Owner Intended" when an particular Asilomar field under the deceased slider is checked. (Our shelter does not use Asilomar. We have checked the option to "remove the Asilomar fields from the entry/deceased sections".) It seems that a euthanasia is "Shelter Euthanasia" when this particular Asilomar field is not checked (or not used at all like my shelter).

@vsauder: 2018-06-15 19:16:08
That makes sense. We are not using the Asilomar fields either. Thanks!


Search in name title only

@seanspade: 2017-12-14 13:35:02
Curious, When I search a cat named Spot. Even with the filter a:spot it of course returns a search result with every cat in the shelter that has spot in it's description. IS there a filter I can implement to search name field only?

@robinrt: 2017-12-14 17:15:48
Sure, go to ASM->Find Animal, then click "Advanced" - you can search the name field specifically there.


animal not in location filter/site

@janetgrma: 2017-12-14 01:08:06
Why is it saying this and won't let us into the animals details? animal not in location filter/site

@robinrt: 2017-12-14 09:49:26
http://sheltermanager.com/repo/asm3_help/faq.html#why-am-i-seeing-animal-not-in-location-filter-site-when-i-open-a-record


Donation/Payment Thank you tracking

@kksnyder23: 2017-12-12 17:48:38
We have just started utilizing the payment tracking for donations and was wondering if there was a way to enter date Thank you note was sent, other than entering in the comments. Also, it would be great to have a way to enter goods donations (they have a value) as an option under payments instead of a log so you can search for a list of donors by recent dates of giving. Any suggestions or would this be a request for a future update? Thanks so much!

@robinrt: 2017-12-12 18:12:16
You could use the log to record sending of thank you notes, but there isn't a way to link that with the donation/payment. Most people have a different payment type for in-kind or goods donations so that they can be separated on reports if you want to assign values - but many don't bother assigning a value, they just have an in-kind donation of $0 with the comments detailing the goods for records.


Addition of Flu Vaccine for dogs

@bethbarkman: 2017-12-09 18:07:45
Since the canine flu is becoming more prevalent, our shelter is automatically giving all of our dogs the flu vaccine. Is there a way this can be added to the screen showing the various vaccines?

@robinrt: 2017-12-09 18:21:40
If you're talking about the vaccination types, yes - Settings->Lookup Data->Vaccination Types. If you mean you want all new animals to have a due flu vaccine, then you can use Template Animals to make that happen. See: https://sheltermanager.com/repo/asm3_help/animals.html#template-animals

@robinrt: 2017-12-09 18:22:21
Oh, and if you mean you'd like to bulk vaccinate all dogs on the shelter (or many of them in one go), use Medical->Vaccination Book, followed by the "Bulk Vaccination" button.


Could you please provide us installation guide for CENTOS?

@karthikeyan2286: 2017-12-09 15:59:58
We are only seeing the instructions for ASM 3.X Series installation process in linux servers is based on Debian. Could you please guide us for centOS?

@robinrt: 2017-12-09 16:14:16
While we're most familiar with Debian, the README should cover what dependencies you'll need to install from your distribution: https://github.com/bobintetley/asm3/blob/master/README.md

@karthikeyan2286: 2017-12-09 16:46:47
If possible kindly provide the steps to install from the src/ folder for the rpm based Linux.

@robinrt: 2017-12-09 17:24:34
Sorry, we don't know what those steps are exactly as we don't have any recent experience of CentOS. I imagine you'd use yum to install native dependencies like the Python interpreter, Apache and imagemagick, then you'd probably need to install pip and use that to install the Python deps. I'm sure others out there are using CentOS and may be able to help, but I'm afraid we can't with that. Sorry.


Bug when search in hebrew (1)

@djsteven: 2017-12-04 17:20:02
Hi Robin, there is a small bug, sometimes when the people search in hebrew like this word אנג'ל the small sign appear ` instead ' and because of this doesnt show the animal, here is a screenshot of the issue https://muut.com/u/sheltermanager/s2/:sheltermanager:xeCV:bug_shelter_manager.png.jpg

@robinrt: 2017-12-06 18:47:49
Thanks, I think the fault is not that the apostrophe is switched to backtick, but that the database is not storing some apostrophes escaped as backticks any more. There's a lot of old, compatible code relying on that escaping. I've applied a fix for it now, but it will not fix your existing data. Re-saving existing animal records with the value will fix it for the future. Thank you for reporting this.

@djsteven: 2017-12-18 18:19:35
Thanks!


Animal Specific Test in "Add this text to all animal descriptions"

@mtmcgurn: 2017-12-01 22:48:14
Hi, I was wonder if it was possible to put animal specific text using token or keywords in the "Add this text to all animal descriptions". We would like to put a custom animal url in each link. Thanks.

@robinrt: 2017-12-02 09:22:52
It's not, no. We don't generally advise including HTML or links in that text as PetFinder, AdoptAPet and other services will mangle or strip it before putting it on their websites anyway. That means the only thing links would work correctly for is websites generated by ASM and you can add custom links within the HTML/FTP template or javascript include without the need to put it in bio footer!


Medical calendar

@heyjay: 2017-11-22 19:29:37
I see in the day view of the medical calendar that times are listed, but I can't figure out how to assign a time to a vaccination or medical regimen (for an appointment). Is this possible? [Capture](//muut.com/u/sheltermanager/s1/:sheltermanager:JhxB:capture.png.jpg)

@candidhominid: 2017-11-22 21:24:52
Vaccines and medical treatments do not have a time field. (I do think it would be helpful if vaccines had times because vaccines are often appointments for fosterers.) What we do is add the time to the vaccine's comment field. When you move your mouse over the vaccine in the diary, the comment appears.

@candidhominid: 2017-11-22 21:27:34
You could consider adding appointments as diaries. Diaries do have a time field that will be recognized by the calendar.

@heyjay: 2017-11-26 01:03:03
Thanks for the suggestions!


Bug when search in hebrew

@djsteven: 2017-11-21 17:41:22
Hi Robin, there is a small bug, sometimes when the people search in hebrew like this word אנג'ל the small sign appear ` instead ' and because of this doesnt show the animal, here is a screenshot of the issue [Bug_shelter_manager](//muut.com/u/sheltermanager/s2/:sheltermanager:xeCV:bug_shelter_manager.png.jpg)

@djsteven: 2017-11-28 18:33:00
Hi any news?


Cage/Inventory Tracking

@mtmcgurn: 2017-11-17 00:48:02
Hi, So we have been using ASM with trap loans to track where cages and other expensive items are. However, this method does not provide a history of movements and doesn't provide a database item for the inventory item. We would like permanent item for each where we could add a description and upload photos. Is this possible? We were thinking about create a new animal species for inventory? Is there a way to prevent this from showing up in reports? Thanks, Matt

@robinrt: 2017-11-17 09:45:12
The trap loans record who borrowed an item and when, along with when they returned it. The idea was that since you'd be getting the thing to lend out of a room somewhere you'd know whether or not you had one to lend, so we didn't need to deal with stock management (although you could use stock control under Financial->Stock for physical movements and levels if you wanted?). Effectively, you get the thing, then book it out with a trap loan so you know that you lent it and can then see what you haven't had back yet on the trap loans screen. I think trying to turn items of equipment into animals so you can move them is probably overkill. What problem are you trying to solve and what is not covered by the existing functionality?

@mtmcgurn: 2017-11-22 16:24:29
The probably for us being a foster based organization is that we don't have a central storage location. I have some in my garage, but so do most of coordinators. So cages often go from one persons house to another. We also have a bunch of different types of cages and it would great to link images and flags to each crate.


Can a report be constructed such that it has multiple sorting options?

@dbaux: 2017-11-13 19:38:48
Can reports have multiple sort criteria, ie, one user wants to sort on FieldA, another user wants to sort on FieldB. Similar in functionality to the "Find Animal" results, where you can click on a column heading for sorting.

@robinrt: 2017-11-13 20:00:07
In a word, no. The simple solution is to have multiple versions of the report with different sorts.

@dbaux: 2017-11-13 20:20:49
That's what I thought, just wanted to verify. Thanks for the quick answer!


microchip info when animal is returned

@bmay1439: 2017-11-06 23:03:24
When an animal is returned does the microchip when published does the microchip automatically go back into the rescue name and take off the adopter name ?

@robinrt: 2017-11-07 08:46:49
It does if you have "Intake" in the list of "Register microchip after" under Publishing->Set Publishing Options->All Publishers. Otherwise no, it won't be re-registered until the animal leaves the shelter again. Most chipping registries automatically have the shelter as a second contact if the shelter registered the chip the first time so it's not always necessary.

@bmay1439: 2017-11-07 14:25:40
If intake is marked, will it reregister if animal is marked "returned" under movements or will we need to make a new movement of reclaimed

@robinrt: 2017-11-07 14:32:48
It will re-register if the animal is returned to the shelter from any kind of exit movement.


Backup and restore

@cksdrvolunteer: 2017-11-05 20:13:56
I am helping a rescue automate the loading of donation information. Before I test the data file I intend to import with Import Paypal CSV, I'd like to backup all of the data in case something goes wrong during the test, as it invariably does. Is there a way to do that? If so, how is the process initiated and how would I initiate a restore, if needed? If a backup/restore procedure isn't available, is there a way for me to test my script in a separate environment? Please advise. Thanks.

@robinrt: 2017-11-06 13:21:03
You can remove imported PayPal data with two queries, run at Settings->SQL Interface DELETE FROM owner WHERE CreatedBy = 'import' AND CreatedDate >= '2017-11-06'; DELETE FROM ownerdonation WHERE CreatedBy = 'import' AND CreatedDate >= '2017-11-06'; Change the date in the queries to the date you ran the import. They remove any people or payments added by the importer on the date you set. If you needed to do a backup or restore for another reason, then if you have a self-hosted install, you can use your standard database backup and restore tools to do that (eg: mysqldump). For sheltermanager accounts, we take regular backups for you and you can request that we roll databases back to any point in time up to the beginning of the week if needed or further than that to any weekly snapshot going back up to a month.


Location Filters not working correctly

@magsr: 2017-10-31 11:52:48
Recent change in Shelter Manager software is now preventing users who have location filters to not be able to view dogs who have been adopted and moved off of shelter (but they have been able to view them up until yesterday). Shelter Manager customer support has not been very helpful and keeps punting the issue to how we have things set up (which is how they told us to last year when they changed something else on location filters). I want users to be restricted to only see certain locations in the shelter and to be able to see adopted dogs (if given permission) after adopted. NOTHING has changed on our side to our setup or process and all of the sudden, this setup is now preventing users from seeing our adopted dogs.

@robinrt: 2017-10-31 15:57:09
Replied directly, but leaving this info here for other users: If you are using location filters, the special "Adoption" location filter item (formerly Trial Adoption) is required on user accounts to view adopted animal information. The fact that it wasn't working before and allowed adopted animals to be seen by users without it as part of their location filter was a bug that was fixed recently.


Internal Server Error When Clicking on Animals in Foster

@pembina: 2017-10-28 20:08:02
I am getting an internal server error whenever I try and go to a fostered animals info

@robinrt: 2017-10-29 07:55:07
Ok, I'm not seeing that in our test database. Could you email your account number, which record is failing and what screen you're opening that record from to us at support@sheltermanager.com


Animal ages and time on shelter not updating

@achmark: 2017-10-27 00:28:27
We are seeing that the animals we are adding are not getting their time on shelter updated or their actual age. Where can we check as to why this is failing?

@achmark: 2017-10-27 00:31:56
[Sterling_4_-_1029_Unknown_Cat_aged_1_week](//muut.com/u/sheltermanager/s3/:sheltermanager:BCg2:sterling_4__1029_unknown_cat_aged_1_week.png.jpg)

@robinrt: 2017-10-27 09:16:47
They don't update for animals who have left the shelter. It's to save on batch processing time, do you have "treat foster animals as on shelter" turned off under Settings->Options->Movements ?

@achmark: 2017-10-27 10:42:17
" Treat foster animals as part of the shelter inventory" is checked. These are new kittens so should be updating, they are still with us. [Screen Shot 2017-10-27 at 05](//muut.com/u/sheltermanager/s2/:sheltermanager:V2jp:screenshot20171027at05.41.57.png.jpg)

@robinrt: 2017-10-27 13:55:20
Since it looks like a hosted account, could you email your account number to us at support@sheltermanager.com so we can investigate? Thanks

@achmark: 2017-10-29 12:41:18
It is not hosted, we are running locally right now. I can assist with any queries or logs though. We plan on hosting once we have all our data imported and stable

@robinrt: 2017-10-30 08:39:26
Ok, if it's a locally hosted install, are you running the nightly batch via cron? You need to call the cron.py script with "all" as a parameter to make sure animal locations and ages are updated each night. If you used the debian package, it installs a script in cron.d to call cron.py

@achmark: 2017-11-02 12:21:59
Thanks, I will try this. Running on CentOS 7. Must have missed that in the install.


Staff \ People Photo's

@colewalker: 2017-10-19 11:56:19
Is there a way to change the no photo available for people to actual pictures?

@robinrt: 2017-10-19 15:37:36
Sure - upload a photo of them on the media tab of their person record.


Our shelter had a fire in March and our PetWhere computer has a fatal error. We

@annwcahs: 2017-10-17 21:10:27
Are wanting to upgrade to Shelter Manager. We backed up our computer 2 weeks before the fire. Would the files you need to merge PetWhere be included in the backup disks?

@robinrt: 2017-10-18 09:18:09
Fingers crossed they are! We'd need the PetWhere data directory that contains the files ending with .DBF (and there may be some .FPT and .CDX files too). If you have those, we should be able to import them into an online account for you.


Wordkeys

@heyjay: 2017-10-17 13:47:48
Hi, I'm working on a document template that includes vaccinations, medical treatments, and tests for an animal. I've looked through the list of Wordkeys but haven't been able to find the one for medical administering vet name, and the Wordkey for medical comments (MedicalComments) doesn't seem to be working. Any ideas? Thanks.

@heyjay: 2017-10-17 14:27:37
Disregard. I see that info is included in a Report, so the document template is not needed.


Bug Changing Main photo of an animal

@djsteven: 2017-10-12 22:35:39
Hi Robin, I tried to put a photo as main profile but looks like there is a bug Can you see this video https://www.screencast.com/t/zbqBwQI5 Cheers

@robinrt: 2017-10-13 08:54:44
Sorry, I can't view it as I don't have Flash. Could you describe the issue? Thanks

@djsteven: 2017-10-13 17:52:34
[Bug_shelter](//muut.com/u/sheltermanager/s2/:sheltermanager:jYrL:bug_shelter.png.jpg)

@djsteven: 2017-10-13 17:52:53
I hope this picture will explain the issue about changing main photo

@robinrt: 2017-10-13 18:10:32
Hi, it sounds like a browser cache issue. If you press CTRL+R does that fix it?

@djsteven: 2017-10-13 18:13:00
I cleaned cache, also used incognito mode, but none of them works

@djsteven: 2017-10-18 16:39:27
Can u do a test to see?

@djsteven: 2017-10-19 21:55:39
Now the issue is when you add new media, automatically changed as main photo

@robinrt: 2017-10-20 09:09:03
Thankfully no-one else seems to be having this issue. Could you send your account number over to me at support@sheltermanager.com and I'll see if I can recreate and figure out what's going on. Thanks.

@djsteven: 2017-10-20 16:08:22
Thanks i will


Housetrained

@debwilton: 2017-10-12 16:53:27
How do I mark that a dog is housetrained so that it prints on the kennel card

@robinrt: 2017-10-12 18:22:50
It should be under the Notes slider on the dog's record. If you don't see it, it might be because you have those fields turned off under Settings->Options->Remove.


Would it be possible to leave the animal name blank?

@margagomis: 2017-10-12 15:27:41
When animals come in the center, we normally don't give them a name but a code. We only enter animal names if they are surrendered. Is it possible to leave that field blank?

@robinrt: 2017-10-12 16:37:56
It's not possible. Some people put the code in the name field as well, others just put the word "unknown" and there is also the random name assigner to choose a random name for them.


Date brought in

@srupe05: 2017-10-04 22:17:58
I thought I saw recently that the date brought in was changed so it couldn't be in so far into the future. Our shelter creates non-shelter animal records in ASM for our spay/neuter clinic. We like to have the date brought in match with the scheduled surgery date.

@robinrt: 2017-10-10 15:12:41
That's correct, it can't be more than a week in the future to allow people to book animals in for the week and that's it - otherwise it can cause issues for a number of reports (and people make mistakes). Date brought in is completely irrelevant to non-shelter animal records and not searchable or reportable (the only time this isn't true is for template animals). I would create a one-off medical regimen for surgeries on non-shelter animals as the medical diary report for off-shelter animals could then be used to produce a list of surgeries for any period.

@srupe05: 2017-10-17 14:29:20
We have a few different template animals including ones for our non-shelter spay/neuter patients. The templates include different vaccinations and medical treatments. I have noticed previously that when I attempted to offset the medical and vaccination dates per the instructions in the manual, the dates seem to be using the "created date" rather than the date brought in. For example; the date brought in for our non-shelter patients is the day before their surgery, therefore I set the required dates for vaccines/medical treatments for +1 day. The vaccines/treatments are generating at +1 day but not from the date brought in. The "date brought in" for the template animal is set as 10/13/2016 and the vaccination/treatment required dates are 10/14/2016. (This is the case for all templates, however, it is not an issue with shelter animals due to the fact that the date brought in and created date are typically the same.) This feature, should it behave as described, would require the "date brought in" for non-shelter animals to be relevant. "Where records require dat es (for example, the due date on medical treatments or vaccinations), the system will calculate the new date based on the difference between the date brought in field of the template animal and the due/required date of the cloned records in question. For example: Template brought in date: 1st January 2016 Required date of a vaccination on that template: 10th January 2016 Day difference: 10 days Required date of that vaccination when added to the new animal will be today + 10 days." [Example](//muut.com/u/sheltermanager/s3/:sheltermanager:hKMr:example.png.jpg) [Example 2](//muut.com/u/sheltermanager/s3/:sheltermanager:dpmq:example2.png.jpg)

@robinrt: 2017-10-18 13:39:29
I think the issue is that we never anticipated using template animals with non-shelter animals as well. The logic doesn't exclude it, which is why it's attempting it. You're right though, it makes date brought in relevant for non-shelter animals. You should be able to add the date brought in field to the add new animal screen under Settings->Options->Add Animal – you can set it then when creating either type of animal. However, you're still stuck with the no more than week in future limitation of date brought in.


Cannot save on "Health & Vaccinations" tab

@emilygoodridge: 2017-10-02 04:29:29
I enter info on the Health & Vaccinations" tab and I don't see anywhere to save it, so I click on a different tab, and it tells me I have unsaved changes and gives me the option to save, but when I try and do so the word "forbidden" comes up in red at the top of the page. I do not have this problem in entering info in other areas and saving it...help please! Thank you.

@robinrt: 2017-10-02 08:29:25
There's a save button on the toolbar at the top left above the sliders (I assume you meant Health and Identification). If you're seeing the word Forbidden when prompted to save, it's because your user account does not have permission to save. You'll need to talk to the person at your shelter who setup your sheltermanager.com account to give you permission.

@emilygoodridge: 2017-10-03 02:31:42
Thank you. I do not see a save button--would that be because I don't have the permission? Please see a screenshot below. [Screen Shot 2017-10-02 at 9](//muut.com/u/sheltermanager/s3/:sheltermanager:SGPv:screenshot20171002at9.29.08pm.png.jpg)

@robinrt: 2017-10-03 08:32:14
The save button is on the Animal tab to the left of the Vaccination one you have highlighted.


Logo

@cindiczyzakkaiser: 2017-10-01 19:19:56
How do I change the logo from the paw print to my shelter logo

@adoptamutt: 2017-10-01 23:33:47
Take a look in the ASM guide under Configutation. It talks about the use of all the different logos in ASM. Easy to substitute in Settings > Reports.

@robinrt: 2017-10-10 15:13:25
http://sheltermanager.com/repo/asm3_help/configuration.html#extra-images

@paullawleyjones: 2018-02-11 09:36:30
I do not have an 'Extra images' entry on the settings menu. Using Apache server.

@paullawleyjones: 2018-02-11 11:02:24
Ignore.


Videos

@cindiczyzakkaiser: 2017-10-01 18:15:53
How do I post videos??

@cindiczyzakkaiser: 2017-10-01 19:19:08
Nevermind - found out you need to use a you tube link.


How do I make all reports viewable in regular script and not HTML coding?

@corylaraehartnell: 2017-09-29 18:02:02

@adoptamutt: 2017-09-29 20:16:52
Could you give a little more info on what you are wanting to do?

@robinrt: 2017-09-30 09:06:32
Problem solved. My guess is the cause was an ASM2 import where the report definitions were escaped as a result. Deleting the report definitions and reinstalling has fixed it.


PetLink Publisher Issues Since 9/15.

@adoptamutt: 2017-09-28 15:16:13
Is anyone else having issues with their PetLink publishing? Starting around September 15, 2017, my PetLink publishing started failing. At first the message was: resp hdr: {'content-length': '61', 'access-control-allow-methods': 'GET, POST, OPTIONS, DELETE, PUT', 'set-cookie': 'AWSELB=6D79BBE3060EC8571E378E12A47F80C37C48B22128CDB79F356C8E1F652396 FC96E0BD5B5FCBE7EAEFABE911E6A590107A5019D21BCF19D51B808EA6F74F089CF88B875C0B;PATH=/', 'access-control-allow-credentials': 'true', 'server': 'Petlink', 'connection': 'keep-alive', 'cache-control': 'no-cache="set-cookie"', 'date': 'Sat, 16 Sep 2017 10:49:09 GMT', 'access-control-allow-origin': '*', 'access-control-allow-headers': 'User-Agent,Keep-Alive,Content-Type', 'content-type': 'application/json;charset=UTF-8'}, resp body: {"message":null,"exception":"java.lang.NullPointerException"} ALERT: Failed uploading data file: 'errors' Beginning on 9/26 the message is: resp hdr: ['Access-Control-Allow-Credentials: true\r\n', 'Access-Control-Allow-Headers: User-Agent,Keep-Alive,Content-Type\r\n', 'Access-Control-Allow-Methods: GET , POST, OPTIONS, DELETE, PUT\r\n', 'Access-Control-Allow-Origin: *\r\n', 'Cache-control: no-cache="set-cookie"\r\n', 'Content-Type: application/json;charset=UTF-8\r\n', 'Date: Tue, 26 Sep 2017 10:28:09 GMT\r\n', 'Server: Apache-Coyote/1.1\r\n', 'Set-Cookie: AWSELB=6D79BBE3060EC8571E378E12A47F80C37C48B22128F2DC55553B526B5813E23 E93E187BEA0FD647F07950ED1A9AC671FACE98DC6EF75CDCB99E0DC9BC727D1C3E4CD7D76A4;PATH=/\r\n', 'Content-Length: 61\r\n', 'Connection: Close\r\n'], resp body: {"message":null,"exception":"java.lang.NullPointerException"} ALERT: PetLink remote exception received, abandoning: java.lang.NullPointerException I have sent probably five email requests for help to PetLink without ANY response.

@robinrt: 2017-09-28 16:05:11
There was a fault in the publisher after a change at the PetLink end and we've finally just gotten to the bottom of it! A fix was applied an hour ago and PetLink should be working fully again.


Merge issues--help!

@emilygoodridge: 2017-09-21 09:36:47
I have been trying to merge multiple entries of foster parents (after importing data from our old database into this one). Per the instructions from the help document--"Open the person record that you want to merge into (the one that you want to keep). Hit the merge button and choose the duplicate owner record"--I select the person record I want to keep, but there is no "merge" option on the toolbar. There is only "person" "media" and "movements.' And when I select "person" all that comes up underneath is "Save," 'Looking for" (both in grey), "Map" and "Email." HELP.

@robinrt: 2017-09-21 17:43:48
Ok, your user account doesn't have the "Merge Person" permission in one of its roles. You (or whoever set up your user account) more than likely only given your user the "Staff" role, which doesn't have Merge Person permission by default. By logging in as a privileged user, you can add Merge Person to the Staff role under Settings->Roles


Is there any online tutorials to get the most out of SM besides the booklet?

@karenschultz: 2017-09-19 21:11:32

@robinrt: 2017-09-20 09:28:28
We have some videos on youtube - http://youtube.com/user/sheltermanager


Is there a way to enter more than one microchip number?

@karenschultz: 2017-09-19 21:09:52

@robinrt: 2017-09-20 09:27:59
If you don't care about electronic registration, enter them both in the microchip number field. We have adding a second microchip field for electronic registration on our development list already.

@dbarc: 2017-11-12 14:23:40
How long until this is done as we have seen an increase in the number of chips some of the animals have

@robinrt: 2017-11-12 15:58:02
It's marked both urgent and a popular request (as well as being in this current release), so it should be before the end of this month.


multiple Entries

@karenschultz: 2017-09-19 21:09:38
Is there a way to do an all in one entry for things like "transports"? It take sooo much time to do transports for 60-100 pups I am wondering if there is a way to sync it all to go under certain animals?

@robinrt: 2017-09-20 09:26:46
You can use the "Bulk" button to create transports for multiple shelter animals in one go. If you want to do transfers as well as transport, use ASM->Animal->Bulk Change Animals to create many transfers in one go.


sharing account between multiple computers

@twohearts: 2017-09-12 19:24:23
Is it possible with OSM to have multiple users accessing same data on different computers?

@robinrt: 2017-09-13 21:01:11
Sure, it's possible with all versions of ASM and our online service. Which one do you have?


reconnect to sql database?

@techdoc: 2017-09-09 16:31:57
We have an older asm2 installation and recently the network changed. Im wondering how to reconnect to the database. I believe it's SQL

@robinrt: 2017-09-11 12:11:55
Delete the jdbc.properties file from Users/YOURUSER/.asm and restart ASM. It will then prompt to find the database. You can select MYSQL and enter the new server location if you know it.


Multiple adopters

@hyphenlowercase: 2017-09-08 19:20:14
I was wondering how people deal with multiple adopters in the system (like a couple with different last names)? Do you just choose one of them as the "main" contact?

@robinrt: 2017-09-08 20:05:32
The person record should represent both of them, it's a bit of a hack, but append the second person to the last name field if they have different surnames. Eg: First name: John, Last name: Smith and Linda Jones. It looks a bit funny but will look right on reports and all components are searchable, etc.

@karenschultz: 2017-09-19 21:08:42
Do you know if there is a way to enter more than one microchip? Sometimes our dogs come with a few :(

@kitten_division: 2017-12-15 06:58:28
When we have this happen, I simply put the first persons first and last name in the first name field, the second persons first and last name in the last name field.

@robinrt: 2017-12-18 17:26:05
On the question about multiple microchips, there are spaces for 2 microchips now.

@mtmcgurn: 2017-12-31 23:15:14
This is how we have been handing multiple adopters and it has worked ok thus far. We use a comma to separate multiple emails as well. The problem is when we are using the csv import tool. When we download the csv donations from our provider they are often only one of the people so we end up creating duplicates records.


Image in a Document Template

@catcatlin-groves: 2017-09-03 17:00:30
Hi, I would like to create a document template that produces a document which has some of the details about the animal as well as the lead image... I can do all of the text side of things easily but is there a way to make it put the lead image into the document at all or will I have to resort to learning SQL and doing a report... Thanks, Cat

@robinrt: 2017-09-03 19:53:51
Use the <<DocumentImgLink>> token.


Microchip registration and adopter changes.

@adoptamutt: 2017-08-31 19:41:19
When a microchip number is entered in ASM, at next publish, the microchip is registered under the shelter's name, correct? Then, when adopted, the microchip is then registered under the adopters name? With PetLink specifically, how does the adopter update their information if needed? Since they are already registered, they can't simply use the "REGISTER YOUR PET NOW" option because it's already been registered and account created using their email address. I can't get PetLink to tell me what the proper procedure is. Someone told me that if the adopter uses the "Forgot password" option along with their email address, this will get them into the account and allow them to change their information. Does anyone know?

@robinrt: 2017-09-01 09:44:58
As far as I'm aware, the adopter can login to the petlink web site with their email address and the chip password that you configured as part ASM's petlink publisher. If you didn't have an email address on file for the person when the chip was registered, then a special address of PHONENUMBER@petlink.tmp is created, which they can use to login with their phone number instead (ASM will use whichever phone number was not blank at the time, checking home, work and then cell in that order). The chip is only registered to the shelter after intake if you have "Intake" in the options list for Publishing->Set Publishing Options->All Publishers->Register microchips after. It is not on by default, and with the default setup ASM only registers chips after adoption or an animal is reclaimed.

@adoptamutt: 2017-09-01 13:58:40
So if we do "Trial Adoptions", when we uncheck the trail adoption box, at the end of the trial period, would that trigger the microchip to be published if we have "Register microchips after > Adoption" selected? Or do we need to have "Register microchips after > Trial Adoption, Adoption" both selected?

@robinrt: 2017-09-02 09:24:13
If you don't have registering of trial adoptions on, then the chip will be registered when it becomes a full adoption. If you DO have registering of trial adoptions on, it won't register the chip again when it becomes a full adoption because the movement date will still be the same and the system won't register anything where the "change" date (in this case the adoption) is not later than the last registered date (which will still be the trial adoption). It shouldn't be a problem since it should still be the same person! Hope that clears it up!


Reports specifying cat/dog vs kitten/puppy

@bmay1439: 2017-08-31 01:11:11
Is there a report that distinguishes the difference of cat or kitten and dog or puppy when getting shelter #'s

@robinrt: 2017-08-31 09:34:45
There are certainly reports that distinguish kitten and puppy numbers yes - The different flavours of the Annual Figures report do this, as does Best Friends Matrix, Petco Foundation and shelteranimalscount.org figures. Install new reports under Settings->Reports->Browse sheltermanager.com


Backup/Restore/Migrate ASM Server

@clifmo: 2017-08-24 15:26:43
I'm looking for documentation on how to backup the ASM filesystem and database for migration to new server infrastructure.

@robinrt: 2017-08-26 17:21:53
Hi, there isn't really documentation on that as ASM keeps everything in the database - you can just backup the database with the appropriate dump utility, such as mysqldump or pg_dump and restore that file on another database server. Moving the software is just a case of installing it again however you did before (Debian package, etc).


Linking to Petfinder

@catlovercindi: 2017-08-20 23:57:53
My shelter is new to Shelter Manager. I have uploaded a lot of our cats to the program. What is the step for linking to Petfinder? Do all cats need to be in Shelter Manager or will the program meld with what is on Petfinder already?

@robinrt: 2017-08-21 10:15:23
Yes, your cats all need to be entered into shelter manager. You'll need an FTP login from PetFinder to configure in ASM under Publishing->Set Publishing Options->PetFinder. The FTP login is not the same as your login to the members area on their website and PetFinder have to issue it to you separately. I'm not sure whether you can get it from the members area or if you have to email them directly at help@petfinder.com and explain that you're using sheltermanager/ASM so they can email you an FTP password back. Once you've got everything configured, delete any cats you have in the members area before uploading from ASM to avoid duplicates. After that, ASM will take care of updating PetFinder.


linking animals to incident reports

@vsauder: 2017-08-17 17:46:04
There does not seem to be a way to link back from an animal to an incident report. I keep expecting to find something similar to the links that exist on the person. Is there a way that I am missing, if not is this a possible update? Aside from copying notes there does not seem to be an efficient way for our front desk staff to access this history for animals that enter the shelter.

@robinrt: 2017-08-17 20:53:30
We have an issue ticket on to show full links, but for now the most recent incident an animal is linked to is shown in the banner at the top of their record.

@vsauder: 2017-08-25 20:02:07
Great thanks!


How to show adoption fees in animal details when using mobile version?

@crrc: 2017-08-17 15:47:14
Hi, can anyone help me to work out how to show adoption fees in the mobile version? My staff members typically work off their phones and for some reason that field doesnt show. There are a couple of other fields I would like also if possible. Thanks

@robinrt: 2017-08-17 17:04:57
it needs coding into the mobile interface. What other fields are missing?


Bulk return animal

@srupe05: 2017-08-12 17:33:08
There doesn't appear to be an option to do a bulk return from foster. This would come in handy when a litter is returned. Thanks!

@srupe05: 2017-08-12 19:03:04
Also....altered date on Advanced Find animal?

@robinrt: 2017-08-17 17:07:19
You're right - those things aren't supported. Bulk return might be useful feature for the foster book so I'll add a note on that. While there isn't an altered date for find animal, there are reports that will show animals altered by date range - install "Neutering by Date" under Settings->Reports->Browse sheltermanager.com


Multiple animal_image

@mtmcgurn: 2017-08-10 22:24:35
I was wondering if there is any support to list all of the animal images and linked videos in the animal_view? Thanks, Matt

@robinrt: 2017-08-11 08:30:50
Yes, the latest version of the animalview template shows 4 images. The preferred video can be obtained with $$WEBSITEVIDEOURL$$. Get the updated animal_view here: https://github.com/bobintetley/asm3/tree/master/src/media/internet/animalview It will only work with ASM 40 as it requires some new wordkeys, so either update to the latest trunk (or if you're using sheltermanager.com you already have the latest).

@mtmcgurn: 2017-08-17 18:07:00
Thanks!

@mtmcgurn: 2017-09-09 03:51:58
Hi, Thanks for the help. I was wondering if it was possible to get multiple WebsiteVideoURL in a similar way you can get multiple images?

@ernestjgaineyiii: 2017-09-21 23:38:30
Is ASM 40 available for download?

@ernestjgaineyiii: 2017-09-22 00:24:17
Nevermind, I see the current version in github is version 40u.


Lost Password

@lynnissitt: 2017-08-09 12:31:47
I have downloaded the version to use on my computer, however, I changed the password and user name, and can't remember it. I've uninstalled and reinstalled the program, but it still says wrong user name and password. Is there any way I can reset them?

@robinrt: 2017-08-09 12:35:34
http://sheltermanager.com/site/en_faq_asm2.html#forgotpass

@lynnissitt: 2017-08-09 12:44:30
thank you, problem is - I've forgotten the username as well :(

@robinrt: 2017-08-09 13:04:00
Before running the UPDATE command, run this instead to get a list of available users: SELECT Username FROM users

@lynnissitt: 2017-08-09 13:18:02
it doesn't say any usernames only Type:VARCHAR. Nullable:false Sorry if I'm being a bit dim here, I'm not at all teckie.

@lynnissitt: 2017-08-09 13:26:29
OK, I realised what you meant and I've done all that, but it still won't let me in.

@lynnissitt: 2017-08-09 13:27:47
giving up :(

@robinrt: 2017-08-09 15:57:29
Assuming you don't care about the data in the system, there's another FAQ on that page on how to reset the whole system and start again (which is a lot easier). It's basically deleting the .asm folder and restarting.


most recent movement in a date range

@jeffruebel: 2017-08-05 22:13:27
I've been asked to modify the In/Out report so that only the most recent movement in the date range entered is what shows up on the report. For example, if an animal was fostered, returned from fostering and was finally adopted in the given range, then the only place the animal would show up on the report would be under the Animals Adopted subsection of the Animals Out section. Essentially, what I think I need to do is to determine the most recent movement within a given date range. My first thought was to compare the movements within the range with the animal.ActiveMovement columns, but this won't work in cases where there are further movements beyond the report's given date range.

@candidhominid: 2017-08-06 05:56:00
I can't think of a way to modify the In/Out report in that way. I would create a new report. I haven't tested this, but here is how I would get the most recent movement in a date range: *Report* 1) Create a report that selects from animal and joins the adoption table. 2) Use the WHERE statement to only include animals who have a movement in the date range. Optional) Create a subquery that selects the type for the latest movement in the date range. Use it to group the results (repeat the subquery in the ORDER BY statement to avoid an error). --- $VAR from DATE Enter from date$ $VAR to DATE Enter to date$ SELECT a.ID as AnimalID (SELECT MovementType FROM adoption WHERE adoption.AnimalID = a.ID AND MovementDate BETWEEN '$@from$' AND '$@to$' ORDER BY MovementDate DESC LIMIT 1 OFFSET 0) AS MovementTypeGroup FROM animal a INNER JOIN adoption ON adoption.AnimalID = a.ID WHERE MovementDate BETWEEN '$@from$' AND '$@to$' ORDER BY (SELECT MovementType FROM adoption WHERE adoption.AnimalID = a.ID AND MovementDate BETWEEN '$@from$' AND '$@to$' ORDER BY MovementDate DESC LIMIT 1 OFFSET 0) $$GROUP_MovementTypeGroup {SUBREPORT.SUBREPORT_LatestMovementWithinRange.AnimalID.from.to} --- *Subreport* 3) Create a subreport that selects from adoption. 4) Pass it three items: animalID, from date, and to date. 5) Use the WHERE statement to only include movements within the selected date range for the particular animal. 6) Use the ORDER BY statement to order these movements from most recent to oldest. 7) Use the LIMIT statement to only select the top movement (the most recent because of the ORDER BY). --- SELECT MovementType, MovementDate FROM adoption WHERE adoption.AnimalID = $PARENTKEY$ AND MovementDate BETWEEN '$PARENTARG2$' AND '$PARENTARG3$' ORDER BY MovementDate DESC LIMIT 1 OFFSET 0 ---

@candidhominid: 2017-08-06 13:17:54
Correction: I'm pretty sure the main report as above would give one row per adoption when what I was intending was one row per animal who had a movement in the given range. I think the fix is either: 1) Changing to 'LEFT OUTER JOIN adoption' instead of 'INNER JOIN adoption'. 2) Forgetting the join altogether and changing the where to a WHERE EXISTS: --- WHERE EXISTS (SELECT MovementDate FROM adoption WHERE adoption.AnimalID = a.ID AND MovementDate BETWEEN '$@from$' AND '$@to$') ---

@jeffruebel: 2017-08-07 00:34:45
Thanks, candidhominid! The use of LIMIT and OFFSET was something I was not aware of. That alone will definitely be very useful going down the road.


Can't Publish - breed mapping

@seanallen: 2017-08-03 20:12:56
So I have breeds assigned to all dogs that I imported, but I can't publish because it says not all breeds have been mapped. How do I fix this?

@seanallen: 2017-08-03 20:28:09
Ok, I see what's going on. Somehow, a breed was created that is both blank on the name and the publisher. I can't click on it to to change it, so it'll stay blank until I find the dog that it's assigned to (can't delete it either). Any quicker way to do this? Say, back-end database?

@seanallen: 2017-08-03 20:31:32
For reference: All of my dogs have a 1st breed assigned. Somewhere, a dog has 'crossbreed' checked and the blank entry selected.

@seanallen: 2017-08-03 20:43:28
Ok, Got it. I was right, there was one dog with a secondary breed as the blank breed entry. Found it by looking at a list of all the dogs and looking for an animal that had a breed name and then a slash after it, with no second breed name.


publishing ideas

@bfierro: 2017-08-03 19:03:34
is there a way to view other shelters html shelter publisher to see how other people set page up and a way to customize page layout ?


publishing ideas

@bfierro: 2017-08-03 19:03:34
is there a way to view other shelters html shelter publisher to see how other people set page up and a way to customize page layout ?

@seanallen: 2017-08-03 19:11:24
You can customize the page layout in the HTML editor. Go to Publishing - Edit HTML Publishing Templates. I haven't had a chance to do much with it but here's what ours looks like: https://us9.sheltermanager.com/service?method=animal_view&animalid=24&account=ds1455

@adoptamutt: 2017-08-03 19:29:29
http://public.sheltermanager.com/animals/sc0368/ Not completely satisfied with how it responds on a mobile device. The closing function is a little difficult.


Not All Breeds Have Been Mapped

@seanallen: 2017-08-03 18:53:18
I recently imported all of our animals from different software in CSV format. I followed the instructions in the manual, but now when I try to publish I get the 'not all breeds have been mapped' error. How do I go about fixing this?

@seanallen: 2017-08-03 19:04:18
I believe I figured it out. My breeds didn't match some of the breeds already in the system. So now I have to go back into every animal I imported (Almost 600) and make sure the correct breed is selected. Oh well haha


Import Pictures with CSV?

@seanallen: 2017-08-03 16:04:07
I'm importing all of my animals from a CSV file made in Shelter Exchange, and it has a hyperlink to each photo. Is there a way to import the photos into ASM as well?

@robinrt: 2017-08-03 16:28:55
Sorry, there isn't a way to import images from a CSV.

@tgage: 2018-06-03 19:02:47
The documentation states in Chap 26, page 123 that this should be possible. It clearly states: _ANIMALIMAGE A photo for the animal, it can either be a fully qualified HTTP URL to a JPG image OR a base64 encoded JPG expressed as a data URI_ That being said, I have not been able to get it to work yet.

@tgage: 2018-06-21 18:14:23
FYI: It appears that adding pictures via CSV was not supported in 3.40, but was recently added per a request to the hosted ShelterManager team. I am hoping that this change has been added to git and will make it into the next release (3.41?)

@tgage: 2018-06-21 18:15:05
I was told that the pictures needed to be included with the initial data import (CSV) and could not be merged later (3.40).

@robinrt: 2018-06-22 10:29:02
That's correct, a fix was applied to the trunk weeks ago that allows ANIMALIMAGE to work during a CSV import where duplicates are being merged. It will be in 41.


Adding Additional Statuses?

@seanallen: 2017-08-03 15:00:38
Hey All, So, the way we process adoptions, when a match has been chosen, we create a reservation. When we go to do the adoption, we have the adopter fill out the contract. Once one of our people scans the completed contract in, we complete the adoption in the software using 'adopt an animal'. We sort our Shelter View by status, and I was wondering if there were a way to add an additional status to sort by. So, right now we see adoptable, not adoptable, permenant foster, reserved, etc. Is there a way to add a status that says, say, 'Adopted, awaiting contract', or complete an adoption in ASM but still have it show up on the main page? Another solution I thought of is adding a flag on an animal that labels it as 'no contract received' so that it shows up in a report. Any other ideas? Thanks! Sean South Charlotte Dog Rescue Waxhaw, NC

@robinrt: 2017-08-03 16:28:39
ASM calls adoption applications "reservations". They can have a status and you can configure your own. If you go to Move->Reservation Book, you can see all ongoing applications with their status. You can create a reserve/application with "Move->Reserve an animal" and it can also be done automatically when an online application form is processed.


Report Sorting Question

@lesliegallo: 2017-08-02 22:29:15
I'm a newbie to this software and have entered a years worth of records into the system now. Quite a task! Problem is I cannot seem to find a way to designate how I might want a report sorted prior to printing. A simple "Shelter View" report lists animals in a completely random order. Not by name, date, not by assigned pet ID#, not by length of time in shelter, etc. It is totally random. Can anyone advise on how to sort a report rather than needing to export and sort in Excel? Thank you in advance!!

@adoptamutt: 2017-08-02 22:50:49
The "Shelter View" isn't really a report, but you have many sort options for that view in drop down box in the upper right hand corner of the Shelter View screen. If you pick to sort by Species, for example, the animals are then sorted by Name. It depends on what information you want on your report (Report Menu), but most of the reports can be customized so sort anyway you want.

@robinrt: 2017-08-03 11:13:47
Also, if you don't have any reports in the reports menu, you can install some under Settings->Reports, then Browse sheltermanager.com


Changing User Names

@tamaraowen: 2017-08-02 03:38:17
Is there a way to change user names? Such as if an employee gets married or divorced.

@robinrt: 2017-08-02 15:55:42
There isn't, no. You'd have to create a new user account and delete/disable the old one.


Multiple Databases

@dome1094: 2017-07-30 11:34:47
Hello again, i know, i make a lot of questions, im sorry.. :D Ok, i did read something about multiple databases, but how do i configure it? There's said it will be shown on the login page, so the users can choose which database they need. At the moment im running three instances of ASM, for three different shelters, and i would like to move it all on one page with multiple databases. Thanks for your answers!

@dome1094: 2017-07-31 13:22:00
Please.. someone.. :D


Demo Form?

@seanallen: 2017-07-28 02:52:11
Is there any way to fill out a demo form so I can see how it works and looks from a potential adopter's perspective?

@adoptamutt: 2017-07-28 04:40:47
You are welcome to fill out one of ours, just enter "test" for your name. https://sheltermanager.com/service/asmservice?account=tz1092&method=online_form_html&formid=2

@seanallen: 2017-07-28 14:01:36
Thanks Karen! Quick question.. when the application is filled out, can you assign it to a specific dog, or a person for review? Thanks, Sean

@adoptamutt: 2017-07-28 14:11:43
Yes to both. You can specify what email address(es) need to get notification automatically when an on-line app comes in. Then in the On-Line Forms screen, you can check an icon to tell ASM to try to find a matching person for the applicant in the database (based on email) and if found, ASM will attach application to that person. If that email address, is not found, ASM will add the person to the database. We have it add with a flag of "Dog Applicant". You can also click another icon to have ASM associate the app with an animal based on who the applicant said they were interested in.

@seanallen: 2017-07-28 14:26:27
Good deal. We're currently using Shelter Exchange but they're closing so we're looking for something similar. Thanks for your help!

@adoptamutt: 2017-07-28 14:47:21
ASM is an awesome program. I highly recommend!


Entry of special food.

@animals: 2017-07-26 20:08:21
We are new to the software, so any help would be great. Our Tech has rights to vet and staff -- she is trying to enter special food listing what other group would we need to provide for her to handle this setup and use? (we really don't want our techs to have access to systems admin)


Entry of special food.

@animals: 2017-07-26 20:08:21
We are new to the software, so any help would be great. Our Tech has rights to vet and staff -- she is trying to enter special food listing what other group would we need to provide for her to handle this setup and use? (we really don't want our techs to have access to systems admin)

@robinrt: 2017-07-27 18:58:11
The diet area should be accessible to Staff. If it isn't, you can change that under Settings->Roles, and edit the Staff role.


How to get Random Image on Login screen

@dome1094: 2017-07-26 10:15:44
Well hello everybody, Im using ASM3 on python, my question is, is there a chance to get a random image on the login screen, instead of the splash.jpg? I would like to add a bunch of pics in a folder, and a script is just taking one out of the folder. Thanks guys :)

@robinrt: 2017-07-26 10:23:17
Not any more, I think we used to do this and had a splash folder up until about v38. The code was removed. this is the code in src/static/js/login.js you want to replace to do that: else { $("#asm-login-window").css({ "background-image": "url(static/images/splash/splash_logo.jpg)" }); } Use some javascript to pick one at random from static/images/splash and put your files there.

@dome1094: 2017-07-26 10:42:49
I still use v38, and i dont think i will change, everything we need is just moving fine :) I dont know anything about javascript, i found some codes on google but i have no clue how to get them inside that code. I just found out there's no good solution to get the code pick a random picture out of a folder, i have to name every pic in the code, but thats not a problem. If you could not help me with that, no problem, i will just think about it the whole day and try out like crazy :D

@dome1094: 2017-07-26 17:05:14
i tried it now like this, but now the complete page is only white, not even logindata can be entered..: {$("#asm-login-window").css({ "background-image": (randomIMG = function(){ var pfad = "static/images/splash/";​ var anzahl = 10; // 10 Bilder vorhanden​ var ry=Math.floor(Math.random()*anzahl);​ if (ry==0) ry=1;​ document.write('<img src="'+pfad+imgArray[ry]+'.jpg" border=0/>');​ } ) }); }

@dome1094: 2017-07-27 17:11:45
No one can help me? :(

@robinrt: 2017-07-27 19:04:48
Your problem is that you have a function which never gets run, returns no value and there are syntax errors preventing the page loading. Just do something like this to put the random number from 1 to 10 into the existing link instead: else { var randimg = Math.floor(Math.random() * 10) + 1; $(“#asm-login-window”).css({ “background-image”: “url(static/images/splash/" + randimg + ".jpg)” }); }

@dome1094: 2017-07-27 19:21:40
thank you for your answer, but like this its also not moving, still a white page.. i tried a lot of functions i found on google..

@dome1094: 2017-07-27 19:33:41
by the way, the random image thing should be something fix in the shelter animal progam, it will look nice and its some kind of individualising :D

@robinrt: 2017-07-27 19:35:27
Did you only replace the section of code I pointed out at the beginning? I just tested the code above and it works fine for me.

@robinrt: 2017-07-27 19:35:50
Also, ASM caches code in the browser - press CTRL+R to reload or you may get your old broken code.

@dome1094: 2017-07-27 19:43:28
ok, i typed it in again, its moving now. But my pictures are named "bild1", "bild2" and so on, where should i write inside the "bild"?

@dome1094: 2017-07-27 19:45:12
ooooooh my gosh, i got it, Thank you really really much!! I was breaking my head the complete day yesterday, without any success, you just saved my day! :D

@dome1094: 2017-07-29 10:21:01
Hello again, i even got further and moved an interval inside, i specified the setInterval before like this: (function() { var originalSetInterval = window.setInterval; window.setInterval = function(fn, delay, runImmediately) { if(runImmediately) fn (); originalSetInterval(fn, delay); }; })(); than i moved the following in the existing function: else { setInterval(function() { var randimg = Math.floor(Math.random() * 619) +1; $("#asm-login-window").css({ "background-image": "url(static/images/splash/" +"bild" +randimg +".jpg)" }); }, 7000, true); } its all moving pretty good, as you can see on asm.streunerfamilie.de My question is, could i move a FadeIn/FadeOut inside somehow? Like I said, its all moving fine, so this is not important, it would be only a small fashion upgrade :D


Cage card

@abbeyw: 2017-07-25 16:35:45
Hello, I have made cage cards for all the animals but for some reason, I have 4 animals that it wont work for. It finds the animal but when I click generate, it says no data to show on the report? But there is data and has worked for the other animals?

@robinrt: 2017-07-25 18:10:57
Do they have a blank entry category under the entry slider or one of the dropdowns on the main detail screen? The cage card reports have a couple of INNER joins that might prevent animals working if they don't have dropdown values filled in.


medical data input

@abbeyw: 2017-07-25 09:10:08
Hello, I wonder if you can help me as a new user to the program. I am inputting data into medical, however I cannot work out when an animal has had for example 7 days of treatment, the medical log doesn't allow me an end date. I put an end date into the correct area, however when I come out of this and look at the overview the information states that although this is 'multiple' and 'completed', it says that only one treatment has been 'given' even though the whole 7 days has been 'completed'.


medical data input

@abbeyw: 2017-07-25 09:10:08
Hello, I wonder if you can help me as a new user to the program. I am inputting data into medical, however I cannot work out when an animal has had for example 7 days of treatment, the medical log doesn't allow me an end date. I put an end date into the correct area, however when I come out of this and look at the overview the information states that although this is 'multiple' and 'completed', it says that only one treatment has been 'given' even though the whole 7 days has been 'completed'.


medical data input

@abbeyw: 2017-07-25 09:10:08
Hello, I wonder if you can help me as a new user to the program. I am inputting data into medical, however I cannot work out when an animal has had for example 7 days of treatment, the medical log doesn't allow me an end date. I put an end date into the correct area, however when I come out of this and look at the overview the information states that although this is 'multiple' and 'completed', it says that only one treatment has been 'given' even though the whole 7 days has been 'completed'.


medical data input

@abbeyw: 2017-07-25 09:10:08
Hello, I wonder if you can help me as a new user to the program. I am inputting data into medical, however I cannot work out when an animal has had for example 7 days of treatment, the medical log doesn't allow me an end date. I put an end date into the correct area, however when I come out of this and look at the overview the information states that although this is 'multiple' and 'completed', it says that only one treatment has been 'given' even though the whole 7 days has been 'completed'.

@robinrt: 2017-07-25 09:44:39
Medicals don't have an end date that you can set. They only have a start date and a number of treatments - eg: twice daily for 7 days = 14 treatments. The regimen completes when all treatments have been given. You can also change the status to completed to manually force completion after you've created the regimen.

@abbeyw: 2017-07-25 16:36:08
Thank you for your help.


need assistance with ASM and Petfinder

@fs_s2r: 2017-07-25 00:40:28
It seems that some of the information is not crossing over to pet finder correctly. Could I get a support number or email to get some help. We subscribe to ASM. Thanks

@candidhominid: 2017-07-25 02:18:42
https://sheltermanager.com/site/en_support.html Or email support@sheltermanager.com and include your account number.

@robinrt: 2017-07-25 09:43:14
If it's the recent email the problem is that coat type and color don't transfer to PetFinder. They don't - PetFinder do not have those items on their import spec, neither do they accept YouTube video URLs. We keep asking them and they say they want to support them but nothing has happened as yet.


Are Transports, Movements and Adoptions stored in the same database table?

@dbaux: 2017-07-24 21:59:18
So, our state government requires us to be able to produce a "where has this dog been"-type of report, starting from the date the animal came under our responsibility, to the date of adoption. I'm trying to figure out how to produce such a report. We can transport a dog from one internal location to another internal location, from internal location to foster home, from one foster home to another foster home, and from foster home to adoption. Can I do this basically via the animal and adoption table data?

@robinrt: 2017-07-25 09:42:26
The adoption table only covers the movement tab - adoptions, fosters, transfers, etc. The animaltransport table contains details of all transports (since the animal stays in shelter care either end of a transport it's in a separate table from movements).

@dbaux: 2017-07-25 15:37:14
Thank you! So I will most likely need to query 3 tables to create my report: animal (for DateBroughtIn), Adoption (MovementDate and ReturnDate) and AnimalTransport (for PickupDateTime and DropOffDateTime)?


Assistance

@captain605: 2017-07-24 17:21:48
Do you have reps that can come to my office and give a demonstration on how the product works?

@robinrt: 2017-07-24 17:46:13
No, I'm afraid not. We're based in the UK and we offer email based support. There are videos online on YouTube that demonstrate some of the more advanced areas of the system as well as a try-it-yourself demo. Not having a salesforce and training staff is part of how we can charge so little for our service.

@captain605: 2017-07-24 20:45:54
OK Thank You


Upgrade from v38 to v39..

@benjaminsowden: 2017-07-23 09:54:50
Hi, We are having some issues when we try and upgrade.. It doesn't look like the database is being upgraded properly and now the site is coming up with this error. <type 'exceptions.AttributeError'> at /main 'siteid'

@robinrt: 2017-07-23 10:55:23
You can force the database updates to re-run by executing this query: DELETE FROM configuration WHERE itemname = 'DBV'; Then restarting ASM. It sounds like for some reason the update that added the siteid column is missing.

@benjaminsowden: 2017-07-23 23:43:22
Ok i'll give that a go... I had to revert back to v38 to get things running again!


Staff Access

@megwilson: 2017-07-20 12:23:05
I am using Animal Shelter manager for 4 different sites where we keep our animals, but I only want staff who work on one site to only have access to the records on that site. Is there any way I can do this?

@robinrt: 2017-07-20 12:38:05
There is, but sites are a fairly new and experimental feature and are not enabled for hosted accounts by default. Since it requires more server resources to run multiple sites there is an extra charge for using multi-site on your account of $20/mo, starting at next renewal. If you let me know your account number I'll get it added for you.

@robinrt: 2017-07-20 12:39:17
Or if it's low volume and you don't want to pay for multi-site, you can sort of fudge it by using location filters on your user accounts and making sites internal locations. You can enable location filters under Settings->Options->Display, and set which locations users can view under user accounts - Settings->System User Accounts.

@megwilson: 2017-07-20 13:16:00
Thank you for your response! We have managed the animals under internal locations, but would like staff just to access certain locations.


Printing from mobile or tablets

@srupe05: 2017-07-19 14:24:05
Is there a way to print generated documents from mobile devices? After generating the document and clicking print, there is no print option on the next screen.

@robinrt: 2017-07-19 15:00:10
Print document on a mobile device takes you to a plain version of the document so that you can use whatever printing is available in your tablet's web browser (be it CloudPrint/Airprint etc). This all depends on what OS/device you have as to how and where printing is set up. Usually, if you scroll the page or swipe from the top there should be a menu appears where you can find the print option - assuming that you already have printing setup.

@srupe05: 2017-07-19 15:34:21
[Screenshot_20170719-102949](//muut.com/u/sheltermanager/s3/:sheltermanager:ZPi0:screenshot_20170719102949.png.jpg) This is what appears after hitting print. Swiping up, down, left, right, sideways does not present any option to print. Printing is enabled on my android phone and tablet.

@srupe05: 2017-07-19 18:26:54
I suppose I should have specified; I was using the ASM app. There is no option within the app to print.

@robinrt: 2017-07-19 19:34:22
Ah no, there isn't. You'll have to use the built in web browser to print - just navigate to m.sheltermanager.com or youraccount.sheltermanager.com


Combine Medical/Vaccines/Costs to one page?

@lisa40278: 2017-07-16 01:22:43
Is there a way to see all expenses for a cat on one page? I want to click on a tab and see everything we've done/given, on what date, and the costs associated. This includes vaccines, medications, spay/neuter, tests, microchip insertion. We currently use Trackabeast and it's one of features holding us back from switching. Thanks!

@robinrt: 2017-07-17 10:49:44
There isn't a unified screen. The costs tab for an animal shows a summary and total of all costs (including vacc, tests, etc) at the bottom. There are reports that will show all costs for an animal in a unified list such as Cost Breakdown by Animal


Medical regimen defaults

@lisa40278: 2017-07-14 22:21:17
Is there a way to have a medical regimen default to completed? We tend to track everything via paper and enter records once animals are adopted. (Backwards, I know!) Until we're fully electronic that would be a faster default for us.

@candidhominid: 2017-07-14 23:48:22
That is not possible at this time.

@lisa40278: 2017-07-15 00:33:16
Thanks for the response!


Medical regimens - fee increases

@lisa40278: 2017-07-14 21:20:55
I am adding medical regimens/prices for several of frequently used clinics/vets. Let's say Vet A doesn't charge for spay/neuter because of a grant. When that price goes up in the future and I change the regimen to reflect that, will that edit ALL animals who already received it or only the animals who receive it after the change?

@candidhominid: 2017-07-14 23:39:29
Only the animals who receive it after the change. You can test this by changing the price (or dosage or name) of a service under Medical Profiles and then reloading the medical tab of an animal who has already received that service.

@lisa40278: 2017-07-15 00:33:00
Yay, that's wonderful! Thank you.


Need to add a required field at adoption time

@dbaux: 2017-07-14 17:04:10
I need to add a field that gets populated only at the time of Adoption... basically an Additional Field for Adoption, but I don't see that as an option for Additional Fields. Has anyone implemented a clever way of doing this?

@robinrt: 2017-07-15 09:32:41
There isn't a way to add additional fields to adoptions. This is something we have on the development roadmap, but is some way off. Sorry. The only workaround for now is to put your field on the animal or person record depending on what it is.

@dbaux: 2017-07-17 17:02:44
OK, thank you, we will pursue that option.


Bulk Log Entries

@djsteven: 2017-07-12 22:07:30
Hi Robin. There is a way to make a bulk logs?

@robinrt: 2017-07-13 09:28:26
There isn't, no. What is it that you're trying to do in particular? Apply the same note to multiple records or something?

@candidhominid: 2017-07-14 01:36:26
I've always thought this would be useful. Examples: 1) If someone urinates outside of the litter box in a particular room but it's not clear who, I will add the same log to every cat in the room. 2) If something happens to or with a litter of kittens, like URI symptoms that cause an antibiotic prescription, all kittens in the litter will often get the same log.


Searching Additional Fields

@debbie-m: 2017-07-12 05:23:50
I've added in several additional fields. How do I make those searchable? I see on the added fields table that there is a column for whether or not the fields is searchable, but when I'm entering the information there isn't a place to indicate if the field should be searchable or not. Ultimately, I want to be able to list all of my fosters that will take multiple fosters or will take nursing Moms.

@robinrt: 2017-07-12 14:52:55
There's a "Searchable" tickbox when editing your field definitions. It only appears for field types suitable for searching (ie. text or notes). If you're adding your multiple fosters or nursing moms as Yes/No additional fields, you'd be better adding them as Person Flags under Settings->Lookup Data->Person Flags, instead (assign them under the Type slider of person records). That way, you can use the advanced find person screen to locate any fosterers who have those flags.


Can't search if the animal name in Chinese characters?

@mytortoise: 2017-07-11 12:19:27

@robinrt: 2017-07-11 16:37:18
Does that apply to the search box at the top, or just the advanced find animal screen?


many different species

@mytortoise: 2017-07-11 10:51:46
We are a shelter for reptiles in HK, so we have many different speices. Could we customize it and it seems we can't see the species by mobile phone app?

@robinrt: 2017-07-11 16:36:58
You should be able to customise the species list - Settings->Lookup Data. I'm sorry I don't understand your question about the phone app?


Email Media

@mtmcgurn: 2017-07-11 02:24:40
Hi, I was wondering if there was a way to put a default template for the email when sending documents with "Email Media". Thanks, Matt

@robinrt: 2017-07-11 16:36:18
Sorry, there isn't. Form emails is something we're looking at adding in the release after the current/next one.


CheckBox or Initial Contract

@mtmcgurn: 2017-07-11 02:19:50
Hi, It looks like the document generator and signature functionality is great. I was wondering if it was possible to add checkboxes or additional initial requirements to the document? Thanks, Matt

@robinrt: 2017-07-11 16:35:45
It's not possible to add checkboxes, no, but you can certainly edit documents to show anything you like and there are many tokens for data you can substitute: http://sheltermanager.com/repo/asm3_help/wordkeys.html


Microchip question

@karlaortman: 2017-07-08 22:09:36
Do all of the partner microchips auto register to the microchip company when entered in ASM? Or does the chip need to be registered in each place, ASM and with, for example, PetLink?

@robinrt: 2017-07-10 11:36:35
That's right, yes. ASM auto registers chips to those companies registries.


Issue Uploading Media on Mobile devices

@djsteven: 2017-07-07 21:16:51
Hi We are using the app for android, The problem is when we go to Media > Attach File and press on the button of "Choose File" Nothing happen. Here is a screenshot [Files](//muut.com/u/sheltermanager/s2/:sheltermanager:Jd73:files.jpg.jpg)

@robinrt: 2017-07-08 10:32:57
I'm afraid the fault is with the mobile library that we used - image uploads just don't work with it on some platforms (we're looking into this and have it down as a bug). Instead, when you use the Android (or iPhone) app, there's a dedicated photo uploader instead - you can choose it from the dropdown on the login screen when logging in.

@djsteven: 2017-07-11 20:46:52
Thanks!


Spay/Neuter Due Date?

@hscc: 2017-07-07 10:06:37
Is there a way to set a due date for the spay/neuter surgery? with reminders? monthly reports maybe? We adopt out animals that are not fixed and require them to return proof of surgery by a specific date but I'm not sure the best way to program/track. Thanks.

@adoptamutt: 2017-07-07 13:48:45
We created a new Vaccination Type of "Spay/Neuter" and then it appears in the Vaccination book and in other custom reports we have written.

@candidhominid: 2017-07-08 01:10:00
I would use the diary for something like this. I would probably set up a dairy task to make it a bit easier to add the diary.

@robinrt: 2017-07-08 10:31:28
I think many folks create neuter/spay (and other surgeries) as one-off medical treatments so they appear in the medical book and calendar. Some also use the diary and diary tasks as you can set up multiple notes for things like starving the night before and reminders to take stitches out where necessary and things.


Animal Types

@sueohiospca: 2017-07-05 23:36:22
What is the purpose of "type" of animal since there is already a species, breed, and entry category

@robinrt: 2017-07-06 09:44:43
It's the shelters internal classification of the animal and is based on generally how you want to separate your figures. By default ASM has categories for Unwanted Dogs, Unwanted Cats, Stray Dogs, Stray Cats, Feral Cats, Miscellaneous (anything not a dog or a cat). These are the separate figures the RSPCA here want at the end of each year. You can create types for anything where you want to count the intake, adoptions, transfers, releases, etc separately.


Additional Notes Type

@mtmcgurn: 2017-07-05 17:43:44
Hi, I was wondering if there was a way to add additional options for the notes such as " Good with cats" "Good with kids". We would like to add older, or conditional. Thanks, Matt

@bajadogslapaz: 2017-07-05 18:03:48
Hi Matt - we did that with the "additional field" in under "System". We have both of those fields as well as many others (crate trained, leash trained, etc.)


prospective user - misc questions

@zuck: 2017-07-05 15:47:36
can one generate/print a med list for a particular day? is there a way to bulk load pets? has anyone used this for a shelter with over 300 animals? (stress tested?) is there a way to store/upload external documents on a per-pet basis? (i.e. rabies certs,medical referral reports, rads) thanks, zuck

@adoptamutt: 2017-07-05 17:12:52
ASM has both a Medical and Vaccination Book which will display any scheduled treatments. Yes, ASM accepts csv files for bulk upload of animals or the ASM admin can do it for you for a fee. The Little Rock, Arkansas municipal shelter uses ASM with over 300 animals. Yes, you can easily upload external documents on a per-pet or per-person bases.

@zuck: 2017-07-05 22:48:27
i saw where one can display the meds or vaccine book for a single day, but did not see a print function per se, other than printing using the browser's print function. can one print a smaller list?

@zuck: 2017-07-05 22:48:50
and thanks for the reply... 8-)

@zuck: 2017-07-07 02:07:26
i'm looking for the option where one might do a bulk import of patients. i'm not seeing it on the demo version. is there a template somewhere to build the csv file for the import? thanks, zuck

@adoptamutt: 2017-07-07 13:47:13
You can easily write a report to even email or print the vaccinations due for a day. The report writing functionality is very powerful. As far as the CSV format, under the Demo db, click to the right of the Search box, on "demo" > View Manual. Their is an Appendix section called "CSV file import fields".

@zuck: 2017-07-18 17:01:27
thanks, i've been reading the manual. does someone have a set of spreadsheets for the major tables so one doesn't have to reinvent that wheel? also, where might the import utility be? i haven't seen/found it yet. can i build a small spreadsheet and load it in to the demo database? tia...

@adoptamutt: 2017-07-18 17:58:29
There are specific column names that must be used for the CSV import. They don't directly relate to field names in the tables. They are listed under "the CSV file import fields" in the Appendix. Import is not available in the demo version. It is usually under Settings > Data > Import a CSV file.

@zuck: 2017-07-18 18:36:09
thanks karen. are you aware of an existing spreadsheet to facilitate the load? i guess not being there explains why i can't find the load feature in the demo version. 8-) i have a fair amount of experience in the software business after 35 years doing databases and software, so i understand about the column names, enumerated fields, etc, etc. 8-)

@adoptamutt: 2017-07-18 21:49:15
I don't still have the csv file that I used, but if I remember, all you have to do is create the file in Excel, put the specific column names in the column headers, enter the data, then do a File > Save As > CSV. Just upload one animal to test.


Trap Loans

@mtmcgurn: 2017-07-03 01:59:35
Hi, I was wondering if it was possible to add different types of items available for trap loans?

@robinrt: 2017-07-03 11:15:36
Sure it is - Settings->Lookup Data->Trap Types

@mtmcgurn: 2017-07-04 16:40:48
Thanks!


Several Questions about the Software Capabilities

@dwilliams: 2017-06-28 19:17:45
We are considering purchasing the software but was wondering if you could answer the following Questions? 1. In the Drop Down boxes (Species, Breed, Color, etc.) Does the user or Admin user have the capability to add, delete or change some of the drop down selections. 2. Once purchased, are software updates / versions an option? Are they free or an extra cost? And how often are they available? 3. On the Monthly Figures by Species Report, under Cat, Start of Day: it starts with a -1 (negative one). How is this possible? What would cause an inventory to be less than zero? 4. Do I have the capability to upload my own forms or only use the forms provided? If I can upload my own, will your software accept "fillable forms"? 5. Can I change or customize Report Criteria to pull information other than what is on the demo version? 6. I see from the Animal Control side, I can Link an animal to an incident if the animal was already created. But if the animal does not already exist in the system, I do not see a way from the incident to create an animal. Is there a way to Link and cre ate a new animal directly to an incident without backing out of the incident screen? 7. Also when looking at the animal profile, I do not see a link to the incident / case. Am I not looking in the right place? Or does it not show that the animal was part of an incident? Or does the software have the capability to at least link the incident / case number to the animal profile therefore if I had to go look in depth at the incident, I had the reference number to research it? 8. Underneath an incident, are you able to list more than one completion type? (ie. Animal Picked Up and Issued a Citation ) 9. If needed is there a Tech Person that can be reached by phone for assistance? Can you please contact me to discuss. 352-636-8153 or dwilliams@ladylake.org Thank you

@robinrt: 2017-07-01 15:29:40
1. Yes, they're all editable. 2. Software updates are included and we update continuously every week. 3. Probably broken demo data, I'll take a look. 4. We have an "Online Forms" module for fillable forms. We can import them from generic HTML and you can upload your own paperwork for document templates. 5. They're part of the report description, and can be edited. 6. Just open the new animal screen in a new tab from the ASM menu at the top. You can push the mouse wheel in on must scroll mice to open a link in a new tab. 7. It's in the banner at the top. 8. No, it's a single completion code. Citations can be issued regardless of the completion code if this helps. 9. No. I'm afraid we don't offer telephone assistance. We do offer email support with a typical turnaround time of an hour.

@pawsyokosuka: 2019-02-01 08:10:07
How can you edit the breed?

@robinrt: 2019-02-01 19:19:51
Settings->Lookup Data, you can edit all the dropdowns there.


Transfer in Animals and Annual Reports

@dwilliams: 2017-06-27 20:23:53
I have been playing around with the Demo version and I noticed that if you link the shelter the animal was transferred from, it then labels that shelter as the owner. This would be incorrect. Is there a way to label the shelter the animal was transferred from without labeling them as the owner? Also I noticed that the Transfer in Animals where not being added in the total inventory on the annual reports even though there was a column for it. Is this a software glitch or am I imputing something in wrong? I work for a local Animal Control agency and we are considering adopting this software, but I have several questions about the software. Can you please contact me to discuss. 352-636-8153 or dwilliams@ladylake.org Thank you


Transfer in Animals and Annual Reports

@dwilliams: 2017-06-27 20:23:53
I have been playing around with the Demo version and I noticed that if you link the shelter the animal was transferred from, it then labels that shelter as the owner. This would be incorrect. Is there a way to label the shelter the animal was transferred from without labeling them as the owner? Also I noticed that the Transfer in Animals where not being added in the total inventory on the annual reports even though there was a column for it. Is this a software glitch or am I imputing something in wrong? I work for a local Animal Control agency and we are considering adopting this software, but I have several questions about the software. Can you please contact me to discuss. 352-636-8153 or dwilliams@ladylake.org Thank you


Transfer in Animals and Annual Reports

@dwilliams: 2017-06-27 20:23:53
I have been playing around with the Demo version and I noticed that if you link the shelter the animal was transferred from, it then labels that shelter as the owner. This would be incorrect. Is there a way to label the shelter the animal was transferred from without labeling them as the owner? Also I noticed that the Transfer in Animals where not being added in the total inventory on the annual reports even though there was a column for it. Is this a software glitch or am I imputing something in wrong? I work for a local Animal Control agency and we are considering adopting this software, but I have several questions about the software. Can you please contact me to discuss. 352-636-8153 or dwilliams@ladylake.org Thank you

@robinrt: 2017-06-27 21:21:02
The transferring shelter should go in the brought in by column for figures report - it shouldn't be listed as the current owner, so I'll check into that. Figures reports are complex and run by the overnight batch (when the demo resets), so you can't see them in the demo unless you run Settings->Trigger Batch Processes to recalculate them (which I'm not sure off the top of my head whether that is available in the demo). Thanks for reporting these!


is there any way to Bulk Sign

@bfierro: 2017-06-26 20:01:38
I was trying to see if there was any way to bulk sign documents in media tab of animals. sometimes we need 20 or more signed by the same person and it's sometimes time consuming

@robinrt: 2017-06-26 20:28:52
Sorry, there isn't, but that's definitely something we could look at adding for the "Sign on screen" functionality. Is that what you're using?

@bfierro: 2017-06-26 20:39:10
yes and sometimes sign through email

@robinrt: 2017-06-27 14:13:06
ok, I'll raise this as a future issue for development


Fixing city and state drop down.

@sharone: 2017-06-23 16:02:41
The people who originally were doing inputting were very inconsistent about it. We have spelling errors as well as multiples with different initials and just plain errors in the list. I want to clean this up but can't find any place with the list. Also would like to control the list not have what ever they type saved. Can you help me?

@robinrt: 2017-06-23 16:41:16
The list is constructed from existing person records. The only way to fix it is to fix the existing person records. If you use the advanced person find screen (ASM->Find Person, then click Advanced), you can search for city and states with known typos or inconsistencies and fix them by editing the records. If there are a LOT, a bulk update query can be run to update them in one go.

@sharone: 2017-06-24 03:19:20
Thanks! Is there anyway to avoid this happening again?

@sharone: 2017-06-24 13:03:07
There are LOTS! How do I do a bulk update query? Couldn't find it in Manuel.

@robinrt: 2017-06-24 22:26:51
Use Settings->SQL Interface. To fix a broken city, use the following command: UPDATE owner SET OwnerTown = 'Fixed' WHERE OwnerTown = 'Broken'; Similarly to fix a broken state, use the following command: UPDATE owner SET OwnerCounty = 'Fixed' WHERE OwnerCounty = 'Broken'; Change the word Fixed for the desired new value and Broken for the broken value you want to replace.

@sharone: 2017-06-24 23:29:49
Thank you!

@sharone: 2017-06-30 06:49:43
Im very frustrated! The first few times I used the script it worked fine. Tonight I was trying to fix the Port Saint Lucie records. It appears I did something wrong as it seems to have changed all the records to Port Saint Lucie. Is there a way to undo this or reset the DB to before 9:30 Thursday night. I really need your help.

@robinrt: 2017-07-01 15:26:08
Person records are restored from the backup, there shouldn't be any data loss but be really careful when using SQL scripts in future!

@sharone: 2017-07-01 15:29:23
Thanks! I will! I don't know any thing about SQL but I'm gonna learn!


Suggested Improvements

@kitten_division: 2017-06-23 13:10:32
Online form submissions, would it be possible to stop them from being automatically deleted? We use them to sign up for clinics up to eight weeks in advance, and while I currently save them to the person so the registration is attached, I would like to keep their information in the incoming forms tab until the actual clinic day, instead of them automatically being deleted. I have not been able to find a report that we can run that gives us this information without including shelter animals, so we have to keep this information in a separate excel file. Second, as I was clicking the bookmark to get to this forum, thought it would be nice to have it within ASM under our user help tab.

@adoptamutt: 2017-06-23 13:59:26
We use a custom report, Applications Received by Date, to keep up with online forms that have come in. Might help you... SQL: select case when linktypeid = 0 THEN (SELECT trim(animalname) || ' (' || sheltercode || ')' from animal where animal.id = media.linkid) when linktypeid = 3 THEN (SELECT ownername from owner where owner.id = media.linkid) END AS animalowner, medianotes, media.date from media where date_trunc('day', media.date) BETWEEN '$ASK DATE Enter from date$' AND '$ASK DATE Enter to date$' AND medianotes in ('Cat Adoption Application', 'Dog Adoption Application','Getting Help - Cat', 'Getting Help - Dog','SNIP Application','Foster Application','Volunteer Application') ORDER BY date HTML: $$HEADER <table border="1"> <tr> <th>NAME</th> <th>TYPE</th> <th>DATE</th> </tr> HEADER$$ $$BODY <tr> <td>$animalowner</td> <td>$MEDIANOTES</td> <td>$date</td> </tr> BODY$$ $$FOOTER </table> FOOTER$$


Foster vs location

@fs_s2r: 2017-06-22 12:10:18
Is there a way to give fosterers the right to change information on their particular foster in ASM regardless of location assigned or even if they are assigned to foster status?

@kitten_division: 2017-06-23 13:04:06
This is something we really need as well. We do not want all of our fosters to have access to everything, or even a particular location, just access to those they are currently fostering.


Incident and animal induction

@vsauder: 2017-06-21 20:41:18
Has any thought been given to being able to induct a new animal from an incident report? This would assist in work flow for the officers.

@robinrt: 2017-06-22 14:14:16
Not really to be honest - there's minimal animal related information on the incident (just a few fields) and most of the time people create an animal record and link it to the incident rather than the other way around. I don't want to sound completely negative - how would you see it working?


Search issue with hebrew text

@djsteven: 2017-06-19 20:09:59
Hi there, the guys are saying that have a problem when they search an animal. Every animal has the name in english and hebrew, But sometimes in the search results is not showing the animal when they search in hebrew. This is an example of the issue https://www.screencast.com/t/o1Gezi43xNeK

@robinrt: 2017-06-20 11:37:51
has this only recently started happening? There was some refactoring done to animal search last week that might have caused this.

@djsteven: 2017-06-21 15:42:52
This problem starts like 5 days ago. They said that was making the regular changes. Adding vaccinations, treatments.... But how how a change to specific animal can affect the whole search?

@djsteven: 2017-06-21 20:44:15
Looks like a bug

@robinrt: 2017-06-22 14:14:57
I think decoding was removed from search and it's affecting the Hebrew character set. I'll investigate and get a fix in asap.

@djsteven: 2017-06-22 20:48:57
Thanks. Please let me know when is done. Cheers

@robinrt: 2017-06-24 12:46:43
It should be fixed now.

@djsteven: 2017-06-26 19:51:28
Thanks Robin! Is working perfect now!


Rota

@srupe05: 2017-06-17 18:48:46
Was wondering if an option to set a default flag on the staff rota could be added. I only want to schedule certain staff members and have added a specific person flag to their record. I would like to have that flag then be the default when pulling up the rota. Also, would it be possible to change the day the rota starts and ends? I would like to schedule according to our pay weeks (Tuesday to Monday.) Thank you for looking at this.

@robinrt: 2017-06-20 11:39:57
We can certainly investigate it, but I think changing the rota start date is going to be incredibly complex to code. It's a good idea to allow a default set for the rota and I can put that on the list now.

@srupe05: 2017-06-20 21:46:06
Thanks so much!


Test Tab Functionality - Heartworms/FIV

@adoptamutt: 2017-06-16 17:23:34
I want to make sure I understand the Test Tab Functionality as it pertains to Heartworm and, I believe, FIV/FLV. So if you record the Heartworm Test through the Test Tab, the information will also be automatically stored in the Health and Identification Section. But if I enter the information directly in to Health and Identification Section, the information does not create the same information in the Test Tab. So I'm wondering if the proper procedure should be to always enter the Heartworm information in the Test Tab and NOT in the Health and Identification Section? If that is the case, it seems like maybe the "Heartworm Tested" field should not be modifiable on the Health and Identification Section and only allow modifications through the Test Tab. Thoughts? Karen

@robinrt: 2017-06-17 09:57:02
Yes, always use the test tab if you use it anyway. Some people don't as they find it overkill and they just want to record the last test. The animal emblems hang off the health and identification fields rather than test tab, as do most of the auditing reports to find out who hasn't had what.


Automated Mail Merge

@mtmcgurn: 2017-06-16 02:32:48
Hi, I'm probably missing something in the user manual but I can't seem to find the answer. So I apologize if this is covered some place. I have written a mail merge that produces a list of people and I can email them. I also have a report that generates some HTML. Is this any way to link these two things together so I can send the HTML report to everybody on the mailing list? If so, is there a way to automate it? Thanks!

@robinrt: 2017-06-16 13:38:48
There isn't I'm afraid, no. Mail merges can go to potentially many thousands of recipients, so we deliberately don't automate anything that could become accidental abuse. The service API does allow you to run a report via a URL, so a workaround might be to create a very low privilege user that is not allowed to login, but can only run reports. You can then include a link to the report you want to send those people via the html_report service API call in your email. The relevant bit of the manual is here: http://sheltermanager.com/repo/asm3_help/service.html#html-report


I have been receiving this error for the past 3 hours:

@kristinasnyder: 2017-06-15 21:42:37
Error 500 An error occurred trying to process your request. The system administrator has been notified to fix the problem. Sometimes, a database update needs to have been run, or you need to update your browser's local version of the application. Please return to the home page to run and receive any updates.

@robinrt: 2017-06-15 21:43:15
Hi, we're still working on it. Service should be back up for everyone but there are still some issues. A bad software update has caused this.

@kristinasnyder: 2017-06-15 21:43:38
thank you


I have been receiving this error for the past 3 hours:

@kristinasnyder: 2017-06-15 21:42:37
Error 500 An error occurred trying to process your request. The system administrator has been notified to fix the problem. Sometimes, a database update needs to have been run, or you need to update your browser's local version of the application. Please return to the home page to run and receive any updates.

@jtcat: 2021-01-22 06:57:44
yes ive had same problem with clients submitting an application online form, and i just tried it and i got the same error 500???

@robinrt: 2021-01-24 10:02:29
Hi, I think you emailed us about this, the problem was the flags field in a checkbox containing your entire disclaimer text (rather than flags), which caused an error when trying to store it.


Have lost all my forms after servers went down

@ddchs38024: 2017-06-15 21:00:40

@ddchs38024: 2017-06-15 21:03:59
weird. they are back


US9 server is down

@kitten_division: 2017-06-15 19:51:49

@robinrt: 2017-06-15 20:08:49
Hi, we're investigating now. US9 should be back up.

@ddchs38024: 2017-06-15 20:12:43
US8 is also down :(

@kitten_division: 2017-06-15 20:17:52
Still getting 500 error on US9 using Firefox and Safari browsers.

@ddchs38024: 2017-06-15 20:19:57
also on chrome and explorer

@krisfromaaf: 2017-06-15 20:28:13
US6 is also down on google and explorer

@srupe05: 2017-06-15 20:39:15
US5 also

@ddchs38024: 2017-06-15 20:47:24
yay! us8 back online

@kitten_division: 2017-06-15 20:51:19
US9 is back up!

@robinrt: 2017-06-15 20:51:22
Should be back now. Really sorry everyone - a bad software update just caused a live issue that didn't happen in qa, really unusual.

@ddchs38024: 2017-06-15 20:58:41
Now I cant access any documents. Tried to print adoption form and it pulls up blank form with the word none bin the corner.

@lisapelton: 2017-06-15 21:14:52
US7 still down

@robinrt: 2017-06-15 21:20:33
Checking on US7 now, None when generating docs should be fixed.

@ddchs38024: 2017-06-15 21:31:25
Main Computer is working fine however the mobile service is out again . well at least on ours and we are in US8.

@robinrt: 2017-06-15 21:35:25
odd, everything should be back now. It might be you have to logout and back in on the mobile app as sessions were affected.

@ddchs38024: 2017-06-15 21:36:56
Its very odd because i can log in under smart phone but desktop/tablet mode still gives me 500 error and so does my laptop. i have logged out and retried several times.

@lisapelton: 2017-06-15 21:40:52
I am logged out. Trying to login using Chrome, Explorer, Smartphone app. All still not working (US7). Cleared cache for extra fun & tried again. Nothing.

@lisapelton: 2017-06-15 21:42:51
(I should say, I tried using desktop version w/ smartphone app & that didn't work. Just tried smartphone interface w/ app & I do get to the main page and tried "view animals" and that did work.)


Internal Server Error - Foster Book

@tylercameron: 2017-06-10 15:30:35
Hello, when we place one of our animals into foster and then goto the foster book and click on the animals information, it gives us an "internal server error" and does not take us to the animals information page. has this issue been seen before? what should i be looking for as a cause?

@robinrt: 2017-06-10 18:21:50
Do you have a location filter set on your user account? That would explain it.

@tylercameron: 2017-10-12 23:43:06
i know this is old, but where would this be located

@tylercameron: 2017-10-12 23:53:35
i found it, and changed it, but it still doesn't help. the masteruser is noneditable - how do i change their location filter? will i need to restart the server?


Port 80?

@inetmaster: 2017-06-09 03:31:24
Hello, I'm curious how to autostart ASM to run on port 80. I installed using the .deb package. I noted in the INSTALL documentation that one could manually run "python code.py 5000". I changed the init.d file to read "python code.py 80" but the service still started and ran on 5000 on boot. Thank you!

@robinrt: 2017-06-09 09:05:12
You probably have systemd and are not using the init.d script. Edit the systemd unit under /etc/systemd/system/sheltermanager3.service

@inetmaster: 2017-06-24 17:59:13
Delay in following up - this was certainly my issue. Thank you!


Report discrepancies

@sharone: 2017-06-07 18:10:02
When we run the report adoptions with addresses for month we get only a handful of dogs. When I run the report in/out by species it shows a greater number. Why are they not the same? Appreciate any help you can give me before I read my hair out.

@robinrt: 2017-06-08 19:09:35
The only thing I can guess is that you have an older version of the report that does an INNER JOIN to the original owner. It means that your adoptions by date with addresses report is hiding results where there was no surrendering owner on file. It's fixed in the latest version of that report if you want to delete it and reinstall under Settings->Reports.

@sharone: 2017-06-13 21:13:47
Thanks I'll try that.

@sharone: 2017-06-23 15:53:58
We are an online customer but I was not the original person who set us up. I can not find any paperwork with our customer #. I want to be able to use the email support too. Do you have any contact info? My email is sharon.esempio@gmail.com and my home # is 772-242-1448. I'd appreciate any help you can give us.


Staff Rota Reports

@kitten_division: 2017-06-01 17:19:58
The staff rota reports do not include the last day - as in selecting May 1 to May 31 only gives hours worked from May 1 to May 30. A report run for May 1 shows nothing; Run May 1 to May 2 shows only May 1 hours.

@robinrt: 2017-06-06 09:32:33
So they do, hadn't noticed that! I've applied a fix now, so if you remove your existing reports under Settings->Reports, then reinstall them with the Browse sheltermanager.com button you'll get the update.

@kitten_division: 2017-06-24 01:49:13
I just got around to updating, however when I went to Browse sheltermanager.com there are no Rota reports showing as available.

@kitten_division: 2017-12-15 07:30:24
I am still not able to find any staff rota reports on Browse sheltermanager.com


Problems uploading logo and splash

@kristin_bjerkaas: 2017-05-31 02:07:22
Hi, when trying to upload.jpg logo and splash.jpg nothing happens. The page turns out blank. Is it the server having a problem? Regards Kristin

@kristin_bjerkaas: 2017-05-31 02:08:11
[Screenshot-uploadproblems](//muut.com/u/sheltermanager/s3/:sheltermanager:xX0w:screenshotuploadproblems.jpg.jpg)

@robinrt: 2017-05-31 14:46:12
Thanks for reporting this, I've applied a fix now. Let me know if you still have problems.

@kristin_bjerkaas: 2017-06-01 01:42:26
Works fine now. Thanks a lot! :-)


Email Foster Carers a Generated Document Upon Intake

@mwcscasey: 2017-05-30 11:17:11
Hey Robin and Team! I've had a little look in the report and Mail Merge section, and I am hoping the below is possible. I'd love for at the end of each day, a report to pick up any new intake cats from that day, and automatically email a cage-card-type document to the foster carer. Is something like this possible? Two years later, still loving ASM like no other <3 <3 Kind regards Casey Secretary for Mid West Cat Shelter

@robinrt: 2017-05-31 14:49:50
Ooh, that's a really difficult one. There are workarounds you could do with a report where you could list each foster animal by fosterer with a link to generate a cage card (an a tag to document_gen with the animal id). You could then have that report emailed to all your fosterers each day (it wouldn't email on days when no animals were fostered) - but there wouldn't be a way to only have it send to the relevant fosterers, all fosterers would have to get it. It would also still require fosterers to click the links and print or save the cage cards. Would that work?

@mwcscasey: 2017-06-01 11:05:25
Ohh that workaround sounds like a plan! Are you able to email me with what it would cost to have your team write that up for us? admin@midwestcatshelter.com Thank you!


transferring asm2 data

@stichtingdierenbeschermingsuriname: 2017-05-29 11:46:03
We have a downloaded version of asm2 which we have been using for 1 year. We bought a new computer and we found that we cannot transfer the data files for asm from the old one onto it. How do I do this without losing all of last year's entries? The data appears to be stored on our computer and not on-line. Do I have to download a free empty version on the new computer first and then transfer the old data into that? Thanks

@robinrt: 2017-05-29 13:30:53
There's info on what files to copy here: http://sheltermanager.com/site/en_faq_asm2.html

@stichtingdierenbeschermingsuriname: 2017-05-30 22:35:50
Dear Robin, thanks very much for the info. Audrey


Printing kennel cards for multiple animals

@jasminereine: 2017-05-27 16:14:59
Is there a way to print kennel cards for more than one animal at a time?

@robinrt: 2017-05-28 09:07:27
There's a version of the cage card report that will do cage cards for all shelter animals. You could use that and then just print the pages that you want - it's a bit crude and you're right that we should have a better way of doing it.


On Line Forms

@edel: 2017-05-26 18:27:23
Hi There I have some on line forms created on our web site. Once filled in they redirect to various email addresses set up some time ago. I now need to edit some of the address and can't seem to find a way. The "edit online forms" option in SM doesn't seem to give me the opportunity to edit the "email submissions to" column? Thank you in anticipation.

@robinrt: 2017-05-26 19:45:52
Click the little edit icon to the right of the form's name in the list.

@edel: 2017-05-26 20:47:14
Thank you! I clicked every other thing except that!


Foster Name on Report

@kitten_division: 2017-05-26 00:11:14
I need to be able to add the foster's name to a medical schedule report and cannot figure out what code to use.

@robinrt: 2017-05-26 10:26:20
I think Fosterer is shown in the Medical book of medications due: Medical->Medical Book I don't think there is a medical schedule report, did you mean the "Medical Diary" report that shows similar data to the medical book?

@kitten_division: 2017-05-26 21:07:59
It may have originally been a Medical Diary report. It is a list of all scheduled to go to the spay clinic on a single day. I have a list of 40+ kittens, without going to each kittens page in Shelter Manager, I don't know who the foster is to contact them about their schedule. If the foster name could show on the report, that would make contacting fosters so much easier.

@robinrt: 2017-05-26 21:18:49
I wasn't suggesting you go to each kittens page indivudually - there's a screen called Medical Book under the Medical menu that shows everything the Medical Diary does, but it's interactive, allows you to administer treatments and includes the Fosterer info as well.

@kitten_division: 2017-05-26 21:34:23
Right, but the Medical Diary gives the internal location, not the foster name. I am just trying to simply

@kitten_division: 2017-05-26 21:37:39
And obviously I hit the wrong key somehow. Anyway, I am trying to make my reports as simple as possible. I need a report to give to the clinic that includes the cat name, age and color, so I made a separate report "Spay / Neuter Schedule" based off the Medical Diary coding. However, I also need to know who has all of these cats, we have over 150 in the system for upcoming spay clinics and I need an easy way to see who has which cat so I know who to contact for each particular clinic. The easiest way to do that would be for the name of the foster to also be a column on the report.

@kitten_division: 2017-05-26 22:57:39
I now see what you are saying about the foster name coming up on the interactive screen, don't have a clinic today so they didn't show. While the foster name does appear on that page, it includes too much stuff that is not needed and is not printable. The report is to have only the spay/neuters for the day, not all the other medical, and there is no way to pick a day for the clinic. Below (of course a little jumbled because of copy and paste) is a small portion of what the report looks like. I just need the foster name to be there as well - not pictures, not other medical, not dosage, given by, etc. Just a simple, condensed, easily readable and printable report. I have tried all I could think of with the php code to get the foster name to appear on the report, nothing worked. Number Name Age Color Medical Scheduled 17174 Spencer 1 year 0 months. Tabby and White Spay - Murphys 05/31/2017 17180 Isabella 2 years 1 month. White and Black Spay - Murphys 05/31/2017 17181 Arleta 1 year 2 months. Brown Tiger Spay - Murphys 05/31/2017 17267 Winifred 11 wee ks. Blue Spay - Murphys 05/31/2017 17296 Bonus 8 weeks. Black Neuter - Murphys 05/31/2017 17304 Lovey 2 years 0 months. Tortie Spay - Murphys 05/31/2017 17306 Lovey 3 8 weeks. Tuxedo Neuter - Murphys 05/31/2017

@robinrt: 2017-05-27 09:18:41
Ok, you can use this code to get the current fosterer for an animal: (SELECT OwnerName FROM owner INNER JOIN adoption ON adoption.OwnerID = owner.ID WHERE adoption.ID = animal.ActiveMovementID AND animal.ActiveMovementType = 2) AS FostererName Assuming you have the animal table in your list, you can just add that to the SELECT.


Can't search Vet on Vaccinations

@valleyanimalhaven: 2017-05-25 22:25:57
When I add a Vaccination to a pet, The search button will not work. I search the vet and no results post. To get around this I have to click on the + and add the organization again, then it opens a window that says "you are trying to add a person similar to one already listed" so I have to click the name and it adds it in. There has to be an easier way! Takes a lot of time to do. Please help to link People to my Vaccination log!

@robinrt: 2017-05-26 10:25:13
Your vet records need to have the "Vet" flag assigned. You can do it when creating a person or by opening existing records and setting it under the "Type" slider.


Internal server error

@swrjay: 2017-05-24 23:04:31
Hi Robin, I am getting 500 error when trying to "browse reports on sheltermanager.com" and ASM news is failing to display for the same reason. Outbound traffic is allowed on the VPS, syslog is here https://pastebin.com/xaVUfAXa Any thoughts? Thank you

@swrjay: 2017-05-24 23:17:47
I've also just noticed that the reports and mail buttons are greyed out

@robinrt: 2017-05-25 09:23:10
The mail and reports buttons aren't active until you have some installed and it sounds like you're experiencing problems installing reports. Both the news and browse sheltermanager.com modules rely on the Python "requests" module being installed. I can see a NameError in your syslog that might indicate that it isn't. Either install python-requests from your distro's package manager or via pip


Weights

@jeffruebel: 2017-05-21 23:10:11
I had some questions/observations about how weights are recorded in the database. (1) I noticed that when a date is entered via the Details section of the Animal tab, the ounces field always shows up as zero after saving. The corresponding weight entry that's created in the Log tab is correct, it just doesn't display properly in the Animal tab. I'm guessing this is a bug? (2) Would it be possible to have the weight in the Animal tab reflect changes made in the Log tab? For example, if I create a weight log for a weighing performed today (i.e. the most recent weight) that reads "10.5 lb" it would change the fields on the Animal tab to display "10" in the pounds field and "8" in the ounces field. (3) Also, would it be possible to implement an option to customize the format of weight entries that are automatically generated in the Log tab? Specifically, the notation we use is "10 # 7 oz" for example. I realize this would probably not be a priority for the developers since the vast majority of the world uses the metric system, but it would be a big help to us so I figured I should at least ask. I also had some questions about chart reports -- specifically, the Weight Chart. (1) Is there a way to make the chart expand outside of the browser window? In cases where an animal has many years of monthly weighings, the dates displayed along the x-axis start to bunch up and overlap with each other to the point where they're unreadable. (2) I've noticed that the intervals on the x-axis are all the same regardless of whether two consecutive weighings are a month apart or a day apart. So if an animal has been losing an ounce every month and then suddenly starts losing an ounce every few days, then the line on the chart doesn't take a nose dive as expected. I have a feeling it would be horribly complicated to address this, but thought I'd mention it in case there's a setting I'm missing that allows me to adjust the interval or there were plans to make it adjustable. Sorry for so many questions all at once! Thank you so incredibly much for any help you can provide!!!

@jeffruebel: 2017-05-21 23:16:21
...sorry, that first item should have read "when a weight is entered" not "date".

@robinrt: 2017-05-22 09:44:36
1. Is animal.Weight an INTEGER in your database? It should be some kind of floating point number, but if it's created as an int it would explain that. 2. No, but changing the weight field writes an entry into the log. 3. I think that's a fair bit of fiddly development for not much gain. You might be better to just edit the code and change that yourself (it's in animal.py/update_animal_from_form Charts are an area that are definitely due for an overhaul. I guess you'd want to size them to be larger than the viewport sometimes if there are a lot of datapoints. I'll definitely add that to the issue ticket. The weight chart is definitely an issue - ideally it should be doing interpolation to smooth out gaps between samples, but it's not that sophisticated at all. I'll raise that as a separate development issue.

@jeffruebel: 2017-05-22 18:37:48
Oh, first off, I should have clarified that we're using a database hosted at sheltermanger.com. Unless I'm missing something, editing source code and changing the type of non-additional fields is only possible on a local installation of the database, right? I think part of my confusion is that I was unaware of the animal.Weight column (there's no mention of it in the manual). Plus the built-in weight reports (Weight Chart, Weight History, etc.) pull the weight from the log.Comments column and I've just been doing the same in my own reports. I put together a simple report that displays animal.Weight for the whole shelter and the values are indeed integers. Which brings me back to thinking this is a bug since I have no control over animal.Weight's type (assuming I'm right about what I said above about hosted databases). As far as the two items with charts go, that's great to hear that this is something you guys are working on. Definitely looking forward to seeing that implemented! Thank you!

@robinrt: 2017-05-25 09:18:33
You're absolutely right - it should just be working if it's sheltermanager.com. Is it particular values that don't store or is it any whole number in the ounces field? If you get in touch directly at support@sheltermanager.com and include your account number I'll take a look and get it fixed.


Average time vs length of stay

@jasminereine: 2017-05-18 18:24:35
Does anyone know the difference in "Average Time on Shelter" vs. "Average Length of Stay".

@robinrt: 2017-05-18 22:14:26
Average Time on Shelter: Runs only for a complete calendar year and excludes from the average animals who left on the same day they arrived. Length of Stay: Can be run for any date period, does not exclude animals who were on shelter for 0 days, which can drag the average down and produce a different figure.


Spanish translation

@sandranuevavida: 2017-05-17 20:51:56
Hi, I´m working at a shelter in Spain. We´re looking into the software. My colleagues are enthusiastic, but they tell me that the translation level into Spanish (of the try out version) is not very high. Is it the same as the final (to be paid) version?

@robinrt: 2017-05-17 23:07:22
Yes, it is. We're always looking for volunteers to help with translations and we offer free paid time to customers who are willing to help with translations. Our translations are all online at https://translate.zanata.org/iteration/view/asm3/40/languages?dswid=1438


Test report between 2 dates

@djsteven: 2017-05-17 19:24:46
Hi I downloaded the Test Diary report from the sheltermanager.com reports but doesn't work. Do u have the right template?

@djsteven: 2017-05-17 19:30:14
Also to look by type

@robinrt: 2017-05-17 23:08:31
I'm sorry, I don't understand what you mean. Do you get an error when running the test diary report? Is it just that it doesn't return any data, in which case do you have test records with a required date and no administered date?

@djsteven: 2017-05-18 16:05:38
Sorry my english is not good enought. Im trying to make a Test Report, and I want to organize by TestName, this is a small example how i wanted, maybe u can give me an idea how can i make it. In the form i want to choose between 2 dates and then to show something like this. [Test-report](//muut.com/u/sheltermanager/s2/:sheltermanager:PBEz:testreport.jpg.jpg)

@robinrt: 2017-05-18 17:14:20
Sure, if it's help with a report could you paste the SQL and HTML so I can see what you're doing wrong and correct it for you?

@djsteven: 2017-05-18 21:56:51
This is what i have so far (I copied from one of your templates and edited but my coding skills are not so good) SELECT a.ShelterCode, a.AnimalName, t.AnimalType, il.LocationName, a.ShelterLocationUnit, tt.TestName, at.DateRequired, at.Comments, tr.ResultName FROM animal a INNER JOIN animaltype t ON t.ID = a.AnimalTypeID INNER JOIN animaltest at ON a.ID = at.AnimalID INNER JOIN testtype tt ON at.TestTypeID = tt.ID INNER JOIN testresult tr ON at.TestResultID = tr.ID INNER JOIN internallocation il ON il.ID = a.ShelterLocation WHERE tt.TestName Like '%$ASK STRING Enter Test name$%' AND at.DateRequired >= '$ASK DATE Enter the from date$' AND at.DateRequired <= '$ASK DATE Enter the to date$' AND a.Archived = 0 ORDER BY at.DateRequired -------------------------------------------------------------- $$HEADER <table border=1><tr> <td><b>Code</b></td> <td><b>Name</b></td> <td><b>Type</b></td> <td><b>Test Type</b></td> <td><b>Results</b></td> </tr> HEADER$$ $$BODY<tr> <td>$SHELTERCODE</td> <td>$ANIMALNAME</td> <td>$ANIMALTYPE</td> <td>$TESTNAME</td> <td>$RESULTNAME</td> </tr> BODY$$ $$FOOTER </table> FOOTER$$ --------------------------------------- Any help is more than welcome. Thanks

@robinrt: 2017-05-19 08:41:40
To start, replace the $$HEADER section with this: $$HEADER HEADER$$ $$GROUP_TestName $$HEAD <table border=1><tr> <td><b>Code</b></td> <td><b>Name</b></td> <td><b>Type</b></td> <td><b>Test Type</b></td> <td><b>Results</b></td> </tr> $$FOOT </table> GROUP$$ Empty the footer section: $$FOOTER FOOTER$$ and change your ORDER BY to: ORDER BY tt.TestName, at.DateRequired This will group by the test name instead.


Word key vaccination help

@kayde1: 2017-05-16 13:04:21
Hello, I am making a document and trying to list a specific vaccination and the multiple dates it was given. Specifically the FVRCP vaccination. I was trying to use <<VaccinationGivenFVRCP1>> and <<VaccinationGivenFVRCP2>> and so on but this is not working. I have been using just <<VaccinationGiven1>>, <<VaccinationGiven2>>, etc but was wondering if it can be tailored for a specific vaccination instead? Any help appreciated! Thanks

@robinrt: 2017-05-16 17:17:57
Sure, when you use those tokens with a named vacc like FVRCP you can only get the first or last - the index numbers only apply to the complete list of vaccinations for an animal. Eg: <<VaccinationGivenFVRCP>> is valid and returns the first given FVRCP and <<VaccinationGivenRecentFVRCP>> returns the last FVRCP.

@kayde1: 2017-05-16 17:33:11
So no work around for more than 2 of a specific vaccination... Okay thanks.


Hill Diet Form

@dgaroutte: 2017-05-13 03:56:11
The Sheltermanager website says it has the Hill Diet form but I am unable to find it in the forms. Could you tell me where to find this?? It is used to submit information to Hill's

@robinrt: 2017-05-13 10:14:57
It's in the reports repository - Settings->Reports->Browse sheltermanager.com, it's called "Hills Science Diet"


Trial Adoptions

@grahamparsons: 2017-05-11 22:47:46
If using the API, do animals marked as on Trial Adoption show in either the 'Adoptable Animals' list or the 'Recently Adopted' ?

@robinrt: 2017-05-12 09:23:27
If you have the options set for both "Trial adoptions are shelter inventory" under Settings->Options->Movements and the "Include Trial" option of Publishing->Set Publishing Options->Animal Selection - then they'll appear in the still adoptable section. They always appear in the recently adopted list.


Does anyone know how or if you can create new test?

@miffysrescue: 2017-05-10 15:31:27
There only options in the "Test" section of the animals medical records are FIV, FLV and Heartworm. I want to add other tests on there such as Fecal or parasite testing, lyme disease testing, ect. Is that possible?

@robinrt: 2017-05-10 16:44:14
Settings->Lookup Data->Test Types


LInk to Petfinder

@sue333: 2017-05-06 14:27:15
My apologies if already covered but I am new to the program. We are linked to petfinder. All of the animal descriptions previously entered on Petfinder have been cleared. Where do I enter animal descriptions, the narrative section, on sheltermanager so it transfers to the animal description box on Petfinder?

@robinrt: 2017-05-06 16:06:19
The comments field under the Notes slider of an animal's record. If you haven't already, you need to configure PetFinder upload under Publishing->Set Publishing Options->PetFinder

@sue333: 2017-05-08 02:54:57
I filled in each dogs Notes section hours ago. It shows on the audit trail that it posted to Petfinder yet its still not there. Frustrating

@robinrt: 2017-05-08 15:51:27
ASM only updates 3rd party services once per day. You can manually force an update from the Publishing menu.

@sue333: 2017-05-08 15:55:23
Thank you, I emailed ASM and was informed of that. It has updated now. Thank you


Adding a movement

@lauriel: 2017-05-04 19:27:30
Is there a way to add a movement type?


Drupal integration

@inghamn: 2017-05-02 20:42:29
Has anyone written a Drupal module that integrates with Shelter Manager? I don't want to duplicate effort; however, I can't seem to find one, yet. I'm happy to share code for any Drupal module we write.

@inghamn: 2017-05-03 17:16:22
https://github.com/City-of-Bloomington/drupal-module-asm Okay, well, I've gone ahead and created one. While it's still in early development, it shouldn't take much longer. Expect a flurry of initial development in the new few days. I'll get it written enough to satisfy the needs for our new website (nearing release); but, then it probably won't see much more progress from me unless we find bugs. We're, of course, open to any other contributors who might have other integration desires than us. No sense duplicating effort.


Wondering if there is a way to have various flags show up on documents.

@vsauder: 2017-05-02 19:53:39

@candidhominid: 2017-05-03 15:11:08
I don't use documents, but I think <<AnimalFlags>> and <<OwnerFlags>> might be what you are looking for. https://sheltermanager.com/repo/asm3_help/wordkeys.html

@vsauder: 2017-05-03 21:40:27
I am not sure why, but those particular wordkeys do not function. Any thoughts on why?

@candidhominid: 2017-05-04 13:23:47
Hmm. Not sure. I just tried a document with Animal Flags: <<AnimalFlags>> on a cat with the not for adoption flag and got "Animal Flags: notforadoption,"

@vsauder: 2017-05-08 19:13:48
Not sure if it is an issue with the version of software, code, or a database issue. We are using version 39u. Could the issue be with the version? It is possible the source code is also incorrect. It is listed as <p><<AnimalFlags>></p>

@candidhominid: 2017-05-11 13:38:45
Yes, I think the issue is with the SM version. OwnerFlags and AnimalFlags were added on 1/31/17 to version 40.

@vsauder: 2017-06-05 19:10:29
Is version 40 available currently for download or do you know when it will be?


Vaccinations are still showing in calendar after adoption

@marvink2650: 2017-05-01 18:27:38
Vaccinations that are due are still showing up on the calendar, even after adoption or reclaimed. I know I checked a box previously to prevent this, but I can't find that setting to turn it back on. Help!

@robinrt: 2017-05-02 09:45:37
Settings->Options->Defaults->Include off-shelter animals in calendar and books


animal_view_adoptable_js invalid method

@grahamparsons: 2017-05-01 02:59:27
After getting ASM 39 up and running, I was trying out the api and am getting 'invalid method' for animal_view_adoptable_js. Is this not available yet in the open source version?

@robinrt: 2017-05-01 09:17:39
No, it's in the still unreleased version 40. You can update to the master branch in our git repository to get it.


Login screen appearing blank

@grahamparsons: 2017-05-01 01:39:14
Just updated to 39, and the login screen is appearing blank. The tab title reads Animal Shelter Manager, and the url shows http://xx.xxx.xxx.xxx:5000/login?target=main (xxx = our ip). There is even the sheltemanager 'paw' favicon on the browser tab. Any ideas?

@grahamparsons: 2017-05-01 02:06:14
Update: I uninstalled everything and reinstalled. Appears to be working ok now.


Follow-up Date and Times

@glissonar: 2017-04-26 17:15:14
How can I get all of the follow-up dates and times to show on a document? I have tried using <<FollowupDate>> and <<FollowupTime>>, but only one follow-up shows. I have also tried using <<FollowupDate1>> and <<FollowupTime1>>, but none of the follow-ups show. Any help is appreciated.

@robinrt: 2017-04-26 19:24:02
There are only tokens for the first followup date and time. I'll raise a ticket to add tokens for the others now.


Importing costs via Direct SQL

@achmark: 2017-04-24 08:40:37
We are trying to migrate from a spreadsheet based system into Shelter Manager. We have successfully imported the cats and the people but cannot currently import costs. We have manually created one example cost via the UI and then attempted to repeat that same process via SQL directly to the (MySQL) database. However none of the records inserted into the database directly appear in the web UI. We are unsure how the RecordVersion is populated, and even looking (very) briefly at the Python code have no found the source of this yet. This is one of the last steps in getting everything imported so we can then move to the hosted platform.

@achmark: 2017-04-24 08:51:39
In the DB the rows look like: Good: Insert into animalcost (ID,"AnimalID","CostTypeID","CostDate","CostPaidDate","CostAmount","De scription","RecordVersion","CreatedBy","CreatedDate","LastChangedBy","LastChangedDate") values (13,914,1,to_timestamp('2017-04-23 00:00:00.0','null'),null,3700,'this is a test ui',175711,'user123',to_timestamp('2017-04-23 12:57:11.0','null'),'user123',to_timestamp('2017-04-23 12:57:11.0','null')); Failing: Insert into animalcost (ID,"AnimalID","CostTypeID","CostDate","CostPaidDate","CostAmount","De scription","RecordVersion","CreatedBy","CreatedDate","LastChangedBy","LastChangedDate") values (15,914,4,to_timestamp('2017-04-23 00:00:00.0','null'),null,3050,'this is a test sql',175713,'user123',to_timestamp('2017-04-24 00:00:00.0','null'),'user123',to_timestamp('2017-04-24 00:00:00.0','null'));

@achmark: 2017-04-24 08:55:49
Ok, the _ were stripped out, but hopefully get the idea

@robinrt: 2017-04-24 09:02:03
RecordVersion is used for optimistic locking, it would not affect a row appearing in the UI. I can't remember now if it contains an incremental or random number (either works) - all it is used for is to verify that no-one else changed a record while you made edits. You didn't include any of the error messages you are seeing on failing rows? I can't see anything wrong with what you're doing - just make sure the animal ID and CostTypeID is valid.

@achmark: 2017-04-24 09:11:44
Both those are valid. Not seeing any errors on import, the row shows up fine in the database just not the UI and no obvious errors in stdout.

@achmark: 2017-04-24 09:46:57
Ok, I think it is the cost type ID that is wrong

@robinrt: 2017-04-24 09:47:01
If you SELECT back the records, you've inserted - do you see them Ok? Are the values for costtypeid and animalid valid as that's the only inner joining done for the costs screen? Are you using serializable transaction isolation in MySQL? That's a potential explanation (do the records appear if you stop the ASM service then restart it?).

@achmark: 2017-04-24 09:47:20
I am validating now but it seems that is it. I did not put the initial inserts together, so I blame that person! Testing now :-)

@achmark: 2017-04-24 09:49:17
Test worked. Thanks for help, it pointed me in the correct direction. Hopefully all data imported soon and no more spreadsheets!


i need to pay my renewal but i cant find the link

@paulinekohutekura: 2017-04-24 04:01:41
and now it wont let me go in to my account

@robinrt: 2017-04-26 19:23:20
Hi, please email us directly at support@sheltermanager.com including your account number.


running script dbupdate.py

@sibow: 2017-04-19 19:35:26
I am getting 'Warning no smcom_client' what does this mean, it is not showing an error but warning but still believe it is not running. How to fix?

@inghamn: 2018-01-11 19:17:03
We're getting this warning in the apache logs of our production site, running v39. --- [wsgi:error] [pid 18962:tid 139644628862720] warn: no smcom_client --- I'm not sure if it's causing any damage, though. Did we screw something up during the installation?


Change when kittens show as available

@kristinasnyder: 2017-04-18 04:24:18
ShelterManager is currently showing kittens available for adoption at 6 week and publishing them. Can I change it in the software to not show them as adoptable until 8 weeks? if so, how?

@robinrt: 2017-04-18 11:46:34
Publishing->Set Publishing Options->Animal Selection->Exclude animals aged under ...


database upgrade script

@sibow: 2017-04-11 20:29:13
We are using asm 3, we want to upgrade to 39 is there an upgrade script for database. I noticed that there are new tables (site for example), and some new added fields to other tables such as siteId to user and internallocation tables.

@robinrt: 2017-04-12 09:33:22
No, newer versions of the software will automatically upgrade the database after the first login.

@sibow: 2017-04-12 14:53:55
We have a test instance ASM3 that was installed from a zip file not the usual debian install. After downloading the zip file for ASM39 and installed on a separate directory and using the same old database of ASM3, I am getting errors complaining about fields such siteId not known in a table. This is even before login. So upgrade can not take place. Is there a function I can run to do the upgrade such as update.py . If not do you know what are the list of variables and tables that were added to the new database. Thanks

@robinrt: 2017-04-12 19:48:21
ASM keeps a value in the configuration table with itemname = 'DBV' that contains its current database version number. Have a look to see what yours is. All of the database updates are in dbupdate.py - find the function for your last database version and have a look at the ones after it to see what changes you need. You can manually rerun updates by changing the value held in configuration against DBV - the software will run any updates that have a higher number than your DBV.


lost found match blank screen

@sibow: 2017-04-11 20:26:03
we are using asm3 we added a couple of animals to found animals and others to lost animals. The search lost or found animals work fine, except when we click on "lost found match" link we get a blank screen. I tried the new release but with no lost or found animal added, I am still getting a blank screen.

@robinrt: 2017-04-12 09:32:51
The lost and found match report runs as part of the overnight batch. You can run it manually under Settings->Trigger Batch Processes, but you should have a cron task set up to run the cron.py script.


Print Animal Record (for adopters): "No data to show on the report."

@jeffruebel: 2017-04-10 14:50:32
One of our animals, a cat named Hal, started showing up this way today and I'm at a loss as to why. Nothing in the SQL code looks like it would exclude him -- after all, the report can be run for animals flagged as not for adoption and even deceased animals. I tried running the report for several other cats with flags similar to Hal's and their reports generated normally. Hal appears to be the only one affected. Any ideas? Thanks for any help you can provide!

@robinrt: 2017-04-10 17:50:51
That report has INNER JOINs to species, location, colour, animaltype, size and entry category. Make sure that Hal has values in all those dropdowns. This can sometimes happen if the default value (set under Settings->Options->Defaults) for one of those fields is deleted and the default not updated. It leaves new animal records with a blank default.

@jeffruebel: 2017-04-10 23:39:05
Yeah, somehow Entry Category got set to null even though that's not an option. This particular record was added by import and I suspect the value got set incorrectly at that point. I should have thought to look for something like that. Thanks for your help!


"Not available for adoption" notification on all records

@jeffruebel: 2017-04-07 02:50:59
Tonight we noticed that when removing a cat's "Not For Adoption" flag the "Not available for adoption" notification at the upper right of the cat's record did not go away. After taking a look at other records in the database we found that seemingly every record has this notification regardless of whether or not the animal is flagged as "Not for Adoption". Fortunately, the database is still properly recognizing/handling the "Not For Adoption" flag in searches, reports, etc. So I'm guessing this is a bug? If so, is there an eta on when it'll be fixed? It's not a huge deal since the database still basically functions properly, but the notification is causing confusion with some users. Though, if it's not a bug, I'd greatly appreciate some help in fixing whatever we've done wrong. Thank you!!!

@robinrt: 2017-04-07 09:04:54
There should be a reason underneath it to explain why the animal is not for adoption. All of those rules are controlled by options under Publishing->Set Publishing Options->Animal Selection

@jeffruebel: 2017-04-08 06:13:52
Underneath it says "(no description)". The notification always appeared only on animals flagged as "Not For Adoption" and yet suddenly began appearing on all records a couple of days ago. Also we've never used any of the the Publishing features of the database. However, I looked at the Publishing options you mentioned. Unfortunately, nothing in here appears to relate to the issue at hand.

@robinrt: 2017-04-08 13:53:08
Your animals do not have a description under Notes->Animal Comments. This is controlled by the option "Include animals without a description" on the screen mentioned. If you set that option to "Yes" those animals will be adoptable (assuming no other rules are broken).

@jeffruebel: 2017-04-08 14:47:14
Okay, thanks, setting it to "Yes" fixed things. Is this a new feature? I checked with the other admins and none of them have ever even been into the Publishing menu let alone made changes to Publishing Options. In fact, we thought it strictly dealt with how our data was publicly displayed (an area we have not yet explored) and that it did not have any effect on the way things were displayed internally.

@robinrt: 2017-04-08 15:53:55
That's correct. The displaying on records is only to remind you that an animal is not adoptable.


Report with selection entry

@sibow: 2017-04-06 14:42:05
We would like to create a new report that we display medical treatment for a given internal location. So, we want to display a selection box of locations where user will pick a location, then the report will show the animals in this only location

@robinrt: 2017-04-06 16:58:19
Sure, use a WHERE clause something like: WHERE animal.ShelterLocation = $ASK LOCATION$

@sibow: 2017-04-06 18:34:11
thanks I figured out before I read your reply, I tried to imitate the animal selection $ASK ANIMAL$ so I thought something like location must be built in function.


VPS

@swrjay: 2017-04-05 21:19:49
Hi Robin is there a walk through for installing on Ubuntu VPS (Amazon Lightsail) via SSH? I can get the package installed but no idea how to start it up and access the GUI via terminal

@robinrt: 2017-04-05 21:47:09
Hi, the instructions are the same for a VPS as for any other server - see /usr/share/doc/sheltermanager3/README for info post setup.

@robinrt: 2017-04-06 09:43:11
or read online here: https://github.com/bobintetley/asm3/blob/master/README.md

@swrjay: 2017-04-08 03:13:57
Great thanks, i think i am nearly there, however I'm getting a 403 forbidden error. I have set the apache2 .conf as suggested, any thoughts?

@swrjay: 2017-04-08 03:30:25
I'm also getting "warn: no smcom_client No requests/urllib3 module found." in the terminal

@robinrt: 2017-04-08 15:55:10
The 403 will be a problem with your Apache config, you'll have to look at the error log to find out why. The two errors from ASM are harmless - the first is that it is not a sheltermanager.com server and the second is that you don't have python-requests installed, which prevents some publishers working but does not affect operation of the system.

@swrjay: 2017-04-13 16:15:31
All done, thanks for your assistance :)


Hide Htacces forwarding

@dome1094: 2017-03-30 15:07:30
Hello there, im using the open source ASM3 on a phyton server, but my subdomain is registered on another server. If i try to open the site with edited title and link over subdomain there's nothing shown. Maybe someone out there could help me, thank you in advance :)

@robinrt: 2017-03-30 16:53:57
If your subdomain is pointing to another server, that sounds like your problem. You either need to point the subdomain to the server that ASM is on, or use a reverse proxy to it from the subdomain server.

@dome1094: 2017-03-30 17:45:37
thank you for your answer, but you didnt understood it quite right. My ASM is on another server than my subdomain, and ASM seems to not like to be accessed from another server, thats my problem. Somewhere in ASM's source code is written that this is not allowed, but i just hope there's a opportunity to change that. And sorry if my english is confusing, it's not my mother language :)

@robinrt: 2017-03-30 18:11:38
I'm really sorry, I don't understand and there's not enough info here to make a diagnosis. There's nothing in ASM's source code preventing access from anywhere - it will respond to requests on any of its endpoints and it uses no directory structure on purpose so it will work well with reverse proxying. Do you have an error message coming from ASM when you're accessing it via another server? What URL are you using and what's the response?

@dome1094: 2017-03-30 18:18:41
I'll try to explain as good as possible, as I'm not the guy which runs the server, im not an IT-guy. At the moment I'm using a subdomain, but its just forwarding to the IP of the server where ASM is on, like this it's moving well. But i dont want to see the IP in the search bar, so i try to use the subdomain as a webspace, and this is not moving. If i run my subdomain as a webspace, forwarding to the IP over a index.php, its just showing a white screen, nothing else.. For example you can check on asm.streunerfamilie.de thats the running forwarding subdomain, without webspace. All I want to change is, that i dont see the IP anymore after moving on asm.streunerfamilie.de

@dome1094: 2017-03-30 18:23:52
I've made a subdomain with webspace, forwarding over index.php to the ASM server real quick, maybe you can see the mistake: asm2.streunerfamilie.de

@robinrt: 2017-03-31 11:29:41
The server is returning a 403 - that looks like Apache permissions/config and nothing to do with ASM. Sorry.

@dome1094: 2017-03-31 15:12:15
i found out a little bit more about my problem. The 403 error is from the .access file, which is making a rewriterule, the problem for this could cause the server your right. But what i was trying to do before was, to make a index.php or .html and make a frame forwarding, and this caused the failure that it shows only a white screen

@robinrt: 2017-03-31 17:55:58
Ah I see, yes, frames will cause a problem. I think by default we set SAMEORIGIN. To fix this, you'll need to edit your ASM source code. If you open code.py file with a text editor (/usr/lib/sheltermanager3 if you used the Debian package), look for a line inside a function called full_or_json that reads: web.header("X-Frame-Options", "SAMEORIGIN") Either delete that line, or put a # in front of web to comment it out and restart ASM. That will remove the SAMEORIGIN restriction and allow it to work from within a frame.

@dome1094: 2017-03-31 19:10:43
I'll be able to check on that earliest on monday, but it sounds like the solution. Will tell you if it works then, but thank you allready :)

@dome1094: 2017-04-08 21:26:40
Hello there, we made the changes, also in the line for the login-page. But we noticed that it was still showing only a white page, even if asm is turned off. Could it be, that the asm program is making an other cache folder somewhere?

@dome1094: 2017-04-09 10:58:53
hey there again, something was wrong with the index.html from my subdomain, i replaced the code and now all is moving. Thank you very much for your help and time :)


Courtesy Listing

@easel-beth: 2017-03-27 15:57:25
I have created a courtesy listing which got posted to Petfinder. The animal has since been rehomed. How do you remove the listing from Petfinder? I've removed the Courtesy Listing flag and left the non-shelter animal flag, but that doesn't seem to do anything?

@robinrt: 2017-03-27 20:32:23
Hi, that's exactly what you should do - removing the courtesy listing flag will remove the animal next time you publish to PetFinder. Did you rerun the PetFinder publisher after making that change?

@easel-beth: 2017-03-27 21:33:16
The publisher runs nightly and I've made the change a week ago but it still hasn't removed the courtesy listing.

@robinrt: 2017-03-28 08:51:45
If you look at Publishing->View animals matching publishing options, that should tell you which animals are being sent. Is the courtesy listing animal still showing in there?

@easel-beth: 2017-03-28 14:41:08
No the animal is no longer on the publishing list, but it is still showing on Petfinder.

@robinrt: 2017-03-28 14:43:33
PetFinder can sometimes be slow to process updates, but a week seems like a very long time. If you have a sheltermanager.com account, could you let me know which one it is so I can take a look? Is there any chance someone could have created an animal record for this courtesy listing manually in the PetFinder members area? Uploads from ASM will not remove animals you create manually with PetFinder.

@easel-beth: 2017-03-28 15:30:50
Our acct is mp0473. I just checked with our person who has set up manual entries in the past and she didn't create one of this entry.

@robinrt: 2017-03-29 09:20:00
Everything looks fine at our end and there are no errors, if the animal is no longer being sent by us and PetFinder are still showing it then I'm sorry but you'll have to ask them what's happening and why it's still there. You can get them at help@petfinder.com - don't forget to give them your PetFinder shelter ID. I also checked your data and you have three active courtesy listings currently for "Cinnamon", "Belle" and "The Dude". Is one of these the problem animal? They are being included in uploads due to having the courtesy flag.

@easel-beth: 2017-03-29 14:58:37
No those three are still active. Thank you for checking. I'll contact them.


Upgrade

@fs_s2r: 2017-03-21 11:48:51
How long would an upgrade of the system take and what would be the cost? It looks like we are not on ASM3

@robinrt: 2017-03-21 12:12:08
We don't charge to upgrade old ASM2 installations to a hosted account with us. The only cost is the flat subscription fee of $325/year.


Report needed

@fs_s2r: 2017-03-21 11:47:46
There is already a custom adoption report. Would it be possible to modify it to achieve what I need?

@robinrt: 2017-03-21 12:11:01
All of the reports are editable with a little SQL knowledge. Did you mean report or the document template for a standard adoption contract? Everything is editable.

@fs_s2r: 2017-03-24 02:06:46
the report I guess. The custom adoption report is great but I would like a column added that pulls information "adoption Followup" ...unless there is a report that does that already? I have no SQL knowledge...I may have to learn

@robinrt: 2017-03-24 18:06:30
Which one is that, "Adoptions by Date with Addresses" maybe? Are you a sheltermanager.com customer? If so let me know your account number and I can help with that. Also, if you are you can email us directly for support - the forum is for open source users and does not get the same sort of response times.


Adoption fee payments

@tag2010: 2017-03-16 12:38:02
How do you set up a payment plan for adoption fees? We have a foster who wants to adopt her foster dog but she's not able to make the full payment immediately. I am not seeing a method to do this ... Thanks!

@robinrt: 2017-03-16 16:15:31
There are two ways you can do this. Both require that you enter the payment under the payment book or payment tab of a person/animal record rather than via the quick payment info from Move->Adopt an animal. 1. Create a payment for the first instalment and give it a frequency of weekly or monthly. The system will create the next due payment record. When you receive the last payment, change the frequency on it to one-off to stop any more due payments being created. 2. Create due payments manually for each instalment (but create them as one-off payments). As they're due payments, do not set received dates. In both case the system will remind you via the alerts on the home page that payment is due and there are reports to identify overdue payments. The difference between the two is that the second is flexible and can cope with any payment plan, the first requires weekly or monthly instalments.

@tag2010: 2017-03-17 13:17:01
Thank you Robin, my second portion of this question involves invoices. I noted that when I go into the invoice area it doesn't create an invoice that reflects any payments. In addition the invoice doesn't reflect the adoption fee. Do I need to create the invoice from scratch? That is, do I need to put in all the pertinent numbers and dates, including payments and balance?


Sorting by time.

@robmoff: 2017-03-08 15:06:16
In a report I am trying to sort a table by the length of time spent on the shelter. Using animal.TimeOnShelter I get a sort of order, but it's first digit numerical only. That is 17 days comes before 2 days , and 2 years comes before 3 months or even 3 days. WIDW?

@candidhominid: 2017-03-08 17:25:36
The essentials are below, if you need more details or explanation, let me know. --- SELECT extract(day from CURRENT_DATE - animal.datebroughtin)::integer AS TimeOnShelterDays , /* For ordering purposes */ age(CURRENT_DATE, animal.DateBroughtIn)::varchar AS TimeOnShelterInterval, /* For display purposes */ ORDER BY TimeOnShelterDays ---

@candidhominid: 2017-03-09 01:42:48
Correction/note: animal.MOSTRECENTENTRYDATE can be used instead of animal.datebroughtin. That gives results more would think of as "time on shelter".

@robmoff: 2017-03-09 10:26:09
THX, I'll give your suggestion a whirl.

@robinrt: 2017-03-09 10:29:34
There's also the animal.DaysOnShelter field, which is kept in sync with TimeOnShelter.


SQL Database/Table names

@bbailey18: 2017-03-07 21:50:56
Hi all, I'm not very familiar with the SQL interface of sheltermanager and I need to know where I go to find the different names of the variables and tables within the SQL database. Without these I obviously can't do any custom reports, unless i'm missing something entirely.

@candidhominid: 2017-03-08 01:20:24
You can reference the "Appendix: Database Tables/Columns" section of the manual, or use the code completion feature of the SQL editor by typing a table name or table alias followed a period and then hitting control+space.


Media Images default size

@djsteven: 2017-03-07 20:08:05
Hi, there is a way that I can set a default size for the animal photo (when open full screen) , when is uploading the system resize to 320px width. I need at least 700px. Thanks

@candidhominid: 2017-03-08 01:43:11
You either do or do not enable "Use HTML5 client side image scaling where available to speed up image uploads" under the display section of the Options. There are no other options right now. Disabling this feature allows larger images but it results in much slower uploads. Your photos should be scaling to 640px in either length or width (whichever is longer).


Medical Book question

@djsteven: 2017-03-03 18:07:05
Hi, We are giving a medical treatment to a an animal once a month. In the require dates I saw 1 - 01/01/2017 2 - 01/02/2017 which is Ok, but the 3rd date is saying 04/03/2017, and suppose to be 01/03/2017. Is something in the configuration?

@candidhominid: 2017-03-03 20:37:40
It's because February is a short month.

@candidhominid: 2017-03-03 20:41:39
And the medical book thinks of 1 treatment per month as 1 treatment every 31 days.

@djsteven: 2017-03-06 15:32:05
Thanks for the answer, but there is a way I can do fix date?

@candidhominid: 2017-03-06 15:53:04
No, there is not currently a way to have a regimen that recurs only on the X day of the month. You could have the regimen recur every 28 days (or however many you want). You could consider putting a note in the comments letting people know to bump the treatment to X day of the month.

@djsteven: 2017-03-06 16:22:27
Thanks buddy!


Repeat guests

@vsauder: 2017-03-02 22:11:45
I cannot find a good way to return animals into the shelter without loosing information. Example: a dog who has been reclaimed is returned to the shelter as a stray. Other than making a complete new animal, it appears that the previous information is lost.

@candidhominid: 2017-03-02 22:32:02
When a cat returns to our shelter from adoption here is what we do: Go to the movement tab, click on the adoption movement, add a return date, select a return category, and type in a reason. All of the original entry information is preserved. Nothing is lost. This would work the same for returning a dog from a reclaim.

@vsauder: 2017-03-06 16:56:38
That keeps the animals information. However, other than adding comments there appears to be no way to note who found the animal if it was a stray or if the animal was surrendered by someone other than the owner.

@candidhominid: 2017-03-06 17:50:55
Hmm. That's not an issue our shelter encounters. Some thoughts: If it is undesirable to add the information to the movement's comment, someplace in the log, or to the existing entry fields , I would consider adding one or more additional fields to the entry section of the animal tab to capture the information for multiple entries/intakes. Or, you could go the route of cloning the animal and just changing the entry information. You would have to be careful to consider how that would affect any reports you are running and whether or not that makes things more confusing for staff/volunteers. Good luck!


Purchase

@vikkiambrose: 2017-03-02 20:55:35
HI how long does it usually take between payment and contact/confirmation/installment please? Thanks

@robinrt: 2017-03-02 22:05:35
It's typically about 5 minutes. It can sometimes be a little bit longer if PayPal are slow to process the payment and notify us.

@vikkiambrose: 2017-03-02 23:42:17
Oh its been over 12 hours now

@vikkiambrose: 2017-03-03 01:50:29
HI Robin would you please check that my payment has gone through, the reference is my name and Retired Working Dog Adoption NZ as well as the reference number provided

@vikkiambrose: 2017-03-03 03:31:53
Herre is my payment confirmation if it helps no_reply_international@westpac.co.nz 10:29 PM (18 hours ago) to me You are receiving this email to confirm on 2 March 2017 (NZ) you initiated an International Payment to Shelter Manager for the amount of AUD 115.00. Details about the payment: Their bank: ROYAL BANK OF SCOTLAND PLC Their bank account number: 83042511166966 Payment information: Vikki Ambrose - Retired Working Dog Adoptions NZ Your reference number: IB0010333422


TimeBroughtIn key appears not to work in the Demo

@rickr: 2017-03-02 16:41:30
I could not get the TimeBroughtIn key to work in the Demo under "Print Animal Record" Report. Does it work on the production side? Also, I did not see any place where the time entry could be added for the entry of a new animal. I am currently evaluating the product to meet our needs and this is one feature that animal shelter supervisor would like to have.

@robinrt: 2017-03-02 16:53:50
It returns a blank if the time is not present. I think by default intake times are disabled on the demo and there's no way to turn them on as the options screen is not available to prevent people trashing the demo. It definitely does work in production!

@rickr: 2017-03-02 16:57:07
Thanks for the response which answers my question.


#asm3-adoptables not present

@candidhominid: 2017-03-02 13:40:03
New dialog popping up this morning. Guessing it's related to "02/03/17 Add animal view adoptable js service call #24"? [Screenshot](//muut.com/u/sheltermanager/s1/:sheltermanager:ydzp:screenshot16.png.jpg)

@candidhominid: 2017-03-02 16:41:03
It's not happening anymore, thanks!


Additional Reports questions

@keeber99: 2017-03-01 02:50:56
I ran several reports, and the figures don't match across the various reports, esp. Petco Foundation, shelteranimals counts and best friends. Is anyone else having problems with reports reporting different data for the same categories, i.e., animals on hand at the beginning of the year. I don't know if it's the reports calculating incorrectly/differently or data entry. Thanks.

@candidhominid: 2017-03-02 00:45:21
Concerning the beginning counts only: The Best Friends and Shelter Animal Counts reports have identical code. Their numbers should be the same. They are counting animals in foster, but they are not counting animals at retailers. The Petco report has code that is a bit different but does the same thing with one exception: It is counting both animals in foster AND animals at retailers. If you have found other inconsistencies or want help changing these reports to count or not count animals at retailers, let me know and I can try to help.


WordPress Plugin

@robingardella: 2017-02-28 20:55:27
I run a web site for our local animal shelter and they use this software to manage the shelter. Is there a WordPress plug-in I can use to create a widget for a featured pet -- with the pet's picture and a little bit of info about the pet -- on the web site? Petfinder has such a widget but it is too frequently down. Can anyone help? Thank you!

@robingardella: 2018-02-28 18:38:16
Yes, I'm now using the javascript method for displaying our adoptables on our site. I like it much better than the static HTML working in an inframe. I'm still wondering, though, if there's a way to randomly select out animals for a "featured adoptable" widget I'd like to have on the home page? Does anyone know how to do this in a Wordpress site?

@paullawleyjones: 2018-03-01 13:57:54
I believe WordPress now has a raw HTML widget. Perhaps you could use this and manually select the ID of the featured pet?

@paullawleyjones: 2018-03-01 13:58:53
It's called "Custom HTML."

@robingardella: 2018-03-01 16:04:06
Hi, Paul. Yes, there is a raw HTML widget in WordPress. I was thinking it would be great if there was a way that a pet's image and info could be dynamically pulled from your current group of adoptables (randomly) and then appear in a widget. I don't know how to make this happen but it would be a wonderful addition to a shelter web site.

@robingardella: 2018-03-01 16:06:02
There was one called Petfinder Listings (obviously keyed to Pefinder, not Sheltermanager) which was perfect but no longer works. It would be great if one of you smart people would take it over ( - :


Reports

@keeber99: 2017-02-28 20:51:22
It seems that figures aren't calculating correctly on the Petco foundation report. How can I get assistance with reports to ensure that the numbers are correct. It might be a data entry problem with entry information, but I'm struggling with trying to figure it out. Thanks.

@candidhominid: 2017-03-02 00:51:31
If you specify which figures you believe aren't calculating correctly, I'd be happy to look at the code.


Publishing - Animal selection

@sabinestull: 2017-02-27 17:26:18
The template changed from including unaltered to excluding them?? Even when manually changed to yes include them in publishing the system will not let me save it. We need the animals published while they are waiting on their s/n surgery !!!

@robinrt: 2017-02-27 17:34:26
Apologies, it was a mistake - when the option was added, it should have been set to include non-neutered/spayed animals by default. I've just deployed a fix to correct that now. I wasn't aware of a problem saving the publishing options so I'll investigate that. Again, sincere apologies.

@robinrt: 2017-02-27 17:38:44
You're quite right, the option is broken and should have been tested properly prior to deployment. I'm applying a fix now so not only will it default to including unaltered, changing the option will have some effect.

@sabinestull: 2017-02-27 17:53:48
Thank you for the quick fix!!!!


Error During Pet Adoption

@thatgisguy: 2017-02-27 14:40:33
I'm having an issue when anyone other than a Superuser tries to Adopt or Foster and animal an 'error' bar is displayed across the top of the screen. I have given those that need it 'superuser' temporarily while I try to resolve the issue. I saw a post on Dec 12, 2016, on these forums that gave me that idea, so thanks already for that. I have also checked Account permissions for the affected users and no permissions have been given or taken away prior to this error starting to occur. We did have a virus affect the PC in question and has since been removed. I do not want to keep the users in question superusers for very long. It seemed to me originally to be a permissions based issue, but I am the only administrator and I have made no changes since initial setup. My next thought is possibly the virus, but I'm almost certain that isn't it. I hate to use this forum as a notepad for my thoughts on the matter, but I'm sort of at a loss. If anyone has any suggestions I'm willing to take them. I appreciate any help and accept my thanks in advance.

@candidhominid: 2017-02-27 15:49:59
Probably related to this (from the change log) : "22/02/17 Move->Adopt/Reserve/Reclaim should require payment permissions" I would try adding Payment permissions to the users in question.

@thatgisguy: 2017-02-27 16:27:19
Thank you again. That was it. I thought it might be something like that I just didn't want to go through and test each individual permission. For future reference is there a place where I can find the change log/ updates for Shelter Manager?

@candidhominid: 2017-02-27 17:15:37
No problem. The link for the Change Log is at the bottom right of the home page. sheltermanager.com/static/pages/changelog.txt


Update a litter

@christinestransky: 2017-02-26 18:54:21
We have a litter of 9 puppies to whom we just administered vaccinations. Is there a way to enter that information so that it is applied to all the pups in the litter? Or do we have to do it individually? I did a search on your manual and FAQ and didn't see that info but wanted to confirm it had to be done individually before I spent the time to enter each one separately. Thank you!

@candidhominid: 2017-02-26 20:40:11
Yes, there is a way. Use the Bulk Vaccination feature available in the Vaccination Book. You can select an entire litter at once. [Screen Shot](//muut.com/u/sheltermanager/s2/:sheltermanager:fTtL:screenshot20170226at3.36.59pm.png.jpg)


Payment

@vikkiambrose: 2017-02-25 20:50:54
What payment options do you offer please?

@robinrt: 2017-02-25 22:28:42
If you're meaning for paying for a sheltermanager account, we use PayPal as our merchant. They support all major debit and credit cards as well as bank account transfers. We can also accept overseas bank transfers directly.

@vikkiambrose: 2017-02-26 09:11:35
Hi Also do you require payment in full for the software and the monthly maintenance fee? Sorry we are a small shelter with just 4 volunteers and 4 foster homes but rehome on behalf as well around 80 dogs per year so is it possible to do monthly installments to cover the software and fees as I would have to pay myself and dont have much? thanks

@robinrt: 2017-02-26 09:57:19
It's $325 for a full year of online service, $170 for 6 months or $100 for 3 months. There are no other fees. Sorry, we don't do monthly payments. If the hosting is too expensive, you can download our software for free. The older ASM2 desktop software is very easy to set up and can be imported into an online account later if you want to upgrade. https://sheltermanager.com/site/en_oss_asm2.html


images are flipping

@tsunrise: 2017-02-24 21:30:13
whenever we add a new image of an animal to shelter manager it to the turns to the right. Have the manual and have followed directions as presented to user. The images are in JPeg format. Please help. See our webpage at HS-SC.org and go to pet finders on front page. You will see that all of the new images added are sideways. At ideas?

@robinrt: 2017-02-25 20:07:08
Sure, the problem is to do with retaining EXIF orientation from browser uploads and is a known bug. If you select the image after you add it to an animal, you can use the rotate buttons on the media toolbar to rotate the image into the correct orientation again.

@tsunrise: 2017-02-25 21:33:27
where are the rotate buttons found, never saw them on a media toolbar, what does the the logo look like? Thank you?

@candidhominid: 2017-02-25 21:34:41
There are two arrow buttons. [Screen Shot 2017-02-25 at 4](//muut.com/u/sheltermanager/s1/:sheltermanager:Jrqm:screenshot20170225at4.33.53pm.png.jpg)

@tsunrise: 2017-03-01 22:57:06
ok thanks, i will try . Thank you!


Non neutered Report template

@djsteven: 2017-02-23 20:14:43
Hi, did somebody has the code of report for the non neutered animals

@djsteven: 2017-02-23 20:33:44
Is fixed. In case somebody is looking the same this is the code ----SQL---- SELECT ShelterCode, AnimalName, NeuteredDate, AnimalComments FROM animal WHERE Neutered = 0 ORDER BY NeuteredDate ----HTML---- $$HEADER <table border=1><tr> <td><b>Code</b></td> <td><b>Name</b></td> <td><b>Date</b></td> <td><b>Comments</b></td> </tr> HEADER$$ $$BODY<tr> <td>$SHELTERCODE</td> <td>$ANIMALNAME</td> <td>$NEUTEREDDATE</td> <td>$ANIMALCOMMENTS</td> </tr> BODY$$ $$FOOTER </table> <p>Total: {COUNT.ShelterCode}</p> FOOTER$$


Rabies cert issues

@sfrisk: 2017-02-23 20:01:28
We're having issues getting owner info to show up for non-shelter dogs brought in on our public clinic days. Their info is recorded under Entry: Original Owner. I've tried the original owner wordkeys (i.e. <<OriginalOwnerName>>) with no luck. Any tips?

@robinrt: 2017-02-24 15:45:35
OriginalOwner should work. You can also use <<CurrentOwnerName>> for nonshelter animals.


I need a phone number to get help setting up

@dalebrown: 2017-02-23 16:49:04

@robinrt: 2017-02-24 15:46:34
I'm sorry, we don't offer telephone support. We're really happy to answer questions in the forum here, or directly by email for sheltermanager customers at info@sheltermanager.com


Reports: AVG, MAX & MIN values

@jeffruebel: 2017-02-23 03:00:47
So I'm calculating animal age as an integer in SQL with this: --- ROUND(EXTRACT(DAY FROM now() - a.DateOfBirth)::integer / 365.0,1) AS IntAge ---- Then, in the HTML, I'm displaying it in the footer of a LocationName group with a table containing this: --- <td ID="avgage">{AVG.IntAge.1}</td> <td ID="minage">{MIN.IntAge}</td> <td ID="maxage">{MAX.IntAge}</td> --- The average value is dead on. However the minimum value turns up as zero across the board. And the max value is all over the map -- sometimes it's even less than the average value which is obviously impossible. Usually when I'm doing something wrong each instance fails in the same way. But three instances with a success and two different failures? I'm totally at a loss. Thanks as always for any help you can provide!

@robinrt: 2017-02-23 10:10:09
Hi, you've uncovered a bug in the logic for MAX - it's doing max(minval, val) instead of maxval. I've committed a fix now and it will be on sheltermanager.com some time today.

@jeffruebel: 2017-02-24 01:21:53
MAX is working perfectly now. Thank you for the quick response! I could still use some help with MIN though as I still can't figure out why I'm getting all zeros. Thanks again!

@candidhominid: 2017-02-25 21:23:08
I can't get MIN to work either (with ages or IDs). I took a look at the source. I've never looked at Python in my life, but I think SM's MIN function might have a problem. It seems to set a variable named minval to 0 and then loop through every field being passed to it. Each time it loops it resets minval to the lowest value of either the previous minval or the field being evaluated that time through the loop. The problem is that if minval starts at 0, it's only going to get any lower if the loop encounters a negative number. My evaluation is supported by the fact that you can make MIN show negative numbers by, for instance, changing IntAge in the example above to EXTRACT(DAY FROM a.DateOfBirth - now()) Robin?

@robinrt: 2017-02-25 22:27:30
Yep, absolutely right! There's a deploy going tonight so I'll get it in that one. Thanks for the save :)

@jeffruebel: 2017-02-26 17:32:52
Thanks again for being on top of things with the timely fixes, robinrt. And good looking out, candidhominid. Our new report is now 100% up and running thanks to you guys and I think it's going to have a real positive impact on getting our cats adopted -- again, thank you!


breeds

@vikkiambrose: 2017-02-18 07:55:28
hi how do you add breeds that arent on this list?

@robinrt: 2017-02-18 09:21:31
Depending on which version of ASM you have, either System->Lookup Data, or Settings->Lookup Data.


Is it possible to save images to server directory instead of the database

@sibow: 2017-02-17 18:33:58
I am looking to import of couple thousands of animal images to the ASM . I am looking for how to save these to server local drives, I think ASM is saving images in the database dbfs table content column

@robinrt: 2017-02-18 09:22:25
It isn't, but this is something we're working on right now and hope to have in the 40 release in the next month


Is there a report showing movement between internal locations between two dates

@lesleyrogers: 2017-02-17 16:32:57
?

@robinrt: 2017-02-17 16:50:19
There isn't, no. However, if you turn on the option "Settings->Options->Defaults->When I change the location of an animal, make a note of it in the log with this type", location changes will appear in the log tab of an animal's record. You can use the log reports to output them.

@lesleyrogers: 2017-02-17 16:54:45
Thanks - that still doesn't quite give what I was looking for. We need to know number of days animals have been in certain internal locations.... will rethink!

@robinrt: 2017-02-17 17:09:25
A report could calculate days in a location from the log records (but it would be quite complicated). Just out of interest, what are you planning on using that info for?

@lesleyrogers: 2017-02-17 17:23:45
We need it for an internal report. We have our fosterers set up as internal locations (as well as pens at our cattery) and need number of days with fosterers each month.

@robinrt: 2017-02-17 17:27:05
Ah, I see. If you used foster movements instead of locations (Move->Foster an animal), a movement record is written every time the animal changes fosterers and it's easy for reports to calculate that time in days. It also retains the complete foster history for an animal and person that way.

@robinrt: 2017-02-17 17:27:29
You can also set capacities for fosterers and use the fosterer mode of shelter view to see who has space.

@lesleyrogers: 2017-02-17 17:30:31
Ok thanks - will have a tinker!


Reports: Fosters vs. Permanent Fosters

@jeffruebel: 2017-02-16 05:15:31
I'd like to create reports that include Fosters (i.e. Short-Term Fosters) along with our on-shelter population. Specifically, this would mean excluding Permanent Fosters. However, I can't seem to find any info on how to differentiate between the different types of fosters. How might I accomplish this? Thanks in advance!

@candidhominid: 2017-02-16 15:48:50
These can be used in the WHERE statement (if the appropriate table is in the FROM statement or joined, of course): --- animal.HASPERMANENTFOSTER = /* 1 for Yes, 0 for No */ adoption.ISPERMANENTFOSTER = /* 1 for Yes, 0 for No */ --- If you need more help, let us know.

@jeffruebel: 2017-02-16 18:40:43
Yes, this is working nicely. Thank you! On a related note, I've noticed that these fields (and quite a few others) are not included in ASM's documentation. As a workaround I've been able to figure some things out by installing and digging through the code of the optional reports, but this can get very time consuming. Are there any plans to make ASM's documentation more complete?

@candidhominid: 2017-02-16 21:55:14
Glad to help. Can't actually speak to plans for the documentation. I just post here to share what I've learned while using SM. One trick you might find useful: When you are in the SQL editor, type the table name or table alias (if an alias is used in the FROM statement) followed by a period (like 'animal.' or 'a.') and then hit control+ space bar. That will bring up a list of every column in the table. That will always be up-to-date!

@jeffruebel: 2017-02-16 22:28:03
I had no idea that the SQL editor had a code completion feature -- this is awesome! Huge thanks for sharing this!


Wordpress website integration

@altolus: 2017-02-15 18:06:10
I spent a lot of time researching the various website integration options possible with ASM and wanted to report back with the finished product for Nuzzles & Co. Check it out here https://nuzzlesandco.org/adopt-a-pet/ I ended up taking advantage of the API to pull in all of the animal information to create the custom search and display a few animals on the homepage.

@robinrt: 2017-02-15 18:16:35
Looks great!

@nedvansise: 2017-03-21 21:58:59
Hi Fletcher - I'm sitting down to do the same - any chance you would consider sharing your code?

@robinrt: 2017-03-22 09:10:06
ASM has a new Javascript include service API call that you can use to really quickly put live adoptable animals in your website. It won't be as fancy as Fletcher's custom code, but it's a simple include with no need to write any PHP and there's instructions for WP in the manual: http://sheltermanager.com/repo/asm3_help/service.html#animal-view-adoptable-js

@robinrt: 2017-03-22 16:35:38
and this page: http://sheltermanager.com/repo/asm3_help/website.html

@sharone: 2017-11-29 22:43:28
Fletcher, would you consider sharing your code? Our web person can no longer do it so I need to streamline the process and keep it up to date. Your code is perfect answer! Sharon

@robinrt: 2017-11-30 10:52:42
Looking at the Nuzzles and Co site, it seems to have the same search/filter dropdowns that our javascript include offers - with pretty much the same layout. You can style it all to look exactly how you want with CSS. Here are some examples of customers using the javascript include and styling it for their own use. It's just a few lines of javascript in your WP page with no PHP to write. http://greyhoundrescuewales.co.uk/asm-dynamic-upload/ http://jcasms.weebly.com/adoptable-pets.html

@sharone: 2017-11-30 17:08:55
I have no experience with scripts or css so I am lost. I looked at the directions you mentioned and was overwhelmed! Can you help me to decipher this? As I said in my post to Fletcher I need to get it done so that it updates and just streamline the process as I will not have the time or the assistance of someone to keep it up. The way his is setup would work fine for us. Appreciate any help you can give us. Thanks Sharon

@robinrt: 2017-11-30 17:23:52
The directions are copying 2 lines into the source of a page! There's even a screenshot showing where/how to do it on a Wordpress site. Fletcher's code is server side and will require you to know about PHP programming and Wordpress internals so you can modify it for your site!


Print Animal Record for all the animals

@djsteven: 2017-02-09 18:59:49
Hi Robin, there is a way i can export the animal record of all the animals once. This is just to have a backup of all the history.

@robinrt: 2017-02-09 19:12:48
Do you mean that you'd like a version of print animal record that runs for all animals so you could run it the once to have a printout of your current data?

@djsteven: 2017-02-22 18:20:30
Yes I do.

@robinrt: 2017-02-22 18:36:11
The simplest way to do that is to go to Settings->Reports, then clone the "Print Animal Record" report, change its name to something appropriate (eg: Print All Animal Records) and change "WHERE ID = $ASK ANIMAL$" to "WHERE Archived = 0" for all shelter animals or remove the WHERE line altogether if you want it for all animals for all time.

@djsteven: 2017-02-22 22:59:15
I'll try it. Thank you Robin!


A report for an Animal Flag?

@rachelc81: 2017-02-07 22:47:42
I would like to create a report that let's me see all animals with a certain Flag. How do I write that?

@candidhominid: 2017-02-08 04:05:39
Here are the basics: *SQL* --- SELECT a.AnimalName, a.AdditionalFlags FROM animal a WHERE a.AdditionalFlags like '%YOUR FLAG HERE%' AND a.ARCHIVED = 0 /* Add this line to only show on-shelter animals */ --- *HTML* --- $$HEADER <table border="1"> <tr> <th>Name</th> <th>Flags</th> </tr> HEADER$$ $$BODY <tr> <td>$ANIMALNAME</td> <td>$ADDITIONALFLAGS</td> </tr> BODY$$ $$FOOTER </table> FOOTER$$ ---

@robinrt: 2017-02-08 10:13:52
There's also flag mode of shelter view that will group all shelter animals by which flags they have. Choose it from the dropdown at the top right of shelter view.


Drop Down Menu Creation

@thatgisguy: 2017-02-02 16:16:13
Is there a way to create a drop down menu for users to select from? For example, a menu allowing users to only select from certain cities in the Address tab.

@robinrt: 2017-02-02 16:44:07
Not for the city field, no. You can add your own dropdowns for other things under Settings->Additional Fields. Use the type "Lookup" and put your items in the lookup items box, separated b y a pipe. Eg: Item 1|Item 2|Item 3

@thatgisguy: 2017-02-02 17:01:34
Thank you so much for help.


Signature pads

@kelliewageman: 2017-02-01 19:23:04
Hello, we would like to use an actual electronic signature pad for signatures instead of using a mouse or mobile/tablet device (we use a pc for the system at our office). Is the system set up for us to use something like that?

@robinrt: 2017-02-02 10:22:17
I'm afraid not at the moment as those require USB device drivers (not so compatible with web applications). I'll put it on our list to investigate, but for now the only way is to use a cheap tablet like the Kindle Fire for $50 - which I think is probably cheaper than dedicated signature pads?


Email

@karenconlonbuffaloe: 2017-02-01 18:26:21
currently the foster's email address defaults on animal's media- any way to have the reserved adopter's address default?

@robinrt: 2017-02-01 18:49:24
There isn't, but I can see that would be preferable to the fosterer. I'll raise a ticket to get that fixed in development.


Transferred animals still getting published

@fs_s2r: 2017-01-31 19:33:36
We currently transfer animals out to rescues. However, we no longer want them published from ASM. Is there a way to do this without deleting the animal and transfer info? Thanks

@robinrt: 2017-02-01 18:48:40
They shouldn't be published after transfer. Have you given those animals the "Courtesy Listing" flag? That would explain it as that flag guarantees an animal will be published regardless of where it is.

@fs_s2r: 2017-02-04 14:15:45
I double checked the animal's settings. Under the animal tab, he has not been set as courtesy or non-shelter. His status is listed as transferred. Movement and transfer is listed as transfer as well. Is there a step I'm missing?

@robinrt: 2017-02-05 08:51:13
We did have an issue with overnight batches on some larger accounts that was fixed yesterday morning. That might also explain it. If you make a change to those animals and save them again, do they disappear from the "Publishing->View animals up for adoption" list? Saving an animal record should re-check its position.

@fs_s2r: 2017-02-08 16:35:21
This particular animal doesn't show up on the publishing list. Not sure why it keeps getting pushed. I guess I need to go into the specific publishers and change his settings?

@robinrt: 2017-02-08 16:37:34
If it's not on the publishing list, is it actually getting pushed? You should be able to see in the publishing log for the run which animals are being included.

@fs_s2r: 2017-02-08 17:31:30
I'll look there as well. He keeps showing up on petfinder. I thought he would have been removed when I did the transfer movement, but he was there the next morning


Other Intake and Outcome Numbers in SAC report

@marvink2650: 2017-01-30 00:54:14
When I ran the report for SAC the animals that I put into SM as Unwanted seem to be counted in the "other" category, instead of Owner Surrender. How should I be entering owner surrender animals so they are on the SAC report as owner surrender? And the SAC "Other Live Outcome" has a number that doesn't appear to match anything in the In/Out report. Where does this number come from?

@candidhominid: 2017-01-30 16:23:15
The Intake: Relinquished by Owner section checks for an entry reason like "Surrender". The Live Outcomes: Other section checks for the following movement types: Escaped, Stolen, Released to Wild, and Moved to Retailer I had to edit the default SAC report to make it fit our shelter's needs. It's possible you will need to do the same.


db file

@tylercameron: 2017-01-29 04:07:14
when i install the program, it creates the asm.db file, but when i go to run it, i cannot use the "user" "letmein" to get in. it says it is invalid, when i look at the db file there are no users in the list. how can i add a default user so i can log in and start using it?

@tylercameron: 2017-01-29 17:34:56
when i am creating the database it is giving me the error - <class 'sqlite3.OperationalError'> at /database table users has 11 columns but 10 values were supplied - how can this be fixed?

@robinrt: 2017-01-31 10:04:56
I vaguely remember that issue with user table parameters on the old Windows builds about 5 years ago - are you trying to install one of those instead of the latest? I'm afraid we stopped packaging installers for Windows a long time ago and we only target Linux and Unix-like systems.

@tylercameron: 2017-01-31 13:12:44
yes, im trying a windows installer, do you remember the fix?


Log Data

@mtmcgurn: 2017-01-29 03:40:59
Does anybody know if it is possible to add to a specific animal's log with a simple post request like the service API?

@robinrt: 2017-01-31 09:48:26
it isn't, no. The service API does not have a method for doing that.


Automated Mail Merge

@mtmcgurn: 2017-01-29 03:19:26
I'm still using the demo account, but I was wondering if there was a way to do automated mail merge? It would be nice if this ran daily without any human input. Is this possible? Is it possible to take the response and put it directly into the log for an animal?

@robinrt: 2017-01-31 09:49:23
Not in the demo, no. It's not possible to run a mail merge without a human at least checking it and hitting the button in the live system since it could very easily be a way to automatically annoy people.

@robinrt: 2017-01-31 10:16:43
you mentioned the log again, what is it that you're wanting to do?


Account name

@dvargas: 2017-01-26 17:23:54
Is it possible to change our account name?

@robinrt: 2017-01-26 17:38:08
You can create an alias for it to use instead at https://sheltermanager.com/my/


Attachments in Online Forms

@dvargas: 2017-01-26 04:42:44
I have created a form for reporting lost pets. Is there a way to include attachments such as a photo of a pet?

@robinrt: 2017-01-26 07:59:47
No. It could very easily become a denial of service attack. The workaround is to get people to email photos.

@dvargas: 2017-01-26 14:07:57
Could you guard against that with a "captcha" type mechanism?

@melatronics: 2018-02-08 17:20:18
I do hope the potential for allowing attachments can be revisited and git enhancement #160 can be bumped. There are a lot of opportunities for your users to automate the manual work they are doing right now. Imagine being able to spend more time rescuing and less time on data entry, including manual uploads of media. Anyone in the world could complete a DOS attack right now without this functionality. The largest concern would be cross site scripting, not a DOS. Without the proper security in place, allowing your users to upload any image, whether automated or manual, leaves you vulnerable to this. Implementing this functionality with the proper security and input/output sanitation would definitely elevate any rescues ability to become more efficient while reducing costs.

@robinrt: 2018-02-08 17:32:15
I agree completely, that's why #160 exists, is in the release currently being worked on and has a "popular" tag to bump it. The DoS we're worried about is filling the database with junk rather than I/O, which is why #160 should do a lot of client side and server side validation before storing anything.


RECURRING MEDICAL

@wgsdmom: 2017-01-25 21:02:15
How do you set a recurring medical item (such as monthly heartworm meds) to appear on the medical calendar? I set it for once a month for 12 months but it only appears on the calendar for the current month. Thank you.

@robinrt: 2017-01-26 07:59:18
The next medical treatment in any regimen is only created when the current one is given. This is to prevent overdosing animals.


Does anybody know if you can download media through the service api?

@mtmcgurn: 2017-01-24 16:17:10

@robinrt: 2017-01-24 16:24:00
You can get animal photos with the animal_image method of the service API. It's not possible to retrieve other types of media file.


Installation on NAS synology

@jbe38342: 2017-01-21 07:11:04
Hello, I want to install ASM3 on my Synology server. The problem is that it seems impossible to install a .deb file on it. Do you have a solution? Thanks in advance.

@robinrt: 2017-01-21 09:21:38
I don't, sorry. Synology don't make it clear what the underlying technology for their NAS boxes is, but it's very much a black box. Even if you could install a .deb file, it's unlikely that ASM's dependencies (mostly Python) would be available.


Detailed Shelter Inventory Report

@vikibass: 2017-01-12 17:58:19
We just started using Retailer for our pets that go to 2 Petsmart stores. When we run the detailed shelter inventory report, it doesn't show that the pets are at the retailers. It shows them as being at our shelter. Is there another report that will show the pets at retailers separately or do we have to run one of the Retailer reports and manually subtract them from the shelter inventory?

@candidhominid: 2017-01-14 21:01:37
You can edit the Detailed Shelter Inventory report to group the retailer animals together. There are two CASE statements where you need to add the following code: WHEN a.ActiveMovementType = 8 THEN 'Retailer' Updated SQL segments below. 1) s.SpeciesName, CASE WHEN a.ActiveMovementType = 2 THEN 'Foster' WHEN a.ActiveMovementType = 8 THEN 'Retailer' ELSE i.LocationName END AS LocationName FROM animal a 2) ORDER BY CASE WHEN a.ActiveMovementType = 2 THEN 'Foster' WHEN a.ActiveMovementType = 8 THEN 'Retailer' ELSE i.LocationName END, s.SpeciesName

@vikibass: 2017-01-15 22:50:59
Thank you for your help.


Need direction on adding a vaccine on pull down menu

@mindycalverthumane: 2017-01-10 15:20:38
I am looking for information on adding in the option to put in the Lepto vaccine on the pull down menu; under the vaccination tab. I have looked through my handbook and cannot locate. Any help would be appreciated

@robinrt: 2017-01-10 16:13:09
Settings->Lookup Data, choose Vaccination Types from the dropdown.


Considering application solutions

@garydietrich: 2017-01-09 21:43:07
We are a new shelter and kenneling facility. We are looking at application solutions for the facility. Is there anyone in the Minnesota area that is using this system? Is there someone who would be willing to have a conversation with us about the use of the application. We are planning on opening our doors in June of this year and would like to make a decision on the application in the next several weeks.


Average age by shelter location

@jeffruebel: 2017-01-07 15:56:04
So like the subject says, I'm trying to calculate the average age of each room in our shelter. First I calculated the age in SQL using this: > AGE(NOW(),a.DateOfBirth) AS AniAge Then in the HTML I did this: > Average Age: {AVG.AniAge} Unfortunately, when the report display, every room displays this: > Average Age: 0.00 What am I doing wrong? I appreciate any help you can give. And thanks for your patience -- I'm still quite a noob when it comes to SQL.

@jeffruebel: 2017-01-08 00:30:13
Okay, so I've started from scratch and I'm doing all the calculation inside the SQL code with this line: > AVG(AGE(NOW(),a.DateOfBirth)) AS AvgAge ...and it's working! However, I'd like to convert the average age to years, but the above code produces a character string. For example: > 687 days, 2:30:34.021086 Now, I suppose I could SUBSTRING the output to just include the number of days and then CAST that value as an integer, but I'm wondering if there's a simpler (or more appropriate) way to accomplish this? Thank you!

@robinrt: 2017-01-08 10:09:17
If you subtract two dates, it will give you an INTERVAL object that you can EXTRACT the days portion from and mulitply by 365 to get years. Example: EXTRACT(DAY FROM now() - a.DateOfBirth)::integer * 365 AS AgeInYears I think there could be two reasons that the {AVG} token isn't working for you. First, you have to put it in a $$GROUP or $$FOOTER block so it can calculate the average for all records in the block. If you put it in $$BODY it won't do anything because $$BODY runs for every single record so it would always be an average of one element! Second, it needs a numeric column value and your AGE() column is a varchar. You should be able to use {AVG} with the EXTRACT expression I gave above.

@jeffruebel: 2017-01-08 22:42:40
Hmmm, I tried that line of code and now I'm getting the following error: _syntax error at or near ";" LINE 2: EXTRACT(DAY FROM now() – a.DateOfBirth)::integer * 365... ^_ The thing is, there isn't a semicolon there - or anywhere in the SQL for this report. In fact, here's the code I'm using: --- SELECT EXTRACT(DAY FROM now() – a.DateOfBirth)::integer * 365 AS AgeInYears, ia.LocationName FROM animal a INNER JOIN internallocation ia ON ia.ID = a.ShelterLocation WHERE a.Archived = 0 GROUP BY ia.LocationName ORDER BY ia.LocationName ASC --- Also, wouldn't I divide the days by 365 to get the years opposed to multiplying? Finally, I came up with an alternative bit of code: --- TRIM(trailing ' ' FROM SUBSTRING(CAST(AVG(AGE(NOW(),a.DateOfBirth)) AS VARCHAR) FOR (POSITION('day' IN CAST(AVG(AGE(NOW(),a.DateOfBirth)) AS VARCHAR))+3))) AS AvgAge --- ...which produces results like: _4 years 2 mons 1 day_ This output is nice and clear, but my code seems to be awfully clumsy. So, ultimately, I'd like to use your EXTRACT method since it's brief and far more readable. However, there's no rush since I do have a working method for the moment. Thanks again for your help!

@robinrt: 2017-01-09 10:39:07
You're right, it should be / 365 not * 365. The error you're getting is the forum software - it's changed the minus symbol next to a.DateOfBirth into an emdash and I guess you copied/pasted? Change it back to a minus symbol and that should do it. You'll also get an error because a.DateOfBirth needs to be in your group clause to be used in an expression. I'd leave the GROUP off and calculate the average in a $$FOOT block for $$GROUP_LocationName with {AVG.AgeInYears} in the HTML section of your report instead.

@jeffruebel: 2017-01-12 18:07:26
(Sorry for the delay in response; it's been a busy week.) So I did everything you described above and the report is displaying without errors and everything looks great at first glance. However, the values that are being displayed for the average aren't quite right. For example, we have a shelter location that only has two cats -- they're from the same litter and they're both 1 year, 8 months, and about 25 days and of age. However, in the report it lists the average age as 1.00 years. Every average age in the report is off in the same manner. In an attempt to debug this, I did this (and updated the HTML accordingly): --- EXTRACT(DAY FROM now() - a.DateOfBirth)::integer / 365 AS AgeInYears EXTRACT(DAY FROM now() - a.DateOfBirth)::integer AS AgeInDays --- ...which produces this: >Room Count: 2 >Average Age in Years: 1.00 >Average Age in Days: 632.00 The thing is, if you divide 632 by 365 you get ~1.73 which is, in fact, their average age in years. I can't fig ure out why the first line in the above code doesn't do this. Is there some sort of rounding or precision parameter I need to include? Thanks again for all your help!

@robinrt: 2017-01-12 18:23:09
Well, both values are integers so I guess PostgreSQL is doing integer arithmetic, hence the rounding down. Try changing 365 to 365.0 to make one component floating point instead and see if that fixes it (this trick definitely works in Python and other languages where you want floating point arithmetic).

@jeffruebel: 2017-01-12 19:02:56
Yep, that did it! (I probably should have known that, but this is the first time in ages that I've done coding of any kind.) Anyway, I think I'm all set now -- thanks again!


Info not being pushed to publishers

@femilaskaria: 2017-01-05 21:40:58
Some of the information in ASM (coat, colors, breed, etc) are not getting pushed to our publishers. The system is on auto upload, so there are some websites where any changes we make will be overwritten. Is there a way to fix this? Thanks

@robinrt: 2017-01-06 16:00:29
It depends on the publisher - the import specs for some just do not include some fields. In particular, very few publishers accept color or coat type. Adoptapet.com is the only publisher that supports color. It's not something we've seen as a big problem in the past since a photo is a better visual indicator.


ASM39 - non-super-users gets faulty search results with persons

@ampien: 2017-01-05 17:50:44
After upgrading to ASM39, my non-system-users (even with all the roles attached) gets non-vet persons in their search results when adding an administering vet for a vaccination. Super-users however, only sees persons marked as vets. Another non-super-user is looking for a person with volunteer, homechecked, homechecker and fosterer tags but can't find her. When I change her from normal user to super-user it works perfectly. Please any help would be much appreciated, I really don't want to go back to not seeing gender on the animal photos with ASM38.

@robinrt: 2017-01-05 18:37:13
I suspect the problem with your non-super user is that she does not have the "View Volunteer Records" permission in her role (it's in with the person permissions). I'm not sure whether this will help or not with the administering vet search bug you're seeing, that sounds very odd and I can't recreate it in our trunk so I guess it's already been fixed in the latest codebase.

@ampien: 2017-01-05 19:03:40
Yes, Thanks Robin. I created a new role that grants those permission and both "bugs" have now disappeared. Much appreciated and I hope this a great year for your team.


Video upload

@femilaskaria: 2017-01-04 16:31:51
Is there a way to upload a video within ASM that can be pushed out to publisher?

@robinrt: 2017-01-04 16:56:27
You can't upload videos to ASM (what a waste of space!), but you can store them with YouTube and attach your video link to the media tab that the publisher can use.

@femilaskaria: 2017-01-05 21:38:49
Thank you. We will go to our publishers to add

@sue333: 2017-05-10 13:07:57
if I post a video directly to petfinder, will ASM delete it or override it?

@robinrt: 2017-05-10 14:07:49
I'm not sure. There's no provision in the PetFinder import spec for us to send them video links so it's entirely possible that it might.


Matching my Shelter Animals Count to Reports

@reneetomberlin: 2017-01-03 13:46:25
At the end of each month I have issues with numbers not matching depending on which report I run. Ex: For December my shelter animals count report shows 7 reclaimed by owners. However, when I print the Intakes by Date with Outcome report for the same time period, there are only 6 reclaimed. Is there anyway to make SAC report give details...ex: where it says 7 reclaimed...is there a way to have it show me who those 7 are? Also...SAC is showing 9 animal in the returned to shelter columns, but they are no where on my intakes report...things that make you go hmmmmm.

@robinrt: 2017-01-03 14:03:14
There have been quite a few fixes made to the shelteranimalscount report in the last couple of months. If you installed it longer ago than last month, I'd remove it from your database under Settings->Reports and then install it again with the Browse sheltermanager.com button to get the latest version.

@robinrt: 2017-01-03 14:22:48
Also, the In/Out report is better for analysing other reports as breaks up by all forms of intake and outcome and doesn't exclude anything.


How or when does the LatLong field get updated in the owner table?

@adoptamutt: 2016-12-30 17:53:33
How or when does the LatLong field get updated? Most of my records don't have it stored: select count(*) from owner where LatLong = '' and owneraddress <> '' = 919 select count(*) from owner where owneraddress <> '' = 1154 Is there a way to update the field without searching for and bring up each record, making a change in a field, and re-saving? Thanks so much! Karen W

@adoptamutt: 2016-12-30 19:19:21
This is in the ootw db. Haven't looked at the others.

@robinrt: 2016-12-31 14:17:27
It only updates when you view a record (you don't need to save it - it happens asynchronously on load). It was supposed to update the geocode when creating a new person via the embedded widget or add person screen, but I've just taken a look and there's a bug in the former and it wasn't doing the latter at all! I've fixed those two areas now so geocodes are updated during create, but I'm afraid there's no way to bulk update geocodes. Google are very sensitive to bulk requests of geocodes and see it as an attack.


Can't access shelter manager report templates

@sfrisk: 2016-12-27 22:46:37
I go to settings>reports>browse sheltermanager.com, and I get this error: "You're seeing this error because you have web.config.debug set to True. Set that to False if you don't want to see this." I can't find where I need to go to change this setting.

@robinrt: 2016-12-28 10:00:03
That means that an error has occurred - probably connecting out to the sheltermanager.com webservice to get reports. If you look at the console (or webserver error logs if you're using WSGI) there should be more info on what the problem is.


Can a report have multiple SQL statements?

@dbaux: 2016-12-27 19:29:43
My group wants an "everything" type of report: a section on adoptions done in the last 30 days, animals available, animals in foster, approved applications, applications in progress. Each of these is a separate SQL statement, with a separate table display. Can a single report have multiple SQL statements and multiple table displays? As always, thank you for your assistance!

@robinrt: 2016-12-28 10:03:59
No, but you can create each section as separate reports, and then include them all in another report with the {SUBREPORT} token. There's some info on the {SUBREPORT} token in the manual: http://sheltermanager.com/repo/asm3_help/reports.html#report-grouping-and-calculation

@dbaux: 2016-12-29 15:14:29
I've tried the SUBREPORT but haven't had any luck, I'm sure I'm not using it correctly. Would it be possible to see a short example with SQL and HTML portions?

@robinrt: 2016-12-29 15:18:52
Some of the reports in the repository use SUBREPORT - have a look at "Print Animal Record" and "ASPCA Aggregate Report".


Reports with hyperlinks?

@dbaux: 2016-12-23 20:51:55
Hello, can one create an animal summary type report, with the Animal Name being a hyperlink to display the details of that animal? Similar to the "Find Animal" results page.

@robinrt: 2016-12-24 13:26:30
Sure, make sure the animal.ID field is included in the SELECT and add a hyperlink to it, eg: <a href="animal?id=$ID">$ANIMALNAME</a>

@dbaux: 2016-12-26 02:28:08
Thank you! To add to the complexity a bit, is it possible to make the hyperlink text colour blue for a male, and pink for a female? Just as kind of an eyecatcher for those looking for a specific sex. Plus, I'm trying to make our Shelter Manager reports look as close as possible to our old system reports, to help ease the transition for volunteers. Many thanks for everyone for helping me out.

@candidhominid: 2016-12-30 12:51:10
SQL CASE WHEN a.sex = 1 THEN ‘male’ ELSE 'female' END AS LinkGender, CSS Put the code below in the header, by clicking Edit Header/Footer, to make it available to all reports. If the links don't look right to you, read up on CSS and make them look exactly how you want. a.male { color: blue; } a.female { color: pink; } HTML <a class="$LinkGender" href="animal?id=$ID">$ANIMALNAME</a>

@candidhominid: 2016-12-30 17:44:27
http://www.w3schools.com/css/css_link.asp

@adoptamutt: 2017-07-14 20:06:30
Does the "a href" work with the owner table? I have added ID to my select statement and <td><a href="owner?id=$ID">$ownersurname</a></td> to my HTML, but I'm getting Error 404, "Sorry, but the record you tried to access was not found."

@candidhominid: 2017-07-14 20:11:42
person?id=

@adoptamutt: 2017-07-14 20:13:56
Thank you. person?id= works great.

@dorabud: 2019-04-07 19:53:58
I am trying to add this to our reports as well, but not having luck. Where, specifically do I put the following to make the animal's name a hyperlink - <a href=“animal?id=$ID”>$ANIMALNAME</a> ???? I see SELECT in the SQL portion of the form (Animals Inducted by Date and Species) - do I put it any where after the word "SELECT"? I tried putting it at the bottom and I got an error code. CSS/HTML newbie - please be specific!!!! :) Thanks in advance!!!

@dorabud: 2019-04-07 20:33:50
I was able to get the link to display, but when I click the link it does not take me to the animal - I get the following error ... Error 404, Sorry, but the record you tried to access was not found. What am I doing wrong?

@candidhominid: 2019-04-07 21:05:10
Perhaps another 'ID' is selected in the SQL? To avoid possible ambiguity try _a.ID AS AnimalID_ in the SELECT statement and _<a href="animal?id=$AnimalID"_ in the HTML. If that doesn't work, let us know what the url is after you click on the link. Or just copy and paste the full SQL and HTML sections.

@dorabud: 2019-04-07 21:14:21
So it doesn't like the entery in the SELECT statement - I get the following error message... missing FROM-clause entry for table "a" LINE 5: TimeOnShelter,a.ID AS AnimalID, ^ No data to show on the report. Below is total SQL and HTML - thanks for your help $VAR from DATE Enter from date$ $VAR to DATE Enter to date$ SELECT ShelterCode, AnimalName, DateBroughtIn, TimeOnShelter,a.ID AS AnimalID, animaltype.AnimalType AS theType, species.SpeciesName, oo.OwnerName AS OOName, oo.OwnerAddress AS OOAddress, oo.OwnerTown AS OOTown, oo.OwnerCounty AS OOCounty, oo.OwnerPostcode AS OOPostcode, bb.OwnerName AS BBName, bb.OwnerAddress AS BBAddress, bb.OwnerTown AS BBTown, bb.OwnerCounty AS BBCounty, bb.OwnerPostcode AS BBPostcode FROM animal INNER JOIN animaltype ON animaltype.ID = animal.AnimalTypeID INNER JOIN species ON species.ID = animal.SpeciesID INNER JOIN internallocation ON internallocation.ID = animal.ShelterLocation LEFT OUTER JOIN owner oo ON animal.OriginalOwnerID = oo.ID LEFT OUTER JOIN owner bb ON animal.BroughtInByOwnerID = bb.ID WHERE DateBroughtIn >= '$@from$' AND DateBroughtIn <= '$@to$' AND NonShelterAnimal = 0 ORDER BY SpeciesName, DateBroughtIn $$HEADER HEADER$$ $$GROUP_SpeciesName $$HEAD <h3>$SpeciesName</h3> <table border=1> <tr> <td><b>Code</b></td> <td><b>Name</b></td> <td><b>Type</b></td> <td><b>Brought In</b></td> <td><b>By</b></td> <td><b>Owner</b></td> <td><b>Time On Shelter</b></td> </tr> $$FOOT </table> <p>Total $SpeciesName: {COUNT.ShelterCode}</p> GROUP$$ $$BODY <tr> <td>$ShelterCode</td> <td><a href=“animal?id=$AnimalID”></td> <td>$theType</td> <td>$DateBroughtIn</td> <td><i>$BBName</i><br /> $BBAddress<br /> $BBTown<br /> $BBCounty<br /> $BBPostcode </td> <td><i>$OOName</i><br /> $OOAddress<br /> $OOTown<br /> $OOCounty<br /> $OOPostcode </td> <td>$TimeOnShelter</td> </tr> BODY$$ $$FOOTER </table> <h2>Total animals: {COUNT.SHELTERCODE}</h2> FOOTER$$

@candidhominid: 2019-04-07 21:17:28
Switch to animal.ID AS AnimalID, and try again.

@dorabud: 2019-04-07 21:22:44
Nope - here is the error message .... missing FROM-clause entry for table "a" LINE 5: TimeOnShelter,a.ID AS AnimalID, ^ No data to show on the report. JUST OF NOTE - when I go back into the report formatting screen the line <td><a href=“animal?id=$AnimalID”></td> has changed to <td><a href=“animal?id=$AnimalID”></td>

@candidhominid: 2019-04-07 21:27:33
The error message suggests you didn't make the change. a.ID AS AnimalID, should be changed to animal.ID AS AnimalID, because you aren't using the alias 'a' for the animal table.

@dorabud: 2019-04-07 21:31:39
Tried again - no error message, but no animal name or link in table anymore either. See SQL below SELECT ShelterCode, AnimalName, DateBroughtIn, TimeOnShelter,animal.ID AS AnimalID, animaltype.AnimalType AS theType, species.SpeciesName, oo.OwnerName AS OOName, oo.OwnerAddress AS OOAddress, oo.OwnerTown AS OOTown, oo.OwnerCounty AS OOCounty, oo.OwnerPostcode AS OOPostcode, bb.OwnerName AS BBName, bb.OwnerAddress AS BBAddress, bb.OwnerTown AS BBTown, bb.OwnerCounty AS BBCounty, bb.OwnerPostcode AS BBPostcode FROM animal .............

@candidhominid: 2019-04-07 21:39:11
Just installed that exact report and made the two following changes and it's working as expected. Added to the SQL: --- animal.ID as AnimalID, --- Changed this line in the HTML: --- <td><a href="animal?id=$AnimalID">$AnimalName</a></td> ---

@candidhominid: 2019-04-07 21:40:35
It looks like maybe you didn't have the proper code in/after the link in the html.

@dorabud: 2019-04-07 21:42:41
You are awesome -- worked perfectly. Thanks so much for your DETAILED help!!!!!!


Incident Reports

@glissonar: 2016-12-16 13:58:21
When we have a caller that reports an incident, but wants to remain anonymous, can a check box be added to the "Report A New Incident" screen? This will allow us to capture the caller information for follow up purposes, but not allow the caller information to be printed on any reports.

@candidhominid: 2016-12-16 17:48:03
If your idea does get added to SM, I'm guessing it probably won't be in the near future. So here is a workaround (if someone on your team is comfortable with a bit of SQL): Create a new Flag (sheltermanager.com/lookups) like "Anonymous Caller" and start flagging the callers who wish to remain anonymous. You can then edit the reports to not display persons with this flag. Basic idea below: SQL CASE WHEN co.AdditionalFlags LIKE 'Anonymous%' THEN 'hide' ELSE '' END AS DisplayCaller, CSS span.hide { display: none; } HTML <td><span class="$DisplayCaller">$CALLERNAME<br/>H:$HOMETELEPHONE W:$WORKTELEPHONE C:$MOBILETELEPHONE</span></td>


Dispatch ACO and Disable a user

@glissonar: 2016-12-16 13:52:18
Is there a way to have the "Real Name" show when choosing who is dispatched instead of the user name? Also is there a way to disable an account when an employee leaves employment? We do not want the account deleted since it is attached to incident reports.

@candidhominid: 2016-12-16 16:57:00
Not sure about the first question, but you can remove all roles from a User Account to effectively disable it.

@robinrt: 2016-12-19 21:30:26
You can safely delete a user account, it will not remove anything that user account did.

@chrismad: 2016-12-21 16:23:28
I don't like deleting records either, what I do is restrict the IP they can login to as 127.0.0.0/8 and reset the password to something random and then remove all their groups but I created a group with no permission roles and named it Disabled User. That way if they would come back, I just remove those settings.


Adoption log/records?

@shanneldowney: 2016-12-15 11:21:48
Is there a way to look at all adoptions that have been completed and view the adopters details? (without searching a specific animal) I can't find anywhere where this may be! Thanks :)

@candidhominid: 2016-12-15 14:53:45
Yes. From the FAQ: Go to Settings ‣ Reports, then click the “Browse sheltermanager.com” button. You can choose reports from the list and use the “Install” button to add them to your database. A report like "Adoptions by Date with Addresses" would be a good place to start.


rabies certificate

@jlcurtis: 2016-12-15 08:27:29
Trying to print a rabies certificate. The Dr info will not enter into the document, only the animal info I have the Dr entered in user and person profile. Have license number etc.

@candidhominid: 2016-12-15 14:48:11
Tough to help given the limited number of details. I assume you double checked the wordkeys in the document template? https://sheltermanager.com/repo/asm3_help/wordkeys.html I also assume you actually selected the Doctor in the Administering Vet field of the rabies vaccine?

@robinrt: 2016-12-19 21:32:19
The rabies certificate uses the <<CurrentVet*>> wordkeys. There's one in there for license number as well.

@sfrisk: 2017-01-02 21:11:13
We're having the same problem. We need to use the Administering Vet, I've checked and rechecked the wordkeys. In our case, it would be <<VaccinationAdministeringVetRabies(1yr)>>. I've confirmed that we've properly entered the administering vet. Any ideas?

@robinrt: 2017-01-02 21:12:50
It has to be <<CurrentVet*>> for now, we have a ticket to add administering vet keys in the very near future.

@robinrt: 2017-01-02 21:15:13
Correction, I checked and we already did it, <<VaccinationAdministeringVetRabies>> should work now, as should <<VaccinationAdministeringVetRabies(1yr)>> if your vaccination type is Rabies (1 yr)


How does one record a home check?

@dbaux: 2016-12-13 22:03:33
Hi good ASM power users, I'm a bit stumped. I've got People designated with the "Homechecker" flag, and I have applicant people, and I've made a Reservation... but how to I actually record in ASM that a home check was performed?

@candidhominid: 2016-12-14 16:02:50
Flag the adopter/applicant with the Homechecked flag.

@dbaux: 2016-12-19 02:19:51
Perfect, thank you! Trying to learn as I go and not ask too many ignorant questions along the way. :)


Partner Question

@brianavery: 2016-12-12 11:18:56
Hi, We recently launched a new website aimed at helping UK rescue centres, providing a place where they can feature pets awaiting adoption (only - there is no lost and found section). Two of the centres we spoke to told us that they use your software and suggested that we get ourselves added to your 'partner' network for the UK. How would we do that? Thanks Brian - Adoptable UK

@robinrt: 2016-12-12 11:20:57
Hi, get in touch via email info@sheltermanager.com - we offer a push service to our partners where our customers can opt in and send you data. You will need to be set up to receive adoptable animal data and photos in some form (we aren't fussy and can do any format/transport).

@brianavery: 2016-12-12 11:22:01
Okay will do.

@brianavery: 2016-12-12 13:01:19
Have sent you mail.


Error

@cindiczyzakkaiser: 2016-12-12 03:36:09
When I try to add a new animal or person I get a message at the top that says Internal Error but no explanation or how to fix it. Please help.

@robinrt: 2016-12-12 11:21:26
is this a sheltermanager account or a self-hosted install? If it's sheltermanager please email us directly at info@sheltermanager.com with your account number so we can take a look and get to the bottom of it. If it's self-hosted there should be more info in your syslog or the console if you have it active.

@candidhominid: 2016-12-12 20:20:16
"Internal Server Error" is what SM says when an account doesn't have permission to do something. For example, clicking Add a new animal in the quick links bar on a normal user account that doesn't have permission to add animals. (Of course, if cindicyzakkaiser is a super user then something else must be going on.) I have wondered if a more specific message might be a good idea. Something like "Your account does not have permission to X".


Transferred/adopted showing in medical treatments

@matt_da: 2016-12-11 18:39:05
On the home page, pets that have been adopted or transferred to another facility are still showing as due on medical regimens (see image). Is there any way to filter these out automatically other than removing the regimens from the system? [MedList](//muut.com/u/sheltermanager/s2/:sheltermanager:DmFX:medlist.png.jpg)

@robinrt: 2016-12-12 16:25:17
You must have turned on the option "show off shelter animals in medical calendars and books" under Settings->Options->Defaults. Turn it off again to hide them.

@matt_da: 2016-12-12 23:15:39
OK, thanks, Will give it a try.

@matt_da: 2016-12-12 23:18:35
You were right. Thanks.


Sticky Images

@candidhominid: 2016-12-09 18:30:50
Using the default code... <img src="{IMAGE.$ANIMALID}" /> ...an image that was deleted appeared in my cage card report instead of the current image. I've attached and image showing that Image A had been deleted and Image B had been uploaded, but Image A was appearing in the cage card. [Red Ryder](//muut.com/u/sheltermanager/s3/:sheltermanager:gwQ4:redryder.png.jpg) I created the work around below, but I would think a fix is in order. (SELECT m.ID FROM media m WHERE m.LinkID = a.ID AND m.LinkTypeID = 0 AND m.WebsitePhoto = 1) As imgID <img src="image?mode=media&id=$imgID" />

@robinrt: 2016-12-10 13:17:43
I think this is due to our Cloudflare cache remembering the previous image. I'll add a rule to reduce image time in the cache. There is also a cross DB bug in {IMAGE} due to Cloudflare, which I've added a fix for now so thanks for raising that!

@robinrt: 2016-12-11 10:51:46
The change is made now. You should be able to force reload of images with CTRL+R in the browser again.

@candidhominid: 2017-07-27 22:14:36
This problem is back again today. Images that are not the "website photo", or have been deleted, are showing on a cage card report several minutes later. Control+R wasn't helping. I had to switch back to my workaround code. Guess there's no reason not to use it anyway. Thanks!


bulk regimen by mistake, how to revert?

@djsteven: 2016-12-09 17:52:01
Hi Robin, There is a way to revert treatment that I gave to 30 animals by mistake using the Bulk Regimen, instead deleting one by one? Cheers

@candidhominid: 2016-12-09 20:04:46
I don't believe there is a way to revert or undo. I recommend selecting all 30 regimens, using the checkboxes (purple in attached image) next to the regimen name, and then clicking "Delete Regimen". You could use the filtering bars (red in attached image) to assist you in identifying all 30. If the treatments are in the future, you can view those treatments using the drop down menu (green in attached image). [Medical Book Annotated](//muut.com/u/sheltermanager/s3/:sheltermanager:GDQs:medicalbookannotated.jpg.jpg)

@djsteven: 2017-02-22 18:21:01
Thanks!


Electronic Signature

@chrismad: 2016-12-09 16:19:06
I am working on trying to setup electronic signature for our adoption contacts and would like to have a table at the front desk that the customer can read the doc and then sign it. The tablet would signin to ASM using a tablet account, but it seems as though when I send the doc for signature, that account isn't seeing any documents pending as the table is signed in with one account and I am signed in with another. Is it possible to setup to where any docs sent for signature that this "tablet" account is able to process? If i signin to the tablet using my account that I sent the signature request, everything works as expected, but I can't have the staff keep signing into the tablet as their account each time they need to sign a doc. I have sitedef.py setup as tablet mode on ELECTRONIC_SIGNATURE. Thanks, Chris

@robinrt: 2016-12-09 16:22:02
it isn't, the only way to do it is to use the same account and that's done on purpose so that shelters with multiple sites/computers/tablets can keep them in sync. You could process the adoption with the tablet account on the computer?

@chrismad: 2016-12-09 16:24:17
The proposed solution would work, but I would loose audit information ie who did the adoption and the staff signature as they are the witness and their name is on the contact. I would like to get tablets for all the staff, but that's not financial possible at this point and was hoping to reduce costs by using this feature.

@robinrt: 2016-12-09 16:42:33
It's a good suggestion for an improvement. I'll raise an issue to allow a nominated signing pad account that all signing requests can go to instead of the current user.

@robinrt: 2016-12-09 16:45:34
https://github.com/bobintetley/asm3/issues/102

@chrismad: 2016-12-09 16:45:36
Awesome! I was trying to determine in the code how it knows a doc is pending for signature. Does it query something in the database or is flagged by some other method? If I can figure something out I would contribute the change to the source.


Person Flags

@trakiplay: 2016-12-07 10:20:51
Is it possible for the 'Adopter' flag to be assigned automatically when a person adopts an animal. Currently we need to assign this manually. Thanks

@robinrt: 2016-12-07 10:29:01
It isn't, no. ASM determines adopters based on whether or not they have an active adoption (if the person returns an animal are they still an adopter?). There are mail merges such as Non-Returned Adoptions that allow you to email active adopters.


Mobile Interface

@bonnietownzen: 2016-12-06 17:43:46
When we are trying to use the mobile interface we are getting an error

@robinrt: 2016-12-07 10:52:21
How are you accessing the mobile interface? The normal way is to use http://m.sheltermanager.com then enter your account number and click "Mobile Interface" before logging in.

@robinrt: 2016-12-07 10:52:43
You can also use the dedicated app, installable from Google Play, iTunes or the Amazon app store.

@bonnietownzen: 2016-12-07 17:36:12
we are using the dedicated app, when we try to login it gives us an error

@robinrt: 2016-12-08 10:53:13
it'd be really helpful if you said what the error was?

@jlcurtis: 2016-12-15 08:46:02
I can use the mobile site and I love it. When I pull up shelter animals, is there anyway to just show current animals in the shelter, now it shows all animals, even released ones


is there a way to merge duplicate animal profiles?

@femilaskaria: 2016-12-04 02:49:59

@robinrt: 2016-12-04 10:55:21
there isn't, however we do plan to add this as a feature in the current release.

@femilaskaria: 2016-12-06 15:14:37
Thank you!

@heyjay: 2017-11-29 16:41:04
Robin, are you still planning to add this feature?


Connection in https

@jbe38342: 2016-12-01 19:10:35
Hello, I ask a little help from you. I am desperately trying to connect in https to your software that is installed on a dedicated server. Although an SSL certificate is installed on the server, even though the SSL option is enabled in mysql, I can not access it via https. Is there a particular option to enable in the configuration of ASM3? Thank you for your help.

@robinrt: 2016-12-02 16:00:03
The SSL certificate needs to be set in the webserver that you're fronting ASM3 with rather than MySQL. Eg: Use Apache with mod_wsgi - the README file in /usr/share/docs/sheltermanager3 or the root of the source tree explains how to do this. Good luck.


Is there a way to have staff/volunteers clock in and out via the program?

@cynthiadeca: 2016-11-28 20:13:49
Basically we're looking for a way that we could keep track of how long volunteers and staff are at the shelter, something that will tie in directly to their records that are already in sheltermanager. It's not for payment purposes or anything like that (we're volunteer run), just to track the time spent at the shelter.

@robinrt: 2016-11-29 14:14:15
There isn't a clock in/out function, but for ASM3 you can certainly use the staff rota to plan/record staff shifts, vacation and sick time. There are installable reports for hours worked too. ASM2 does not have the rota.

@jlcurtis: 2016-12-15 08:30:12
we use volgistics for volunteers.. there is no way to transfer all that to this software so that they can log hours? We track that for grants


adding a surgery

@cbmiarar: 2016-11-24 03:46:16
I could have sworn that I saw an area to add medical procedures not just medications, but I cant seem to figure it out now. if anyone could point me in the right direction I would appreciate it

@robinrt: 2016-11-24 08:17:43
Sure, book surgeries as one-off medical treatments. They'll show on the medical calendar and in alerts on the home page.

@cbmiarar: 2016-11-24 14:00:52
Thanks, and I just want to say thank you for having an open source version. For smaller rescues like ours it is a big help.

@jlcurtis: 2016-12-15 08:29:13
what do you mean as one-off medical treatments

@candidhominid: 2016-12-15 14:36:21
jlcurtis: A one-off medical treatment is a Medical Regimen with the Frequency set to "Single Treatment".


Welcome

@robinrt: 2016-11-17 10:41:49
Use this channel for discussion of the older desktop ASM2 installation, bugs, feature requests, etc.

@tiffaniseiferthill: 2017-07-04 03:59:48
I have fogotten my login name and have been unable to reset the database or even uninstall it to reinstall. I have uninstalled it 3 times and downloaded & it does not reset. How do I reset the database on Windows 8?

@robinrt: 2017-07-04 18:51:23
See this page (how do I completely uninstall or reset ASM) http://sheltermanager.com/site/en_faq_asm2.html


Welcome

@robinrt: 2016-11-17 10:41:32
Use this channel for discussion of ASM3 installation, bugs, feature requests, etc.


Welcome to sheltermanager.com forums!

@robinrt: 2016-11-17 10:32:39
This is the number one place to discuss everything Animal Shelter Manager related! You can ask questions, share interesting things, tell stories, help others, or just hang around and talk to people. Please keep the discussion civil!

@craigmspencer: 2016-11-17 14:56:39
Hello from a very happy customer in Elmira New York USA....3 or 4 year with you.

@adoptamutt: 2016-11-17 16:46:11
Thanks for all your work on ASM! Your work has helped so many animals in central Arkansas, USA!

@bonnietownzen: 2016-12-01 21:38:58
If we have a dog that was brought in a stray, and then reclaimed but has since returned to the shelter, how do we track that intake, as the dog has received a new intake code, but is already in the system as reclaimed

@robinrt: 2016-12-06 10:35:09
Set a return date on the reclaim movement. This will return the animal to the shelter and you can select a return reason.

@bonnietownzen: 2016-12-06 17:41:16
Every time the animal comes into the shelter they receive a new intake number, how can we keep track of their current intake number

@robinrt: 2016-12-08 10:55:35
Setting a return date brings the animal back to the shelter without assigning a new code. Also, could you start a new thread for a question please instead of tacking it onto an existing one? It means everyone on this thread is getting notified when you comment!