Merge pull request #2810 from tsiegleauq/issue2665-qr-code-pdf
Add QR code in user access list pdf (fixes #2665)
This commit is contained in:
commit
c12d985ab6
@ -66,6 +66,7 @@ Users:
|
|||||||
- Added new field 'is_committee' and new default group 'Committees'.
|
- Added new field 'is_committee' and new default group 'Committees'.
|
||||||
- Improved users CSV import (use group names instead of id).
|
- Improved users CSV import (use group names instead of id).
|
||||||
- Added more multiselect actions.
|
- Added more multiselect actions.
|
||||||
|
- Added QR code in users access pdf.
|
||||||
|
|
||||||
Other:
|
Other:
|
||||||
- Django 1.10 is now supported. Dropped support for Django 1.8 and 1.9.
|
- Django 1.10 is now supported. Dropped support for Django 1.8 and 1.9.
|
||||||
|
@ -203,7 +203,7 @@ angular.module('OpenSlidesApp.core.pdf', [])
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
// Generates the document(definition) for pdfMake
|
// Generates the document(definition) for pdfMake
|
||||||
var getDocument = function() {
|
var getDocument = function(noFooter) {
|
||||||
var content = contentProvider.getContent();
|
var content = contentProvider.getContent();
|
||||||
return {
|
return {
|
||||||
pageSize: 'A4',
|
pageSize: 'A4',
|
||||||
@ -213,7 +213,7 @@ angular.module('OpenSlidesApp.core.pdf', [])
|
|||||||
fontSize: 10
|
fontSize: 10
|
||||||
},
|
},
|
||||||
header: header,
|
header: header,
|
||||||
footer: footer,
|
footer: noFooter ? '' : footer,
|
||||||
content: content,
|
content: content,
|
||||||
styles: {
|
styles: {
|
||||||
title: {
|
title: {
|
||||||
@ -296,6 +296,9 @@ angular.module('OpenSlidesApp.core.pdf', [])
|
|||||||
},
|
},
|
||||||
bold: {
|
bold: {
|
||||||
bold: true,
|
bold: true,
|
||||||
|
},
|
||||||
|
small: {
|
||||||
|
fontSize: 8,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -128,75 +128,114 @@ angular.module('OpenSlidesApp.users.pdf', ['OpenSlidesApp.core.pdf'])
|
|||||||
};
|
};
|
||||||
|
|
||||||
var createAccessDataContent = function(user) {
|
var createAccessDataContent = function(user) {
|
||||||
var accessDataColumns = {
|
// wlan access data
|
||||||
columns: [
|
var columnWifi = [
|
||||||
|
{
|
||||||
|
text: gettextCatalog.getString("WLAN access data"),
|
||||||
|
style: 'userDataHeading'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: gettextCatalog.getString("WLAN name (SSID)") + ":",
|
||||||
|
style: 'userDataTopic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: Config.get('users_pdf_wlan_ssid').value || '-',
|
||||||
|
style: 'userDataValue'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: gettextCatalog.getString("WLAN password") + ":",
|
||||||
|
style: 'userDataTopic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: Config.get('users_pdf_wlan_password').value || '-',
|
||||||
|
style: 'userDataValue'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: gettextCatalog.getString("WLAN encryption") + ":",
|
||||||
|
style: 'userDataTopic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: Config.get('users_pdf_wlan_encryption').value || '-',
|
||||||
|
style: 'userDataValue'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: "\n"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
// wifi qr code
|
||||||
|
if (Config.get('users_pdf_wlan_ssid').value && Config.get('users_pdf_wlan_encryption').value) {
|
||||||
|
var wifiQrCode = "WIFI:S:" + Config.get('users_pdf_wlan_ssid').value +
|
||||||
|
";T:" + Config.get('users_pdf_wlan_encryption').value +
|
||||||
|
";P:" + Config.get('users_pdf_wlan_password').value + ";;";
|
||||||
|
columnWifi.push(
|
||||||
{
|
{
|
||||||
stack: [
|
qr: wifiQrCode,
|
||||||
{
|
fit: 120,
|
||||||
text: gettextCatalog.getString("WLAN access data"),
|
margin: [0, 0, 0, 8]
|
||||||
style: 'userDataHeading'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: gettextCatalog.getString("WLAN name (SSID)") + ":",
|
|
||||||
style: 'userDataTopic'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: Config.get('users_pdf_wlan_ssid').value || '-',
|
|
||||||
style: 'userDataValue'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: gettextCatalog.getString("WLAN password") + ":",
|
|
||||||
style: 'userDataTopic'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: Config.get('users_pdf_wlan_password').value || '-',
|
|
||||||
style: 'userDataValue'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: gettextCatalog.getString("WLAN encryption") + ":",
|
|
||||||
style: 'userDataTopic'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: Config.get('users_pdf_wlan_encryption').value || '-',
|
|
||||||
style: 'userDataValue'
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
stack: [
|
text: gettextCatalog.getString("Scan this QR code to connect to WLAN."),
|
||||||
{
|
style: 'small'
|
||||||
text: gettextCatalog.getString("OpenSlides access data"),
|
|
||||||
style: 'userDataHeading'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: gettextCatalog.getString("Username") + ":",
|
|
||||||
style: 'userDataTopic'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: user.username,
|
|
||||||
style: 'userDataValue'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: gettextCatalog.getString("Initial password") + ":",
|
|
||||||
style: 'userDataTopic'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: user.default_password,
|
|
||||||
style: 'userDataValue'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: "URL:",
|
|
||||||
style: 'userDataTopic'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: Config.get('users_pdf_url').value || '-',
|
|
||||||
link: Config.get('users_pdf_url').value,
|
|
||||||
style: 'userDataValue'
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// openslides access data
|
||||||
|
var columnOpenSlides = [
|
||||||
|
{
|
||||||
|
text: gettextCatalog.getString("OpenSlides access data"),
|
||||||
|
style: 'userDataHeading'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: gettextCatalog.getString("Username") + ":",
|
||||||
|
style: 'userDataTopic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: user.username,
|
||||||
|
style: 'userDataValue'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: gettextCatalog.getString("Initial password") + ":",
|
||||||
|
style: 'userDataTopic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: user.default_password,
|
||||||
|
style: 'userDataValue'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: "URL:",
|
||||||
|
style: 'userDataTopic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: Config.get('users_pdf_url').value || '-',
|
||||||
|
link: Config.get('users_pdf_url').value,
|
||||||
|
style: 'userDataValue'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: "\n"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
// url qr code
|
||||||
|
if (Config.get('users_pdf_url').value) {
|
||||||
|
columnOpenSlides.push(
|
||||||
|
{
|
||||||
|
qr: Config.get('users_pdf_url').value,
|
||||||
|
fit: 120,
|
||||||
|
margin: [0, 0, 0, 8]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: gettextCatalog.getString("Scan this QR code to open URL."),
|
||||||
|
style: 'small'
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
var accessDataColumns = {
|
||||||
|
columns: [
|
||||||
|
columnWifi,
|
||||||
|
columnOpenSlides,
|
||||||
],
|
],
|
||||||
margin: [0,20]
|
margin: [0, 20]
|
||||||
};
|
};
|
||||||
|
|
||||||
return accessDataColumns;
|
return accessDataColumns;
|
||||||
|
@ -681,7 +681,8 @@ angular.module('OpenSlidesApp.users.site', [
|
|||||||
var userAccessDataListContentProvider = UserAccessDataListContentProvider.createInstance(
|
var userAccessDataListContentProvider = UserAccessDataListContentProvider.createInstance(
|
||||||
$scope.usersFiltered, $scope.groups, Config);
|
$scope.usersFiltered, $scope.groups, Config);
|
||||||
var documentProvider = PdfMakeDocumentProvider.createInstance(userAccessDataListContentProvider);
|
var documentProvider = PdfMakeDocumentProvider.createInstance(userAccessDataListContentProvider);
|
||||||
pdfMake.createPdf(documentProvider.getDocument()).download(filename);
|
var noFooter = true;
|
||||||
|
pdfMake.createPdf(documentProvider.getDocument(noFooter)).download(filename);
|
||||||
};
|
};
|
||||||
// Export as a csv file
|
// Export as a csv file
|
||||||
$scope.csvExport = function () {
|
$scope.csvExport = function () {
|
||||||
|
Loading…
Reference in New Issue
Block a user