def get_existing_pro_user_with_offerer():
    user_offerer = offers_factories.UserOffererFactory(
        user__validationToken=None, )
    return {
        "offerer": get_offerer_helper(user_offerer.offerer),
        "user": get_pro_helper(user_offerer.user)
    }
Пример #2
0
def get_existing_pro_validated_user_with_validated_offerer_with_validated_user_offerer_with_thing_offer_with_stock_with_not_used_booking(
):
    query = User.query.filter(User.validationToken == None)
    query = filter_users_with_at_least_one_validated_offerer_validated_user_offerer(
        query)
    query = query.join(Venue).filter(Venue.offers.any(~Offer.stocks.any()))
    query = query.join(Offer).join(Stock).filter(
        Stock.bookings.any(Booking.isUsed == False))
    user = query.first()

    for uo in user.UserOfferers:
        if not uo.isValidated or not uo.offerer.isValidated:
            continue

        for venue in uo.offerer.managedVenues:
            for offer in [o for o in venue.offers if o.isThing]:
                for stock in offer.stocks:
                    for booking in [b for b in stock.bookings if not b.isUsed]:
                        return {
                            "booking": get_booking_helper(booking),
                            "offer": get_offer_helper(offer),
                            "offerer": get_offerer_helper(uo.offerer),
                            "user": get_pro_helper(user),
                            "venue": get_venue_helper(venue),
                        }
    return None
Пример #3
0
def get_pro_validated_no_reset_password_token_user():
    query = User.query.filter((User.validationToken == None)
                              & (User.resetPasswordToken == None))
    query = query.join(UserOfferer)
    user = query.first()

    return {"user": get_pro_helper(user)}
Пример #4
0
def get_existing_pro_validated_user_with_validated_offerer_with_iban_validated_user_offerer_with_event_offer_with_no_stock(
):
    query = User.query.filter(User.validationToken == None)
    query = filter_users_with_at_least_one_validated_offerer_validated_user_offerer(
        query)
    query = query.join(BankInformation)
    query = (query.join(
        VenueSQLEntity,
        VenueSQLEntity.managingOffererId == Offerer.id).join(Offer).filter(
            (Offer.type.in_([str(event_type) for event_type in EventType]))
            & (~Offer.stocks.any())))
    user = query.first()

    for uo in user.UserOfferers:
        if uo.validationToken == None and uo.offerer.validationToken == None and uo.offerer.iban:
            for venue in uo.offerer.managedVenues:
                for offer in venue.offers:
                    if offer.isEvent and len(offer.stocks) == 0:
                        return {
                            "offer": get_offer_helper(offer),
                            "offerer": get_offerer_helper(uo.offerer),
                            "user": get_pro_helper(user),
                            "venue": get_venue_helper(venue),
                        }
    return None
Пример #5
0
def get_existing_pro_validated_user_with_validated_offerer_with_iban_validated_user_offerer_with_thing_offer_with_stock(
):
    query = User.query.filter(User.validationToken == None)
    query = filter_users_with_at_least_one_validated_offerer_validated_user_offerer(
        query)
    query = query.join(BankInformation)
    query = query.join(
        VenueSQLEntity,
        VenueSQLEntity.managingOffererId == Offerer.id).join(Offer).join(
            Offer.stocks)
    user = query.first()

    for uo in user.UserOfferers:
        if uo.validationToken == None and uo.offerer.validationToken == None and uo.offerer.iban:
            for venue in uo.offerer.managedVenues:
                for offer in venue.offers:
                    if offer.isThing and offer.stocks and offer.isEditable:
                        return {
                            "offer": get_offer_helper(offer),
                            "offerer": get_offerer_helper(uo.offerer),
                            "stock": get_stock_helper(offer.stocks[0]),
                            "user": get_pro_helper(user),
                            "venue": get_venue_helper(venue),
                        }
    return None
