Пример #1
0
 def update_book_info(cls, book: Book, info_to_update: Dict[str, str]):
     author_data = {}
     for author in info_to_update['author']:
         temp = author.split(' ')
         author_data['name'], author_data['surname'] = temp[0], temp[-1]
         author = cls.add_author_to_db(author_data)
         book.author.add(author)
     if info_to_update.get('genre'):
         book.genre = cls.add_or_get_genre(info_to_update.get('genre'))
     book.description = info_to_update.get('annotation')
     book.save()
Пример #2
0
def add(db_session, data, username, **kwargs):
    logger.debug(LogMsg.START, username)

    genre = data.get('genre', [])
    if genre and len(genre) > 0:
        check_enums(genre, Genre)
    logger.debug(LogMsg.ENUM_CHECK, {'genre': genre})

    model_instance = Book()

    populate_basic_data(model_instance, username, data.get('tags'))
    logger.debug(LogMsg.POPULATING_BASIC_DATA)

    model_instance.title = data.get('title')
    model_instance.edition = data.get('edition')
    model_instance.pub_year = data.get('pub_year')
    model_instance.type = data.get('type')
    model_instance.genre = genre
    model_instance.images = data.get('images')
    model_instance.files = data.get('files')
    model_instance.language = data.get('language')
    model_instance.rate = data.get('rate')
    model_instance.description = data.get('description')
    model_instance.pages = data.get('pages')
    model_instance.duration = data.get('duration')
    model_instance.size = data.get('size')
    model_instance.isben = data.get('isben')
    model_instance.description = data.get('description')
    model_instance.from_editor = data.get('from_editor')
    model_instance.press = data.get('press')

    logger.debug(LogMsg.PERMISSION_CHECK, username)
    validate_permissions_and_access(username,
                                    db_session,
                                    'BOOK_ADD',
                                    model=model_instance)
    logger.debug(LogMsg.PERMISSION_VERIFIED)

    db_session.add(model_instance)
    logger.debug(LogMsg.DB_ADD)

    add_connector(model_instance.id, data.get('unique_code'), db_session)
    logger.debug(LogMsg.UNIQUE_CONNECTOR_ADDED, {
        'book_id': model_instance.id,
        'unique_constraint': data.get('unique_code')
    })

    price = data.get('price', None)
    if price:
        add_price_internal(price, model_instance.id, db_session, username)

    logger.info(LogMsg.END)
    return model_instance
Пример #3
0
def createBook(book):
    b = Book(name=book['name'],
             description=book['description'],
             price=book['price'],
             years_to_create=book['years_to_create'],
             count_sheets=book['count_sheets'],
             ISBN=book['ISBN'],
             mass=book['mass'],
             rating=book['rating'],
             stock=book['stock'],
             available=book['available'])

    b.genre = Genre.objects.get(name=book[''])