Only cache registration if already registered

This commit is contained in:
Roberto Rosario
2012-10-13 02:38:20 -04:00
parent bb997ecbdc
commit 7454a47558

View File

@@ -20,19 +20,15 @@ class RegistrationSingleton(Singleton):
registered = models.BooleanField(default=False, verbose_name=_('registered'))
registration_data = models.TextField(verbose_name=_(u'registration data'), blank=True)
@classmethod
def purge_cache(cls):
cls._cached_name = None
cls._registered = None
@classmethod
def registration_state(cls):
if cls._registered is not None:
if cls._registered:
return cls._registered
else:
instance = cls.objects.get()
cls._registered = instance.is_registered
return cls._registered
if instance.is_registered:
cls._registered = instance.is_registered
return instance.is_registered
@classmethod
def registered_name(cls):
@@ -44,11 +40,11 @@ class RegistrationSingleton(Singleton):
dictionary = loads(instance.registration_data)
except ValueError:
dictionary = {}
company = dictionary.get('company')
name = dictionary.get('name')
cls._cached_name = company or name or _(u'No name')
name_value = dictionary.get('company') or dictionary.get('name')
if name_value:
cls._cached_name = name_value
return cls._cached_name
return name_value or _(u'No name')
@property
def is_registered(self):
@@ -57,8 +53,8 @@ class RegistrationSingleton(Singleton):
def register(self, form):
from installation.models import Installation
#if self.is_registered:
# raise AlreadyRegistered
if self.is_registered:
raise AlreadyRegistered
installation = Installation.objects.get()
dictionary = {}
@@ -82,7 +78,6 @@ class RegistrationSingleton(Singleton):
pass
else:
self.registered = True
self.__class__.purge_cache()
self.save()
finally:
lock.release()