Commit f1dcdf1c7477db04f04c412246af2fa59739a4fd

Authored by Zambom
1 parent 183116ae

Initial subject backup function

amadeus/static/css/.sass-cache/a7f87b90919294b62ab4f8079e31dcda8f485534/green.sassc
No preview for this file type
amadeus/static/css/base/amadeus.css
... ... @@ -1620,6 +1620,27 @@ div.dataTables_wrapper div.dataTables_paginate {
1620 1620 margin-bottom: 10px;
1621 1621 }
1622 1622  
  1623 +.backup_container {
  1624 + padding: 0 30px;
  1625 +}
  1626 +
  1627 +.backup_container .backup_item {
  1628 + display: inline;
  1629 + margin-left: 10px;
  1630 +}
  1631 +
  1632 +.backup_container .resources_list {
  1633 + display: none;
  1634 + margin-left: 30px;
  1635 +}
  1636 +
  1637 +.backup_container .more_items {
  1638 + padding: 2px 5px;
  1639 + border-radius: 2px;
  1640 + position: relative;
  1641 + top: -2px;
  1642 +}
  1643 +
1623 1644 @-moz-document url-prefix() {
1624 1645 .talk_body .checkbox input[type="checkbox"] {
1625 1646 display: none;
... ...
amadeus/static/css/themes/green.css
... ... @@ -535,6 +535,16 @@ a.add-row {
535 535 #analytics-panel {
536 536 background-color: #0277BD !important; }
537 537  
  538 +.backup_container .more_items {
  539 + background: #009688;
  540 + color: #FFFFFF; }
  541 +
  542 +.backup_container .backup_item label, .backup_container .resources_list label {
  543 + color: #333333; }
  544 +
  545 +.semi-check {
  546 + border-color: #009688 !important; }
  547 +
538 548 @media(max-width: 768px) {
539 549 .navbar .navbar-nav .dropdown .dropdown-menu li > a {
540 550 color: #333333 !important; }
... ...
amadeus/static/css/themes/green.css.map
1 1 {
2 2 "version": 3,
3   -"mappings": "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",
  3 +"mappings": "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",
4 4 "sources": ["green.sass"],
5 5 "names": [],
6 6 "file": "green.css"
... ...
amadeus/static/css/themes/green.sass
... ... @@ -705,6 +705,16 @@ a.add-row
705 705 #analytics-panel
706 706 background-color: #0277BD !important
707 707  
  708 +.backup_container .more_items
  709 + background: $primary-color
  710 + color: $white
  711 +
  712 +.backup_container .backup_item label, .backup_container .resources_list label
  713 + color: #333333
  714 +
  715 +.semi-check
  716 + border-color: $primary-color !important
  717 +
708 718 @media(max-width: 768px)
709 719 .navbar .navbar-nav .dropdown .dropdown-menu li > a
710 720 color: #333333 !important
... ...
backup.json 0 → 100644
... ... @@ -0,0 +1 @@
  1 +[{"model": "topics.topic", "pk": 30, "fields": {"name": "Reposit\u00f3rio", "slug": "repositorio", "description": "<p>Testing</p>", "repository": true, "visible": false, "subject": 459, "order": 1, "create_date": "2017-01-17T18:36:32.918Z", "last_update": "2017-01-17T21:48:07.630Z"}}, {"model": "topics.topic", "pk": 32, "fields": {"name": "Now Invisble", "slug": "now-invisble", "description": "<p>TIme to</p>", "repository": false, "visible": true, "subject": 459, "order": 2, "create_date": "2017-01-17T18:44:24.976Z", "last_update": "2017-03-08T01:28:52.845Z"}}][{"model": "topics.resource", "pk": 1, "fields": {"_my_subclass": "webpage", "name": "Revenge", "slug": "revenge", "brief_description": "<p>Here Comes</p>", "show_window": false, "all_students": false, "visible": true, "order": 1, "topic": 30, "create_date": "2017-01-20T22:42:16.126Z", "last_update": "2017-01-30T18:39:30.100Z", "students": [178, 181], "groups": [], "tags": [44, 45]}}, {"model": "topics.resource", "pk": 14, "fields": {"_my_subclass": "webpage", "name": "Care", "slug": "care", "brief_description": "<p>One last minute</p>", "show_window": true, "all_students": false, "visible": true, "order": 2, "topic": 30, "create_date": "2017-01-23T17:59:10.053Z", "last_update": "2017-01-24T21:53:17.119Z", "students": [], "groups": [], "tags": [58, 59]}}, {"model": "topics.resource", "pk": 41, "fields": {"_my_subclass": "filelink", "name": "Secret", "slug": "secret", "brief_description": "<p>Do we create a modern myth?</p>", "show_window": true, "all_students": true, "visible": false, "order": 3, "topic": 32, "create_date": "2017-01-24T21:55:44.193Z", "last_update": "2017-01-24T21:55:44.330Z", "students": [], "groups": [], "tags": [93, 94]}}, {"model": "topics.resource", "pk": 3, "fields": {"_my_subclass": "webpage", "name": "Teste 2", "slug": "teste-2", "brief_description": "<p>Here Comes</p>", "show_window": true, "all_students": false, "visible": true, "order": 3, "topic": 30, "create_date": "2017-01-23T17:17:28.416Z", "last_update": "2017-01-24T21:53:17.131Z", "students": [178, 181], "groups": [], "tags": [44, 45]}}, {"model": "topics.resource", "pk": 40, "fields": {"_my_subclass": "filelink", "name": "Alive", "slug": "alive", "brief_description": "<p>Nothern lights</p><p>I'm still</p>", "show_window": true, "all_students": true, "visible": true, "order": 4, "topic": 30, "create_date": "2017-01-24T21:52:58.028Z", "last_update": "2017-01-30T18:33:25.804Z", "students": [], "groups": [], "tags": [91, 92]}}, {"model": "topics.resource", "pk": 42, "fields": {"_my_subclass": "webpage", "name": "History goes", "slug": "history-goes", "brief_description": "<p>How</p>", "show_window": false, "all_students": false, "visible": false, "order": 4, "topic": 32, "create_date": "2017-01-24T21:57:13.600Z", "last_update": "2017-01-24T21:57:13.812Z", "students": [178], "groups": [], "tags": [95]}}, {"model": "topics.resource", "pk": 4, "fields": {"_my_subclass": "webpage", "name": "Have", "slug": "have", "brief_description": "<p>Save me</p>", "show_window": true, "all_students": false, "visible": true, "order": 5, "topic": 30, "create_date": "2017-01-23T17:31:58.957Z", "last_update": "2017-01-24T21:53:17.155Z", "students": [179, 178], "groups": [], "tags": [46, 47]}}, {"model": "topics.resource", "pk": 21, "fields": {"_my_subclass": "webpage", "name": "Each small candle", "slug": "each-small-candle", "brief_description": "<p>Uhuh</p>", "show_window": false, "all_students": false, "visible": true, "order": 6, "topic": 30, "create_date": "2017-01-24T03:16:17.180Z", "last_update": "2017-01-24T21:53:17.164Z", "students": [177, 179], "groups": [], "tags": [71, 72]}}, {"model": "topics.resource", "pk": 5, "fields": {"_my_subclass": "webpage", "name": "Lose you", "slug": "lose-you", "brief_description": "<p>Save me</p>", "show_window": true, "all_students": false, "visible": true, "order": 7, "topic": 30, "create_date": "2017-01-23T17:34:29.313Z", "last_update": "2017-01-24T21:53:17.175Z", "students": [179, 178], "groups": [], "tags": [46, 47]}}, {"model": "topics.resource", "pk": 16, "fields": {"_my_subclass": "webpage", "name": "Sing", "slug": "sing", "brief_description": "<p>Talking about</p>", "show_window": false, "all_students": false, "visible": false, "order": 8, "topic": 30, "create_date": "2017-01-23T22:10:39.437Z", "last_update": "2017-01-24T21:53:17.197Z", "students": [177, 178], "groups": [], "tags": [62, 63]}}, {"model": "topics.resource", "pk": 49, "fields": {"_my_subclass": "webpage", "name": "Testes", "slug": "testes", "brief_description": "<p>asd</p>", "show_window": false, "all_students": false, "visible": true, "order": 9, "topic": 30, "create_date": "2017-01-30T18:38:25.741Z", "last_update": "2017-01-30T18:38:25.878Z", "students": [179], "groups": [], "tags": [99]}}, {"model": "topics.resource", "pk": 50, "fields": {"_my_subclass": "webpage", "name": "Yellow", "slug": "yellow", "brief_description": "<p>Vber</p>", "show_window": false, "all_students": false, "visible": true, "order": 10, "topic": 30, "create_date": "2017-01-30T18:39:04.914Z", "last_update": "2017-01-30T18:39:05.212Z", "students": [180], "groups": [], "tags": [99]}}, {"model": "topics.resource", "pk": 51, "fields": {"_my_subclass": "ytvideo", "name": "System", "slug": "system", "brief_description": "<p>Gotta</p>", "show_window": true, "all_students": true, "visible": true, "order": 11, "topic": 30, "create_date": "2017-02-01T21:03:21.123Z", "last_update": "2017-02-02T23:08:32.570Z", "students": [], "groups": [], "tags": [103, 104]}}, {"model": "topics.resource", "pk": 53, "fields": {"_my_subclass": "link", "name": "Sorry", "slug": "sorry", "brief_description": "<p>Hellor</p>", "show_window": false, "all_students": true, "visible": true, "order": 12, "topic": 30, "create_date": "2017-02-02T18:59:06.159Z", "last_update": "2017-02-02T18:59:06.270Z", "students": [], "groups": [], "tags": [106]}}, {"model": "topics.resource", "pk": 56, "fields": {"_my_subclass": "pdffile", "name": "Legend", "slug": "legend", "brief_description": "", "show_window": false, "all_students": true, "visible": true, "order": 13, "topic": 30, "create_date": "2017-02-09T18:29:12.935Z", "last_update": "2017-02-09T18:29:13.410Z", "students": [], "groups": [], "tags": [99]}}, {"model": "topics.resource", "pk": 57, "fields": {"_my_subclass": "link", "name": "Unravel", "slug": "unravel", "brief_description": "<p>Co asseru</p>", "show_window": true, "all_students": true, "visible": true, "order": 14, "topic": 30, "create_date": "2017-02-12T04:18:39.836Z", "last_update": "2017-02-12T04:18:40.083Z", "students": [], "groups": [], "tags": [109]}}, {"model": "topics.resource", "pk": 58, "fields": {"_my_subclass": "webpage", "name": "Berry the castle", "slug": "berry-the-castle", "brief_description": "", "show_window": false, "all_students": true, "visible": true, "order": 15, "topic": 30, "create_date": "2017-02-23T15:22:21.044Z", "last_update": "2017-02-23T15:22:21.371Z", "students": [], "groups": [], "tags": [112]}}, {"model": "topics.resource", "pk": 59, "fields": {"_my_subclass": "webpage", "name": "What you get", "slug": "what-you-get", "brief_description": "<p>To me</p>", "show_window": false, "all_students": true, "visible": true, "order": 16, "topic": 30, "create_date": "2017-02-23T15:23:56.414Z", "last_update": "2017-02-23T15:23:56.482Z", "students": [], "groups": [], "tags": [109]}}, {"model": "topics.resource", "pk": 66, "fields": {"_my_subclass": "webpage", "name": "Last Stand", "slug": "last-stand", "brief_description": "<p>For the grace of the might of the Lord&nbsp;&nbsp;&nbsp;&nbsp;</p>", "show_window": false, "all_students": true, "visible": true, "order": 17, "topic": 30, "create_date": "2017-02-24T20:31:26.650Z", "last_update": "2017-02-24T20:31:26.778Z", "students": [], "groups": [], "tags": [116]}}, {"model": "topics.resource", "pk": 68, "fields": {"_my_subclass": "webpage", "name": "Angels calling", "slug": "angels-calling", "brief_description": "<p>Falling</p>", "show_window": false, "all_students": true, "visible": true, "order": 18, "topic": 30, "create_date": "2017-02-24T20:47:51.687Z", "last_update": "2017-02-25T01:35:19.427Z", "students": [], "groups": [], "tags": [118]}}, {"model": "topics.resource", "pk": 70, "fields": {"_my_subclass": "goals", "name": "Snuff", "slug": "snuff", "brief_description": "<p>Deserve to have you</p>", "show_window": false, "all_students": true, "visible": true, "order": 19, "topic": 30, "create_date": "2017-03-01T19:07:07.980Z", "last_update": "2017-03-03T01:16:22.746Z", "students": [], "groups": [], "tags": [121, 122]}}, {"model": "topics.resource", "pk": 73, "fields": {"_my_subclass": "filelink", "name": "Lies", "slug": "lies", "brief_description": "", "show_window": false, "all_students": false, "visible": true, "order": 20, "topic": 30, "create_date": "2017-04-26T03:03:38.089Z", "last_update": "2017-04-26T03:03:38.531Z", "students": [], "groups": [], "tags": [125]}}]
0 2 \ No newline at end of file
... ...
chat/templates/chat/subject_view.html
... ... @@ -38,6 +38,7 @@
38 38 {% endif %}
39 39 <li><a href="{% url 'subjects:update' subject.slug %}"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i>{% trans 'Edit' %}</a></li>
40 40 <li><a href="{% url 'groups:index' subject.slug %}"><i class="fa fa-group fa-fw" aria-hidden="true"></i>{% trans 'Groups' %}</a></li>
  41 + <li><a href="{% url 'subjects:backup' subject.slug %}"><i class="fa fa-database fa-fw" aria-hidden="true"></i>{% trans 'Backup' %}</a></li>
41 42 <li><a href="javascript:delete_subject.get('{% url 'subjects:delete' subject.slug %}?view=index','#subject','#modal_subject')"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp;{% trans 'Remove' %}</a></li>
42 43 </ul>
43 44 {% endif %}
... ...
chat/templates/chat/subject_view_participants.html
... ... @@ -42,6 +42,7 @@
42 42 {% endif %}
43 43 <li><a href="{% url 'subjects:update' subject.slug %}"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i>{% trans 'Edit' %}</a></li>
44 44 <li><a href="{% url 'groups:index' subject.slug %}"><i class="fa fa-group fa-fw" aria-hidden="true"></i>{% trans 'Groups' %}</a></li>
  45 + <li><a href="{% url 'subjects:backup' subject.slug %}"><i class="fa fa-database fa-fw" aria-hidden="true"></i>{% trans 'Backup' %}</a></li>
45 46 <li><a href="javascript:delete_subject.get('{% url 'subjects:delete' subject.slug %}?view=index','#subject','#modal_subject')"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp;{% trans 'Remove' %}</a></li>
46 47 </ul>
47 48 {% endif %}
... ...
mural/templates/mural/subject_view.html
... ... @@ -38,6 +38,7 @@
38 38 {% endif %}
39 39 <li><a href="{% url 'subjects:update' subject.slug %}"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i>{% trans 'Edit' %}</a></li>
40 40 <li><a href="{% url 'groups:index' subject.slug %}"><i class="fa fa-group fa-fw" aria-hidden="true"></i>{% trans 'Groups' %}</a></li>
  41 + <li><a href="{% url 'subjects:backup' subject.slug %}"><i class="fa fa-database fa-fw" aria-hidden="true"></i>{% trans 'Backup' %}</a></li>
41 42 <li><a href="javascript:delete_subject.get('{% url 'subjects:delete' subject.slug %}?view=index','#subject','#modal_subject')"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp;{% trans 'Remove' %}</a></li>
42 43 </ul>
43 44 {% endif %}
... ...
subjects/templates/subjects/backup.html 0 → 100644
... ... @@ -0,0 +1,163 @@
  1 +{% extends 'categories/home.html' %}
  2 +
  3 +{% load static i18n pagination permissions_tags subject_counter chat_tags %}
  4 +{% load django_bootstrap_breadcrumbs %}
  5 +
  6 +{% block javascript%}
  7 + {{ block.super }}
  8 + <script type="text/javascript" src="{% static 'subjects/js/modal_subject.js' %}"></script>
  9 +{% endblock%}
  10 +
  11 +{% block breadcrumbs %}
  12 + {{ block.super }}
  13 + {% breadcrumb subject.category 'subjects:cat_view' subject.category.slug %}
  14 + {% breadcrumb subject 'subjects:view' subject.slug %}
  15 +
  16 + {% trans "Backup" as bread %}
  17 + {% breadcrumb bread 'subjects:backup' subject.slug %}
  18 +{% endblock %}
  19 +
  20 +{% block content %}
  21 + {% if messages %}
  22 + {% for message in messages %}
  23 + <div class="alert alert-{{ message.tags }} alert-dismissible" role="alert">
  24 + <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  25 + <span aria-hidden="true">&times;</span>
  26 + </button>
  27 + <p>{{ message }}</p>
  28 + </div>
  29 + {% endfor %}
  30 + {% endif %}
  31 +
  32 + {% subject_permissions request.user subject as has_subject_permissions %}
  33 +
  34 + {% if subject.visible %}
  35 + <div class="panel panel-info subject-panel" id="subject_{{subject.slug}}">
  36 + <div class="panel-heading">
  37 + {% elif has_subject_permissions %}
  38 + <div class="panel panel-info subject-panel-invisible" id="subject_{{subject.slug}}">
  39 + <div class="panel-heading panel-invisible">
  40 + {% endif %}
  41 + <div class="row">
  42 + <div class="col-md-12 category-header">
  43 + <h4 class="panel-title" style="margin-top: 10px; margin-bottom: 8px">
  44 + <span>{{ subject.name }} / {% trans "Backup" %}</span>
  45 + </h4>
  46 +
  47 + <div class="col-md-5 pull-right category-card-items">
  48 + {% if request.user in subject.professor.all or request.user in subject.category.coordinators.all or request.user.is_staff %}
  49 + <a href="" id="moreActions" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  50 + <i class="fa fa-ellipsis-v" aria-hidden="true"></i>
  51 + </a>
  52 + <ul class="dropdown-menu pull-right" aria-labelledby="moreActions">
  53 + {% if request.user not in subject.professor.all %}
  54 + <li><a href="{% url 'subjects:replicate' subject.slug %}"><i class="fa fa-files-o fa-fw" aria-hidden="true"></i>{% trans 'Replicate' %}</a></li>
  55 + {% endif %}
  56 + <li><a href="{% url 'subjects:update' subject.slug %}"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i>{% trans 'Edit' %}</a></li>
  57 + <li><a href="{% url 'groups:index' subject.slug %}"><i class="fa fa-group fa-fw" aria-hidden="true"></i>{% trans 'Groups' %}</a></li>
  58 + <li><a href="{% url 'subjects:backup' subject.slug %}"><i class="fa fa-database fa-fw" aria-hidden="true"></i>{% trans 'Backup' %}</a></li>
  59 + <li><a href="javascript:delete_subject.get('{% url 'subjects:delete' subject.slug %}?view=index','#subject','#modal_subject')"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp;{% trans 'Remove' %}</a></li>
  60 + </ul>
  61 + {% endif %}
  62 + </div>
  63 + </div>
  64 + </div>
  65 + </div>
  66 + <div id="{{subject.slug}}" class="panel-collapse in collapse category-panel-content" style="position: relative">
  67 + <h5>{% trans "Please select below the topics and resources which you want to backup:" %}</h5>
  68 +
  69 + <div class="backup_container">
  70 + <form id="bkp_form" method="post" action="{% url 'subjects:do_backup' %}" enctype="multipart/form-data">
  71 + {% csrf_token %}
  72 +
  73 + {% for topic in topics %}
  74 + <div class="topic item">
  75 + <span class="more_items"><i class="fa fa-plus"></i></span>
  76 + <div class="checkbox backup_item">
  77 + <label>
  78 + <input type="checkbox" class="topics_check" /> {{ topic }}
  79 + </label>
  80 + </div>
  81 + <div class="resources_list">
  82 + {% for resource in topic.resource_topic.all %}
  83 + <div class="checkbox">
  84 + <label>
  85 + <input type="checkbox" class="resources_check" name="resource[]" value="{{ resource.id }}" /> {{ resource }}
  86 + </label>
  87 + </div>
  88 + {% endfor %}
  89 + </div>
  90 + </div>
  91 + {% endfor %}
  92 +
  93 + <div class="row text-center">
  94 + <input type="submit" value="{% trans 'Backup' %}" class="btn btn-success btn-raised" />
  95 + </div>
  96 + </form>
  97 + </div>
  98 + </div>
  99 + </div>
  100 +
  101 + <script type="text/javascript">
  102 + $(document).ready(function () {
  103 + $(".more_items").click(function () {
  104 + var icon = $(this).find('i'),
  105 + resources = $(this).parent().find(".resources_list");
  106 +
  107 + if (icon.hasClass("fa-plus")) {
  108 + icon.addClass("fa-minus");
  109 + icon.removeClass("fa-plus");
  110 + resources.show();
  111 + } else {
  112 + icon.removeClass("fa-minus");
  113 + icon.addClass("fa-plus");
  114 + resources.hide();
  115 + }
  116 + });
  117 +
  118 + $(".resources_check").on('click', function () {
  119 + var container = $(this).parent().parent().parent().parent(),
  120 + resource_list = $(this).parent().parent().parent(),
  121 + topic_check = container.find(".topics_check"),
  122 + topic_checkbox = topic_check.parent().find(".check");
  123 +
  124 + if ($(this).is(':checked')) {
  125 + topic_checkbox.addClass("semi-check");
  126 + } else {
  127 + var checked = resource_list.find(".resources_check:checked");
  128 +
  129 + if (checked.length == 0) {
  130 + topic_checkbox.removeClass("semi-check");
  131 + }
  132 + }
  133 + });
  134 +
  135 + $(".topics_check").on('click', function () {
  136 + var container = $(this).parent().parent().parent(),
  137 + resource_list = container.find(".resources_list"),
  138 + resources = resource_list.find(".resources_check"),
  139 + topic_checkbox = $(this).parent().find(".check"),
  140 + is_checked = $(this).is(':checked');
  141 +
  142 + resources.each(function () {
  143 + this.checked = is_checked;
  144 + });
  145 +
  146 + if (!is_checked) {
  147 + var checked = resource_list.find(".resources_check:checked");
  148 +
  149 + if (checked.length == 0) {
  150 + topic_checkbox.removeClass("semi-check");
  151 + }
  152 + }
  153 + });
  154 + });
  155 +
  156 + // $("#bkp_form").submit(function () {
  157 + // setTimeout(function() {
  158 + // // Should be triggered after download started
  159 + // document.location.href="{% url 'subjects:view' subject.slug %}";
  160 + // }, 3000);
  161 + // });
  162 + </script>
  163 +{% endblock content %}
... ...
subjects/templates/subjects/subject_card.html
... ... @@ -30,6 +30,7 @@
30 30 {% endif %}
31 31 <li><a href="{% url 'subjects:update' subject.slug %}"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i>{% trans 'Edit' %}</a></li>
32 32 <li><a href="{% url 'groups:index' subject.slug %}"><i class="fa fa-group fa-fw" aria-hidden="true"></i>{% trans 'Groups' %}</a></li>
  33 + <li><a href="{% url 'subjects:backup' subject.slug %}"><i class="fa fa-database fa-fw" aria-hidden="true"></i>{% trans 'Backup' %}</a></li>
33 34 <li><a href="javascript:delete_subject.get('{% url 'subjects:delete' subject.slug %}?view=index','#subject','#modal_subject')"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp;{% trans 'Remove' %}</a></li>
34 35 </ul>
35 36 {% endif %}
... ...
subjects/templates/subjects/view.html
... ... @@ -52,6 +52,7 @@
52 52 {% endif %}
53 53 <li><a href="{% url 'subjects:update' subject.slug %}"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i>{% trans 'Edit' %}</a></li>
54 54 <li><a href="{% url 'groups:index' subject.slug %}"><i class="fa fa-group fa-fw" aria-hidden="true"></i>{% trans 'Groups' %}</a></li>
  55 + <li><a href="{% url 'subjects:backup' subject.slug %}"><i class="fa fa-database fa-fw" aria-hidden="true"></i>{% trans 'Backup' %}</a></li>
55 56 <li><a href="javascript:delete_subject.get('{% url 'subjects:delete' subject.slug %}?view=index','#subject','#modal_subject')"><i class="fa fa-trash fa-fw" aria-hidden="true"></i>&nbsp;{% trans 'Remove' %}</a></li>
56 57 </ul>
57 58 {% endif %}
... ...
subjects/urls.py
... ... @@ -9,6 +9,8 @@ urlpatterns = [
9 9 url(r'^replicate/(?P<subject_slug>[\w_-]+)/$', views.SubjectCreateView.as_view(), name='replicate'),
10 10 url(r'^update/(?P<slug>[\w_-]+)/$', views.SubjectUpdateView.as_view(), name='update'),
11 11 url(r'^delete/(?P<slug>[\w_-]+)/$', views.SubjectDeleteView.as_view(), name='delete'),
  12 + url(r'^backup/(?P<slug>[\w_-]+)/$', views.Backup.as_view(), name='backup'),
  13 + url(r'^do_backup/$', views.realize_backup, name='do_backup'),
12 14 url(r'^view/(?P<slug>[\w_-]+)/$', views.SubjectDetailView.as_view(), name='view'),
13 15 url(r'^view/(?P<slug>[\w_-]+)/(?P<topic_slug>[\w_-]+)/$', views.SubjectDetailView.as_view(), name='topic_view'),
14 16 url(r'^subscribe/(?P<slug>[\w_-]+)/$', views.SubjectSubscribeView.as_view(), name='subscribe'),
... ... @@ -18,7 +20,6 @@ urlpatterns = [
18 20 url(r'^view_log/(?P<subject>[\w_-]+)/$', views.subject_view_log, name = 'view_log'),
19 21 url(r'^most_accessed_subjects/$', views.most_acessed_subjects, name='most_acessed'),
20 22 url(r'^report/', include('reports.urls', namespace='reports')),
21   - url(r'^backup/$', views.backup, name='backup'),
22 23 url(r'^(?P<option>[\w_-]+)/$', views.IndexView.as_view(), name='index'),
23 24  
24 25 ]
25 26 \ No newline at end of file
... ...
subjects/views.py
... ... @@ -723,26 +723,83 @@ def most_acessed_subjects(request):
723 723  
724 724 return JsonResponse(subjects, safe=False)
725 725  
  726 +""" BACKUP / RESTORE SECTION """
  727 +class Backup(LoginRequiredMixin, ListView):
  728 + login_url = reverse_lazy("users:login")
  729 + redirect_field_name = 'next'
  730 +
  731 + template_name = 'subjects/backup.html'
  732 + model = Subject
  733 + context_object_name = 'topics'
  734 +
  735 + def dispatch(self, request, *args, **kwargs):
  736 + subject = get_object_or_404(Subject, slug = kwargs.get('slug', ''))
  737 +
  738 + if not has_subject_permissions(request.user, subject):
  739 + return redirect(reverse_lazy('subjects:home'))
  740 +
  741 + return super(Backup, self).dispatch(request, *args, **kwargs)
  742 +
  743 + def get_queryset(self):
  744 + slug = self.kwargs.get('slug')
  745 + topics = Topic.objects.filter(subject__slug = slug)
726 746  
727   -def backup(request):
  747 + return topics
  748 +
  749 + def get_context_data(self, **kwargs):
  750 + context = super(Backup, self).get_context_data(**kwargs)
  751 +
  752 + subject = get_object_or_404(Subject, slug = self.kwargs.get('slug', ''))
  753 +
  754 + context['title'] = _('%s - Backup')%(str(subject))
  755 + context['subject'] = subject
  756 +
  757 + return context
  758 +
  759 +@login_required
  760 +def realize_backup(request):
728 761 #collector = NestedObjects(using="default") # database name
729 762 #collector.collect(list(Resource.objects.filter(visible = True)))
730   - zip_subdir = "backup"
731   - zip_filename = "%s.zip" % zip_subdir
  763 + resources_ids = request.POST.getlist("resource[]")
  764 +
  765 + resource_files_subdir = "files"
  766 + zip_filename = "backup.zip"
732 767  
733 768 s = BytesIO()
734 769  
735 770 zf = zipfile.ZipFile(s, "w", compression = zipfile.ZIP_DEFLATED)
736 771  
737   - resources = Resource.objects.all()
  772 + resources = Resource.objects.filter(id__in = resources_ids)
738 773  
739 774 for resource in resources:
740 775 if resource._my_subclass == "filelink":
741 776 fdir, fname = os.path.split(resource.filelink.file_content.path)
742   - zip_path = os.path.join(zip_subdir, fname)
  777 + zip_path = os.path.join(resource_files_subdir, fname)
743 778  
744 779 # Add file, at correct path
745 780 zf.write(resource.filelink.file_content.path, zip_path)
  781 + elif resource._my_subclass == "pdffile":
  782 + fdir, fname = os.path.split(resource.pdffile.file.path)
  783 + zip_path = os.path.join(resource_files_subdir, fname)
  784 +
  785 + # Add file, at correct path
  786 + zf.write(resource.pdffile.file.path, zip_path)
  787 +
  788 + topics = Topic.objects.filter(resource_topic__id__in = resources_ids).distinct()
  789 +
  790 + file = open("backup.json", "w")
  791 +
  792 + json_serializer = serializers.get_serializer('json')()
  793 + json_serializer.serialize(topics, stream = file)
  794 + json_serializer.serialize(resources, stream = file)
  795 +
  796 + file.close()
  797 +
  798 + fdir, fname = os.path.split("backup.json")
  799 + zip_path = os.path.join("", fname)
  800 +
  801 + # Add file, at correct path
  802 + zf.write("backup.json", zip_path)
746 803  
747 804 zf.close()
748 805  
... ...