Пример #6
0
def get_existing_pro_validated_user_with_not_validated_offerer_validated_user_offerer_and_validated_offerer_not_validated_user_offerer_and_validated_offerer_validated_user_offerer():
    query = User.query.filter(User.validationToken == None)
    first_query = filter_users_with_at_least_one_not_validated_offerer_validated_user_offerer(query)
    second_query = filter_users_with_at_least_one_validated_offerer_not_validated_user_offerer(query)
    third_query = filter_users_with_at_least_one_validated_offerer_validated_user_offerer(query)
    query = first_query.intersect_all(second_query, third_query)
    user = query.first()

    not_validated_offerer = [
        uo.offerer for uo in user.UserOfferers if uo.offerer.validationToken != None and uo.validationToken == None
    ][0]

    validated_offerer_with_not_validated_user_offerer = [
        uo.offerer for uo in user.UserOfferers if uo.offerer.validationToken == None and uo.validationToken != None
    ][0]

    validated_offerer_with_validated_user_offerer = [
        uo.offerer for uo in user.UserOfferers if uo.offerer.validationToken == None and uo.validationToken == None
    ][0]

    return {
        "notValidatedOfferer": get_offerer_helper(not_validated_offerer),
        "offerersCount": len(user.UserOfferers),
        "user": get_pro_helper(user),
        "validatedOffererWithNotValidatedUserOfferer": get_offerer_helper(
            validated_offerer_with_not_validated_user_offerer
        ),
        "validatedOffererWithValidatedUserOfferer": get_offerer_helper(validated_offerer_with_validated_user_offerer),
    }
Пример #7
0
def get_existing_pro_validated_user_with_validated_offerer_with_iban_validated_user_offerer_with_event_offer_with_stock(
):
    query = User.query.filter(User.validationToken == None)
    query = filter_users_with_at_least_one_validated_offerer_validated_user_offerer(
        query)
    query = query.join(BankInformation)
    query = (query.join(
        Venue,
        Venue.managingOffererId == Offerer.id).join(Offer).join(Stock).filter(
            (Stock.beginningDatetime != None)))
    user = query.first()

    for uo in user.UserOfferers:
        if not uo.isValidated or not uo.offerer.isValidated:
            continue
        if not uo.offerer.iban:
            continue
        for venue in uo.offerer.managedVenues:
            for offer in [o for o in venue.offers if o.isEvent]:
                for stock in offer.stocks:
                    if stock.beginningDatetime:
                        return {
                            "offer": get_offer_helper(offer),
                            "offerer": get_offerer_helper(uo.offerer),
                            "stock": get_stock_helper(stock),
                            "user": get_pro_helper(user),
                            "venue": get_venue_helper(venue),
                        }
    return None
Пример #8
0
def get_existing_pro_validated_user_with_validated_offerer_with_no_iban_validated_user_offerer_with_thing_offer_with_no_stock(
):
    query = User.query.filter(User.validationToken == None)
    query = filter_users_with_at_least_one_validated_offerer_validated_user_offerer(
        query)
    query = query.filter(Offerer.bankInformation == None)
    query = query.join(Venue).filter(
        Venue.offers.any(
            (Offer.type.in_([str(thing_type) for thing_type in ThingType]))
            & (~Offer.stocks.any())))
    user = query.first()

    for uo in user.UserOfferers:
        if uo.validationToken == None and uo.offerer.validationToken == None and not uo.offerer.iban:
            for venue in uo.offerer.managedVenues:
                for offer in venue.offers:
                    if offer.isThing and len(
                            offer.stocks) == 0 and offer.isEditable:
                        return {
                            "offer": get_offer_helper(offer),
                            "offerer": get_offerer_helper(uo.offerer),
                            "user": get_pro_helper(user),
                            "venue": get_venue_helper(venue),
                        }
    return None
Пример #9
0
def get_pro_validated_no_reset_password_token_user():
    user_offerer = offers_factories.UserOffererFactory(
        validationToken=None,
        offerer__validationToken=None,
        user__validationToken=None,
    )
    return {"user": get_pro_helper(user_offerer.user)}
