Ejemplo n.º 1
0
def insert(request):
	try:
		args={}
		form = ItemForm()
		if request.method == 'POST':
			form = ItemForm(request.POST, request.FILES)
			if form.is_valid():
				cd = form.cleaned_data
				title = cd['title']
				author = cd['author']
				pub = cd['pub']
				pub_date = cd['pub_date']
				isbn = cd['isbn']
				lang = cd['lang']
				url = cd['url']
				awards = cd['awards']
				summary = cd['summary']
				category = cd['category']
				img_url =  cd['img_url'] 
				created = datetime.datetime.now()
				user = request.user.id
				result = ItemList.objects.create(title=title, author=author, publisher=pub, publicationDate=pub_date, isbn=isbn, editionLanguage=lang, awards=awards, summary=summary, coverImageUrl=img_url, url=url, category_id=category, createdBy_id=user, created=created, modified=created, deleted=False)
				if result:
					# For uploading local cover image
					if cd['local_img']:
						local_img  = UploadFile(file = cd['local_img'], created=created, modified=created, item_id=result.id)
						local_img.save()
					# For uploading table of content file
					if cd['table_of_content']:
						table_of_content = UploadTableofContent(file = cd['table_of_content'], uploadedDate=created, modified=created, item_id=result.id)
						table_of_content.save()
					# For uploading abstract file
					if cd['abstract']:
						abstract = UploadAbstract(file = cd['abstract'], uploadedDate=created, modified=created, item_id=result.id)
						abstract.save()
					# For copying image from url
					if img_url:
						filename = img_url.split('/')[-1] # Gets filename from URL
						urllib.request.urlretrieve( img_url, filename ) # This copies the file in project folder eg: inside F:/Bookservice
						# For moving the file from project folder to static/images/URLImages
						oldpath = settings.BASE_DIR + "/" + filename
						newpath = settings.BASE_DIR + '/static/images/URLImages/'
						shutil.move(oldpath,newpath)
					messages.add_message(request, messages.INFO, "Item Added Successfully!")
				else:
					messages.add_message(request, messages.ERROR, "Error occured during item insertion. Please Try Again.")
				return HttpResponseRedirect('/items/')
			else:
				args['form'] = form	
				return render(request, 'items/add.html', args)
		else:
			args['form'] = form	
			return render(request, 'items/add.html', args)
	except:
		messages.add_message(request, messages.ERROR, sys.exc_info()[1])
		return render(request, 'items/index.html')
 def post(self, request, **kwargs):
     bucketlist_id = kwargs['id']
     bucketlist = BucketList.objects.filter(id=bucketlist_id).first()
     form = ItemForm(request.POST)
     item = form.save(commit=False)
     item.bucketlist = bucketlist
     item.done = False
     item.save()
     messages.success(request, item.name + ' Added to ' + bucketlist.name)
     return url_redirect(request)
Ejemplo n.º 3
0
def add(request):
    if request.method == 'GET':
        context = {'form': ItemForm}
        return render(request, 'items/add.html', context)
    elif request.method == 'POST':
        form = ItemForm(request.POST, request.FILES)
        if form.is_valid():
            new_item = form.save(commit=False)
            new_item.created_by = request.user
            new_item.save()
        return redirect('home')
Ejemplo n.º 4
0
 def post(self, request, slug):
   """processes the form and adds a blog """
   obj = get_object_or_404(Item, slug=slug)
   form = ItemForm(request.POST, instance=obj)
   if form.is_valid():
     form.save()
     print(form)
     return HttpResponseRedirect(reverse('item-details-page', args=[slug] ))
   else:
     return render(request, 'items/item_update_form.html', {
       'form': form,
     })
Ejemplo n.º 5
0
 def test_validation_both_fields(self):
     data = {
         'url': 'http://kodziek.pl',
     }
     files = {
         'file': SimpleUploadedFile('file', b'content'),
     }
     form = ItemForm(data, files)
     self.assertFalse(form.is_valid())
     error_msg = 'Cannot use both fields (url and file) at the same time.'
     with self.assertRaisesMessage(ValidationError, error_msg):
         form.clean()
