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.4.tar.gz (10.3 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: baseapp-blocks-0.0.4.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.4.tar.gz
Algorithm Hash digest
SHA256 b47941274360dcd32c09e91caf9da04f1880191c263d07fb27856dab626df9dc
MD5 a144256bfe4c4507429ea54a4100c9d8
BLAKE2b-256 f301ccb00c670edb0e4628eb22505d11d2f0c32c2521a6e130e380bd909e20b8

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