Esempio n. 1
0
def mark_available(book_copy):
    '''
    Desc:
        If there is an active reservation awaiting for this copy, let it know.
    '''
    reservations = Reservation.objects.filter(Q_reservation_active, book_copy=book_copy).filter(start_date__lte=utils.today())
    if reservations.count() > 0:  # TODO: this probably can be done more effectively
        first_reservation = reservations[0]
        first_reservation.active_since = utils.today()
        first_reservation.save()
        mail.reservation_active(first_reservation)
Esempio n. 2
0
def confirm_reservation(reservation):
    '''
    Check if reservation can be immediately rented and send appropriate email.
    '''
    preceding_reservations = Reservation.objects.filter(Q_reservation_active|Q(rental__isnull=False, rental__end_date__isnull=True), book_copy=reservation.book_copy, id__lt=reservation.id)
    if not preceding_reservations and reservation.start_date <= utils.today():
        mail.reservation_active(reservation)
        reservation.active_since = utils.today()
        reservation.save()
    else:
        mail.made_reservation(reservation)
Esempio n. 3
0
import baseapp.emails as mail

for r in Rental.objects.all():
    if not r.end_date:
        if r.reservation.end_date < today(
        ):  # reservation expired: notify reader every day
            mail.overdued(r)
        if r.reservation.end_date == after_days(
                Config().get_int('due_remind_time')):
            mail.returnal_date_coming(
                r)  # reservation will expire soon: notify reader

for r in Reservation.objects.filter(aux.Q_reservation_active):
    if not r.active_since and aux.is_reservation_rentable(r):
        # reservation has just become active - notify user
        r.active_since = today()
        r.save()
        mail.reservation_active(r)

    if r.active_since and r.active_since <= after_days(
            -1 * Config().get_int('reservation_rush')):
        # reservation has been active for 'reservation_rush' days, so it expires
        r.when_cancelled = datetime.now()
        r.save()
        mail.reservation_expired(r)

# to restore db: first totally clean db, uncompress file:
# gunzip backup_2010-10-01.gz
# then, from bash restore database
# psql -f backup_2010-10-01
Esempio n. 4
0
from datetime import datetime
import baseapp.views_aux as aux
import baseapp.emails as mail


for r in Rental.objects.all():
    if not r.end_date :
        if r.reservation.end_date < today():  # reservation expired: notify reader every day
            mail.overdued(r)
        if r.reservation.end_date == after_days(Config().get_int('due_remind_time')):
            mail.returnal_date_coming(r)      # reservation will expire soon: notify reader

for r in Reservation.objects.filter(aux.Q_reservation_active):
    if not r.active_since and aux.is_reservation_rentable(r):
        # reservation has just become active - notify user
        r.active_since = today()
        r.save()
        mail.reservation_active(r)
    
    if r.active_since and r.active_since <= after_days(-1*Config().get_int('reservation_rush')):
        # reservation has been active for 'reservation_rush' days, so it expires
        r.when_cancelled = datetime.now()
        r.save()
        mail.reservation_expired(r)
        

# to restore db: first totally clean db, uncompress file:
# gunzip backup_2010-10-01.gz
# then, from bash restore database
# psql -f backup_2010-10-01