Ejemplo n.º 6
0
 def post(self, request):
   """processes the form and adds a blog """
   form = ItemForm(request.POST)
   form.instance.author = self.request.user
   print(form)
   if form.is_valid():
     item = form.save()
     return HttpResponseRedirect(reverse('item-details-page', args=[item.slug] ))
   else:
     return render(request, 'add_item.html', {
     'item_form': form,
   })
Ejemplo n.º 7
0
def edit(request, slug=""):
    item = get_object_or_404(Item, slug=slug)
    if(item.seller != request.user):
        request.flash['message'] = "Sorry you are not authorised to edit this item"
        return HttpResponseRedirect(reverse('my_listing'))

    form = ItemForm(initial={
        'name': item.name,
        'price': round(float(item.price),2),
        'description': item.description,
        'condition': item.condition,
        'longitude': item.longitude,
        'latitude': item.latitude,
        'category': item.category
    })

    if request.method == "POST":
        form = ItemForm(request.POST, request.FILES)
        if form.is_valid():
            data = form.cleaned_data
            image1 = data['image1']
            image2 = data['image2']
            image3 = data['image3']
            if not ((is_image(image1) and is_image(image2) and is_image(image3))):
                request.flash['message'] = "Sorry please upload a picture in an acceptable format"
                return HttpResponseRedirect(reverse('add_item'))
            item.name = data['name']
            item.description = data['description']
            if data['condition']:
                item.condition = data['condition']
            else:
                item.condition = 0
            item.price = round(float(data['price']),2)
            item.longitude = data['longitude'] or 0
            item.latitude = data['latitude'] or 0
            item.seller = request.user
            item.category = data['category']
            if data['is_service']:
                item.is_service = data['is_service']
            else:
                item.is_service = False

            item.save()
            upload_item_images(image1, image2, image3, item)
            request.flash['message'] = "Item saved successfully"

            return HttpResponseRedirect(reverse('my_listing'))
        else:
            request.flash['message'] = "Form data is not valid"

    return render_to_response("items/edit.html", {'form': form, 'slug': slug, 'item': item},
        context_instance=RequestContext(request))
Ejemplo n.º 8
0
 def post(self, *args, **kwargs):
     """Get filled invoice form and create invoice
     """
     item = get_object_or_404(Item, pk=kwargs['item_id'])
     form = ItemForm(self.request.POST, instance=item)
     if  form.is_valid() :
         item = form.save(commit=False)
         item.save()
         messages.success(self.request, 'Item is successfully updated')
         return redirect('items')
     else:
         context = {}
         context['form'] = ItemForm(self.request.POST)
     return render(self.request, self.template_name, context)
Ejemplo n.º 9
0
 def post(self, *args, **kwargs):
     """Get filled invoice form and create
     """
     form = ItemForm(self.request.POST)
     if  form.is_valid() :
         item = form.save(commit=False)
         item.owner = self.request.user
         item.company = self.request.user.company
         item.save()
         messages.success(self.request, 'Item is successfully Added')
         return redirect('items')
     else:
         context = {}
         context['form'] = form
         return render(self.request, self.template_name, context)
Ejemplo n.º 10
0
 def get(self, *args, **kwargs):
     """Display invoice form
     """
     item = get_object_or_404(Item, pk=kwargs['item_id'])
     context = {}
     context['form'] = ItemForm(instance=item)
     return render(self.request, self.template_name, context)
Ejemplo n.º 11
0
def UpdateItem(request, pk):
	item = get_object_or_404(Items, pk=pk)
	cat_id = item.category

	form = ItemForm(request.POST or None, instance=item)

	if form.is_valid():
		item = form.save(commit=False)
		item.category = cat_id
		item.user = request.user
		item.save()

		return redirect('categories:single', slug=item.category.slug)


	return render(request, 'items/items_update_form.html', {"form": form, 'cat': cat_id })
