Exemplo n.º 1
0
class ratioPaymentFiscalize(helpers.BaseField):
    def resolve(self, _, info, payment_id):
        payment = models.Payment.objects.get(pk=payment_id)
        payment.fiscalize()
        return True

    permissions = [user_perm('ratio.manage'), user_perm('kkm.kkmserver')]
    args = {'payment_id': 'ID!'}
    result = bool
Exemplo n.º 2
0
class ofdFiscalDrives(helpers.BaseField):
    def resolve(self, _, info):
        return models.OfdFiscalDrive.objects.all()

    permissions = [user_perm('kkm.ofd')]

    result = g.NNList(types.OfdFiscalDrive)
Exemplo n.º 3
0
class promocodes_count(helpers.BaseField):
    def resolve(self, obj, info, **pager):
        return obj.promocodes.count()

    permissions = [user_perm('ratio.manage')]

    result = int
Exemplo n.º 4
0
class updateRatioTicketType(helpers.BaseFieldWithInput):
    def resolve(self, _, info, input):
        ticket_type = models.TicketType.objects.get(uuid=input['id'])

        for field in (
            'price',
            'name',
            'discount_by_email',
            'discount_percent_by_email',
        ):
            if input.get(field) is not None:
                setattr(ticket_type, field, input[field])

        ticket_type.full_clean()
        ticket_type.save()
        return ticket_type

    permissions = [user_perm('ratio.manage')]
    input = {
        'id': 'ID!',
        'price': Optional[int],
        'name': Optional[str],
        'discount_by_email': Optional[int],
        'discount_percent_by_email': Optional[int],
    }
    result = g.NN(types.RatioTicketType)
Exemplo n.º 5
0
class updateRatioTicket(helpers.BaseFieldWithInput):
    def resolve(self, _, info, input):
        ticket = models.Ticket.objects.get(pk=input['id'])

        for field in (
                'first_name',
                'last_name',
                'notion_link',
        ):
            if input.get(field) is not None:
                setattr(ticket, field, input[field])

        if input.get('ticket_type') is not None:
            ticket_type_id = input['ticket_type']
            ticket_type = models.TicketType.objects.get(uuid=ticket_type_id)
            ticket.ticket_type = ticket_type

        ticket.full_clean()
        ticket.save()
        return ticket

    permissions = [user_perm('ratio.manage')]
    input = {
        'id': 'ID!',
        'first_name': Optional[str],
        'last_name': Optional[str],
        'notion_link': Optional[str],
        'ticket_type': 'ID',
    }

    result = g.NN(types.RatioTicket)
Exemplo n.º 6
0
class ratioAddTicket(helpers.BaseFieldWithInput):
    def resolve(self, _, info, input):
        training_id = input.pop('training')
        training = models.Training.objects.get(pk=training_id)

        ticket_type_id = input.pop('ticket_type', None)
        ticket_type = None
        if ticket_type_id:
            ticket_type = models.TicketType.objects.get(uuid=ticket_type_id)

        ticket = models.Ticket.objects.create(
            **input,
            training=training,
            ticket_type=ticket_type,
        )
        return ticket

    permissions = [user_perm('ratio.manage')]
    input = {
        'training': 'ID!',  # TODO - remove and derive from ticket_type
        'ticket_type': 'ID',  # TODO - required
        'email': str,
        'first_name': Optional[str],
        'last_name': Optional[str],
        'payment_amount': int,
        'ticket_class': Optional[str],
        'comment': Optional[str],
    }

    result = g.NN(types.RatioTicket)
Exemplo n.º 7
0
def staffGrantGooglePermissionsToMember(helper):
    @check_permissions([user_perm('staff.manage')])
    def resolve(obj, info, id):
        member = models.Member.objects.get(pk=id)
        member.grant_google_permissions()
        return True

    return g.Field(g.Boolean, args=g.arguments({'id': 'ID!'}), resolve=resolve)
Exemplo n.º 8
0
def authPermissionsAll(helper):
    @check_permissions([user_perm("auth.audit")])
    def resolve(_, info):
        return auth_models.Permission.objects.all()

    Result = g.NNList(types.AuthPermission)

    return g.Field(Result, resolve=resolve)
Exemplo n.º 9
0
class ofdDocuments(helpers.BaseField):
    def resolve(self, _, info, **pager):
        return models.OfdDocument.objects.relay_page(**pager)

    permissions = [user_perm('kkm.ofd')]

    args = helpers.connection_args()
    result = g.NN(types.OfdDocumentConnection)
