forked from openedx/edx-platform
-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: added banner message for survey report (openedx#33633)
* feat: added banner message for survey report * refactor: addressed PR feedback and changes * fix: fixed styles on admin templates * refactor: changed script location to survey report block * chore: removed whitespaces and renamed the context processor files * feat: added banner message for survey report * refactor: separated survey report template from admin and deleted base template * refactor: changed months variable into a configurable setting --------- Co-authored-by: Maria Fernanda Magallanes Zubillaga <[email protected]> Co-authored-by: María Fernanda Magallanes <[email protected]>
- Loading branch information
1 parent
82f3cec
commit e9d84d0
Showing
8 changed files
with
125 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
""" | ||
This is the survey report contex_processor modules | ||
This is meant to determine the visibility of the survey report banner | ||
across all admin pages in case a survey report has not been generated | ||
""" | ||
|
||
from datetime import datetime | ||
from dateutil.relativedelta import relativedelta # for months test | ||
from .models import SurveyReport | ||
from django.urls import reverse | ||
from django.conf import settings | ||
|
||
|
||
def admin_extra_context(request): | ||
""" | ||
This function sends extra context to every admin site | ||
The current treshhold to show the banner is one month but this can be redefined in the future | ||
""" | ||
months = settings.SURVEY_REPORT_CHECK_THRESHOLD | ||
if not request.path.startswith(reverse('admin:index')): | ||
return {'show_survey_report_banner': False, } | ||
|
||
try: | ||
latest_report = SurveyReport.objects.latest('created_at') | ||
months_treshhold = datetime.today().date() - relativedelta(months=months) # Calculate date one month ago | ||
show_survey_report_banner = latest_report.created_at.date() <= months_treshhold | ||
except SurveyReport.DoesNotExist: | ||
show_survey_report_banner = True | ||
|
||
return {'show_survey_report_banner': show_survey_report_banner, } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
74 changes: 74 additions & 0 deletions
74
openedx/features/survey_report/templates/survey_report/admin_banner.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
{% block survey_report_banner %} | ||
{% if show_survey_report_banner %} | ||
<div id="originalContent" style="border: 3px solid #06405d; margin-bottom: 50px; rgb(0 0 0 / 18%) 0px 3px 5px;"> | ||
<div style="background-color: #06405d;padding: 17px 37px;"> | ||
<h1 style="margin: 0; color: #FFFF; font-weight: 600;">Join the Open edX Data Sharing Initiative and shape the future of learning</h1> | ||
</div> | ||
<div style="padding: 17px 37px;"> | ||
<p>The Open edX Project relies on the collective strength of its community to be a thriving platform for online education.</p> | ||
<p>Open edX is a dynamic ecosystem and it is used in diverse learning environments. By sharing anonymized reports of aggregated data, you can contribute to the collective knowledge of the community. This data can help us all understand the reach of our project, make better decisions and ultimately support innovation in lifelong learning and advance next generation learning experience platforms.</p> | ||
<p>We invite you to join the Open edX Data Sharing Initiative by sharing an anonymized reports of aggregated data from your institution's usage of the platform. The report data will be sent to Axim Collaborative, the non-profit behind the Open edX project.</p> | ||
<p>If you agree and want to send a report you can click the button below. You can always send reports and see the status of reports you have sent in the past at <a href="/admin/survey_report/surveyreport/">admin/survey_report/surveyreport/</a> .</p> | ||
</div> | ||
<div style="display: flex; justify-content: flex-end; padding: 0 37px 17px;"> | ||
<button id="dismissButton" type="button" style="background-color:var(--close-button-bg); color: var(--button-fg); border: none; border-radius: 4px; padding: 10px 20px; margin-right: 10px; cursor: pointer;">Dismiss</button> | ||
<form id='survey_report_form' method="POST" action="/survey_report/generate_report" style="margin: 0; padding: 0;"> | ||
{% csrf_token %} | ||
<button type="submit" style="background-color: #377D4D; color: var(--button-fg); border: none; border-radius: 4px; padding: 10px 20px; cursor: pointer;">Send Report</button> | ||
</form> | ||
</div> | ||
</div> | ||
<div id="thankYouMessage" style="display: none; background-color: var(--darkened-bg); padding: 20px 40px; margin-bottom: 30px;box-shadow: rgb(0 0 0 / 18%) 0px 3px 5px;"> | ||
<div style="display: flex; align-items: center;"> | ||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 24 24"> | ||
<g fill="#377D4D"><path d="M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12S6.477 2 12 2s10 4.477 10 10Z"></path> | ||
<path d="M16.03 8.97a.75.75 0 0 1 0 1.06l-5 5a.75.75 0 0 1-1.06 0l-2-2a.75.75 0 1 1 1.06-1.06l1.47 1.47l2.235-2.236L14.97 8.97a.75.75 0 0 1 1.06 0Z" fill="#FFF"></path> | ||
</g> | ||
</svg> | ||
<span style="font-size: 16px; margin-left: 15px;">Thank you for your collaboration and support! Your contribution is greatly appreciated and will help us continue to improve.</span> | ||
</div> | ||
</div> | ||
{% endif %} | ||
|
||
<!-- The original content of the block --> | ||
<script> | ||
$(document).ready(function(){ | ||
$('#dismissButton').click(function() { | ||
$('#originalContent').slideUp('slow', function() { | ||
// If you want to do something after the slide-up, do it here. | ||
// For example, you can hide the entire div: | ||
// $(this).hide(); | ||
}); | ||
}); | ||
// When the form is submitted | ||
$("#survey_report_form").submit(function(event){ | ||
event.preventDefault(); // Prevent the form from submitting traditionally | ||
|
||
// Make the AJAX request | ||
$.ajax({ | ||
url: $(this).attr("action"), | ||
type: $(this).attr("method"), | ||
data: $(this).serialize(), | ||
success: function(response){ | ||
// Hide the original content block | ||
$("#originalContent").slideUp(400, function() { | ||
//$(this).css('display', 'none'); | ||
// Show the thank-you message block with slide down effect | ||
$("#thankYouMessage").slideDown(400, function() { | ||
// Wait for 3 seconds (3000 milliseconds) and then slide up the thank-you message | ||
setTimeout(function() { | ||
$("#thankYouMessage").slideUp(400); | ||
}, 3000); | ||
}); | ||
}); | ||
}, | ||
error: function(error){ | ||
// Handle any errors | ||
console.error("Error sending report:", error); | ||
} | ||
}); | ||
}); | ||
}); | ||
</script> | ||
|
||
{% endblock %} |