def get_status_actions(data_type): """ Return a state machine handling the basic states :param str data_type: estimation/invoice/cancelinvoice :returns: An action manager machine that can be used to perform state changes :rtype: class:`autonomie.models.action_manager.ActionManager` """ manager = ActionManager() for status, icon, label, title, css in ( ( 'valid', "ok-sign", u"Valider", u"Valider ce document (il ne pourra plus être modifié)", "btn btn-primary primary-action", ), ( 'wait', 'time', u"Demander la validation", u"Enregistrer ce document et en demander la validation", "btn btn-primary primary-action", ), ( 'invalid', 'trash', u"Invalider", u"Invalider ce document afin que l'entrepreneur le corrige", "btn btn-default", ), ( 'draft', 'save', u"Enregistrer", u'Enregistrer en brouillon afin de modifier ce document ' u'ultérieurement', 'btn btn-default', ), ): action = Action( status, '%s.%s' % (status, data_type), status_attr='status', userid_attr='status_person_id', icon=icon, label=label, title=title, css=css, ) if status == 'valid': if data_type in ('invoice', 'cancelinvoice'): action.callback = invoice_valid_callback else: action.callback = estimation_valid_callback manager.add(action) return manager
def _build_justified_state_manager(): """ Return a state manager for setting the justified status attribute on ExpenseSheet objects """ manager = ActionManager() for status, icon, label, title, css in ( ( False, 'fa fa-clock-o', u"En attente", u"Aucun justificatif n'a été reçu", "btn btn-default", ), ( True, 'fa fa-check', u"Reçus", u"Les justificatifs ont bien été reçus", "btn btn-default", ), ): action = Action( status, 'set_justified.expensesheet', status_attr='justified', icon=icon, label=label, title=title, css=css, ) manager.add(action) return manager
def _build_action_manager(): """ Return a state machine that allows ExpenseSheet status handling """ manager = ActionManager() for status, icon, label, title, css in ( ( 'valid', "ok-sign", u"Valider", u"Valider ce document (il ne pourra plus être modifié)", "btn btn-primary primary-action", ), ( 'wait', 'time', u"Demander la validation", u"Enregistrer ce document et en demander la validation", "btn btn-primary primary-action", ), ( 'invalid', 'trash', u"Invalider", u"Invalider ce document afin que l'entrepreneur le corrige", "btn btn-default", ), ( 'draft', 'save', u"Enregistrer", u'Enregistrer en brouillon afin de modifier ce document ' u'ultérieurement', 'btn btn-default', ), ): action = Action( status, '%s.expensesheet' % (status, ), status_attr='status', userid_attr='status_user_id', icon=icon, label=label, title=title, css=css, ) manager.add(action) return manager
def get_signed_status_actions(): """ Return actions available for setting the signed_status attribute on Estimation objects """ manager = ActionManager() for status, icon, label, title, css in ( ('waiting', 'time', u"En attente de réponse", u"En attente de réponse du client", "btn btn-default"), ( "sent", "send", u"Envoyé au client", u"A bien été envoyé au client", "btn btn-default", ), ( 'aborted', 'trash', u"Sans suite", u"Marquer sans suite", "btn btn-default", ), ( 'signed', 'ok', u"Signé par le client", u"Indiquer que le client a passé commande", "btn btn-default", ), ): action = Action( status, 'set_signed_status.estimation', status_attr='signed_status', icon=icon, label=label, title=title, css=css, ) manager.add(action) return manager