Loading common/admin_common.py +7 −0 Original line number Diff line number Diff line Loading @@ -10,3 +10,10 @@ class CommentBoxAdminBase(admin.ModelAdmin): instance.user = request.user formset.save() class BaseCommentBoxInline(admin.TabularInline): extra = 0 readonly_fields = ('user', 'created_date', 'modified_date') fields = ('user', 'created_date', 'modified_date', 'event_time', 'comment') common/model.py 0 → 100644 +19 −0 Original line number Diff line number Diff line from django.db import models class ModelBase(models.Model): class Meta: abstract = True """ Most of our model has modified date and create date """ created_date = models.DateTimeField(auto_now_add=True, null=True, blank=True) modified_date = models.DateTimeField(auto_now=True, null=True, blank=True) class CommentModelBase(ModelBase): class Meta: abstract = True event_time = models.DateTimeField(null=True, blank=True) common/tests/__init__.py 0 → 100644 +0 −0 Empty file added. common/tests/create_mock_sensor_tracker_database.py 0 → 100644 +84 −0 Original line number Diff line number Diff line import os import json MOCK_JSON_FILE_NAME = "mock_json_data" JSON_DATA_FILES = ["institution", "manufacturer", "project", "platform_type", "platform", "instrument", "power_type", "deployment", "sensor", "instrument_on_platform", "sensor_on_instrument"] def create_mock_database(): from general import models as general from instruments import models as instruments from platforms import models as platforms json_dict_list = import_json_contents() project_json = json_dict_list["project"] for x in project_json: general.Project.objects.create(**filter_out_create_day_modified_day(x)) institution_json = json_dict_list["institution"] for x in institution_json: general.Institution.objects.create(**filter_out_create_day_modified_day(x)) manufacturer_json = json_dict_list["manufacturer"] for x in manufacturer_json: general.Manufacturer.objects.create(**filter_out_create_day_modified_day(x)) platform_type_json = json_dict_list["platform_type"] for x in platform_type_json: platforms.PlatformType.objects.create(**replace_to_id(filter_out_create_day_modified_day(x))) platform_json = json_dict_list["platform"] for x in platform_json: platforms.Platform.objects.create(**replace_to_id(filter_out_create_day_modified_day(x))) instrument_json = json_dict_list["instrument"] for x in instrument_json: instruments.Instrument.objects.create(**replace_to_id(filter_out_create_day_modified_day(x))) power_type_json = json_dict_list["power_type"] for x in power_type_json: platforms.PlatformPowerType.objects.create(**replace_to_id(filter_out_create_day_modified_day(x))) deployment_json = json_dict_list["deployment"] for x in deployment_json: platforms.PlatformDeployment.objects.create(**replace_to_id(filter_out_create_day_modified_day(x))) sensor_json = json_dict_list["sensor"] for x in sensor_json: instruments.Sensor.objects.create(**replace_to_id(filter_out_create_day_modified_day(x))) instrument_on_platform_json = json_dict_list["instrument_on_platform"] for x in instrument_on_platform_json: instruments.InstrumentOnPlatform.objects.create(**replace_to_id(filter_out_create_day_modified_day(x))) sensor_on_instrument_json = json_dict_list["sensor_on_instrument"] for x in sensor_on_instrument_json: instruments.SensorOnInstrument.objects.create(**replace_to_id(filter_out_create_day_modified_day(x))) return json_dict_list def import_json_contents(): current = os.path.dirname(os.path.realpath(__file__)) json_folder = os.path.join(current, MOCK_JSON_FILE_NAME) json_dict = dict() for x in JSON_DATA_FILES: with open(os.path.join(json_folder, ".".join([x, "json"]))) as f: json_dict[x] = json.loads(f.read())["results"] return json_dict def filter_out_create_day_modified_day(the_dict): the_dict.pop("the_dict", None) the_dict.pop("created_date", None) the_dict.pop("modified_date", None) return the_dict def replace_to_id(the_dict): for x in JSON_DATA_FILES: if x in the_dict: the_dict[x + "_id"] = the_dict.pop(x) return the_dict common/utilities.py +7 −1 Original line number Diff line number Diff line from django.urls import reverse from django.db.models import Q from django.urls import get_script_prefix def make_edit_link(instance): Loading @@ -14,12 +15,17 @@ def make_add_link(instance): return link def make_server_compatibility_relative_url(url): the_link = get_script_prefix()[:-1] + url return the_link def qs_time_overlap(base_qs, start_time, end_time): if end_time: soi_qs_overlap = base_qs.filter( Q(start_time__lte=start_time, end_time__gte=start_time) | Q(start_time__lte=end_time, end_time__gte=end_time)) else: soi_qs_overlap = base_qs.filter(Q(end_time=None) | Q(start_time__lte=start_time)) soi_qs_overlap = base_qs.filter(Q(end_time=None) | Q(start_time__gte=start_time)) return soi_qs_overlap Loading
common/admin_common.py +7 −0 Original line number Diff line number Diff line Loading @@ -10,3 +10,10 @@ class CommentBoxAdminBase(admin.ModelAdmin): instance.user = request.user formset.save() class BaseCommentBoxInline(admin.TabularInline): extra = 0 readonly_fields = ('user', 'created_date', 'modified_date') fields = ('user', 'created_date', 'modified_date', 'event_time', 'comment')
common/model.py 0 → 100644 +19 −0 Original line number Diff line number Diff line from django.db import models class ModelBase(models.Model): class Meta: abstract = True """ Most of our model has modified date and create date """ created_date = models.DateTimeField(auto_now_add=True, null=True, blank=True) modified_date = models.DateTimeField(auto_now=True, null=True, blank=True) class CommentModelBase(ModelBase): class Meta: abstract = True event_time = models.DateTimeField(null=True, blank=True)
common/tests/create_mock_sensor_tracker_database.py 0 → 100644 +84 −0 Original line number Diff line number Diff line import os import json MOCK_JSON_FILE_NAME = "mock_json_data" JSON_DATA_FILES = ["institution", "manufacturer", "project", "platform_type", "platform", "instrument", "power_type", "deployment", "sensor", "instrument_on_platform", "sensor_on_instrument"] def create_mock_database(): from general import models as general from instruments import models as instruments from platforms import models as platforms json_dict_list = import_json_contents() project_json = json_dict_list["project"] for x in project_json: general.Project.objects.create(**filter_out_create_day_modified_day(x)) institution_json = json_dict_list["institution"] for x in institution_json: general.Institution.objects.create(**filter_out_create_day_modified_day(x)) manufacturer_json = json_dict_list["manufacturer"] for x in manufacturer_json: general.Manufacturer.objects.create(**filter_out_create_day_modified_day(x)) platform_type_json = json_dict_list["platform_type"] for x in platform_type_json: platforms.PlatformType.objects.create(**replace_to_id(filter_out_create_day_modified_day(x))) platform_json = json_dict_list["platform"] for x in platform_json: platforms.Platform.objects.create(**replace_to_id(filter_out_create_day_modified_day(x))) instrument_json = json_dict_list["instrument"] for x in instrument_json: instruments.Instrument.objects.create(**replace_to_id(filter_out_create_day_modified_day(x))) power_type_json = json_dict_list["power_type"] for x in power_type_json: platforms.PlatformPowerType.objects.create(**replace_to_id(filter_out_create_day_modified_day(x))) deployment_json = json_dict_list["deployment"] for x in deployment_json: platforms.PlatformDeployment.objects.create(**replace_to_id(filter_out_create_day_modified_day(x))) sensor_json = json_dict_list["sensor"] for x in sensor_json: instruments.Sensor.objects.create(**replace_to_id(filter_out_create_day_modified_day(x))) instrument_on_platform_json = json_dict_list["instrument_on_platform"] for x in instrument_on_platform_json: instruments.InstrumentOnPlatform.objects.create(**replace_to_id(filter_out_create_day_modified_day(x))) sensor_on_instrument_json = json_dict_list["sensor_on_instrument"] for x in sensor_on_instrument_json: instruments.SensorOnInstrument.objects.create(**replace_to_id(filter_out_create_day_modified_day(x))) return json_dict_list def import_json_contents(): current = os.path.dirname(os.path.realpath(__file__)) json_folder = os.path.join(current, MOCK_JSON_FILE_NAME) json_dict = dict() for x in JSON_DATA_FILES: with open(os.path.join(json_folder, ".".join([x, "json"]))) as f: json_dict[x] = json.loads(f.read())["results"] return json_dict def filter_out_create_day_modified_day(the_dict): the_dict.pop("the_dict", None) the_dict.pop("created_date", None) the_dict.pop("modified_date", None) return the_dict def replace_to_id(the_dict): for x in JSON_DATA_FILES: if x in the_dict: the_dict[x + "_id"] = the_dict.pop(x) return the_dict
common/utilities.py +7 −1 Original line number Diff line number Diff line from django.urls import reverse from django.db.models import Q from django.urls import get_script_prefix def make_edit_link(instance): Loading @@ -14,12 +15,17 @@ def make_add_link(instance): return link def make_server_compatibility_relative_url(url): the_link = get_script_prefix()[:-1] + url return the_link def qs_time_overlap(base_qs, start_time, end_time): if end_time: soi_qs_overlap = base_qs.filter( Q(start_time__lte=start_time, end_time__gte=start_time) | Q(start_time__lte=end_time, end_time__gte=end_time)) else: soi_qs_overlap = base_qs.filter(Q(end_time=None) | Q(start_time__lte=start_time)) soi_qs_overlap = base_qs.filter(Q(end_time=None) | Q(start_time__gte=start_time)) return soi_qs_overlap