Merge pull request #2738 from FinnStutzenstein/Issue2728
Moving csv exports in seperate files (closes #2728)
This commit is contained in:
commit
fe0801c671
31
openslides/agenda/static/js/agenda/csv.js
Normal file
31
openslides/agenda/static/js/agenda/csv.js
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
(function () {
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('OpenSlidesApp.agenda.csv', [])
|
||||||
|
|
||||||
|
.factory('AgendaCsvExport', [
|
||||||
|
function () {
|
||||||
|
return function (element, agenda) {
|
||||||
|
var csvRows = [
|
||||||
|
['title', 'text', 'duration', 'comment', 'is_hidden'],
|
||||||
|
];
|
||||||
|
_.forEach(agenda, function (item) {
|
||||||
|
var row = [];
|
||||||
|
row.push('"' + (item.title || '') + '"');
|
||||||
|
row.push('"' + (item.text || '') + '"');
|
||||||
|
row.push('"' + (item.duration || '') + '"');
|
||||||
|
row.push('"' + (item.comment || '') + '"');
|
||||||
|
row.push('"' + (item.is_hidden ? '1' : '') + '"');
|
||||||
|
csvRows.push(row);
|
||||||
|
});
|
||||||
|
|
||||||
|
var csvString = csvRows.join("%0A");
|
||||||
|
element.href = 'data:text/csv;charset=utf-8,' + csvString;
|
||||||
|
element.download = 'agenda-export.csv';
|
||||||
|
element.target = '_blank';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
|
||||||
|
}());
|
@ -5,7 +5,8 @@
|
|||||||
angular.module('OpenSlidesApp.agenda.site', [
|
angular.module('OpenSlidesApp.agenda.site', [
|
||||||
'OpenSlidesApp.agenda',
|
'OpenSlidesApp.agenda',
|
||||||
'OpenSlidesApp.core.pdf',
|
'OpenSlidesApp.core.pdf',
|
||||||
'OpenSlidesApp.agenda.pdf'
|
'OpenSlidesApp.agenda.pdf',
|
||||||
|
'OpenSlidesApp.agenda.csv',
|
||||||
])
|
])
|
||||||
|
|
||||||
.config([
|
.config([
|
||||||
|
@ -6,7 +6,6 @@ angular.module('OpenSlidesApp.motions', [
|
|||||||
'OpenSlidesApp.motions.motionBlock',
|
'OpenSlidesApp.motions.motionBlock',
|
||||||
'OpenSlidesApp.motions.lineNumbering',
|
'OpenSlidesApp.motions.lineNumbering',
|
||||||
'OpenSlidesApp.motions.diff',
|
'OpenSlidesApp.motions.diff',
|
||||||
'OpenSlidesApp.motions.DOCX',
|
|
||||||
'OpenSlidesApp.poll.majority',
|
'OpenSlidesApp.poll.majority',
|
||||||
'OpenSlidesApp.users',
|
'OpenSlidesApp.users',
|
||||||
])
|
])
|
||||||
|
35
openslides/motions/static/js/motions/csv.js
Normal file
35
openslides/motions/static/js/motions/csv.js
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
(function () {
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('OpenSlidesApp.motions.csv', [])
|
||||||
|
|
||||||
|
.factory('MotionCsvExport', [
|
||||||
|
function () {
|
||||||
|
return function (element, motions) {
|
||||||
|
var csvRows = [
|
||||||
|
['identifier', 'title', 'text', 'reason', 'submitter', 'category', 'origin'],
|
||||||
|
];
|
||||||
|
_.forEach(motions, function (motion) {
|
||||||
|
var row = [];
|
||||||
|
row.push('"' + motion.identifier + '"');
|
||||||
|
row.push('"' + motion.getTitle() + '"');
|
||||||
|
row.push('"' + motion.getText() + '"');
|
||||||
|
row.push('"' + motion.getReason() + '"');
|
||||||
|
var submitter = motion.submitters[0] ? motion.submitters[0].get_full_name() : '';
|
||||||
|
row.push('"' + submitter + '"');
|
||||||
|
var category = motion.category ? motion.category.name : '';
|
||||||
|
row.push('"' + category + '"');
|
||||||
|
row.push('"' + motion.origin + '"');
|
||||||
|
csvRows.push(row);
|
||||||
|
});
|
||||||
|
|
||||||
|
var csvString = csvRows.join("%0A");
|
||||||
|
element.href = 'data:text/csv;charset=utf-8,' + csvString;
|
||||||
|
element.download = 'motions-export.csv';
|
||||||
|
element.target = '_blank';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
|
||||||
|
}());
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
angular.module('OpenSlidesApp.motions.DOCX', [])
|
angular.module('OpenSlidesApp.motions.docx', [])
|
||||||
|
|
||||||
.factory('MotionDocxExport', [
|
.factory('MotionDocxExport', [
|
||||||
'$http',
|
'$http',
|
||||||
|
@ -7,7 +7,9 @@ angular.module('OpenSlidesApp.motions.site', [
|
|||||||
'OpenSlidesApp.motions.motionservices',
|
'OpenSlidesApp.motions.motionservices',
|
||||||
'OpenSlidesApp.poll.majority',
|
'OpenSlidesApp.poll.majority',
|
||||||
'OpenSlidesApp.core.pdf',
|
'OpenSlidesApp.core.pdf',
|
||||||
'OpenSlidesApp.motions.pdf'
|
'OpenSlidesApp.motions.docx',
|
||||||
|
'OpenSlidesApp.motions.pdf',
|
||||||
|
'OpenSlidesApp.motions.csv',
|
||||||
])
|
])
|
||||||
|
|
||||||
.config([
|
.config([
|
||||||
@ -716,33 +718,6 @@ angular.module('OpenSlidesApp.motions.site', [
|
|||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
.factory('MotionCsvExport', [
|
|
||||||
function () {
|
|
||||||
return function (element, motions) {
|
|
||||||
var csvRows = [
|
|
||||||
['identifier', 'title', 'text', 'reason', 'submitter', 'category', 'origin'],
|
|
||||||
];
|
|
||||||
_.forEach(motions, function (motion) {
|
|
||||||
var row = [];
|
|
||||||
row.push('"' + motion.identifier + '"');
|
|
||||||
row.push('"' + motion.getTitle() + '"');
|
|
||||||
row.push('"' + motion.getText() + '"');
|
|
||||||
row.push('"' + motion.getReason() + '"');
|
|
||||||
row.push('"' + motion.submitters[0].get_full_name() + '"');
|
|
||||||
var category = motion.category ? motion.category.name : '';
|
|
||||||
row.push('"' + category + '"');
|
|
||||||
row.push('"' + motion.origin + '"');
|
|
||||||
csvRows.push(row);
|
|
||||||
});
|
|
||||||
|
|
||||||
var csvString = csvRows.join("%0A");
|
|
||||||
element.href = 'data:text/csv;charset=utf-8,' + csvString;
|
|
||||||
element.download = 'motions-export.csv';
|
|
||||||
element.target = '_blank';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
])
|
|
||||||
|
|
||||||
// Cache for MotionPollDetailCtrl so that users choices are keeped during user actions (e. g. save poll form).
|
// Cache for MotionPollDetailCtrl so that users choices are keeped during user actions (e. g. save poll form).
|
||||||
.value('MotionPollDetailCtrlCache', {})
|
.value('MotionPollDetailCtrlCache', {})
|
||||||
|
|
||||||
|
@ -369,7 +369,7 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<!-- Submitters -->
|
<!-- Submitters -->
|
||||||
<div>
|
<div ng-if="motion.submitters.length">
|
||||||
<small>
|
<small>
|
||||||
<span class="optional" translate>by</span>
|
<span class="optional" translate>by</span>
|
||||||
<span class="optional" ng-repeat="submitter in motion.submitters | limitTo:1">
|
<span class="optional" ng-repeat="submitter in motion.submitters | limitTo:1">
|
||||||
|
36
openslides/users/static/js/users/csv.js
Normal file
36
openslides/users/static/js/users/csv.js
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
(function () {
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('OpenSlidesApp.users.csv', [])
|
||||||
|
|
||||||
|
.factory('UserCsvExport', [
|
||||||
|
function () {
|
||||||
|
return function (element, users) {
|
||||||
|
var csvRows = [
|
||||||
|
['title', 'first_name', 'last_name', 'structure_level', 'number', 'groups', 'comment', 'is_active', 'is_present', 'is_committee'],
|
||||||
|
];
|
||||||
|
_.forEach(users, function (user) {
|
||||||
|
var row = [];
|
||||||
|
row.push('"' + user.title + '"');
|
||||||
|
row.push('"' + user.first_name + '"');
|
||||||
|
row.push('"' + user.last_name + '"');
|
||||||
|
row.push('"' + user.structure_level + '"');
|
||||||
|
row.push('"' + user.number + '"');
|
||||||
|
row.push('"' + user.groups_id.join(',') + '"');
|
||||||
|
row.push('"' + user.comment + '"');
|
||||||
|
row.push(user.is_active ? '1' : '0');
|
||||||
|
row.push(user.is_present ? '1' : '0');
|
||||||
|
row.push(user.is_committee ? '1' : '0');
|
||||||
|
csvRows.push(row);
|
||||||
|
});
|
||||||
|
|
||||||
|
var csvString = csvRows.join("%0A");
|
||||||
|
element.href = 'data:text/csv;charset=utf-8,' + csvString;
|
||||||
|
element.download = 'users-export.csv';
|
||||||
|
element.target = '_blank';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
|
||||||
|
}());
|
@ -5,7 +5,8 @@
|
|||||||
angular.module('OpenSlidesApp.users.site', [
|
angular.module('OpenSlidesApp.users.site', [
|
||||||
'OpenSlidesApp.users',
|
'OpenSlidesApp.users',
|
||||||
'OpenSlidesApp.core.pdf',
|
'OpenSlidesApp.core.pdf',
|
||||||
'OpenSlidesApp.users.pdf'
|
'OpenSlidesApp.users.pdf',
|
||||||
|
'OpenSlidesApp.users.csv',
|
||||||
])
|
])
|
||||||
|
|
||||||
.config([
|
.config([
|
||||||
@ -455,35 +456,6 @@ angular.module('OpenSlidesApp.users.site', [
|
|||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
.factory('UserCsvExport', [
|
|
||||||
function () {
|
|
||||||
return function (element, users) {
|
|
||||||
var csvRows = [
|
|
||||||
['title', 'first_name', 'last_name', 'structure_level', 'number', 'groups', 'comment', 'is_active', 'is_present', 'is_committee'],
|
|
||||||
];
|
|
||||||
_.forEach(users, function (user) {
|
|
||||||
var row = [];
|
|
||||||
row.push('"' + user.title + '"');
|
|
||||||
row.push('"' + user.first_name + '"');
|
|
||||||
row.push('"' + user.last_name + '"');
|
|
||||||
row.push('"' + user.structure_level + '"');
|
|
||||||
row.push('"' + user.number + '"');
|
|
||||||
row.push('"' + user.groups_id.join(',') + '"');
|
|
||||||
row.push('"' + user.comment + '"');
|
|
||||||
row.push(user.is_active ? '1' : '0');
|
|
||||||
row.push(user.is_present ? '1' : '0');
|
|
||||||
row.push(user.is_committee ? '1' : '0');
|
|
||||||
csvRows.push(row);
|
|
||||||
});
|
|
||||||
|
|
||||||
var csvString = csvRows.join("%0A");
|
|
||||||
element.href = 'data:text/csv;charset=utf-8,' + csvString;
|
|
||||||
element.download = 'users-export.csv';
|
|
||||||
element.target = '_blank';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
])
|
|
||||||
|
|
||||||
.controller('UserListCtrl', [
|
.controller('UserListCtrl', [
|
||||||
'$scope',
|
'$scope',
|
||||||
'$state',
|
'$state',
|
||||||
|
Loading…
Reference in New Issue
Block a user