Skip to content

Commit

Permalink
Merge pull request #229 from stanfordnmbl/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
AlbertoCasasOrtiz authored Oct 8, 2024
2 parents a9f302f + ece72c3 commit 360a576
Show file tree
Hide file tree
Showing 7 changed files with 316 additions and 4 deletions.
12 changes: 11 additions & 1 deletion mcserver/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
AnalysisResult,
AnalysisDashboardTemplate,
AnalysisDashboard,
SubjectTags
SubjectTags,
TrialTags
)
from django.contrib.auth.models import Group
from django.contrib.auth.admin import UserAdmin, GroupAdmin
Expand Down Expand Up @@ -173,6 +174,15 @@ class SubjectTagsAdmin(admin.ModelAdmin):
'subject',
)

@admin.register(TrialTags)
class TrialTagsAdmin(admin.ModelAdmin):
search_fields = ['tag', 'trial__name']
list_display = (
'id',
'tag',
'trial',
)

@admin.register(ResetPassword)
class ResetPasswordAdmin(admin.ModelAdmin):
search_field = ['email']
Expand Down
111 changes: 111 additions & 0 deletions mcserver/migrations/0034_alter_analysisresult_status_trialtags.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# Generated by Django 4.2 on 2024-04-25 09:32

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
("mcserver", "0033_auto_20240319_1339"),
]

operations = [
migrations.AlterField(
model_name="analysisresult",
name="status",
field=models.IntegerField(
choices=[
(100, "Continue"),
(101, "Switching Protocols"),
(102, "Processing"),
(103, "Early Hints"),
(200, "OK"),
(201, "Created"),
(202, "Accepted"),
(203, "Non-Authoritative Information"),
(204, "No Content"),
(205, "Reset Content"),
(206, "Partial Content"),
(207, "Multi-Status"),
(208, "Already Reported"),
(226, "IM Used"),
(300, "Multiple Choices"),
(301, "Moved Permanently"),
(302, "Found"),
(303, "See Other"),
(304, "Not Modified"),
(305, "Use Proxy"),
(307, "Temporary Redirect"),
(308, "Permanent Redirect"),
(400, "Bad Request"),
(401, "Unauthorized"),
(402, "Payment Required"),
(403, "Forbidden"),
(404, "Not Found"),
(405, "Method Not Allowed"),
(406, "Not Acceptable"),
(407, "Proxy Authentication Required"),
(408, "Request Timeout"),
(409, "Conflict"),
(410, "Gone"),
(411, "Length Required"),
(412, "Precondition Failed"),
(413, "Request Entity Too Large"),
(414, "Request-URI Too Long"),
(415, "Unsupported Media Type"),
(416, "Requested Range Not Satisfiable"),
(417, "Expectation Failed"),
(418, "I'm a Teapot"),
(421, "Misdirected Request"),
(422, "Unprocessable Entity"),
(423, "Locked"),
(424, "Failed Dependency"),
(425, "Too Early"),
(426, "Upgrade Required"),
(428, "Precondition Required"),
(429, "Too Many Requests"),
(431, "Request Header Fields Too Large"),
(451, "Unavailable For Legal Reasons"),
(500, "Internal Server Error"),
(501, "Not Implemented"),
(502, "Bad Gateway"),
(503, "Service Unavailable"),
(504, "Gateway Timeout"),
(505, "HTTP Version Not Supported"),
(506, "Variant Also Negotiates"),
(507, "Insufficient Storage"),
(508, "Loop Detected"),
(510, "Not Extended"),
(511, "Network Authentication Required"),
],
default=200,
help_text="Status code function responsed with.",
verbose_name="Status",
),
),
migrations.CreateModel(
name="TrialTags",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("tag", models.TextField()),
(
"trial",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE, to="mcserver.trial"
),
),
],
options={
"ordering": ["trial", "tag"],
},
),
]
86 changes: 86 additions & 0 deletions mcserver/migrations/0038_alter_analysisresult_status.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Generated by Django 4.2 on 2024-10-04 00:26

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("mcserver", "0037_trial_git_commit"),
]

