I just took a very quick look but I would guess that you shouldn’t define a public property called participantTotal when you have a relation that is named exactly like that.
The magic getter method of CActiveRecord first returns properties of the model and if it don’t find one it searches for a relation named like that. So it will always stop at your public property which is null and possibly useless. Rename that one or rename the relation and it should work
Greetings,
Haensel
P.S.: And by the way why is your relations() function “called” rules()? Typo or error? If so than I wonder that you can even see a GridView