Exemplo n.º 1
0
 def test_genre_model_creation_2(self):
     g = Genre.Genre(2, "test genre 2")
     db.session.add(g)
     db.session.commit()
     e = Genre.Genre(3, "test genre")
     db.session.add(e)
     db.session.commit()
     result = Genre.Genre.query.all()
     assert (len(result) == 2)
Exemplo n.º 2
0
def loadbase():
    g1 = Genre("Blues")
    quesession.add(g1)
    quesession.commit()
    g2 = Genre("Classical")
    quesession.add(g2)
    quesession.commit()
    g3 = Genre("Rock")
    quesession.add(g3)
    quesession.commit()
    g4 = Genre("Hip-hop")
    quesession.add(g4)
    quesession.commit()
    g5 = Genre("Country")
    quesession.add(g5)
    quesession.commit()
    g6 = Genre("Funk")
    quesession.add(g6)
    quesession.commit()
    g7 = Genre("Pop")
    quesession.add(g7)
    quesession.commit()
    g8 = Genre("Reggae")
    quesession.add(g8)
    quesession.commit()
    g9 = Genre("RnB")
    quesession.add(g9)
    quesession.commit()

    # Create a test user
    admin_user = User('Admin', '*****@*****.**',
                      generate_password_hash('Password*7#', method='sha256'))
    quesession.add(admin_user)
    quesession.commit()
Exemplo n.º 3
0
 def test_genre_model_creation_3(self):
     g = Genre.Genre(2, "test genre 3")
     db.session.add(g)
     db.session.commit()
     e = Genre.Genre(2, "duplicate")
     try:
         db.session.add(e)
         db.session.commit()
         assert (False)
     except Exception as e:
         db.session.rollback()
Exemplo n.º 4
0
 def post(self):
     """Create new genre"""
     # 1. get request body
     data = request.get_json()
     # 2. create genre instance/object
     genre = Genre(name=data['name'])
     # 3. add genre instance/object to db transaction
     db.session.add(genre)
     # 4. commit transaction
     db.session.commit()
     # 5. return genre as response with 201 response code
     return {"genre": genre.to_json()}, 201
Exemplo n.º 5
0
def genre_save(request):
    if request.POST.get('genre_id'):
        genre = Genre.objects.get(id=request.POST.get('genre_id'))
        genre.name = request.POST.get('genre_name')
        genre.description = request.POST.get('genre_description')
        genre.save()
    else:
        genre = Genre(
            name=request.POST.get('genre_name'),
            description=request.POST.get('genre_description'),
        )
        genre.save()
    return redirect('music.views.genre_detail', genre_id=genre.id)
def addGenre():
    """Add a new genre to the database.

    Returns:
        If user is not signed in, redirect to login page.
        on GET: Page with form to add a new genre.
        on POST: Redirect to page showing new genre after it's created.
    """
    if request.method == 'GET':
        genres = session.query(Genre).order_by('name').all()
        return render_template('addGenre.html', genres=genres)
    elif request.method == 'POST':
        name = request.form.get('name')
        user_id = login_session['user_id']

        numThisGenre = session.query(Genre).filter_by(name=name).count()
        if numThisGenre > 0:
            flash('The genre you attempted to add already exists.')
            return redirect(request.path)

        genre = Genre(name=name, user_id=user_id)
        session.add(genre)
        session.commit()
        flash("Genre \"%s\" created." % name)
        return redirect(url_for('showGenre', genre_id=genre.id))
Exemplo n.º 7
0
 def update(self, instance, validated_data):
     instance.name = validated_data.get('name', instance.name)
     instance.popularity_99 = validated_data.get('popularity_99',
                                                 instance.popularity_99)
     instance.imdb_score = validated_data.get('imdb_score',
                                              instance.imdb_score)
     instance.director = validated_data.get('director', instance.director)
     # update genre
     # print genre
     # print validated_data
     if "genre" in validated_data and isinstance(validated_data["genre"],
                                                 list):
         instance.genre = []
         for genre in validated_data['genre']:
             # print genre
             exists, obj = Genre.name_exists(genre)
             if exists:
                 instance.genre.add(obj)
             else:
                 serializer = GenreSerializer(data={"name": genre})
                 if serializer.is_valid():
                     obj = serializer.save()
                     instance.genre.add(obj)
                 else:
                     raise exceptions.ValidationError({
                         "success": False,
                         "error": {
                             "slug_errors": [
                                 "There is a movie with same slug so choose  different name"
                             ]
                         }
                     })
     return instance
