From c94bede4befbbecfecc406decd9175e1cfb96576 Mon Sep 17 00:00:00 2001 From: kououken Date: Fri, 1 Mar 2019 12:26:43 -0800 Subject: [PATCH 1/4] Added request tracker support as a 'reference_number' field in the report model. --- .../0009_report_reference_number.py | 18 +++++++++++++++++ back/backend/models.py | 1 + back/backend/templates/backend/email.html | 1 + back/backend/templates/backend/email.txt | 1 + back/backend/views.py | 19 +++++++++++++++--- back/db.sqlite3 | Bin 197632 -> 197632 bytes 6 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 back/backend/migrations/0009_report_reference_number.py diff --git a/back/backend/migrations/0009_report_reference_number.py b/back/backend/migrations/0009_report_reference_number.py new file mode 100644 index 0000000..c2d275a --- /dev/null +++ b/back/backend/migrations/0009_report_reference_number.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.7 on 2019-03-01 20:17 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('backend', '0008_auto_20190214_1421'), + ] + + operations = [ + migrations.AddField( + model_name='report', + name='reference_number', + field=models.CharField(default='', max_length=32), + ), + ] diff --git a/back/backend/models.py b/back/backend/models.py index 69db8ee..952a553 100644 --- a/back/backend/models.py +++ b/back/backend/models.py @@ -13,6 +13,7 @@ class Report(models.Model): date_created = models.DateTimeField('date created', default=datetime.date.today) date_submitted = models.DateTimeField('date submitted', default=datetime.date.today) submitted = models.BooleanField(default=False) + reference_number = models.CharField(max_length=32, default='') def __str__(self): """ diff --git a/back/backend/templates/backend/email.html b/back/backend/templates/backend/email.html index b985302..44f9358 100644 --- a/back/backend/templates/backend/email.html +++ b/back/backend/templates/backend/email.html @@ -4,6 +4,7 @@

Title: {{ title }}

+

Reference #: {{ reference_number }}

{% for section in sections %} {% if section.completed %}

{{section.title}}

diff --git a/back/backend/templates/backend/email.txt b/back/backend/templates/backend/email.txt index 43f9df7..9f90da2 100644 --- a/back/backend/templates/backend/email.txt +++ b/back/backend/templates/backend/email.txt @@ -4,6 +4,7 @@ *** Title: {{title}} +Reference #: {{reference_number}} {% for section in sections %} {{section.title}} {% for field in section.fields %} diff --git a/back/backend/views.py b/back/backend/views.py index 1d55aec..dc5a866 100644 --- a/back/backend/views.py +++ b/back/backend/views.py @@ -23,6 +23,7 @@ def get_report(report_pk): "date_created": i.date_created, "submitted": i.submitted, "date_submitted": i.date_submitted, + "reference_number": i.reference_number, } # append the sections for each report data.update(get_sections(i.id)) @@ -120,9 +121,20 @@ def report(request): "title": "Report Title Here" } """ - # Create the report - report = Report.objects.create(user_id=request.user, title=request.data['title'], - date_created=datetime.date.today()) + # Create the report, with reference number if available + if 'reference_number' in request.data: + report = Report.objects.create( + user_id=request.user, + title=request.data['title'], + date_created=datetime.date.today(), + reference_number=request.data['reference_number'] + ) + else: + report = Report.objects.create( + user_id=request.user, + title=request.data['title'], + date_created=datetime.date.today() + ) report.save() # Create the sections @@ -161,6 +173,7 @@ def reports(request): "date_created": i.date_created, "submitted": i.submitted, "date_submitted": i.date_submitted, + "reference_number": i.reference_number, } # append the sections for each report report_set["reports"].append(data.copy()) diff --git a/back/db.sqlite3 b/back/db.sqlite3 index e1d41596d7922b7a3494ee4a62a36f8929456c47..458fa7cd351163fc89fc149c64d3a57d404d7294 100644 GIT binary patch delta 671 zcmZqZ;A!aKnIJ7#!@$6B5QtX*aRLypov35XQ^TP9jGGn66JXx3G24TgDXMz&R^}iU zX)dO7%+Hx?nf;klnOT`vGOb{G%6yqwmDz^bX0xF{BGcq%u0%FvIdNuZj_DI!8Koz) za+`@T3o0;cawH`tXQ$?+#22L&`(3r8&ezNOSQ#P=A_38DojAE06rb@#f#=Vlfa7M9H%OMdR>W!%lc#GuQ-pv#=ZcxSR9hx~Tk494}0T+Pfi?Bbf5 zjIEB7Z%$QY)C3zgS#Vm-WUlFole?xhs28QCr52^;C8x&cmF6a;7AYx|B^D)TBo=8H z8)+)|`G+X@h5GntPEX2aT*Se|_>6(6it*WILylXF%#DJzlkKKXBy5Qqah7cVpUucB z!^g_BpMm)xa}%=@Gc(iv&4LV6{wLrYx)V_gG7 z1tSA1LklYdQ#}I{a}x`*cIIxz?abXwEP{;j+d1Yi1v4^gPmh_)q|O-wOl;aftiHWx IE>lSw07j|I-T(jq delta 810 zcmZuvOK4L;6rDRawK0jrXxnI0YZ`wIHA-t!KPjTtVpGMUF8t!_OW&l8tx0`(q7;Qb zKUh$(@u?SDi}<7MLaK%me~2QuRM15Q1yN9O=La`#bchID2y+(aa?a(<%<1iO_4c{? zeV!i1*b|8n2~}b=vv`@ShlM^l3nX*n`0dUn{R*Q2z+_TO* zE4`(l9yB_XZlUi_q|=F1vesMT!wnW2C+Fno%O;RQrkgH>(!drV(dp?7-~ zm}?VBO&pG?)~~x0*5wNoXnN}DO9C>EW4j`S-e3?;r0A1?3aBF33nf$@ha>bT4o9;N z`ei3uKaATpIa-@3a~~9|?1m>7%0MmH%8&b+a^f5e0F>Xk4v*)_AWkS`_z?SX9e>A% z`8Hkw6EFmmlX=%#a~XvOp>B4Q8aITl7TB-9T^spUjTJk*LuMGSxfRfPU2?QB~A#XSgC$}4FtV{fB zNm{fSvI%+9|7OAbZ@MPStm>a(x~ah&x+cI&A2g_^SUX%Dwsk?7%ZAAC2_D0Bh*?kN o4}J@Kn+IBR_Dg&lz%JS|#1~DKnb;oru3GNQ5I5p~0MV)UzW@LL From 4dee8259730899cc241202c9ceb7684e0b2cddbe Mon Sep 17 00:00:00 2001 From: kououken Date: Fri, 1 Mar 2019 12:53:57 -0800 Subject: [PATCH 2/4] Updated frontend to send reference number when creating report. --- .gitignore | 1 + back/.env | 6 +++--- back/backend/views.py | 23 ++++++++--------------- back/db.sqlite3 | Bin 197632 -> 197632 bytes front/static/js/viewHistory.js | 2 +- front/static/new_report.html | 4 ++++ 6 files changed, 17 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index d25063b..40497c7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ # Edit at https://www.gitignore.io/?templates=linux,macos,python,django,windows,pycharm,intellij,visualstudio ### Django ### +*.env *.log *.pot *.pyc diff --git a/back/.env b/back/.env index b47f7a4..be096b6 100644 --- a/back/.env +++ b/back/.env @@ -1,4 +1,4 @@ -EMAIL_HOST_USER=accountemail@yourmail.com -EMAIL_HOST_PASSWORD=accountpasswordhere -SUBMIT_REPORT_DESTINATION_EMAIL=to-address@yourmail.com +EMAIL_HOST_USER=reimbursinator@gmail.com +EMAIL_HOST_PASSWORD=Frank12345 +SUBMIT_REPORT_DESTINATION_EMAIL=kououken@gmail.com SUBMIT_REPORT_FROM_EMAIL=from-address@yourmail.com diff --git a/back/backend/views.py b/back/backend/views.py index dc5a866..347ceaa 100644 --- a/back/backend/views.py +++ b/back/backend/views.py @@ -121,20 +121,13 @@ def report(request): "title": "Report Title Here" } """ - # Create the report, with reference number if available - if 'reference_number' in request.data: - report = Report.objects.create( - user_id=request.user, - title=request.data['title'], - date_created=datetime.date.today(), - reference_number=request.data['reference_number'] - ) - else: - report = Report.objects.create( - user_id=request.user, - title=request.data['title'], - date_created=datetime.date.today() - ) + # Create the report + report = Report.objects.create( + user_id=request.user, + title=request.data['title'], + date_created=datetime.date.today(), + reference_number=request.data['reference'] + ) report.save() # Create the sections @@ -399,7 +392,7 @@ def send_report_to_admin(request, report_pk): msg_html = render_to_string('backend/email.html', params) msg_plain = render_to_string('backend/email.txt', params) message = EmailMultiAlternatives( - "Reimbursinator - {}".format(params['title']), + "[RT - Request Tracker #{}] {}".format(params['reference_number'], params['title']), msg_plain, from_email, [to_email], diff --git a/back/db.sqlite3 b/back/db.sqlite3 index 458fa7cd351163fc89fc149c64d3a57d404d7294..2ab8b3bdf8a093d809e30b5ce96e0b5073a2cf91 100644 GIT binary patch delta 2625 zcmcJRe{7S-8OQIQbBLY9i4BAX$Ped-Ndkn}G5JXXP68?IU<9^7&}bdUc{5xR+q`x* z(oSnkvQwn3C~2x4e}Gz~Rw*qrcy z*TE|AJ*evqZ zm?OqA*fjE0?4}h+dVYVxUiOYSx(6|+@OaF8{a3ZVNLcsl1CB!)3b87eyS~EZsc^X+ zuDS-73%@6r$X(^xUS0FREw38+{)F# z^VF^mo+1v(GS%#*dOo8Lyv}pPep#w^c2O(@9WZZ1f8B!qxDp2Nre1;8mdm!e1~$< z5`kcBK%g#^y@86X34b6E?hnOQVW#e=d%vckEc@!s(dq1$E{O z6=g2BH}=_ib>kJ-tf1yXv}ByW2%u3H5wr2+J~AZeTsduKs5)b22L-0$g{<>GGBRH z$bi7y z_>@VvI(UML&2u`UvRk@T=V_|3&l#}_V%-^CP?M}wAMc?$^DU!~TDeUPo}zO5Yy{KL z9n|`K#=CA=p?)z$Tg|gZqei(^E&h?po|+AYz8MY%G~Y@HO_g$sy8Sdc?6ZO6THpj0 zcQRDu#y4N3qBZx;*qBQpbjxy;^$9uG%{;VN4DsRA$*6O}Z97cXCy3bOCC*J#{5@Vy z8C~&b4aKRBuYsQ3yTgw@NvhK0&lrui427YCZ})QIlUI0(S*3i$Ph||m_Ztr%QpC6? zzRxf%E24FHU;ImkrFG;eJY4JJtu%QJo2zyW4kht(F(|$+wun^vgeK?=Jx`hZLw=DD z@guy9ufjp{0-7yf546kvsCN0~9yO}d!8MOdSGC-&#{NJqb5gkqWNUIgS(b!rt87tz zor*J-b*o%9t9X?1Gar(zLg`gEg0vy+zG}JUE_L!Sm0DLs%O!UzE`)PMgQ{r1Y*K@B z)VTI@l2sua)xjtgLoS!3*XJ&hJJiQ6$}=Yg>kIFMw3VHpMt=s6%UcH?YnD7NKmtu( zS*@-gA&+f7;va}$4QqY=U~hxmuEwrVDW6w&|H9W@G%fP$tCENCIUK^T3h`iCZI4gu u!E~zLG##D?j;yD$O@P(>r7*XMG!iR3SL3qy% z*9oWHaE&nJhQA1JxZzL2u_pL~aHI)-C%oJUzY*e%@GIe9BU~lyZ-ie6`!>PPgxxN< zLTGcr1fj(Rm;FS)3w|PaTyTlta>6*l?t~u+k2>KZ;SneNK&W=Y_k?l>Tp%oRz!;&> z0pAhw9q=t-t^>{!vK{aZLFa(4PaV>Wcqw6cX+ogVWipv+1wdtpD+6-eHjqtXNYo4* z6qeERrE&vlo4k?qBKa}WMY5f=EN>ufme-S>Ew3YOlye>-gzDY%Y*vb@c|2q$Rzo9;JqGu&2PU-LKle7csf>HH>41LK{`dqr>>DwmV6F zeHarZ6l^L?p;jB%efxm!sj)3yE>%ZXA+g4$4XalC%yB9I~B)&CRLOxw(8|J8~xZ#!`q%wC}+~zM>H?DO-{2wciIK+ z&Av9BeI%9U3<1ytgfwz5FnJX}T2KSf1!hip3GX!vIP(N6Zk9Qf|=0-EGb)%#yUFmXm zW%}U^goDA>_9sIfN~k1S%O^fZh3|L~)?yf@O5xuzkFC1Q%&n4ZL*(t=g4^UpBMC9KUb-_HeMhy}5$=1dj7hM$kg9 z@dMs}0hjZ|qnNAR?&aq$U~#rTuqzx6wgx)2#UCE!5?Vp=+s)%uEQ6xFxz*_Jv~~Zc{gYI+B!Dk*we7cHC$xOC_c%aZVD(m232;=(dYZYzn8guYQ|A=yFl TG)ai0jiiHQOS1PB*7d|c2{S~X diff --git a/front/static/js/viewHistory.js b/front/static/js/viewHistory.js index 99d182e..97b4884 100644 --- a/front/static/js/viewHistory.js +++ b/front/static/js/viewHistory.js @@ -560,7 +560,7 @@ if (newReportForm) { newReportForm.addEventListener("submit", function(event) { event.preventDefault(); const url = getEndpointDomain() + "api/v1/report"; - const payload = JSON.stringify({ "title": event.target.elements.title.value }); + const payload = JSON.stringify({ "title": event.target.elements.title.value, "reference": event.target.elements.reference.value }); console.log("Payload:\n" + payload); const type = reportType.NEW; makeAjaxRequest("POST", url, createReportForm, type, payload); diff --git a/front/static/new_report.html b/front/static/new_report.html index 7caf52b..cda82ca 100644 --- a/front/static/new_report.html +++ b/front/static/new_report.html @@ -51,6 +51,10 @@ +
+ + +
From 4c5c3fed6325ab2f9802482759d8f9b1ff1cbc58 Mon Sep 17 00:00:00 2001 From: kououken Date: Fri, 1 Mar 2019 13:11:41 -0800 Subject: [PATCH 3/4] Subject line will omit RT formatting if no number is provided. --- back/backend/views.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/back/backend/views.py b/back/backend/views.py index 347ceaa..2913f82 100644 --- a/back/backend/views.py +++ b/back/backend/views.py @@ -391,13 +391,23 @@ def send_report_to_admin(request, report_pk): cc = request.user.email msg_html = render_to_string('backend/email.html', params) msg_plain = render_to_string('backend/email.txt', params) - message = EmailMultiAlternatives( - "[RT - Request Tracker #{}] {}".format(params['reference_number'], params['title']), - msg_plain, - from_email, - [to_email], - cc=[request.user.email], - ) + message = None + if params['reference_number'] == '': + message = EmailMultiAlternatives( + "{}".format(params['title']), + msg_plain, + from_email, + [to_email], + cc=[request.user.email], + ) + else: + message = EmailMultiAlternatives( + "[RT - Request Tracker #{}] {}".format(params['reference_number'], params['title']), + msg_plain, + from_email, + [to_email], + cc=[request.user.email], + ) message.attach_alternative(msg_html, "text/html") for f in get_files(report_pk): message.attach_file(f) From 40e86aff34dea69b93d4ca3fc0d3dd28c3556791 Mon Sep 17 00:00:00 2001 From: Daniel Dupriest Date: Fri, 1 Mar 2019 14:41:38 -0800 Subject: [PATCH 4/4] Update .env --- back/.env | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/back/.env b/back/.env index be096b6..3b79ce5 100644 --- a/back/.env +++ b/back/.env @@ -1,4 +1,4 @@ -EMAIL_HOST_USER=reimbursinator@gmail.com -EMAIL_HOST_PASSWORD=Frank12345 -SUBMIT_REPORT_DESTINATION_EMAIL=kououken@gmail.com +EMAIL_HOST_USER=accountemail@youremail.com +EMAIL_HOST_PASSWORD=yourpassword +SUBMIT_REPORT_DESTINATION_EMAIL=administratoremail@yourmail.com SUBMIT_REPORT_FROM_EMAIL=from-address@yourmail.com