diff --git a/RIGS/migrations/0050_event_forum_url.py b/RIGS/migrations/0050_event_forum_url.py new file mode 100644 index 00000000..8bff3822 --- /dev/null +++ b/RIGS/migrations/0050_event_forum_url.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.18 on 2023-06-26 17:46 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('RIGS', '0049_auto_20230529_1123'), + ] + + operations = [ + migrations.AddField( + model_name='event', + name='forum_url', + field=models.URLField(blank=True, null=True), + ), + ] diff --git a/RIGS/models.py b/RIGS/models.py index ea18e95e..7e24898c 100644 --- a/RIGS/models.py +++ b/RIGS/models.py @@ -357,6 +357,8 @@ class Event(models.Model, RevisionMixin): auth_request_at = models.DateTimeField(null=True, blank=True) auth_request_to = models.EmailField(blank=True, default='') + forum_url = models.URLField(null=True, blank=True) + @property def display_id(self): if self.pk: diff --git a/RIGS/templates/partials/event_details.html b/RIGS/templates/partials/event_details.html index 1b5a4e7d..be8bd064 100644 --- a/RIGS/templates/partials/event_details.html +++ b/RIGS/templates/partials/event_details.html @@ -77,6 +77,15 @@
PO
{{ object.purchase_order }}
{% endif %} + +
Forum Thread
+ {% if event.forum_thread %} +
{{event.forum_thread}}
+ {% else %} + + {% endif %} diff --git a/RIGS/urls.py b/RIGS/urls.py index 9a5a1f7c..8c2140db 100644 --- a/RIGS/urls.py +++ b/RIGS/urls.py @@ -110,6 +110,8 @@ urlpatterns = [ path('event//checkin/add/', login_required(views.EventCheckInOverride.as_view()), name='event_checkin_override'), + path('event//thread/', permission_required_with_403('RIGS.change_event')(views.CreateForumThread.as_view()), name='event_thread'), + # Finance path('invoice/', permission_required_with_403('RIGS.view_invoice')(views.InvoiceIndex.as_view()), name='invoice_list'), diff --git a/RIGS/views/rigboard.py b/RIGS/views/rigboard.py index d60f0c2b..22494961 100644 --- a/RIGS/views/rigboard.py +++ b/RIGS/views/rigboard.py @@ -3,6 +3,7 @@ import datetime import re import premailer import simplejson +import urllib from django.conf import settings from django.contrib import messages @@ -377,3 +378,20 @@ class EventAuthoriseRequestEmailPreview(generic.DetailView): context['to_name'] = self.request.GET.get('to_name', None) context['target'] = 'event_authorise_form_preview' return context + + +class CreateForumThread(generic.base.RedirectView): + permanent = False + + def get_redirect_url(self, *args, **kwargs): + event = get_object_or_404(models.Event, pk=kwargs['pk']) + + if event.forum_url: + return event.forum_url + + params = { + 'title': str(event), + 'body': 'https://rigs.nottinghamtec.co.uk/event/{}'.format(event.pk), + 'category': 'rig-info' + } + return 'https://forum.nottinghamtec.co.uk/new-topic' + "?" + urllib.parse.urlencode(params)