Exemplo n.º 8
0
 def create(self, validated_data):
     new_movie = Movie(name=validated_data['name'],
                       director=validated_data['director'],
                       popularity_99=validated_data['popularity_99'],
                       imdb_score=validated_data['imdb_score'])
     new_movie.save()
     # add genre
     # print genre
     # print validated_data
     # print isinstance(validated_data["genre"],list)
     if "genre" in validated_data and isinstance(validated_data["genre"],
                                                 list):
         for genre in validated_data['genre']:
             # print 'the genre is',genre
             exists, obj = Genre.name_exists(genre)
             # print obj
             # print exists
             if exists:
                 new_movie.genre.add(obj)
             # print '==================================== '
             serializer = GenreSerializer(data={"name": genre})
             if serializer.is_valid():
                 obj = serializer.save()
                 new_movie.genre.add(obj)
     return new_movie
Exemplo n.º 9
0
def createGenre(name, isloc):
    with db.read_transaction:
        genre = Genre.nodes.get_or_none(name=name, isloc=isloc)
    if genre == None:
        with db.write_transaction:
            genre = Genre(name=name, isloc=isloc).save()
    return genre
Exemplo n.º 10
0
def edit_book(book_id):
    user_id = user.get_id()
    app_user = AppUser.query.get(stormpathUserHash(user_id))
    book = Book.query.get(book_id)

    if book in app_user.author.books:
        if request.method == 'GET':
            return render_template('edit_book.html', book=book)

        genres = []
        for g in request.form.get('genres').split(','):
            genre_name = g.strip().title()
            if not genre_name.isspace():
                genre = Genre.query.filter_by(name=genre_name).first()
                if not genre:
                    genre = Genre(genre_name)
                    db.session.add(genre)
                genres.append(genre)

        book.genres = genres
        book.title = request.form.get('title')
        book.isbn = request.form.get('isbn')
        book.publisher = request.form.get('publisher')
        book.description = request.form.get('description')
        db.session.add(book)

        db.session.commit()

        return redirect(url_for('author_routes.author_dashboard'))

    return redirect(url_for('index'))
Exemplo n.º 11
0
def api_genre_insert():
    new_genre = request.get_json()
    genre = Genre(id=new_genre['id'], name=new_genre['name'])
    db.session.add(genre)
    db.session.commit()
    genre_json = {"id": genre.id, "name": genre.name}
    return jsonify(genre_json)
Exemplo n.º 12
0
def getGenres():
    genres = []

    for g in Genre.select():
        genres.append(g.__dict__['_data'])

    return jsonify(genres)
Exemplo n.º 13
0
def admin_dashboard_genre_add():
    if request.form:
        genre = Genre(name=request.form.get('name'))
        db_session.add(genre)
        db_session.commit()
        flash('Genre successfully added')
        return redirect(url_for('admin_dashboard_genre'))
    return render_template('/admins/genre_add.html')
Exemplo n.º 14
0
def genre_update_or_create(movie_id, genre_list):
    genres = Genre.query.filter_by(movie_id=movie_id).all()
    if len(genres) == 0:
        for genre in genre_list:
            genre.update({"movie_id": movie_id})
            new = Genre(**genre)
            db.session.add(new)
        db.session.commit()
    return
Exemplo n.º 15
0
def add_genre():
  data = request.get_json()
  try:
    new_genre = Genre(data['name'])
    if('description' in data):
      new_genre.description = data['description']
  except:
    abort(400)
    
  success = new_genre.insert()
  if(success):
    inserted_genre = Genre.query.filter_by(name= data['name']).all()[0].format()
    return jsonify({
      'success': True,
      'new_genre': inserted_genre
    })
  else:
    abort(500)
Exemplo n.º 16
0
def create_genre_objects(data):
    genres_list = []
    genre_objects = []
    for row in data:
        g = row['genres'].split(',')
        genres_list.extend(g)
    genres_list = list(set(genres_list))
    for genre in genres_list:
        genre_objects.append(Genre(name=genre))
    return genre_objects
Exemplo n.º 17
0
def create_genre():
    data = request.get_json()

    new_genre = Genre(name=data['name'])
    session.add(new_genre)
    try:
        session.commit()
    except Exception as e:
        return e

    return make_response(jsonify({'genre': str(new_genre), 'status': 201}), 201)
Exemplo n.º 18
0
def getGenre(id):
    try:
        genre = Genre.select().where(Genre.id == id).dicts().get()
        return jsonify(genre)
    except peewee.DoesNotExist:
        return jsonify({'error': 'Movie not found'})
Exemplo n.º 19
0
	def test_should_save_valid_genre(self):
		genre = Genre(name='TestGenre', description='This is a description')
		genre.save()
		all_genres = Genre.objects.all()
		self.assertEqual(len(all_genres), 1)