Exemplo n.º 10
0
class closeKkmShift(helpers.BaseField):
    def resolve(self, _, info):
        models.Controller.load().close_shift()
        return {'ok': True}

    permissions = [user_perm('kkm.kkmserver')]

    result = g.NN(basic_types.BasicResult)
Exemplo n.º 11
0
class deleteAuthGroup(helpers.BaseField):
    def resolve(self, _, info, id):
        group = auth_models.Group.objects.get(pk=id)
        group.delete()
        return {'ok': True}

    permissions = [user_perm('auth.audit')]
    args = {'id': 'ID!'}
    result = g.NN(basic_types.BasicResult)
Exemplo n.º 12
0
class createAuthGroup(helpers.BaseField):
    def resolve(self, _, info, name):
        group = auth_models.Group.objects.create(name=name)
        group.full_clean()
        return group

    permissions = [user_perm('auth.audit')]
    args = {'name': str}
    result = g.NN(types.AuthGroup)
Exemplo n.º 13
0
class zadarmaSetMemberForPbxCall(helpers.BaseField):
    permissions = [user_perm('zadarma.admin')]
    args = {'member_id': 'ID!', 'pbx_call_id': 'ID!'}
    result = bool

    def resolve(self, _, info, pbx_call_id, member_id):
        pbx_call = models.PbxCall.objects.get(pk=pbx_call_id)
        pbx_call.set_staff_member_by_id(member_id)
        return True
Exemplo n.º 14
0
class promocodes(helpers.BaseField):
    def resolve(self, obj, info, **pager):
        return models.Promocode.objects.filter(
            ticket_type_promocodes=obj.pk).relay_page(**pager)

    permissions = [user_perm('ratio.manage')]

    args = helpers.connection_args()
    result = g.NN(RatioPromocodeConnection)
Exemplo n.º 15
0
class ratioPaymentDelete(helpers.BaseField):
    def resolve(self, _, info, payment_id):
        payment = models.Payment.objects.get(pk=payment_id)
        payment.delete()
        return {'ok': True}

    permissions = [user_perm('ratio.manage')]
    args = {'payment_id': 'ID!'}
    result = g.NN(basic_types.BasicResult)
Exemplo n.º 16
0
class ratioTrainingSyncParticipantsToMailchimp(helpers.BaseField):
    def resolve(self, _, info, training_id):
        training = models.Training.objects.get(pk=training_id)
        training2mailchimp(training)
        return True

    permissions = [user_perm('ratio.manage')]
    args = {'training_id': 'ID!'}
    result = bool
Exemplo n.º 17
0
class cashierRedeemPayment(helpers.BaseField):
    def resolve(self, _, info, id):
        payment = models.Payment.objects.get(pk=id)
        payment.redeem()
        return True

    permissions = [user_perm('cashier.redeem')]
    args = g.arguments({'id': 'ID!'})
    result = g.Boolean
Exemplo n.º 18
0
class authRemoveUserFromGroup(helpers.BaseField):
    def resolve(self, _, info, group_id, user_id):
        group = auth_models.Group.objects.get(pk=group_id)
        user = get_user_model().objects.get(pk=user_id)
        group.user_set.remove(user)
        return True

    permissions = [user_perm('auth.audit')]
    args = {'group_id': 'ID!', 'user_id': 'ID!'}
    result = bool
Exemplo n.º 19
0
class removePermissionFromAuthGroup(helpers.BaseField):
    def resolve(self, _, info, group_id, perm):
        group = auth_models.Group.objects.get(pk=group_id)
        permission = perm_to_permission(perm)
        group.permissions.remove(permission)
        return group

    permissions = [user_perm('auth.audit')]
    args = {'group_id': 'ID!', 'perm': str}
    result = g.NN(types.AuthGroup)
Exemplo n.º 20
0
class kkmStatus(helpers.BaseField):
    def resolve(self, _, info):
        return {
            'last_shift_closed': models.Controller.load().last_shift_closed,
        }

    permissions = [user_perm('kkm.kkmserver')]

    result = {
        'last_shift_closed': Optional[str],
    }
Exemplo n.º 21
0
class deleteRatioTicketType(helpers.BaseFieldWithInput):
    def resolve(self, _, info, input):
        ticket_type = models.TicketType.objects.get(
            uuid=input['id'],
        )
        ticket_type.delete()
        return {'ok': True}

    permissions = [user_perm('ratio.manage')]
    input = {
        'id': 'ID!',
    }
    result = g.NN(basic_types.BasicResult)
