Skip to main content

BaseApp Blocks

Project description

BaseApp Blocks

Reusable app to enable any model block/unblock any model.

Requirements:

- **baseapp-core** >= 0.2.3

Run pip install baseapp-blocks And make sure to add the frozen version to your requirements/base.txt file

If you want to develop, install using this other guide.

How to use

Add baseapp_blocks to your project's INSTALLED_APPS

Add baseapp_blocks.permissions.BlocksPermissionsBackend to the AUTHENTICATION_BACKENDS list in your django settings file.

Now make sure all models you'd like to get blocks also inherits BlockableModel, like:

from baseapp_blocks.models import BlockableModel

class User(models.Model, BlockableModel):

Also make sure your GraphQL object types extends BlocksInterface interface:

from baseapp_blocks.graphql.object_types import BlocksInterface

class UserNode(DjangoObjectType):
    class Meta:
        interfaces = (relay.Node, BlocksInterface)

Expose BlocksMutations in your GraphQL/graphene endpoint, like:

from baseapp_blocks.graphql.mutations import BlocksMutations

class Mutation(graphene.ObjectType, BlocksMutations):
    pass

schema = graphene.Schema(query=Query, mutation=Mutation)

This will expose blockToggle mutation and add fields and connections to all your GraphqlQL Object Types using interface BlocksInterface.

Example:

    mutation BlockButtonMutation($input: BlockToggleInput!) {
        blockToggle(input: $input) {
            block {
                node {
                id
                }
            }
            target {
                id
                blockersCount
                isBlockedByMe
            }
            actor {
                id
                blockingCount
            }
        }
    }

How to develop

Clone the project inside your project's backend dir:

git clone git@github.com:silverlogic/baseapp-backend.git

And manually install the package:

pip install -e baseapp-backend/baseapp-blocks

The -e flag will make it like any change you make in the cloned repo files will effect into the project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

baseapp-blocks-0.0.5.tar.gz (10.3 kB view details)

Uploaded Source

File details

Details for the file baseapp-blocks-0.0.5.tar.gz.

File metadata

  • Download URL: baseapp-blocks-0.0.5.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for baseapp-blocks-0.0.5.tar.gz
Algorithm Hash digest
SHA256 09acc8a8e09ee5860aa71b032f8252ba46288e96b2d62f8e64715784a0ff4ac1
MD5 ff29a15276a00af9bb691444673bd3e0
BLAKE2b-256 1d52ec6cb527565c3867caaef08e642b1489624e5fb735c0e5830afecdb0b7fa

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page