Ejemplo n.º 12
0
def Order_update(request, pk, template_name='purchase/order_edit.html'):
    order = get_object_or_404(Order, pk=pk)
    order_form = ItemForm(request.POST or None, instance=order)
    if item_form.is_valid():
        item = item_form.save(commit=False)
        name = item_form.cleaned_data.get('name')
        name = name.lower()
        item.name = name
        item.save()
        return redirect('Item_list')
    params = {'item_form': item_form}
    return render(request, template_name, params)
Ejemplo n.º 13
0
def add(request):
#    user, item = get_user_profile(request.user.id)
    form = ItemForm()
    if request.method == "POST":
        form = ItemForm(request.POST, request.FILES)
        if form.is_valid():
            form.cleaned_data['seller'] = request.user
            data = form.cleaned_data
            image1 = data['image1']
            image2 = data['image2']
            image3 = data['image3']
            if not (is_image(image1) and is_image(image2) and is_image(image3)):
                request.flash['message'] = "Sorry please upload a picture in an acceptable format"
                return HttpResponseRedirect(reverse('add_item'))
            item = Item(
                name=data['name'],
                description=data['description'],
                condition=data['condition']or 0,
                price=round(float(data['price']),2),
                longitude=data['longitude'] or 0,
                latitude=data['latitude'] or 0,
                seller=request.user,
                category=data['category'],
                location=data['location'],
                is_published = True,
                is_service = data['is_service']
            )

            item_obj = item.save()
            upload_item_images(image1, image2, image3, item)
            request.flash['message'] = "Item saved successfully"

            #            else:
            #                request.flash['message'] = "Sorry can't save item"
            return HttpResponseRedirect(reverse('my_listing'))
        else:
            request.flash['message'] = "Invalid data"

    return render_to_response("items/add.html", {'form': form}, context_instance=RequestContext(request))
Ejemplo n.º 14
0
    def post(self, request, *args, **kwargs):
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        POST = request.POST

        if self.model == Item and ("add_links" in POST or "del_links" in POST
                                   or "store_search" in POST):
            if "add_links" in POST and self.object:
                form.link_aff(self.object)
            if "del_links" in POST and self.object:
                form.unlink_aff(self.object)
            if "store_search" in POST:
                form.stores_search()
            return self.render_to_response(self.get_context_data(form=form))
        elif request.is_ajax() and "add_item" in POST:
            form = ItemForm(data=POST, request=request, prefix="item")
            if form.is_valid():
                item = form.save()
                args = [item._meta.module_name, item.id]
                add_message("object-created", request, model=form._meta.model)
                messages = render_messages(request)
                data = {
                    "id": item.id,
                    "name": item.name,
                    "messages": messages,
                    "next": reverse("item_edit", args=args)
                }
            else:
                data = "invalid form"
            return HttpResponse(json.dumps(data), mimetype="application/json")
        elif form.is_valid():
            key = "object-updated" if self.object else "object-created"
            add_message(key, request, model=self.model)
            return self.form_valid(form)
        else:
            add_message("form-invalid", request, model=self.model)
            return self.form_invalid(form)
Ejemplo n.º 15
0
def create_item(request):

    if request.method == "POST":
        form = ItemForm(request.POST, request.FILES)
        if form.is_valid():
            
            form.save()
            messages.success(request, f'Item Added to Menu!')
            
            return redirect('menu')
        
    else:
        form = ItemForm()
        
    context = {
        'form' : form
    }
    return render(request, 'items/create_item.htm', context)
Ejemplo n.º 16
0
def update_item(request, pk):
    
    item = get_object_or_404(Item, pk = pk)
    
    if request.method == "POST":
        form = ItemForm(request.POST, instance = item)
        if form.is_valid():
            
            form.save()
            messages.success(request, f'Item Updated!')
            
            return redirect('menu')
        
    else:
        form = ItemForm(instance = item)
        
    context = {
        'form' : form,
        'item' : item
    }
    return render(request, 'items/update_item.htm', context)
