Exemple #1
0
 def perform_cleaning(self, store, itip_id, tip_id_number):
     itip = store.find(InternalTip, InternalTip.id == itip_id).one()
     # Is happen that itip was NoneType, so, we are managing this condition
     if itip:
         db_delete_itip(store, itip, tip_id_number)
     else:
         log.err("DB Inconsistency ? InternalTip to be deleted %s is None" % itip_id)
Exemple #2
0
def reset_submissions(session, tid):
    session.query(Config).filter(
        Config.tid == tid,
        Config.var_name == 'counter_submissions').update({'value': 0})

    for itip in session.query(InternalTip).filter(InternalTip.tid == tid):
        db_delete_itip(session, itip)
Exemple #3
0
def perform_tips_operation(store, receiver_id, operation, rtips_ids):
    receiver = store.find(models.Receiver,
                          models.Receiver.id == receiver_id).one()

    for itip in store.find(
            models.InternalTip, models.ReceiverTip.receiver_id == receiver_id,
            In(models.ReceiverTip.id, rtips_ids),
            models.InternalTip.id == models.ReceiverTip.internaltip_id):

        if operation == 'postpone':
            can_postpone_expiration = State.tenant_cache[
                1].can_postpone_expiration or receiver.can_postpone_expiration
            if not can_postpone_expiration:
                raise errors.ForbiddenOperation

            db_postpone_expiration_date(store, itip)

        elif operation == 'delete':
            can_delete_submission = State.tenant_cache[
                1].can_delete_submission or receiver.can_delete_submission
            if not can_delete_submission:
                raise errors.ForbiddenOperation

            db_delete_itip(store, itip)

    log.debug("Multiple %s of %d Tips completed" % (operation, len(rtips_ids)))
Exemple #4
0
 def perform_cleaning(self, store, itip_id, tip_id_number):
     itip = store.find(InternalTip, InternalTip.id == itip_id).one()
     # Is happen that itip was NoneType, so, we are managing this condition
     if itip:
         db_delete_itip(store, itip, tip_id_number)
     else:
         log.err("DB Inconsistency ? InternalTip to be deleted %s is None" %
                 itip_id)
Exemple #5
0
    def perform_cleaning(self, store):
        for itip in store.find(InternalTip,
                               InternalTip.expiration_date < datetime_now()):
            db_delete_itip(store, itip)

        # delete stats older than 3 months
        store.find(
            Stats,
            Stats.start < datetime_now() - timedelta(3 * (365 / 12))).remove()
Exemple #6
0
def perform_tips_operation(session, tid, receiver_id, operation, rtips_ids):
    receiver = session.query(models.Receiver).filter(models.Receiver.id == receiver_id).one()

    can_postpone_expiration = State.tenant_cache[tid].can_postpone_expiration or receiver.can_postpone_expiration
    can_delete_submission = State.tenant_cache[tid].can_delete_submission or receiver.can_delete_submission

    for itip in session.query(models.InternalTip) \
                       .filter(models.ReceiverTip.receiver_id == receiver_id,
                               models.ReceiverTip.id.in_(rtips_ids),
                               models.InternalTip.id == models.ReceiverTip.internaltip_id,
                               models.InternalTip.tid == tid):
        if operation == 'postpone' and can_postpone_expiration:
            db_postpone_expiration_date(session, tid, itip)

        elif operation == 'delete' and can_delete_submission:
            db_delete_itip(session, itip)

        else:
            raise errors.ForbiddenOperation
Exemple #7
0
def perform_tips_operation(session, tid, receiver_id, operation, rtips_ids):
    receiver = models.db_get(session, models.User, models.User.id == receiver_id)

    can_postpone_expiration = State.tenant_cache[tid].can_postpone_expiration or receiver.can_postpone_expiration
    can_delete_submission = State.tenant_cache[tid].can_delete_submission or receiver.can_delete_submission

    for itip in session.query(models.InternalTip) \
                       .filter(models.ReceiverTip.receiver_id == receiver_id,
                               models.ReceiverTip.id.in_(rtips_ids),
                               models.InternalTip.id == models.ReceiverTip.internaltip_id,
                               models.InternalTip.tid == tid):
        if operation == 'postpone' and can_postpone_expiration:
            db_postpone_expiration_date(session, tid, itip)

        elif operation == 'delete' and can_delete_submission:
            db_delete_itip(session, itip)

        else:
            raise errors.ForbiddenOperation
Exemple #8
0
def reset_submissions(session, tid):
    session.query(Config).filter(Config.tid == tid, Config.var_name == u'counter_submissions').update({'value': 0})

    for itip in session.query(InternalTip).filter(InternalTip.tid == tid):
        db_delete_itip(session, itip)
    def perform_cleaning(self, store):
        for itip in store.find(InternalTip, InternalTip.expiration_date < datetime_now()):
            db_delete_itip(store, itip)

        # delete stats older than 3 months
        store.find(Stats, Stats.start < datetime_now() - timedelta(3 * (365 / 12))).remove()