Commit 3121bd2f authored by xaingling's avatar xaingling
Browse files

update features and fix bug

parent f67fb2cd
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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)
+0 −0

Empty file added.

+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
+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):
@@ -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