Skip to content

Commit dbb2e71

Browse files
authored
Merge pull request #77 from HackAssistant/fix
Fixed bug with instances
2 parents dbbddf9 + 544a27b commit dbb2e71

File tree

3 files changed

+11
-6
lines changed

3 files changed

+11
-6
lines changed

app/utils.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,7 @@ def wrapper(*args, **kwargs):
2828

2929
def is_installed(app):
3030
return app in settings.INSTALLED_APPS
31+
32+
33+
def is_instance_on_db(instance):
34+
return instance is not None and instance._state.db is not None and not instance._state.adding

application/forms/base.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from django.utils.translation import gettext_lazy as _
88

99
from app.mixins import BootstrapFormMixin
10+
from app.utils import is_instance_on_db
1011
from application.models import Application
1112

1213

@@ -76,14 +77,14 @@ def __init__(self, *args, **kwargs):
7677
self.initial.update(self.instance.form_data)
7778
instance = kwargs.get('instance', None)
7879
hidden_fields = self.get_hidden_edit_fields()
79-
if instance is not None and instance._state.db is not None: # instance in DB
80+
if is_instance_on_db(instance): # instance in DB
8081
for hidden_field in hidden_fields:
8182
self.fields.get(hidden_field).required = False
8283

8384
def get_bootstrap_field_info(self):
8485
fields = super().get_bootstrap_field_info()
8586
instance = getattr(self, 'instance', None)
86-
if instance is None or instance._state.db is None: # instance not in DB
87+
if not is_instance_on_db(instance): # instance not in DB
8788
policy_fields = self.get_policy_fields()
8889
fields.update({
8990
_('HackUPC Polices'): {

user/forms.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from django.utils.safestring import mark_safe
1111

1212
from app.mixins import BootstrapFormMixin
13-
from app.utils import get_theme
13+
from app.utils import get_theme, is_instance_on_db
1414
from user.models import User
1515
from django.utils.translation import gettext_lazy as _
1616

@@ -160,15 +160,15 @@ class UserProfileForm(BootstrapFormMixin, forms.ModelForm):
160160
def __init__(self, *args, **kwargs):
161161
super().__init__(*args, **kwargs)
162162
instance = kwargs.get('instance', None)
163-
if instance is not None and instance._state.db is not None: # instance in DB
163+
if is_instance_on_db(instance): # instance in DB
164164
email_field = self.fields.get('email')
165165
email_field.widget.attrs['readonly'] = True
166166
email_field.help_text = _('This field cannot be modified')
167167

168168
def get_bootstrap_field_info(self):
169169
info = super().get_bootstrap_field_info()
170170
instance = getattr(self, 'instance', None)
171-
if instance is None or instance._state.db is None: # instance not in DB
171+
if not is_instance_on_db(instance): # instance not in DB
172172
fields = info[_('Personal Info')]['fields']
173173
result = []
174174
for field in fields:
@@ -183,7 +183,7 @@ def get_bootstrap_field_info(self):
183183

184184
def clean_email(self):
185185
instance = getattr(self, 'instance', None)
186-
if instance is not None and instance._state.db is not None: # instance in DB
186+
if is_instance_on_db(instance): # instance in DB
187187
return self.instance.email
188188
return self.cleaned_data.get('email')
189189

0 commit comments

Comments
 (0)