Exemplo n.º 22
0
class ratioDeleteTraining(helpers.BaseFieldWithInput):
    # TODO - reimplement with django_utils.DeleteMutation after we implement lookup_field in DeleteMutation
    def resolve(self, _, info, input):
        training = models.Training.objects.get(slug=input['slug'])
        training.delete()
        return {'ok': True}

    permissions = [user_perm('ratio.manage')]
    input = {
        'slug': str,
    }

    result = g.NN(basic_types.BasicResult)
Exemplo n.º 23
0
class ratioPaymentFiscalizedManually(helpers.BaseField):
    def resolve(self, _, info, payment_id):
        payment = models.Payment.objects.get(pk=payment_id)
        assert payment.fiscalization_status in ('todo', 'in_progress')
        payment.fiscalization_status = 'fiscalized'
        payment.full_clean()
        payment.save()
        return {'payment': payment}

    permissions = [user_perm('ratio.manage')]
    args = {'payment_id': 'ID!'}
    result = {
        'payment': g.NN(types.RatioPayment),
    }
Exemplo n.º 24
0
class setRatioTicketNotionLink(helpers.BaseFieldWithInput):
    def resolve(self, _, info, input):
        ticket = models.Ticket.objects.get(pk=input['id'])

        ticket.set_notion_link(input['notion_link'])
        return ticket

    permissions = [user_perm('ratio.manage')]
    input = {
        'id': 'ID!',
        'notion_link': str,
    }

    result = g.NN(types.RatioTicket)
Exemplo n.º 25
0
class ofdShifts(helpers.BaseField):
    def resolve(self, _, info, filter=None, **pager):
        qs = models.OfdShift.objects.all()
        if filter:
            if filter.get('open_only'):
                qs = qs.filter(close_dt__isnull=True)
        return qs.relay_page(**pager)

    permissions = [user_perm('kkm.ofd')]

    FilterInput = g.InputObjectType(
        'OfdShiftsFilterInput', g.input_fields({'open_only': Optional[bool]}))
    args = {**helpers.connection_args(), 'filter': FilterInput}
    result = g.NN(types.OfdShiftConnection)
Exemplo n.º 26
0
class cashierCreatePayment(helpers.BaseFieldWithInput):
    def resolve(self, _, info, input):
        user = get_user_model().objects.get(pk=input['whom'])
        models.Payment.objects.create(
            whom=user,
            amount=input['amount'],
            comment=input['comment'],
        )
        return True

    permissions = [user_perm('cashier.create')]
    input = {'amount': int, 'whom': 'ID!', 'comment': str}

    result = g.Boolean
Exemplo n.º 27
0
class external_accounts_field(helpers.BaseField):
    def resolve(self, obj, info):
        services = external_services_registry.all_services()

        result = []
        for s in services:
            account = s.user_account(obj)
            if account:
                result.append(account)

        return result

    permissions = [user_perm('external_services.view_access')]

    result = g.NNList(ExternalServiceAccount)
Exemplo n.º 28
0
class ratioTrainingAddDay(helpers.BaseFieldWithInput):
    def resolve(self, _, info, input):
        training = models.Training.objects.get(slug=input['training_slug'])
        date_str = input['date']
        date = datetime.datetime.strptime(date_str, '%Y-%m-%d').date()
        training.add_day(date)
        return True

    permissions = [user_perm('ratio.manage')]
    input = {
        'training_slug': str,
        'date': str,
    }

    result = bool
Exemplo n.º 29
0
class updateRatioTraining(django_utils.UpdateMutation):
    model = models.Training
    fields = [
        'name',
        # 'slug',
        'training_type',
        'date',
        'telegram_link',
        'discount_by_email',
        'discount_percent_by_email',
        'promocode_email',
        'new_ticket_email',
        'notion_created_email',
    ]
    permissions = [user_perm('ratio.manage')]
    result_type = types.RatioTraining
Exemplo n.º 30
0
class ratioTrainingCopyScheduleFrom(helpers.BaseFieldWithInput):
    def resolve(self, _, info, input):
        from_training = models.Training.objects.get(
            slug=input['from_training_slug'])
        to_training = models.Training.objects.get(
            slug=input['to_training_slug'])
        to_training.copy_schedule_from(from_training)
        return True

    permissions = [user_perm('ratio.manage')]
    input = {
        'from_training_slug': str,
        'to_training_slug': str,
    }

    result = bool