from django.newforms.forms import Form
from django.newforms.fields import BooleanField
from backends import cachemgr

class CacheEntryForm(Form):
    delete = BooleanField()

    def maybe_delete(self):
        if not self.is_bound or not self.is_valid(): return
        if self.cleaned_data['delete']:
            cachemgr.delete(self.prefix)

def form_generator(post):
    post = post if post else None
    for entry in cachemgr:
        entry['form'] = CacheEntryForm(prefix=entry['key'], data=post)
        entry['field'] = entry['form'].fields['delete']
        yield entry