Ejemplo n.º 17
0
def CreateItem(request, pk):
	cat = get_object_or_404(Category, pk=pk)

	if request.method == 'POST':

		form = ItemForm(request.POST)

		if form.is_valid():
			item = form.save(commit=False)
			item.category = cat
			item.user = request.user
			item.save()

			return redirect('categories:single', slug=cat.slug)

	else:

		form = ItemForm()

	return render(request, 'items/items_form.html', {'form': form, 'cat': cat })
Ejemplo n.º 18
0
def new_item(request):
    if request.method == "POST":
        form = ItemForm(request.POST, request.FILES)
        if form.is_valid():
            # if image instanceof png
            # file = request.FILES['file']
            # print (request.FILES)
            # name = None
            for filename, file in request.FILES.iteritems():
                name = request.FILES[filename].name.lower()
                #name = file.name.lower();
            if name.endswith('.png') or name.endswith('.jpg') or name.endswith(
                    '.jpeg'):
                item = form.save()
                item.owner = request.user
                item.save()
                return redirect('/items/my/')
    else:
        form = ItemForm()
    return render(request, 'item_form.html', {'form': form})
Ejemplo n.º 19
0
 def get(self, request):
   """ Prints the form """
   item_form = ItemForm()
   return render(request, 'add_item.html', {
     'item_form': item_form
   })
Ejemplo n.º 20
0
 def test_validation_invalid_file(self):
     files = {
         'file': 'invalid file',
     }
     form = ItemForm(files=files)
     self.assertFalse(form.is_valid())
Ejemplo n.º 21
0
 def test_validation_only_valid_file(self):
     files = {
         'file': SimpleUploadedFile('file', b'content'),
     }
     form = ItemForm(files=files)
     self.assertTrue(form.is_valid())
Ejemplo n.º 22
0
 def test_validation_only_valid_url(self):
     data = {
         'url': 'http://kodziek.pl',
     }
     form = ItemForm(data)
     self.assertTrue(form.is_valid())
Ejemplo n.º 23
0
 def test_validation_missing_data(self):
     form = ItemForm({})
     self.assertFalse(form.is_valid())
     error_msg = 'One of following fields is required: url or file'
     with self.assertRaisesMessage(ValidationError, error_msg):
         form.clean()
