Skip to content

Commit

Permalink
Merge pull request #238 from usnistgov/6.0.1.dev
Browse files Browse the repository at this point in the history
6.0.1.dev
  • Loading branch information
rptmat57 authored Jun 12, 2024
2 parents 758968e + 51aabe7 commit 09462e8
Show file tree
Hide file tree
Showing 7 changed files with 52 additions and 48 deletions.
44 changes: 0 additions & 44 deletions NEMO/__init__.py
Original file line number Diff line number Diff line change
@@ -1,44 +0,0 @@
import sys

from django.apps import AppConfig
from django.contrib.auth.decorators import login_required


def init_admin_site():
from NEMO.views.customization import ApplicationCustomization, ProjectsAccountsCustomization
from NEMO.admin import ProjectAdmin
from django.contrib import admin

# customize the site
site_title = ApplicationCustomization.get("site_title", raise_exception=False)
admin.site.login = login_required(admin.site.login)
admin.site.site_header = site_title
admin.site.site_title = site_title
admin.site.index_title = "Detailed administration"
# update the short_description for project's application identifier here after initialization
ProjectAdmin.get_application_identifier.short_description = ProjectsAccountsCustomization.get(
"project_application_identifier_name", raise_exception=False
)


def init_rates():
from NEMO.rates import rate_class

rate_class.load_rates()


class NEMOConfig(AppConfig):
default_auto_field = "django.db.models.AutoField"
name = "NEMO"

def ready(self):
if "migrate" in sys.argv or "makemigrations" in sys.argv:
return
from django.apps import apps

if apps.is_installed("django.contrib.admin"):
init_admin_site()
init_rates()


default_app_config = "NEMO.NEMOConfig"
41 changes: 41 additions & 0 deletions NEMO/apps/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import sys

from django.apps import AppConfig
from django.contrib.auth.decorators import login_required


def init_admin_site():
from NEMO.views.customization import ApplicationCustomization, ProjectsAccountsCustomization
from NEMO.admin import ProjectAdmin
from django.contrib import admin

# customize the site
site_title = ApplicationCustomization.get("site_title", raise_exception=False)
admin.site.login = login_required(admin.site.login)
admin.site.site_header = site_title
admin.site.site_title = site_title
admin.site.index_title = "Detailed administration"
# update the short_description for project's application identifier here after initialization
ProjectAdmin.get_application_identifier.short_description = ProjectsAccountsCustomization.get(
"project_application_identifier_name", raise_exception=False
)


def init_rates():
from NEMO.rates import rate_class

rate_class.load_rates()


class NEMOConfig(AppConfig):
default_auto_field = "django.db.models.AutoField"
name = "NEMO"

def ready(self):
if "migrate" in sys.argv or "makemigrations" in sys.argv:
return
from django.apps import apps

if apps.is_installed("django.contrib.admin"):
init_admin_site()
init_rates()
2 changes: 2 additions & 0 deletions NEMO/evaluators.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
"trunc": trunc,
"sqrt": sqrt,
"sum": sum,
"max": max,
"min": min,
}


Expand Down
2 changes: 2 additions & 0 deletions NEMO/tests/test_evaluators.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ def test_basic_evaluation(self):
self.assertEqual(5, evaluate_expression("abs(-5)"))
self.assertEqual(12, evaluate_expression("trunc(12.123)"))
self.assertEqual(2, evaluate_expression("sqrt(4)"))
self.assertEqual(4, evaluate_expression("min(4, 5)"))
self.assertEqual(5, evaluate_expression("max(4, 5)"))

def test_boolean_evaluation(self):
self.assertFalse(evaluate_boolean_expression("False"))
Expand Down
2 changes: 1 addition & 1 deletion NEMO/views/customization.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from django.utils import timezone
from django.views.decorators.http import require_GET, require_POST

from NEMO import init_admin_site
from NEMO.apps import init_admin_site
from NEMO.decorators import administrator_required, customization
from NEMO.exceptions import InvalidCustomizationException
from NEMO.models import (
Expand Down
7 changes: 5 additions & 2 deletions NEMO/widgets/dynamic_form.py
Original file line number Diff line number Diff line change
Expand Up @@ -375,10 +375,13 @@ def validate(self):
# The result of the formula must be an int, so let's add some random variables and check
formula_and_values = {}
for var in formula_variables:
form_name = var
if var in valid_question_names.values():
form_name = [key for key, val in valid_question_names.items() if val == var][0]
if isinstance(self.all_questions_by_name[var], PostUsageNumberFieldQuestion):
formula_and_values[var] = str(random.randint(1, 100))
formula_and_values[form_name] = str(random.randint(1, 100))
elif isinstance(self.all_questions_by_name[var], PostUsageFloatFieldQuestion):
formula_and_values[var] = str(random.uniform(1.0, 100.0))
formula_and_values[form_name] = str(random.uniform(1.0, 100.0))
http_request = EmptyHttpRequest()
http_request.POST = QueryDict(mutable=True)
http_request.POST.update(formula_and_values)
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

setup(
name="NEMO",
version="6.0.0",
version="6.0.1",
python_requires=">=3.8, <4",
packages=find_namespace_packages(exclude=["resources", "resources.*", "build", "build.*"]),
include_package_data=True,
Expand Down

0 comments on commit 09462e8

Please sign in to comment.