Switch to generic notes

This commit is contained in:
Ross
2021-09-09 18:06:13 +01:00
parent d4180a48d3
commit f6f4407cf8
16 changed files with 4 additions and 171 deletions
+1
View File
@@ -143,6 +143,7 @@ class QuestionNote(models.Model):
return "{}: {} [{}] {} / {}".format(self.content_type, self.get_author_str(), self.created_on, self.note_type, self.note) return "{}: {} [{}] {} / {}".format(self.content_type, self.get_author_str(), self.created_on, self.note_type, self.note)
def get_absolute_url(self): def get_absolute_url(self):
# TODO: return to question if logged in
return "/" return "/"
def get_object_url(self): def get_object_url(self):
+1 -2
View File
@@ -1,5 +1,5 @@
from django.contrib import admin from django.contrib import admin
from .models import Long, LongSeries, LongSeriesImage, Note, LongCreationDefault, Exam, CidUserAnswer from .models import Long, LongSeries, LongSeriesImage, LongCreationDefault, Exam, CidUserAnswer
import tagulous.admin import tagulous.admin
@@ -16,7 +16,6 @@ from generic.models import Examination, Sign, Condition
# Register your models here. # Register your models here.
# admin.site.register(Examination) # admin.site.register(Examination)
# admin.site.register(Site) # admin.site.register(Site)
admin.site.register(Note)
admin.site.register(LongCreationDefault) admin.site.register(LongCreationDefault)
admin.site.register(LongSeriesImage) admin.site.register(LongSeriesImage)
admin.site.register(CidUserAnswer) admin.site.register(CidUserAnswer)
-8
View File
@@ -10,7 +10,6 @@ from django.forms import inlineformset_factory
from longs.models import ( from longs.models import (
#Examination, #Examination,
Note,
Long, Long,
LongSeries, LongSeries,
LongSeriesImage, LongSeriesImage,
@@ -49,13 +48,6 @@ class ExaminationForm(ModelForm):
fields = ["examination"] fields = ["examination"]
class NoteForm(ModelForm):
class Meta:
model = Note
fields = ["note"]
class LongCreationDefaultForm(ModelForm): class LongCreationDefaultForm(ModelForm):
class Meta: class Meta:
model = LongCreationDefault model = LongCreationDefault
-19
View File
@@ -550,25 +550,6 @@ class LongSeries(models.Model):
# image_tag.short_description = 'Image' # image_tag.short_description = 'Image'
class Note(models.Model):
long = models.ForeignKey(
Long, related_name="long_notes", on_delete=models.CASCADE, null=True
)
# author = models.ForeignKey(User,
author = models.ForeignKey(
settings.AUTH_USER_MODEL, related_name="long_notes", on_delete=models.CASCADE
)
note = models.TextField()
created_on = models.DateTimeField(auto_now_add=True)
def get_absolute_url(self):
self.pk = self.long_id
return reverse("longs:question_detail", kwargs={"pk": self.pk})
def __str__(self):
return "{} [{}] {}".format(self.long, self.author, self.created_on)
class LongCreationDefault(models.Model): class LongCreationDefault(models.Model):
# author = models.OneToOneField(User, # author = models.OneToOneField(User,
author = models.OneToOneField( author = models.OneToOneField(
@@ -71,13 +71,6 @@
</div> </div>
<div> <div>
Notes: Notes:
<ul>
{% for note in question.long_notes.all %}
<li>
{{ note.created_on }} by {{ note.author }}: {{ note.note }}
</li>
{% endfor %}
</ul>
</div> </div>
<div> <div>
-12
View File
@@ -1,12 +0,0 @@
{% extends "longs/base.html" %}
{% block content %}
<h2>Add Note</h2>
<form action="" method="post">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Submit">
</form>
{% endblock %}
+1 -1
View File
@@ -8,7 +8,7 @@
<a href="{% url 'longs:long_update' pk=question.pk %}" title="Edit the Long">Edit</a> <a href="{% url 'longs:long_update' pk=question.pk %}" title="Edit the Long">Edit</a>
<a href="{% url 'longs:long_clone' pk=question.pk %}" title="Clone the Long (duplicate everything but the images)">Clone</a> <a href="{% url 'longs:long_clone' pk=question.pk %}" title="Clone the Long (duplicate everything but the images)">Clone</a>
<a href="{% url 'longs:long_delete' pk=question.pk %}" title="Delete the Rapid">Delete</a> <a href="{% url 'longs:long_delete' pk=question.pk %}" title="Delete the Rapid">Delete</a>
<a href="{% url 'longs:long_add_note' pk=question.pk %}"> Add Note</a> <a href="{% url 'feedback_create' question_type='long' pk=question.pk %}"> Add Note</a>
{% if request.user.is_superuser %} {% if request.user.is_superuser %}
<a href="{% url 'admin:longs_long_change' question.id %}" title="Edit the Long using the admin interface">Admin Edit</a> <a href="{% url 'admin:longs_long_change' question.id %}" title="Edit the Long using the admin interface">Admin Edit</a>
{% endif %} {% endif %}
-1
View File
@@ -168,7 +168,6 @@ urlpatterns = [
views.LongSeriesUpdate.as_view(), views.LongSeriesUpdate.as_view(),
name="long_series_update", name="long_series_update",
), ),
path("<int:pk>/add_note", views.AddNote.as_view(), name="long_add_note"),
path( path(
"user_answers/", "user_answers/",
views.UserAnswerTableView.as_view(), views.UserAnswerTableView.as_view(),
-36
View File
@@ -25,13 +25,11 @@ from .forms import (
LongSeriesForm, LongSeriesImageFormSet, LongSeriesForm, LongSeriesImageFormSet,
MarkLongQuestionForm, MarkLongQuestionForm,
SeriesFormSet, SeriesFormSet,
NoteForm,
ExaminationForm, ExaminationForm,
ExamForm, ExamForm,
) )
from .models import ( from .models import (
Long, LongSeries, Long, LongSeries,
Note,
Examination, Examination,
Exam, Exam,
CidUserAnswer, CidUserAnswer,
@@ -124,7 +122,6 @@ def question_detail(request, pk):
# if request.user not in long.author.all(): # if request.user not in long.author.all():
# raise PermissionDenied # raise PermissionDenied
# logging.debug(long.long_notes.first())
# logging.debug(long.subspecialty.first().name.all()) # logging.debug(long.subspecialty.first().name.all())
return render(request, "longs/question_detail.html", {"question": long}) return render(request, "longs/question_detail.html", {"question": long})
@@ -136,7 +133,6 @@ def long_series_detail(request, pk):
# if request.user not in long.author.all(): # if request.user not in long.author.all():
# raise PermissionDenied # raise PermissionDenied
# logging.debug(long.long_notes.first())
# logging.debug(long.subspecialty.first().name.all()) # logging.debug(long.subspecialty.first().name.all())
return render(request, "longs/long_series.html", {"series": series}) return render(request, "longs/long_series.html", {"series": series})
@@ -174,7 +170,6 @@ def long_split(request, pk):
# if request.user not in long.author.all(): # if request.user not in long.author.all():
# raise PermissionDenied # raise PermissionDenied
# logging.debug(long.long_notes.first())
# logging.debug(long.subspecialty.first().name.all()) # logging.debug(long.subspecialty.first().name.all())
return render(request, "longs/question_detail.html", {"question": long}) return render(request, "longs/question_detail.html", {"question": long})
@@ -236,37 +231,6 @@ class LongCreationDefaultView(LoginRequiredMixin, UpdateView):
# form.instance.author.add(self.request.user.id) # form.instance.author.add(self.request.user.id)
class AddNote(LoginRequiredMixin, CreateView):
model = Note
form_class = NoteForm
# fields = '__all__'
# #fields = [ 'condition' ]
# #initial = {'date_of_death': '05/01/2018'}
# exclude = [ 'created_date', 'published_date' ]
def dispatch(self, request, *args, **kwargs):
"""
Overridden so we can make sure the `Long` instance exists
before going any further.
"""
self.pk = get_object_or_404(Long, pk=kwargs["pk"])
return super().dispatch(request, *args, **kwargs)
def form_valid(self, form):
note = form.save(commit=False)
note.long = self.pk
note.author = self.request.user
note.save()
response = super().form_valid(form)
return response
# form.instance.author.add(self.request.user.id)
#@login_required #@login_required
#@user_is_author_or_long_checker #@user_is_author_or_long_checker
#def long_delete(request, pk): #def long_delete(request, pk):
+1 -2
View File
@@ -1,5 +1,5 @@
from django.contrib import admin from django.contrib import admin
from .models import Rapid, RapidImage, Examination, Site, Abnormality, Region, Note, RapidCreationDefault, Answer, Exam, CidUserAnswer from .models import Rapid, RapidImage, Examination, Site, Abnormality, Region, RapidCreationDefault, Answer, Exam, CidUserAnswer
import tagulous.admin import tagulous.admin
@@ -13,7 +13,6 @@ admin.site.register(Examination)
#admin.site.register(Site) #admin.site.register(Site)
admin.site.register(Abnormality) admin.site.register(Abnormality)
admin.site.register(Region) admin.site.register(Region)
admin.site.register(Note)
admin.site.register(RapidCreationDefault) admin.site.register(RapidCreationDefault)
admin.site.register(Answer) admin.site.register(Answer)
-7
View File
@@ -11,7 +11,6 @@ from django.forms import inlineformset_factory
from rapids.models import ( from rapids.models import (
Abnormality, Abnormality,
Examination, Examination,
Note,
Rapid, Rapid,
RapidCreationDefault, RapidCreationDefault,
RapidImage, RapidImage,
@@ -44,12 +43,6 @@ class ExaminationForm(ModelForm):
fields = ["examination"] fields = ["examination"]
class NoteForm(ModelForm):
class Meta:
model = Note
fields = ["note"]
class RegionForm(ModelForm): class RegionForm(ModelForm):
class Meta: class Meta:
model = Region model = Region
-20
View File
@@ -425,26 +425,6 @@ class RapidImage(models.Model):
image_tag.short_description = 'Image' image_tag.short_description = 'Image'
class Note(models.Model):
rapid = models.ForeignKey(Rapid,
related_name="rapid_notes",
on_delete=models.CASCADE,
null=True)
#author = models.ForeignKey(User,
author = models.ForeignKey( settings.AUTH_USER_MODEL,
related_name="rapid_notes",
on_delete=models.CASCADE)
note = models.TextField()
created_on = models.DateTimeField(auto_now_add=True)
def get_absolute_url(self):
self.pk = self.rapid_id
return reverse('rapids:question_detail', kwargs={'pk': self.pk})
def __str__(self):
return "{} [{}] {}".format(self.rapid, self.author, self.created_on)
class RapidCreationDefault(models.Model): class RapidCreationDefault(models.Model):
#author = models.OneToOneField(User, #author = models.OneToOneField(User,
author = models.OneToOneField( author = models.OneToOneField(
-12
View File
@@ -1,12 +0,0 @@
{% extends "rapids/base.html" %}
{% block content %}
<h2>Add Note</h2>
<form action="" method="post">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Submit">
</form>
{% endblock %}
@@ -59,14 +59,6 @@
{% if view_feedback %} {% if view_feedback %}
Notes: Notes:
<ul>
{% for note in question.rapid_notes.all %}
<li>
{{ note.created_on }} by {{ note.author }}: {{ note.note }}
</li>
{% endfor %}
</ul>
Anon Notes:
<ul class="notes"> <ul class="notes">
{% for note in question.anon_notes.all %} {% for note in question.anon_notes.all %}
<li {% if note.complete %}class='complete' {% endif %}> <li {% if note.complete %}class='complete' {% endif %}>
-1
View File
@@ -121,7 +121,6 @@ urlpatterns = [
views.RapidUpdate.as_view(), views.RapidUpdate.as_view(),
name="rapid_update", name="rapid_update",
), ),
path("<int:pk>/add_note", views.AddNote.as_view(), name="rapid_add_note"),
path( path(
"user_answers/", "user_answers/",
views.UserAnswerTableView.as_view(), views.UserAnswerTableView.as_view(),
-35
View File
@@ -23,7 +23,6 @@ from .forms import (
RapidForm, RapidForm,
MarkRapidQuestionForm, MarkRapidQuestionForm,
ImageFormSet, ImageFormSet,
NoteForm,
RegionForm, RegionForm,
AbnormalityForm, AbnormalityForm,
ExaminationForm, ExaminationForm,
@@ -33,7 +32,6 @@ from .forms import (
) )
from .models import ( from .models import (
Rapid, Rapid,
Note,
Abnormality, Abnormality,
Region, Region,
Examination, Examination,
@@ -137,7 +135,6 @@ def question_detail(request, pk):
): ):
view_feedback = True view_feedback = True
# logging.debug(rapid.rapid_notes.first())
# logging.debug(rapid.subspecialty.first().name.all()) # logging.debug(rapid.subspecialty.first().name.all())
return render( return render(
request, request,
@@ -197,7 +194,6 @@ def rapid_split(request, pk):
# if request.user not in rapid.author.all(): # if request.user not in rapid.author.all():
# raise PermissionDenied # raise PermissionDenied
# logging.debug(rapid.rapid_notes.first())
# logging.debug(rapid.subspecialty.first().name.all()) # logging.debug(rapid.subspecialty.first().name.all())
return render(request, "rapids/question_detail.html", {"question": rapid}) return render(request, "rapids/question_detail.html", {"question": rapid})
@@ -257,37 +253,6 @@ class RapidCreationDefaultView(LoginRequiredMixin, UpdateView):
# form.instance.author.add(self.request.user.id) # form.instance.author.add(self.request.user.id)
class AddNote(LoginRequiredMixin, CreateView):
model = Note
form_class = NoteForm
# fields = '__all__'
# #fields = [ 'condition' ]
# #initial = {'date_of_death': '05/01/2018'}
# exclude = [ 'created_date', 'published_date' ]
def dispatch(self, request, *args, **kwargs):
"""
Overridden so we can make sure the `Rapid` instance exists
before going any further.
"""
self.pk = get_object_or_404(Rapid, pk=kwargs["pk"])
return super().dispatch(request, *args, **kwargs)
def form_valid(self, form):
note = form.save(commit=False)
note.rapid = self.pk
note.author = self.request.user
note.save()
response = super().form_valid(form)
return response
# form.instance.author.add(self.request.user.id)
@login_required @login_required
def rapid_clone(request, pk): def rapid_clone(request, pk):