operations = [
migrations.AlterField(
model_name="analysisresult",
name="status",
field=models.IntegerField(
choices=[
(100, "Continue"),
(101, "Switching Protocols"),
(102, "Processing"),
(103, "Early Hints"),
(200, "OK"),
(201, "Created"),
(202, "Accepted"),
(203, "Non-Authoritative Information"),
(204, "No Content"),
(205, "Reset Content"),
(206, "Partial Content"),
(207, "Multi-Status"),
(208, "Already Reported"),
(226, "IM Used"),
(300, "Multiple Choices"),
(301, "Moved Permanently"),
(302, "Found"),
(303, "See Other"),
(304, "Not Modified"),
(305, "Use Proxy"),
(307, "Temporary Redirect"),
(308, "Permanent Redirect"),
(400, "Bad Request"),
(401, "Unauthorized"),
(402, "Payment Required"),
(403, "Forbidden"),
(404, "Not Found"),
(405, "Method Not Allowed"),
(406, "Not Acceptable"),
(407, "Proxy Authentication Required"),
(408, "Request Timeout"),
(409, "Conflict"),
(410, "Gone"),
(411, "Length Required"),
(412, "Precondition Failed"),
(413, "Request Entity Too Large"),
(414, "Request-URI Too Long"),
(415, "Unsupported Media Type"),
(416, "Requested Range Not Satisfiable"),
(417, "Expectation Failed"),
(418, "I'm a Teapot"),
(421, "Misdirected Request"),
(422, "Unprocessable Entity"),
(423, "Locked"),
(424, "Failed Dependency"),
(425, "Too Early"),
(426, "Upgrade Required"),
(428, "Precondition Required"),
(429, "Too Many Requests"),
(431, "Request Header Fields Too Large"),
(451, "Unavailable For Legal Reasons"),
(500, "Internal Server Error"),
(501, "Not Implemented"),
(502, "Bad Gateway"),
(503, "Service Unavailable"),
(504, "Gateway Timeout"),
(505, "HTTP Version Not Supported"),
(506, "Variant Also Negotiates"),
(507, "Insufficient Storage"),
(508, "Loop Detected"),
(510, "Not Extended"),
(511, "Network Authentication Required"),
],
default=200,
help_text="Status code function responsed with.",
verbose_name="Status",
),
),
]
14 changes: 14 additions & 0 deletions mcserver/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,20 @@ def __str__(self):
verbose_name_plural = 'Subject Tags'


class TrialTags(models.Model):
tag = models.TextField(blank=False, null=False)
trial = models.ForeignKey(to=Trial, on_delete=models.CASCADE, blank=False, null=False)

class Meta:
ordering = ['trial', 'tag']

def __str__(self):
return self.trial.name + " - " + self.tag

verbose_name = 'Trial Tag'
verbose_name_plural = 'Trial Tags'


class AnalysisFunction(models.Model):
""" This model describes AWS Lambda function object.
"""
Expand Down
18 changes: 17 additions & 1 deletion mcserver/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
AnalysisResult,
AnalysisDashboardTemplate,
AnalysisDashboard,
SubjectTags
SubjectTags,
TrialTags
)
from rest_framework.validators import UniqueValidator
from django.db.models import Prefetch, Q
Expand Down Expand Up @@ -379,6 +380,21 @@ def create(self, validated_data):

return subject_instance

class SubjectTagSerializer(serializers.ModelSerializer):
class Meta:
model = SubjectTags
fields = [
'tag',
'subject',
]

class TrialTagSerializer(serializers.ModelSerializer):
class Meta:
model = TrialTags
fields = [
'tag',
'trial',
]

class AnalysisFunctionSerializer(serializers.ModelSerializer):
class Meta:
Expand Down
4 changes: 4 additions & 0 deletions mcserver/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
ResultViewSet,
SubjectViewSet,
SubjectTagViewSet,
TrialTagViewSet,
DownloadFileOnReadyAPIView,
UserCreate,
UserDelete,
Expand Down Expand Up @@ -74,6 +75,7 @@
router.register(r'results', ResultViewSet)
router.register(r'subjects', SubjectViewSet, "subject")
router.register(r'subject-tags', SubjectTagViewSet, "subject-tags")
router.register(r'trial-tags', TrialTagViewSet, "trial-tags")
router.register(r'users', UserViewSet)
router.register(r'analysis-dashboards', AnalysisDashboardViewSet, "analysis-dashboard")

Expand Down Expand Up @@ -137,6 +139,8 @@
),
path('subject-tags/<int:subject_id>/get_tags_subject/', SubjectTagViewSet.as_view({'get': 'get_tags_subject'}),
name='get_tags_subject'),
path('trial-tags/<uuid:trial_id>/get_tags_trial/', TrialTagViewSet.as_view({'get': 'get_tags_trial'}),
name='get_tags_trial'),

# path('accounts/login/', OTPAuthenticationForm.as_view(authentication_form=OTPAuthenticationForm)),
]
Loading

0 comments on commit 360a576

Please sign in to comment.