Ejemplo n.º 24
0
def edit(request, itemid):
	try:
		# args={}
		#select the item to be edited
		item = get_object_or_404(ItemList, pk=itemid)
		# get filename of image from url (cover image from url)
		oldimageurl = item.coverImageUrl
		oldfilename=''
		if oldimageurl:
			oldfilename = oldimageurl.split('/')[-1] # path and filename is stored. So it is split to get filename only. if empty coverimageurl then oldfilename is passed empty
		form = ItemForm(initial={'title': item.title, 'author':item.author, 'pub':item.publisher, 'pub_date':item.publicationDate,'isbn':item.isbn, 'lang':item.editionLanguage,'awards':item.awards,'summary':item.summary, 'url':item.url, 'category':item.category_id, 'img_url':item.coverImageUrl})
		if request.method == 'POST':
			form = ItemForm(request.POST, request.FILES)
			if form.is_valid():
				cd = form.cleaned_data
				title = cd['title']
				author = cd['author']
				pub = cd['pub']
				pub_date = cd['pub_date']
				isbn = cd['isbn']
				lang = cd['lang']
				url = cd['url']
				awards = cd['awards']
				summary = cd['summary']
				category = cd['category']
				local_img = cd['local_img']
				img_url =  cd['img_url'] 
				table_of_content = cd ['table_of_content']
				abstract = cd['abstract']
				modified = datetime.datetime.now()
				result = ItemList.objects.filter(id=itemid).update(title=title, author=author, publisher=pub, publicationDate=pub_date, isbn=isbn, editionLanguage=lang, awards=awards, summary=summary, url=url, coverImageUrl=img_url, category_id=category,  modified=modified)
				if result:
					if local_img:
						# book_image = UploadFile.objects.filter(item_id=itemid, deleted=False)
						# del_img = book_image.file
						# os.remove(del_img)		
						# book_image.delete()			
						result = UploadFile.objects.filter(item_id=itemid).update(deleted=True, modified=modified)
						local_img  = UploadFile(file = request.FILES['local_img'], created=modified, modified=modified, item_id=itemid)
						local_img.save() 
					# For editing image from url. The old image from url is also deleted form folder
					if img_url != oldimageurl: 
						if oldimageurl:
							# Removes old file if url is changed
							oldimagepath = settings.BASE_DIR + '/static/images/URLImages/' + oldfilename
							os.remove(oldimagepath)
						if img_url:
							# copies new file if url is changed
							filename = img_url.split('/')[-1] # Gets filename from URL
							urllib.request.urlretrieve( img_url, filename ) # This copies the file in project folder eg: inside F:/Bookservice
							# For moving the file from project folder to static/images/URLImages
							oldpath = settings.BASE_DIR + "/" + filename
							newpath = settings.BASE_DIR + '/static/images/URLImages/'
							shutil.move(oldpath,newpath)
					# if user selects new table of content pdf file
					if table_of_content:
						#set deleted = true to old record
						result = UploadTableofContent.objects.filter(item_id=itemid).update(deleted=True, modified=modified)
						table_of_content = UploadTableofContent(file = cd['table_of_content'], uploadedDate=modified, modified=modified, item_id=itemid)
						table_of_content.save()
					# if user selects new abstract pdf file
					if abstract:
						#set deleted = true to old record
						result = UploadAbstract.objects.filter(item_id=itemid).update(deleted=True, modified=modified)
						abstract = UploadAbstract(file = cd['abstract'], uploadedDate=modified, modified=modified, item_id=itemid)
						abstract.save()
					messages.add_message(request, messages.INFO, "Item Edited Successfully!")
				else:
					messages.add_message(request, messages.ERROR, "Error occured. Please Try Again.")
				return HttpResponseRedirect('/items/')
			else:
				# args['form'] = form	
				return render(request, 'items/edit.html', {'form':form, 'itemid':itemid, 'imageurl':item.coverImageUrl})
		else:
			# args['form'] = form	
			#For selecting the uploaded local cover image and pass to templates
			localbook_image = UploadFile.objects.filter(item_id=itemid, deleted=False)
			if localbook_image:
				return render(request, 'items/edit.html', {'form':form, 'itemid':itemid, 'item':item, 'filename_from_url':oldfilename , 'image':localbook_image})
			else: # if local cover image not available no need to pass to template
				return render(request, 'items/edit.html', {'form':form, 'item':item, 'itemid':itemid, 'filename_from_url':oldfilename})
	except OSError:
		print ("No file for Delete ")
	except:
		messages.add_message(request, messages.ERROR, sys.exc_info()[1])
		return render(request, 'items/index.html')
Ejemplo n.º 25
0
 def get_context_data(self, **kwargs):
     kwargs.update({"statuses": STATUSES})
     if self.model is Question:
         form = ItemForm(request=self.request, prefix="item")
         kwargs.update({"i_form": form})
     return super(ContentFormMixin, self).get_context_data(**kwargs)
Ejemplo n.º 26
0
 def get(self, *args, **kwargs):
     """Display invoice form
     """
     context = {}
     context['form'] = ItemForm()
     return render(self.request, self.template_name, context)
Ejemplo n.º 27
0
 def test_validation_invalid_url(self):
     data = {
         'url': 'invalid url',
     }
     form = ItemForm(data)
     self.assertFalse(form.is_valid())