public function executeNew(sfWebRequest $request) { $petition = PetitionTable::getInstance()->findById($request->getParameter('id'), $this->userIsAdmin()); /* @var $petition Petition */ if (!$petition) { return $this->notFound(); } if (!$petition->isEditableBy($this->getGuardUser())) { return $this->noAccess(); } if ($petition->getKind() != Petition::KIND_PLEDGE) { return $this->noAccess(); } $pledge_item = new PledgeItem(); $pledge_item->setPetition($petition); $form = new PledgeItemForm($pledge_item); if ($request->isMethod('post')) { $form->bind($request->getPostParameter($form->getName())); if ($form->isValid()) { $form->save(); $petition->state(Doctrine_Record::STATE_DIRTY); // trigger widget update $petition->save(); return $this->ajax()->remove('#pledge_item_form_')->appendPartial('#pledge_items tbody', 'item_row', array('pledge_item' => $pledge_item))->render(); } return $this->ajax()->form($form)->render(); } return $this->ajax()->remove('#pledge_item_form_')->appendPartial('#pledge_items tbody', 'item_form', array('form' => $form, 'pledge_item' => $pledge_item, 'route' => 'pledge_new', 'route_params' => array('id' => $petition->getId())))->select2color('#pledge_item_form_ select.select2-color')->render(); }
public function countStatus(PledgeItem $pledge_item, $status, $target_list = null) { $query = $this->createQuery('p')->where('p.status = ?', $status)->andWhere('pledge_item_id = ?', $pledge_item->getId()); if ($target_list) { /* @var $target_list MailingList */ $query->leftJoin('p.Contact c')->andWhere('c.mailing_list_id = ?', $target_list->getId()); } return $query->count(); }
public function findOneByItemAndText(PledgeItem $item, PetitionText $text) { return $this->createQuery('pt')->where('pt.pledge_item_id = ?', $item->getId())->andWhere('pt.petition_text_id = ?', $text->getId())->fetchOne(); }
public function getPledgeTextByPledgeItem(PledgeItem $pledge_item) { foreach ($this->getPledgeTexts() as $pledge_text) { /* @var $pledge_text PledgeText */ if ($pledge_text->getPledgeItemId() == $pledge_item->getId()) { $text = trim($pledge_text->getText()); if ($text) { return $text; } else { return $pledge_item->getName(); } } } return $pledge_item->getName(); }