from models import Buyable, BuyableType, Purchase, Order
from django.contrib import admin
from django import forms
from PIL import Image
from django.core.files.uploadedfile import InMemoryUploadedFile

class BuyableAdminForm(forms.ModelForm):
	""" Special BuyableAdminForm which checks the buyable image for an 1:1 aspect ratio. """
	class Meta:
		model = Buyable
	
	def clean_image(self):
		img = self.cleaned_data['image']
		print img.file
		print dir(img)
		width, height = (0, 0)
		if isinstance(img, InMemoryUploadedFile):
			i = Image.open(img)
			width, height = i.size
		else:
			width, height = img.width, img.height

		if width != height:
			raise forms.ValidationError("Aspect ratio of image should be 1:1 (width x height was (%dx%d))"% (width, height))
		return self.cleaned_data['image']

class BuyableAdmin(admin.ModelAdmin):
	form = BuyableAdminForm




admin.site.register(Buyable, BuyableAdmin)
admin.site.register(BuyableType)
admin.site.register(Purchase)
admin.site.register(Order)

