Switch to generic notes
This commit is contained in:
@@ -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)
|
||||
|
||||
def get_absolute_url(self):
|
||||
# TODO: return to question if logged in
|
||||
return "/"
|
||||
|
||||
def get_object_url(self):
|
||||
|
||||
+1
-2
@@ -1,5 +1,5 @@
|
||||
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
|
||||
|
||||
@@ -16,7 +16,6 @@ from generic.models import Examination, Sign, Condition
|
||||
# Register your models here.
|
||||
# admin.site.register(Examination)
|
||||
# admin.site.register(Site)
|
||||
admin.site.register(Note)
|
||||
admin.site.register(LongCreationDefault)
|
||||
admin.site.register(LongSeriesImage)
|
||||
admin.site.register(CidUserAnswer)
|
||||
|
||||
@@ -10,7 +10,6 @@ from django.forms import inlineformset_factory
|
||||
|
||||
from longs.models import (
|
||||
#Examination,
|
||||
Note,
|
||||
Long,
|
||||
LongSeries,
|
||||
LongSeriesImage,
|
||||
@@ -49,13 +48,6 @@ class ExaminationForm(ModelForm):
|
||||
fields = ["examination"]
|
||||
|
||||
|
||||
class NoteForm(ModelForm):
|
||||
class Meta:
|
||||
model = Note
|
||||
fields = ["note"]
|
||||
|
||||
|
||||
|
||||
class LongCreationDefaultForm(ModelForm):
|
||||
class Meta:
|
||||
model = LongCreationDefault
|
||||
|
||||
@@ -550,25 +550,6 @@ class LongSeries(models.Model):
|
||||
# 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):
|
||||
# author = models.OneToOneField(User,
|
||||
author = models.OneToOneField(
|
||||
|
||||
@@ -71,13 +71,6 @@
|
||||
</div>
|
||||
<div>
|
||||
Notes:
|
||||
<ul>
|
||||
{% for note in question.long_notes.all %}
|
||||
<li>
|
||||
{{ note.created_on }} by {{ note.author }}: {{ note.note }}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
|
||||
@@ -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 %}
|
||||
@@ -8,7 +8,7 @@
|
||||
<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_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 %}
|
||||
<a href="{% url 'admin:longs_long_change' question.id %}" title="Edit the Long using the admin interface">Admin Edit</a>
|
||||
{% endif %}
|
||||
|
||||
@@ -168,7 +168,6 @@ urlpatterns = [
|
||||
views.LongSeriesUpdate.as_view(),
|
||||
name="long_series_update",
|
||||
),
|
||||
path("<int:pk>/add_note", views.AddNote.as_view(), name="long_add_note"),
|
||||
path(
|
||||
"user_answers/",
|
||||
views.UserAnswerTableView.as_view(),
|
||||
|
||||
@@ -25,13 +25,11 @@ from .forms import (
|
||||
LongSeriesForm, LongSeriesImageFormSet,
|
||||
MarkLongQuestionForm,
|
||||
SeriesFormSet,
|
||||
NoteForm,
|
||||
ExaminationForm,
|
||||
ExamForm,
|
||||
)
|
||||
from .models import (
|
||||
Long, LongSeries,
|
||||
Note,
|
||||
Examination,
|
||||
Exam,
|
||||
CidUserAnswer,
|
||||
@@ -124,7 +122,6 @@ def question_detail(request, pk):
|
||||
# if request.user not in long.author.all():
|
||||
# raise PermissionDenied
|
||||
|
||||
# logging.debug(long.long_notes.first())
|
||||
# logging.debug(long.subspecialty.first().name.all())
|
||||
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():
|
||||
# raise PermissionDenied
|
||||
|
||||
# logging.debug(long.long_notes.first())
|
||||
# logging.debug(long.subspecialty.first().name.all())
|
||||
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():
|
||||
# raise PermissionDenied
|
||||
|
||||
# logging.debug(long.long_notes.first())
|
||||
# logging.debug(long.subspecialty.first().name.all())
|
||||
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)
|
||||
|
||||
|
||||
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
|
||||
#@user_is_author_or_long_checker
|
||||
#def long_delete(request, pk):
|
||||
|
||||
+1
-2
@@ -1,5 +1,5 @@
|
||||
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
|
||||
|
||||
@@ -13,7 +13,6 @@ admin.site.register(Examination)
|
||||
#admin.site.register(Site)
|
||||
admin.site.register(Abnormality)
|
||||
admin.site.register(Region)
|
||||
admin.site.register(Note)
|
||||
admin.site.register(RapidCreationDefault)
|
||||
admin.site.register(Answer)
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@ from django.forms import inlineformset_factory
|
||||
from rapids.models import (
|
||||
Abnormality,
|
||||
Examination,
|
||||
Note,
|
||||
Rapid,
|
||||
RapidCreationDefault,
|
||||
RapidImage,
|
||||
@@ -44,12 +43,6 @@ class ExaminationForm(ModelForm):
|
||||
fields = ["examination"]
|
||||
|
||||
|
||||
class NoteForm(ModelForm):
|
||||
class Meta:
|
||||
model = Note
|
||||
fields = ["note"]
|
||||
|
||||
|
||||
class RegionForm(ModelForm):
|
||||
class Meta:
|
||||
model = Region
|
||||
|
||||
@@ -425,26 +425,6 @@ class RapidImage(models.Model):
|
||||
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):
|
||||
#author = models.OneToOneField(User,
|
||||
author = models.OneToOneField(
|
||||
|
||||
@@ -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 %}
|
||||
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">
|
||||
{% for note in question.anon_notes.all %}
|
||||
<li {% if note.complete %}class='complete' {% endif %}>
|
||||
|
||||
@@ -121,7 +121,6 @@ urlpatterns = [
|
||||
views.RapidUpdate.as_view(),
|
||||
name="rapid_update",
|
||||
),
|
||||
path("<int:pk>/add_note", views.AddNote.as_view(), name="rapid_add_note"),
|
||||
path(
|
||||
"user_answers/",
|
||||
views.UserAnswerTableView.as_view(),
|
||||
|
||||
@@ -23,7 +23,6 @@ from .forms import (
|
||||
RapidForm,
|
||||
MarkRapidQuestionForm,
|
||||
ImageFormSet,
|
||||
NoteForm,
|
||||
RegionForm,
|
||||
AbnormalityForm,
|
||||
ExaminationForm,
|
||||
@@ -33,7 +32,6 @@ from .forms import (
|
||||
)
|
||||
from .models import (
|
||||
Rapid,
|
||||
Note,
|
||||
Abnormality,
|
||||
Region,
|
||||
Examination,
|
||||
@@ -137,7 +135,6 @@ def question_detail(request, pk):
|
||||
):
|
||||
view_feedback = True
|
||||
|
||||
# logging.debug(rapid.rapid_notes.first())
|
||||
# logging.debug(rapid.subspecialty.first().name.all())
|
||||
return render(
|
||||
request,
|
||||
@@ -197,7 +194,6 @@ def rapid_split(request, pk):
|
||||
# if request.user not in rapid.author.all():
|
||||
# raise PermissionDenied
|
||||
|
||||
# logging.debug(rapid.rapid_notes.first())
|
||||
# logging.debug(rapid.subspecialty.first().name.all())
|
||||
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)
|
||||
|
||||
|
||||
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
|
||||
def rapid_clone(request, pk):
|
||||
|
||||
Reference in New Issue
Block a user