コード例 #1
0
ファイル: collection.py プロジェクト: vee-L/elvis-database
 def create(self, request, *args, **kwargs):
     form = CollectionForm(request.POST)
     if not form.is_valid():
         data = json.dumps({"errors": form.errors})
         return HttpResponse(data, content_type="json")
     clean_form = form.cleaned_data
     new_collection = Collection(title=clean_form['title'],
                                 comment=clean_form['comment'],
                                 creator=request.user,
                                 created=datetime.datetime.now(pytz.utc),
                                 updated=datetime.datetime.now(pytz.utc))
     new_collection.save()
     if clean_form['permission'] == "Public":
         new_collection.public = True
     else:
         new_collection.public = False
     # If the collection is not empty, populate it from
     if not clean_form["initialize_empty"]:
         # Grab the pieces and movements from the cart
         pieces, movements = self.get_cart_pieces_and_movements(request)
         # Add the pieces and movements to the collection
         for piece in pieces:
             new_collection.pieces.add(piece)
         for movement in movements:
             new_collection.movements.add(movement)
     new_collection.save()
     return HttpResponseRedirect("/collection/{0}".format(new_collection.id))
コード例 #2
0
def collection_update(request, *args, **kwargs):
    """
    Given a PATCH request, update a collection.

    :param request:
    :param args:
    :param kwargs:
    :return:
    """
    patch_data = request.data
    # Extract form data and validate
    form = CollectionForm(patch_data)
    if not form.is_valid():
        data = json.dumps({"errors": form.errors})
        return HttpResponse(content=data, content_type="application/json", status=status.HTTP_400_BAD_REQUEST)
    # Update the collection
    collection = Collection.objects.get(id=int(kwargs['pk']))
    if "title" in patch_data:
        collection.title = patch_data["title"]
    if "permission" in patch_data:
        collection.public = patch_data["permission"] == "Public"
    if "comment" in patch_data:
        collection.comment = patch_data["comment"]
    collection.save()
    # Prepare a response
    data = json.dumps({'success': True, 'id': collection.id, 'url': "/collection/{0}".format(collection.id)})
    return HttpResponse(data, content_type="json")