Пример #10
0
def get_existing_pro_validated_user_with_validated_offerer_with_no_iban_validated_user_offerer_with_event_offer(
):
    query = User.query.filter(User.validationToken == None)
    query = filter_users_with_at_least_one_validated_offerer_validated_user_offerer(
        query)
    query = query.filter(Offerer.bankInformation == None)
    query = query.join(Venue).join(Offer).filter(
        Offer.type.in_([str(thing_type) for thing_type in ThingType]))
    query = query.filter(Venue.isVirtual == False)
    user = query.first()

    for uo in user.UserOfferers:
        if not uo.isValidated or not uo.offerer.isValidated:
            continue
        if uo.offerer.iban:
            continue
        for venue in [v for v in uo.offerer.managedVenues if not v.isVirtual]:
            for offer in venue.offers:
                if offer.isEvent:
                    return {
                        "offer": get_offer_helper(offer),
                        "offerer": get_offerer_helper(uo.offerer),
                        "user": get_pro_helper(user),
                        "venue": get_venue_helper(venue),
                    }
    return None
Пример #11
0
def get_existing_pro_validated_user_with_validated_offerer_with_reimbursement(
):
    query = (Payment.query.join(Booking).join(Stock).join(Offer).join(
        Venue).join(Offerer).join(UserOfferer).filter(
            (Offerer.validationToken == None)
            & (UserOfferer.validationToken == None)).join(User).filter(
                User.validationToken == None))

    payment = query.first()
    booking = payment.booking
    stock = booking.stock
    offer = stock.offer
    venue = offer.venue
    offerer = venue.managingOfferer
    user = [
        uo.user for uo in offerer.UserOfferers
        if uo.user.validationToken == None
    ][0]
    return {
        "booking": get_booking_helper(booking),
        "offer": get_offer_helper(offer),
        "offerer": get_offerer_helper(offerer),
        "payment": get_payment_helper(payment),
        "stock": get_stock_helper(stock),
        "user": get_pro_helper(user),
        "venue": get_venue_helper(venue),
    }
Пример #12
0
def get_existing_pro_validated_user_with_validated_offerer_validated_user_offerer_no_physical_venue():
    user_offerer = offers_factories.UserOffererFactory(
        validationToken=None,
        offerer__validationToken=None,
        user__validationToken=None,
    )
    offers_factories.VirtualVenueFactory(managingOfferer=user_offerer.offerer)
    return {"offerer": get_offerer_helper(user_offerer.offerer), "user": get_pro_helper(user_offerer.user)}
Пример #13
0
def get_existing_pro_not_validated_user_with_real_offerer():
    users = User.query.filter(
        User.validationToken is not None).join(UserOfferer).all()

    for user in users:
        if len(user.UserOfferers) == 1:
            return {"user": get_pro_helper(user)}
    return None
Пример #14
0
def get_existing_pro_validated_user_without_offer() -> Optional[dict]:
    users = User.query.filter(User.validationToken == None).all()  # pylint: disable=singleton-comparison

    for user in users:
        if not user.hasOffers:
            return {"user": get_pro_helper(user)}

    return None
Пример #15
0
def get_existing_pro_user_with_offerer():
    query = User.query.join(UserOfferer)
    user = query.first()

    offerer = [uo.offerer for uo in user.UserOfferers][0]

    return {
        "offerer": get_offerer_helper(offerer),
        "user": get_pro_helper(user)
    }
Пример #16
0
def get_existing_pro_validated_user_with_validated_offerer_validated_user_offerer():
    query = User.query.filter(User.validationToken == None)
    query = filter_users_with_at_least_one_validated_offerer_validated_user_offerer(query)
    user = query.first()

    offerer = [
        uo.offerer for uo in user.UserOfferers if uo.validationToken == None and uo.offerer.validationToken == None
    ][0]

    return {"offerer": get_offerer_helper(offerer), "user": get_pro_helper(user)}
def get_pro_user():
    user_offerer = offers_factories.UserOffererFactory(
        validationToken=None,
        offerer__validationToken=None,
        user__validationToken=None,
        user__phoneNumber="01 00 00 00 00",
    )
    venue = offers_factories.VenueFactory(managingOfferer=user_offerer.offerer)
    offers_factories.ThingOfferFactory(venue=venue, isActive=True)

    return {"user": get_pro_helper(user_offerer.user)}
