graphene-django-cruddals


Namegraphene-django-cruddals JSON
Version 0.1.4 PyPI version JSON
download
home_pagehttps://github.com/juanjcardona13/graphene_django_cruddals
SummaryFramework for trivial code, Easy and Fast for learn, Easy and Fast for use
upload_time2024-07-20 12:36:17
maintainerNone
docs_urlNone
authorJuan J Cardona
requires_pythonNone
licenseApache 2.0
keywords api graphql crud graphene graphene-django cruddals
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            

<h1 align="center">Graphene-Django-CRUDDALS</h1>
<div align="center">

πŸ‘©πŸ½β€πŸ’» πŸš€ πŸ‘¨πŸ½β€πŸ’»  
**Framework for trivial code, easy and fast to learn and use.**  
Turn your Django-models into a complete GraphQL API with all CRUD operations  

[![PyPI](https://img.shields.io/pypi/v/graphene-django-cruddals?style=flat-&color=00559c&label=pypi&logo=python&logoColor=white)](https://pypi.org/project/graphene-django-cruddals/)
[![GitHub License](https://img.shields.io/github/license/juanjcardona13/graphene_django_cruddals?color=4c1)](https://github.com/juanjcardona13/graphene_django_cruddals/blob/main/LICENSE)
[![Codecov](https://img.shields.io/codecov/c/gh/juanjcardona13/graphene_django_cruddals)](https://app.codecov.io/gh/juanjcardona13/graphene_django_cruddals)
[![Documentation Status](https://readthedocs.org/projects/graphene-django-cruddals/badge/?version=latest)](https://graphene-django-cruddals.readthedocs.io/en/latest/?badge=latest)

![CRUDDALS Gif](https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExem14OGIwMXU5c3h0NTlndnp5M2t6dWc1aGZsY2s3YWZ0cGtzNmRmNCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/lRweacGyr3Q9n48duZ/giphy.gif)  

**[Docs](https://graphene-django-cruddals.readthedocs.io/en/latest/)**

<sub>Built with ❀︎ by [Juan J Cardona](https://github.com/juanjcardona13) and [contributors](https://github.com/juanjcardona13/graphene_django_cruddals/graphs/contributors) 
</sub>


</div>

## πŸ“‹ Table of Contents

1. πŸš€ [Getting started](#getting-started)
2. πŸ‘©β€πŸ’» [Usage](#usage)
3. 🎁 [Features](#features)
4. πŸ“š [Documentation](#documentation)
5. πŸ“œ [License](#license)
6. ❀️ [Contributing](#contributing)
7. πŸ“ž [Contact](#contact)
8. πŸ™ [Acknowledgements](#acknowledgements)
9. πŸ—ΊοΈ [Roadmap](#roadmap)


## <a name="getting-started">πŸš€ Getting started</a>

### Prerequisites

To install this project you need to have a Django project already set up. If you don't have one, you can follow the [official Django tutorial](https://docs.djangoproject.com/en/3.2/intro/tutorial01/).

### Installation

You can install this package using pip:

```bash
pip install graphene-django-cruddals
```

## <a name="usage">πŸ‘©β€πŸ’» Usage</a> 

To use it, simply create a new class that inherits "`DjangoModelCruddals`"
Suppose we have the following models.

```python
from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
```

Then we can create a complete CRUD+DALS for the models `Question` with the following code

```python
class CruddalsQuestion(DjangoModelCruddals):
    class Meta:
        model = Question
```

Now you can use the `schema` that was generated for you,

```python
schema = CruddalsQuestion.Schema
```

or use in your existing schema root `Query` and `Mutation`

```python
class Query(
    # ... your others queries
    CruddalsQuestion.Query,
    graphene.ObjectType,
):
    pass


class Mutation(
    # ... your others mutations
    CruddalsQuestion.Mutation,
    graphene.ObjectType,
):
    pass


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

your schema will have the following queries and mutations

<details>
<summary>Click to see the generated schema</summary>

```graphql
# Queries
type Query {
  readQuestion(where: FilterQuestionInput!): QuestionType
  searchQuestions(where: FilterQuestionInput, orderBy: OrderByQuestionInput, paginated: PaginationConfigInput): QuestionPaginatedType
  listQuestions: [QuestionType!]
}

# Mutations
type Mutation {
  createQuestions(input: [CreateQuestionInput!]): CreateQuestionsPayload
  updateQuestions(input: [UpdateQuestionInput!]): UpdateQuestionsPayload
  activateQuestions(where: FilterQuestionInput!): ActivateQuestionsPayload
  deactivateQuestions(where: FilterQuestionInput!): DeactivateQuestionsPayload
  deleteQuestions(where: FilterQuestionInput!): DeleteQuestionsPayload
}


# Inputs
# - From the model: Question
input CreateQuestionInput {
  questionText: String!
  pubDate: DateTime!
}
input UpdateQuestionInput {
  id: ID!
  questionText: String
  pubDate: DateTime
}
input FilterQuestionInput {
  id: IDFilter
  questionText: StringFilter
  pubDate: DateTimeFilter
  AND: [FilterQuestionInput]
  OR: [FilterQuestionInput]
  NOT: FilterQuestionInput
}
input OrderByQuestionInput {
  id: OrderEnum
  questionText: OrderStringEnum
  pubDate: OrderEnum
}
# - Filters
input IDFilter {
  exact: ID
  iexact: ID
  gt: ID
  gte: ID
  lt: ID
  lte: ID
  in: [ID]
  contains: ID
  icontains: ID
  startswith: ID
  istartswith: ID
  endswith: ID
  iendswith: ID
  range: [ID]
  isnull: Boolean
  regex: String
  iregex: String
  containedBy: ID
}
input StringFilter {
  exact: String
  iexact: String
  gt: String
  gte: String
  lt: String
  lte: String
  in: [String]
  contains: String
  icontains: String
  startswith: String
  istartswith: String
  endswith: String
  iendswith: String
  range: [String]
  isnull: Boolean
  regex: String
  iregex: String
}
input DateTimeFilter {
  exact: DateTime
  iexact: DateTime
  gt: DateTime
  gte: DateTime
  lt: DateTime
  lte: DateTime
  in: [DateTime]
  contains: DateTime
  icontains: DateTime
  startswith: DateTime
  istartswith: DateTime
  endswith: DateTime
  iendswith: DateTime
  range: [DateTime]
  isnull: Boolean
  regex: String
  iregex: String
  year: DateTime
  month: DateTime
  day: DateTime
  weekDay: DateTime
  isoWeekDay: DateTime
  week: DateTime
  isoYear: DateTime
  quarter: DateTime
  containedBy: DateTime
  hour: DateTime
  minute: DateTime
  second: DateTime
  date: DateTime
  time: DateTime
}
# - Pagination
input PaginationConfigInput {
  page: Int = 1
  itemsPerPage: IntOrAll = "All"
}



# Types
# - From the model: Question
type QuestionType {
  id: ID
  questionText: String!
  pubDate: DateTime!
}
type QuestionPaginatedType implements PaginationInterface {
  total: Int
  page: Int
  pages: Int
  hasNext: Boolean
  hasPrev: Boolean
  indexStart: Int
  indexEnd: Int
  objects: [QuestionType!]
}
# - Payload the mutations
type CreateQuestionsPayload {
  objects: [QuestionType]
  errorsReport: [ErrorCollectionType]
}
type UpdateQuestionsPayload {
  objects: [QuestionType]
  errorsReport: [ErrorCollectionType]
}
type ActivateQuestionsPayload {
  objects: [QuestionType]
  errorsReport: [ErrorCollectionType]
}
type DeactivateQuestionsPayload {
  objects: [QuestionType]
  errorsReport: [ErrorCollectionType]
}
type DeleteQuestionsPayload {
  objects: [QuestionType]
  errorsReport: [ErrorCollectionType]
  success: Boolean
}
# - Error
type ErrorCollectionType {
  objectPosition: String
  errors: [ErrorType]
}
type ErrorType {
  field: String!
  messages: [String!]!
}



# Interfaces

interface PaginationInterface {
  total: Int
  page: Int
  pages: Int
  hasNext: Boolean
  hasPrev: Boolean
  indexStart: Int
  indexEnd: Int
}


# Scalars

"""
The `DateTime` scalar type represents a DateTime
value as specified by
[iso8601](https://en.wikipedia.org/wiki/ISO_8601).
"""
scalar DateTime
"""The page size can be int or 'All'"""
scalar IntOrAll


# Enums
enum OrderEnum {
  ASC
  DESC
}

enum OrderStringEnum {
  ASC
  DESC
  IASC
  IDESC
}

```

</details>  

πŸŽ‰πŸ₯³ Now you can use and test in Graphiql πŸš€πŸš€πŸš€  

## <a name="features">🎁 Features</a>

| Status | Description |
| :----: | ----------- |
| βœ…     | Done        |
| 〰️     | In progress |
| ❌     | Not started |



|                        Feature                                         |     Status          |                 Comments              |
| -----------------------------------------------------------------------| :-----------------: | :-----------------------------------: |
| Generate `ObjectType` from Django model                                |         βœ…          |        Pending for documentation      |
| Generate `InputObjectType` from Django model                           |         βœ…          |        Pending for documentation      |
| Generate `Fields` from Django model                                    |         βœ…          |        Pending for documentation      |
| Generate `InputFields` from Django model                               |         βœ…          |        Pending for documentation      |
| Generate `Arguments` from Django model                                 |         βœ…          |        Pending for documentation      |
| Generate `Mutations` from Django model                                 |         βœ…          |        Pending for documentation      |
| Generate `Queries` from Django model                                   |         βœ…          |        Pending for documentation      |
| Generate `resolvers` from Django model                                 |         βœ…          |        Pending for documentation      |
| Generate `Create` operation for a Django model                         |         βœ…          |        Pending for documentation      |
| Generate `Read` operation for a Django model                           |         βœ…          |        Pending for documentation      |
| Generate `Update` operation for a Django model                         |         βœ…          |        Pending for documentation      |
| Generate `Delete` operation for a Django model                         |         βœ…          |        Pending for documentation      |
| Generate `Deactivate` operation for a Django model                     |         βœ…          |        Pending for documentation      |
| Generate `Activate` operation for a Django model                       |         βœ…          |        Pending for documentation      |
| Generate `List` operation for a Django model                           |         βœ…          |        Pending for documentation      |
| Generate `Search` operation for a Django model                         |         βœ…          |        Pending for documentation      |
| Generate each operation, all to be performed `massively`               |         βœ…          |        Pending for documentation      |
| Handle `null` and `blank` attribute of Django model                    |         βœ…          |        Pending for documentation      |
| Handle `editable` attribute of Django model                            |         βœ…          |        Pending for documentation      |
| Handle `help_text` attribute of Django model                           |         βœ…          |        Pending for documentation      |
| Handle `default` attribute of Django model                             |         βœ…          |        Pending for documentation      |
| Handle `choices` attribute of Django model                             |         βœ…          |        Pending for documentation      |
| Handle `OneToOneField` field of Django model                           |         βœ…          |        Pending for documentation      |
| Handle `OneToOneRel` field of Django model                             |         βœ…          |        Pending for documentation      |
| Handle `ManyToManyField` field of Django model                         |         βœ…          |        Pending for documentation      |
| Handle `ManyToManyRel` field of Django model                           |         βœ…          |        Pending for documentation      |
| Handle `ForeignKey` field of Django model                              |         βœ…          |        Pending for documentation      |
| Handle `ManyToOneRel` field of Django model                            |         βœ…          |        Pending for documentation      |
| Handle `GenericForeignKey` field of Django model                       |         βœ…          |        Pending for documentation      |
| Handle `GenericRel` field of Django model                              |         βœ…          |        Pending for documentation      |
| Handle `FileField` and `ImageField` fields of Django Model             |         βœ…          |        Pending for documentation      |
| Handle `JSONField` field of Django model                               |         βœ…          |        Pending for documentation      |
| Allowing nested mutations at any depth level                           |         βœ…          |        Pending for documentation      |
| Allowing nested queries at any depth level                             |         βœ…          |        Pending for documentation      |
| Handle pagination of query results                                     |         βœ…          |        Pending for documentation      |
| Handle sorting of query results                                        |         βœ…          |        Pending for documentation      |
| Handle advanced search                                                 |         βœ…          |        Pending for documentation      |
| Handle advanced search with `AND` operator                             |         βœ…          |        Pending for documentation      |
| Handle advanced search with `OR` operator                              |         βœ…          |        Pending for documentation      |
| Handle advanced search with `NOT` operator                             |         βœ…          |        Pending for documentation      |
| Handle advanced search with `relational fields` operator               |         βœ…          |        Pending for documentation      |
| Providing a friendly and comprehensive list of errors                  |         βœ…          |        Pending for documentation      |
| Allow use the ObjectTypes generated from the models                    |         βœ…          |        Pending for documentation      |
| Allow customizing the `ObjectType` generated by CRUDDALS               |         βœ…          |        Pending for documentation      |
| Allow customizing the `InputObjectType` generated by CRUDDALS          |         βœ…          |        Pending for documentation      |
| Allow customizing the `Fields` generated by CRUDDALS                   |         βœ…          |        Pending for documentation      |
| Allow customizing the `InputFields` generated by CRUDDALS              |         βœ…          |        Pending for documentation      |
| Allow customizing the `Arguments` generated by CRUDDALS                |         βœ…          |        Pending for documentation      |
| Allow customizing the `Mutations` generated by CRUDDALS                |         βœ…          |        Pending for documentation      |
| Allow customizing the `Queries` generated by CRUDDALS                  |         βœ…          |        Pending for documentation      |
| Allow customizing the `resolvers` generated by CRUDDALS                |         βœ…          |        Pending for documentation      |
| Generate all operations at the `model`, `app`, or `project` **level**  |         βœ…          |        Pending for documentation      |
| Files for consuming the GraphQL API with any JavaScript client         |         βœ…          |        Pending for documentation      |
| File with the queries and mutations for with GraphiQL                  |         βœ…          |        Pending for documentation      |
| File with the entire GraphQL schema generated                          |         βœ…          |        Pending for documentation      |
| Handle transactions in mutations                                       |         ❌          |        Pending for documentation      |
| Handle directives in queries and mutations                             |         ❌          |        Pending for documentation      |
| Handle subscriptions                                                   |         ❌          |        Pending for documentation      |
| Optimized queries and mutations                                        |         ❌          |        Pending for documentation      |
| Generate Types for TypeScript                                          |         ❌          |        Pending for documentation      |
| Generate validators for Zod, Yup, others                               |         ❌          |        Pending for documentation      |







## <a name="documentation">πŸ“š Documentation</a>

You can find the full documentation [here](https://graphene-django-cruddals.readthedocs.io/en/latest/), please keep in mind that this is a work in progress.

## <a name="license">πŸ“œ License</a>

Distributed under the MIT License. See [LICENSE](https://github.com/juanjcardona13/graphene_django_cruddals/blob/main/LICENSE) for more information.

## <a name="contributing">❀️ Contributing</a>

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**. For more information, please read the [CONTRIBUTING.md](https://github.com/juanjcardona13/graphene_django_cruddals/blob/main/CONTRIBUTING.md)  

## <a name="contact">πŸ“ž Contact</a>

- [Email](mailto:juanjcardona13@gmail.com)
- [LinkedIn](https://www.linkedin.com/in/juanjcardona/)
- [GitHub](https://github.com/juanjcardona13)

## <a name="acknowledgements">πŸ™ Acknowledgements</a>

- [Python](https://www.python.org/)
- [Django](https://www.djangoproject.com/)
- [Graphene Django](https://docs.graphene-python.org/projects/django/en/latest/)
- [Graphene Django CRUD](https://github.com/djipidi/graphene_django_crud)
- [Readme Template 1](https://www.makeareadme.com)
- [Readme Template 2](https://gist.github.com/PurpleBooth/109311bb0361f32d87a2)
- and many others  

## <a name="roadmap">πŸ—ΊοΈ Roadmap</a>

- [ ] Finish documentation
- [ ] Add more examples
- [ ] Add more features
- [x] Add tests
- [ ] Add localization
- [ ] Add SEO
- [ ] Add analytics
- [ ] Make social marketing
- [ ] Add monitoring
- [ ] Add logging
- [ ] Add CI/CD
- [ ] Add collaboration
- [ ] Add communication
- [ ] Add networking

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/juanjcardona13/graphene_django_cruddals",
    "name": "graphene-django-cruddals",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "api graphql crud graphene graphene-django cruddals",
    "author": "Juan J Cardona",
    "author_email": "juanjcardona13@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/03/c9/905c099241bece7ad50e17377223b9b8dab75181c15768885248b6d7a7a6/graphene_django_cruddals-0.1.4.tar.gz",
    "platform": "any",
    "description": "\n\n<h1 align=\"center\">Graphene-Django-CRUDDALS</h1>\n<div align=\"center\">\n\n\ud83d\udc69\ud83c\udffd\u200d\ud83d\udcbb \ud83d\ude80 \ud83d\udc68\ud83c\udffd\u200d\ud83d\udcbb  \n**Framework for trivial code, easy and fast to learn and use.**  \nTurn your Django-models into a complete GraphQL API with all CRUD operations  \n\n[![PyPI](https://img.shields.io/pypi/v/graphene-django-cruddals?style=flat-&color=00559c&label=pypi&logo=python&logoColor=white)](https://pypi.org/project/graphene-django-cruddals/)\n[![GitHub License](https://img.shields.io/github/license/juanjcardona13/graphene_django_cruddals?color=4c1)](https://github.com/juanjcardona13/graphene_django_cruddals/blob/main/LICENSE)\n[![Codecov](https://img.shields.io/codecov/c/gh/juanjcardona13/graphene_django_cruddals)](https://app.codecov.io/gh/juanjcardona13/graphene_django_cruddals)\n[![Documentation Status](https://readthedocs.org/projects/graphene-django-cruddals/badge/?version=latest)](https://graphene-django-cruddals.readthedocs.io/en/latest/?badge=latest)\n\n![CRUDDALS Gif](https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExem14OGIwMXU5c3h0NTlndnp5M2t6dWc1aGZsY2s3YWZ0cGtzNmRmNCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/lRweacGyr3Q9n48duZ/giphy.gif)  \n\n**[Docs](https://graphene-django-cruddals.readthedocs.io/en/latest/)**\n\n<sub>Built with \u2764\ufe0e by [Juan J Cardona](https://github.com/juanjcardona13) and [contributors](https://github.com/juanjcardona13/graphene_django_cruddals/graphs/contributors) \n</sub>\n\n\n</div>\n\n## \ud83d\udccb Table of Contents\n\n1. \ud83d\ude80 [Getting started](#getting-started)\n2. \ud83d\udc69\u200d\ud83d\udcbb [Usage](#usage)\n3. \ud83c\udf81 [Features](#features)\n4. \ud83d\udcda [Documentation](#documentation)\n5. \ud83d\udcdc [License](#license)\n6. \u2764\ufe0f [Contributing](#contributing)\n7. \ud83d\udcde [Contact](#contact)\n8. \ud83d\ude4f [Acknowledgements](#acknowledgements)\n9. \ud83d\uddfa\ufe0f [Roadmap](#roadmap)\n\n\n## <a name=\"getting-started\">\ud83d\ude80 Getting started</a>\n\n### Prerequisites\n\nTo install this project you need to have a Django project already set up. If you don't have one, you can follow the [official Django tutorial](https://docs.djangoproject.com/en/3.2/intro/tutorial01/).\n\n### Installation\n\nYou can install this package using pip:\n\n```bash\npip install graphene-django-cruddals\n```\n\n## <a name=\"usage\">\ud83d\udc69\u200d\ud83d\udcbb Usage</a> \n\nTo use it, simply create a new class that inherits \"`DjangoModelCruddals`\"\nSuppose we have the following models.\n\n```python\nfrom django.db import models\n\n\nclass Question(models.Model):\n    question_text = models.CharField(max_length=200)\n    pub_date = models.DateTimeField('date published')\n\n\nclass Choice(models.Model):\n    question = models.ForeignKey(Question, on_delete=models.CASCADE)\n    choice_text = models.CharField(max_length=200)\n    votes = models.IntegerField(default=0)\n```\n\nThen we can create a complete CRUD+DALS for the models `Question` with the following code\n\n```python\nclass CruddalsQuestion(DjangoModelCruddals):\n    class Meta:\n        model = Question\n```\n\nNow you can use the `schema` that was generated for you,\n\n```python\nschema = CruddalsQuestion.Schema\n```\n\nor use in your existing schema root `Query` and `Mutation`\n\n```python\nclass Query(\n    # ... your others queries\n    CruddalsQuestion.Query,\n    graphene.ObjectType,\n):\n    pass\n\n\nclass Mutation(\n    # ... your others mutations\n    CruddalsQuestion.Mutation,\n    graphene.ObjectType,\n):\n    pass\n\n\nschema = graphene.Schema( query=Query, mutation=Mutation, )\n```\n\nyour schema will have the following queries and mutations\n\n<details>\n<summary>Click to see the generated schema</summary>\n\n```graphql\n# Queries\ntype Query {\n  readQuestion(where: FilterQuestionInput!): QuestionType\n  searchQuestions(where: FilterQuestionInput, orderBy: OrderByQuestionInput, paginated: PaginationConfigInput): QuestionPaginatedType\n  listQuestions: [QuestionType!]\n}\n\n# Mutations\ntype Mutation {\n  createQuestions(input: [CreateQuestionInput!]): CreateQuestionsPayload\n  updateQuestions(input: [UpdateQuestionInput!]): UpdateQuestionsPayload\n  activateQuestions(where: FilterQuestionInput!): ActivateQuestionsPayload\n  deactivateQuestions(where: FilterQuestionInput!): DeactivateQuestionsPayload\n  deleteQuestions(where: FilterQuestionInput!): DeleteQuestionsPayload\n}\n\n\n# Inputs\n# - From the model: Question\ninput CreateQuestionInput {\n  questionText: String!\n  pubDate: DateTime!\n}\ninput UpdateQuestionInput {\n  id: ID!\n  questionText: String\n  pubDate: DateTime\n}\ninput FilterQuestionInput {\n  id: IDFilter\n  questionText: StringFilter\n  pubDate: DateTimeFilter\n  AND: [FilterQuestionInput]\n  OR: [FilterQuestionInput]\n  NOT: FilterQuestionInput\n}\ninput OrderByQuestionInput {\n  id: OrderEnum\n  questionText: OrderStringEnum\n  pubDate: OrderEnum\n}\n# - Filters\ninput IDFilter {\n  exact: ID\n  iexact: ID\n  gt: ID\n  gte: ID\n  lt: ID\n  lte: ID\n  in: [ID]\n  contains: ID\n  icontains: ID\n  startswith: ID\n  istartswith: ID\n  endswith: ID\n  iendswith: ID\n  range: [ID]\n  isnull: Boolean\n  regex: String\n  iregex: String\n  containedBy: ID\n}\ninput StringFilter {\n  exact: String\n  iexact: String\n  gt: String\n  gte: String\n  lt: String\n  lte: String\n  in: [String]\n  contains: String\n  icontains: String\n  startswith: String\n  istartswith: String\n  endswith: String\n  iendswith: String\n  range: [String]\n  isnull: Boolean\n  regex: String\n  iregex: String\n}\ninput DateTimeFilter {\n  exact: DateTime\n  iexact: DateTime\n  gt: DateTime\n  gte: DateTime\n  lt: DateTime\n  lte: DateTime\n  in: [DateTime]\n  contains: DateTime\n  icontains: DateTime\n  startswith: DateTime\n  istartswith: DateTime\n  endswith: DateTime\n  iendswith: DateTime\n  range: [DateTime]\n  isnull: Boolean\n  regex: String\n  iregex: String\n  year: DateTime\n  month: DateTime\n  day: DateTime\n  weekDay: DateTime\n  isoWeekDay: DateTime\n  week: DateTime\n  isoYear: DateTime\n  quarter: DateTime\n  containedBy: DateTime\n  hour: DateTime\n  minute: DateTime\n  second: DateTime\n  date: DateTime\n  time: DateTime\n}\n# - Pagination\ninput PaginationConfigInput {\n  page: Int = 1\n  itemsPerPage: IntOrAll = \"All\"\n}\n\n\n\n# Types\n# - From the model: Question\ntype QuestionType {\n  id: ID\n  questionText: String!\n  pubDate: DateTime!\n}\ntype QuestionPaginatedType implements PaginationInterface {\n  total: Int\n  page: Int\n  pages: Int\n  hasNext: Boolean\n  hasPrev: Boolean\n  indexStart: Int\n  indexEnd: Int\n  objects: [QuestionType!]\n}\n# - Payload the mutations\ntype CreateQuestionsPayload {\n  objects: [QuestionType]\n  errorsReport: [ErrorCollectionType]\n}\ntype UpdateQuestionsPayload {\n  objects: [QuestionType]\n  errorsReport: [ErrorCollectionType]\n}\ntype ActivateQuestionsPayload {\n  objects: [QuestionType]\n  errorsReport: [ErrorCollectionType]\n}\ntype DeactivateQuestionsPayload {\n  objects: [QuestionType]\n  errorsReport: [ErrorCollectionType]\n}\ntype DeleteQuestionsPayload {\n  objects: [QuestionType]\n  errorsReport: [ErrorCollectionType]\n  success: Boolean\n}\n# - Error\ntype ErrorCollectionType {\n  objectPosition: String\n  errors: [ErrorType]\n}\ntype ErrorType {\n  field: String!\n  messages: [String!]!\n}\n\n\n\n# Interfaces\n\ninterface PaginationInterface {\n  total: Int\n  page: Int\n  pages: Int\n  hasNext: Boolean\n  hasPrev: Boolean\n  indexStart: Int\n  indexEnd: Int\n}\n\n\n# Scalars\n\n\"\"\"\nThe `DateTime` scalar type represents a DateTime\nvalue as specified by\n[iso8601](https://en.wikipedia.org/wiki/ISO_8601).\n\"\"\"\nscalar DateTime\n\"\"\"The page size can be int or 'All'\"\"\"\nscalar IntOrAll\n\n\n# Enums\nenum OrderEnum {\n  ASC\n  DESC\n}\n\nenum OrderStringEnum {\n  ASC\n  DESC\n  IASC\n  IDESC\n}\n\n```\n\n</details>  \n\n\ud83c\udf89\ud83e\udd73 Now you can use and test in Graphiql \ud83d\ude80\ud83d\ude80\ud83d\ude80  \n\n## <a name=\"features\">\ud83c\udf81 Features</a>\n\n| Status | Description |\n| :----: | ----------- |\n| \u2705     | Done        |\n| \u3030\ufe0f     | In progress |\n| \u274c     | Not started |\n\n\n\n|                        Feature                                         |     Status          |                 Comments              |\n| -----------------------------------------------------------------------| :-----------------: | :-----------------------------------: |\n| Generate `ObjectType` from Django model                                |         \u2705          |        Pending for documentation      |\n| Generate `InputObjectType` from Django model                           |         \u2705          |        Pending for documentation      |\n| Generate `Fields` from Django model                                    |         \u2705          |        Pending for documentation      |\n| Generate `InputFields` from Django model                               |         \u2705          |        Pending for documentation      |\n| Generate `Arguments` from Django model                                 |         \u2705          |        Pending for documentation      |\n| Generate `Mutations` from Django model                                 |         \u2705          |        Pending for documentation      |\n| Generate `Queries` from Django model                                   |         \u2705          |        Pending for documentation      |\n| Generate `resolvers` from Django model                                 |         \u2705          |        Pending for documentation      |\n| Generate `Create` operation for a Django model                         |         \u2705          |        Pending for documentation      |\n| Generate `Read` operation for a Django model                           |         \u2705          |        Pending for documentation      |\n| Generate `Update` operation for a Django model                         |         \u2705          |        Pending for documentation      |\n| Generate `Delete` operation for a Django model                         |         \u2705          |        Pending for documentation      |\n| Generate `Deactivate` operation for a Django model                     |         \u2705          |        Pending for documentation      |\n| Generate `Activate` operation for a Django model                       |         \u2705          |        Pending for documentation      |\n| Generate `List` operation for a Django model                           |         \u2705          |        Pending for documentation      |\n| Generate `Search` operation for a Django model                         |         \u2705          |        Pending for documentation      |\n| Generate each operation, all to be performed `massively`               |         \u2705          |        Pending for documentation      |\n| Handle `null` and `blank` attribute of Django model                    |         \u2705          |        Pending for documentation      |\n| Handle `editable` attribute of Django model                            |         \u2705          |        Pending for documentation      |\n| Handle `help_text` attribute of Django model                           |         \u2705          |        Pending for documentation      |\n| Handle `default` attribute of Django model                             |         \u2705          |        Pending for documentation      |\n| Handle `choices` attribute of Django model                             |         \u2705          |        Pending for documentation      |\n| Handle `OneToOneField` field of Django model                           |         \u2705          |        Pending for documentation      |\n| Handle `OneToOneRel` field of Django model                             |         \u2705          |        Pending for documentation      |\n| Handle `ManyToManyField` field of Django model                         |         \u2705          |        Pending for documentation      |\n| Handle `ManyToManyRel` field of Django model                           |         \u2705          |        Pending for documentation      |\n| Handle `ForeignKey` field of Django model                              |         \u2705          |        Pending for documentation      |\n| Handle `ManyToOneRel` field of Django model                            |         \u2705          |        Pending for documentation      |\n| Handle `GenericForeignKey` field of Django model                       |         \u2705          |        Pending for documentation      |\n| Handle `GenericRel` field of Django model                              |         \u2705          |        Pending for documentation      |\n| Handle `FileField` and `ImageField` fields of Django Model             |         \u2705          |        Pending for documentation      |\n| Handle `JSONField` field of Django model                               |         \u2705          |        Pending for documentation      |\n| Allowing nested mutations at any depth level                           |         \u2705          |        Pending for documentation      |\n| Allowing nested queries at any depth level                             |         \u2705          |        Pending for documentation      |\n| Handle pagination of query results                                     |         \u2705          |        Pending for documentation      |\n| Handle sorting of query results                                        |         \u2705          |        Pending for documentation      |\n| Handle advanced search                                                 |         \u2705          |        Pending for documentation      |\n| Handle advanced search with `AND` operator                             |         \u2705          |        Pending for documentation      |\n| Handle advanced search with `OR` operator                              |         \u2705          |        Pending for documentation      |\n| Handle advanced search with `NOT` operator                             |         \u2705          |        Pending for documentation      |\n| Handle advanced search with `relational fields` operator               |         \u2705          |        Pending for documentation      |\n| Providing a friendly and comprehensive list of errors                  |         \u2705          |        Pending for documentation      |\n| Allow use the ObjectTypes generated from the models                    |         \u2705          |        Pending for documentation      |\n| Allow customizing the `ObjectType` generated by CRUDDALS               |         \u2705          |        Pending for documentation      |\n| Allow customizing the `InputObjectType` generated by CRUDDALS          |         \u2705          |        Pending for documentation      |\n| Allow customizing the `Fields` generated by CRUDDALS                   |         \u2705          |        Pending for documentation      |\n| Allow customizing the `InputFields` generated by CRUDDALS              |         \u2705          |        Pending for documentation      |\n| Allow customizing the `Arguments` generated by CRUDDALS                |         \u2705          |        Pending for documentation      |\n| Allow customizing the `Mutations` generated by CRUDDALS                |         \u2705          |        Pending for documentation      |\n| Allow customizing the `Queries` generated by CRUDDALS                  |         \u2705          |        Pending for documentation      |\n| Allow customizing the `resolvers` generated by CRUDDALS                |         \u2705          |        Pending for documentation      |\n| Generate all operations at the `model`, `app`, or `project` **level**  |         \u2705          |        Pending for documentation      |\n| Files for consuming the GraphQL API with any JavaScript client         |         \u2705          |        Pending for documentation      |\n| File with the queries and mutations for with GraphiQL                  |         \u2705          |        Pending for documentation      |\n| File with the entire GraphQL schema generated                          |         \u2705          |        Pending for documentation      |\n| Handle transactions in mutations                                       |         \u274c          |        Pending for documentation      |\n| Handle directives in queries and mutations                             |         \u274c          |        Pending for documentation      |\n| Handle subscriptions                                                   |         \u274c          |        Pending for documentation      |\n| Optimized queries and mutations                                        |         \u274c          |        Pending for documentation      |\n| Generate Types for TypeScript                                          |         \u274c          |        Pending for documentation      |\n| Generate validators for Zod, Yup, others                               |         \u274c          |        Pending for documentation      |\n\n\n\n\n\n\n\n## <a name=\"documentation\">\ud83d\udcda Documentation</a>\n\nYou can find the full documentation [here](https://graphene-django-cruddals.readthedocs.io/en/latest/), please keep in mind that this is a work in progress.\n\n## <a name=\"license\">\ud83d\udcdc License</a>\n\nDistributed under the MIT License. See [LICENSE](https://github.com/juanjcardona13/graphene_django_cruddals/blob/main/LICENSE) for more information.\n\n## <a name=\"contributing\">\u2764\ufe0f Contributing</a>\n\nContributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**. For more information, please read the [CONTRIBUTING.md](https://github.com/juanjcardona13/graphene_django_cruddals/blob/main/CONTRIBUTING.md)  \n\n## <a name=\"contact\">\ud83d\udcde Contact</a>\n\n- [Email](mailto:juanjcardona13@gmail.com)\n- [LinkedIn](https://www.linkedin.com/in/juanjcardona/)\n- [GitHub](https://github.com/juanjcardona13)\n\n## <a name=\"acknowledgements\">\ud83d\ude4f Acknowledgements</a>\n\n- [Python](https://www.python.org/)\n- [Django](https://www.djangoproject.com/)\n- [Graphene Django](https://docs.graphene-python.org/projects/django/en/latest/)\n- [Graphene Django CRUD](https://github.com/djipidi/graphene_django_crud)\n- [Readme Template 1](https://www.makeareadme.com)\n- [Readme Template 2](https://gist.github.com/PurpleBooth/109311bb0361f32d87a2)\n- and many others  \n\n## <a name=\"roadmap\">\ud83d\uddfa\ufe0f Roadmap</a>\n\n- [ ] Finish documentation\n- [ ] Add more examples\n- [ ] Add more features\n- [x] Add tests\n- [ ] Add localization\n- [ ] Add SEO\n- [ ] Add analytics\n- [ ] Make social marketing\n- [ ] Add monitoring\n- [ ] Add logging\n- [ ] Add CI/CD\n- [ ] Add collaboration\n- [ ] Add communication\n- [ ] Add networking\n",
    "bugtrack_url": null,
    "license": "Apache 2.0",
    "summary": "Framework for trivial code, Easy and Fast for learn, Easy and Fast for use",
    "version": "0.1.4",
    "project_urls": {
        "Homepage": "https://github.com/juanjcardona13/graphene_django_cruddals"
    },
    "split_keywords": [
        "api",
        "graphql",
        "crud",
        "graphene",
        "graphene-django",
        "cruddals"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7fbfe23a4998dd09e45bb1dcfd2c622b871925c84d0a5ec0c346eae9ec29453f",
                "md5": "e59a2255901c2937bc47eda40188b580",
                "sha256": "2eec3be36e1c071069260682c741adf9eb456f35382daf21a351805f016a2ee9"
            },
            "downloads": -1,
            "filename": "graphene_django_cruddals-0.1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e59a2255901c2937bc47eda40188b580",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 48522,
            "upload_time": "2024-07-20T12:36:15",
            "upload_time_iso_8601": "2024-07-20T12:36:15.909981Z",
            "url": "https://files.pythonhosted.org/packages/7f/bf/e23a4998dd09e45bb1dcfd2c622b871925c84d0a5ec0c346eae9ec29453f/graphene_django_cruddals-0.1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "03c9905c099241bece7ad50e17377223b9b8dab75181c15768885248b6d7a7a6",
                "md5": "779cd17d6c8b874124e14654fd5f898f",
                "sha256": "a2a4a5bba25af70369fc36797d6b7317a5217c8e52e7f4372cc214b88e7ae229"
            },
            "downloads": -1,
            "filename": "graphene_django_cruddals-0.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "779cd17d6c8b874124e14654fd5f898f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 45428,
            "upload_time": "2024-07-20T12:36:17",
            "upload_time_iso_8601": "2024-07-20T12:36:17.415320Z",
            "url": "https://files.pythonhosted.org/packages/03/c9/905c099241bece7ad50e17377223b9b8dab75181c15768885248b6d7a7a6/graphene_django_cruddals-0.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-20 12:36:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "juanjcardona13",
    "github_project": "graphene_django_cruddals",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "tox": true,
    "lcname": "graphene-django-cruddals"
}
        
Elapsed time: 0.32399s