Пример #18
0
def get_existing_pro_validated_user_with_first_offerer():
    query = User.query.filter(User.validationToken == None)
    query = query.join(UserOfferer)
    user = query.first()

    offerer = [uo.offerer for uo in user.UserOfferers][0]

    return {
        "offerer": get_offerer_helper(offerer),
        "user": get_pro_helper(user)
    }
Пример #19
0
def get_existing_pro_validated_user_with_validated_offerer_with_validated_user_offerer_with_thing_offer_with_stock_with_not_used_booking(
):
    user_offerer = offers_factories.UserOffererFactory()
    venue = offers_factories.VenueFactory(managingOfferer=user_offerer.offerer)
    offer = offers_factories.ThingOfferFactory(venue=venue, isActive=True)
    stock = offers_factories.StockFactory(offer=offer)
    booking = bookings_factories.IndividualBookingFactory(stock=stock,
                                                          isUsed=False)

    return {
        "booking": get_booking_helper(booking),
        "user": get_pro_helper(user_offerer.user),
    }
Пример #20
0
def get_existing_pro_validated_user_with_at_least_one_visible_offer_with_no_mediation():
    query = User.query.filter(User.validationToken == None)
    query = filter_users_with_at_least_one_validated_offerer_validated_user_offerer(query)
    query = query.join(Venue).join(Offer).join(Mediation)
    user = query.first()

    for uo in user.UserOfferers:
        if uo.offerer.validationToken == None and uo.validationToken == None:
            for venue in uo.offerer.managedVenues:
                for offer in venue.offers:
                    if len(offer.mediations) == 0:
                        return {"offer": get_offer_helper(offer), "user": get_pro_helper(user)}
    return None
Пример #21
0
def get_existing_pro_validated_user_with_validated_offerer_with_validated_user_offerer_with_eac_offer_with_stock_with_not_used_booking_validated_by_principal(
):
    user_offerer = offers_factories.UserOffererFactory()
    booking = bookings_factories.EducationalBookingFactory(
        dateCreated=datetime.datetime.utcnow() - datetime.timedelta(days=5),
        stock__offer__venue__managingOfferer=user_offerer.offerer,
        educationalBooking__status=EducationalBookingStatus.USED_BY_INSTITUTE,
    )

    return {
        "booking": get_booking_helper(booking),
        "user": get_pro_helper(user_offerer.user),
    }
Пример #22
0
def get_existing_pro_validated_user_with_validated_offerer_validated_user_offerer_with_physical_venue():
    user_offerer = offers_factories.UserOffererFactory(
        validationToken=None,
        offerer__validationToken=None,
        user__validationToken=None,
    )
    venue = offers_factories.VenueFactory(managingOfferer=user_offerer.offerer)
    offers_factories.OfferFactory(venue=venue, isActive=True)

    return {
        "offerer": get_offerer_helper(user_offerer.offerer),
        "user": get_pro_helper(user_offerer.user),
        "venue": get_venue_helper(venue),
    }
Пример #23
0
def get_existing_pro_validated_user_with_offerer_with_no_iban():
    query = User.query.join(UserOfferer).join(Offerer).filter(
        User.UserOfferers.any(Offerer.bankInformation == None))
    query = query.filter(User.validationToken == None)
    user = query.first()

    offerer = [
        uo.offerer for uo in user.UserOfferers if uo.offerer.iban == None
    ][0]

    return {
        "offerer": get_offerer_helper(offerer),
        "user": get_pro_helper(user)
    }
Пример #24
0
def get_existing_pro_validated_user_with_at_least_one_visible_activated_offer(
):
    user_offerer = offers_factories.UserOffererFactory(
        validationToken=None,
        offerer__validationToken=None,
        user__validationToken=None,
    )
    venue = offers_factories.VirtualVenueFactory(
        managingOfferer=user_offerer.offerer)
    offer = offers_factories.OfferFactory(venue=venue, isActive=True)

    return {
        "offer": get_offer_helper(offer),
        "user": get_pro_helper(user_offerer.user)
    }
Пример #25
0
def get_existing_pro_validated_user_with_validated_offerer_validated_user_offerer_with_virtual_venue(
):
    query = User.query.filter(User.validationToken == None)
    query = filter_users_with_at_least_one_validated_offerer_validated_user_offerer(
        query)
    user = query.first()

    for uo in user.UserOfferers:
        if uo.validationToken == None and uo.offerer.validationToken == None:
            for venue in uo.offerer.managedVenues:
                if venue.isVirtual:
                    return {
                        "offerer": get_offerer_helper(uo.offerer),
                        "user": get_pro_helper(user),
                        "venue": get_venue_helper(venue),
                    }
    return None
Пример #26
0
def get_existing_pro_validated_user_with_at_least_one_offer_with_at_least_one_thumbnail(
):
    query = User.query.filter(User.validationToken == None)
    query = filter_users_with_at_least_one_validated_offerer_validated_user_offerer(
        query)
    query = query.join(Venue).join(Offer).filter(Offer.isActive == True)
    user = query.first()

    for uo in user.UserOfferers:
        if uo.offerer.validationToken == None and uo.validationToken == None:
            for venue in uo.offerer.managedVenues:
                for offer in venue.offers:
                    if offer.isActive and offer.activeMediation:
                        return {
                            "offer": get_offer_helper(offer),
                            "user": get_pro_helper(user)
                        }
    return None
Пример #27
0
def get_existing_pro_validated_user_with_at_least_one_visible_offer():
    query = User.query.filter(User.validationToken == None)
    query = filter_users_with_at_least_one_validated_offerer_validated_user_offerer(
        query)
    query = query.join(Venue,
                       Venue.managingOffererId == Offerer.id).join(Offer)
    user = query.first()

    for uo in user.UserOfferers:
        if uo.validationToken == None and uo.offerer.validationToken == None:
            for venue in uo.offerer.managedVenues:
                if venue.offers:
                    offer = venue.offers[0]
                    return {
                        "offer": get_offer_helper(offer),
                        "user": get_pro_helper(user)
                    }
    return None
Пример #28
0
def get_existing_pro_validated_user_with_validated_offerer_with_iban_validated_user_offerer_with_event_offer_with_no_stock(
):
    user_offerer = offers_factories.UserOffererFactory(
        validationToken=None,
        offerer__validationToken=None,
        user__validationToken=None,
    )
    offers_factories.BankInformationFactory(offerer=user_offerer.offerer)
    venue = offers_factories.VirtualVenueFactory(
        managingOfferer=user_offerer.offerer)
    offer = offers_factories.EventOfferFactory(venue=venue, isActive=True)

    return {
        "offer": get_offer_helper(offer),
        "offerer": get_offerer_helper(user_offerer.offerer),
        "user": get_pro_helper(user_offerer.user),
        "venue": get_venue_helper(venue),
    }
Пример #29
0
def get_existing_pro_validated_user_with_validated_offerer_validated_user_offerer_no_physical_venue(
):
    query = User.query.filter(User.validationToken == None)
    query = filter_users_with_at_least_one_validated_offerer_validated_user_offerer(
        query)
    query = keep_offerers_with_no_physical_venue(query)
    user = query.first()

    offerer = [
        uo.offerer for uo in user.UserOfferers
        if uo.offerer.validationToken == None and uo.validationToken == None
        and all([v.isVirtual for v in uo.offerer.managedVenues])
    ][0]

    return {
        "offerer": get_offerer_helper(offerer),
        "user": get_pro_helper(user)
    }
Пример #30
0
def get_existing_pro_validated_user_with_validated_offerer_validated_user_offerer_with_event_offer(
):
    query = User.query.filter(User.validationToken == None)
    query = filter_users_with_at_least_one_validated_offerer_validated_user_offerer(
        query)
    query = query.join(VenueSQLEntity).join(Offer).filter(
        Offer.type.in_([str(event_type) for event_type in EventType]))
    user = query.first()

    for uo in user.UserOfferers:
        if uo.validationToken == None and uo.offerer.validationToken == None:
            for venue in uo.offerer.managedVenues:
                for offer in venue.offers:
                    if offer.isEvent:
                        return {
                            "offer": get_offer_helper(offer),
                            "offerer": get_offerer_helper(uo.offerer),
                            "user": get_pro_helper(user),
                            "venue": get_venue_helper(venue),
                        }
    return None