diff --git a/pandora/padma.jsonc b/pandora/padma.jsonc
index 717e3a03..add5e834 100644
--- a/pandora/padma.jsonc
+++ b/pandora/padma.jsonc
@@ -59,7 +59,8 @@
//{"id": "year", "title": "Years", "type": "integer"},
{"id": "features", "title": "Features", "type": "string"},
{"id": "director", "title": "Directors", "type": "string"},
- {"id": "cinematographer", "title": "Cinematographers", "type": "string"}
+ {"id": "cinematographer", "title": "Cinematographers", "type": "string"},
+ {"id": "license", "title": "License", "type": "string"}
],
/*
An itemKey must have the following properties:
@@ -386,6 +387,14 @@
"type": "integer",
"columnWidth": 60
},
+ {
+ "id": "license",
+ "title": "License",
+ "type": ["string"],
+ "columnWidth": 120,
+ "autocomplete": true,
+ "filter": true
+ },
{
"id": "rightslevel",
"title": "Rights Level",
diff --git a/pandora/user/models.py b/pandora/user/models.py
index 61fb0274..4658f5bd 100644
--- a/pandora/user/models.py
+++ b/pandora/user/models.py
@@ -38,6 +38,8 @@ class SessionData(models.Model):
objects = managers.SessionDataManager()
+ groupssort = models.CharField(default=None,blank=True,null=True, max_length=255)
+
def __unicode__(self):
return u"%s" % self.session_key
@@ -92,8 +94,10 @@ class SessionData(models.Model):
self.username = self.user.username
self.level = self.user.get_profile().level
self.firstseen = self.user.date_joined
+ self.groupssort = ''.join([g.name for g in self.user.groups.all()])
else:
self.level = 0
+ self.groupssort = None
self.parse_data()
super(SessionData, self).save(*args, **kwargs)
diff --git a/pandora/user/views.py b/pandora/user/views.py
index e5125ee5..60e6e234 100644
--- a/pandora/user/views.py
+++ b/pandora/user/views.py
@@ -427,6 +427,7 @@ def order_query(qs, sort):
'browser': 'browser',
'email': 'user__email',
'firstseen': 'firstseen',
+ 'groups': 'groupssort',
'ip': 'ip',
'lastseen': 'lastseen',
'level': 'level',
diff --git a/static/js/pandora/infoView.padma.js b/static/js/pandora/infoView.padma.js
index ae0552a2..0f3ed88d 100644
--- a/static/js/pandora/infoView.padma.js
+++ b/static/js/pandora/infoView.padma.js
@@ -168,21 +168,25 @@ pandora.ui.infoView = function(data) {
Ox.Editable({
clickLink: pandora.clickLink,
editable: isEditable,
- placeholder: formatLight('unknown'),
+ maxHeight: Infinity,
+ placeholder: formatLight('No description'),
tooltip: isEditable ? 'Doubleclick to edit' : '',
type: 'textarea',
- value: data.description || ''
+ value: data.description || '',
+ //width: 300
})
.bindEvent({
submit: function(event) {
editMetadata('description', event.value);
}
})
+ .css(css)
)
.appendTo($text);
}
- var list_keys = ['language', 'topic', 'director', 'cinematographer', 'features', 'groups'];
+ var listKeys = ['language', 'topic', 'director', 'cinematographer', 'features', 'groups',
+ 'license'];
$('
').html('
').appendTo($text);
[
'source',
@@ -195,15 +199,15 @@ pandora.ui.infoView = function(data) {
'features',
'language',
'topic',
+ 'license',
'user',
].forEach(function(key) {
- var $div = $('
')
- .appendTo($text),
- value = list_keys.indexOf(key) >= 0
+ var $div = $('
').appendTo($text),
+ value = listKeys.indexOf(key) >= 0
? (data[key] || []).join(', ')
: data[key] || '';
- if(isEditable || value) {
+ if (isEditable || value) {
$('
')
.html(
formatKey({
@@ -214,7 +218,7 @@ pandora.ui.infoView = function(data) {
Ox.Editable({
clickLink: pandora.clickLink,
format: function(value) {
- return list_keys.indexOf(key) >= 0
+ return listKeys.indexOf(key) >= 0
? formatValue(value.split(', '), {
'director': 'name',
'cinematographer': 'name',
@@ -225,7 +229,7 @@ pandora.ui.infoView = function(data) {
placeholder: formatLight('unknown'),
editable: isEditable,
tooltip: isEditable ? 'Doubleclick to edit' : '',
- value: list_keys.indexOf(key) >= 0
+ value: listKeys.indexOf(key) >= 0
? (data[key] || []).join(', ')
: data[key] || ''
})
@@ -234,6 +238,7 @@ pandora.ui.infoView = function(data) {
editMetadata(key, event.value);
}
})
+ .css(css)
.appendTo($div);
if(pandora.site.itemKeys.filter(function(item) {
if (item.id == key)
@@ -244,7 +249,7 @@ pandora.ui.infoView = function(data) {
.append(
descriptions[key] = Ox.Editable({
clickLink: pandora.clickLink,
- placeholder: formatLight(Ox.toTitleCase(key) + ' Description'),
+ placeholder: formatLight('No ' + Ox.toTitleCase(key) + ' Description'),
editable: isEditable,
tooltip: isEditable ? 'Doubleclick to edit' : '',
type: 'textarea',
@@ -255,6 +260,7 @@ pandora.ui.infoView = function(data) {
editMetadata(key + 'description', event.value);
}
})
+ .css(css)
).css({
'padding-top': '4px',
'padding-bottom': '4px'
@@ -354,7 +360,7 @@ pandora.ui.infoView = function(data) {
var edit = {id: data.id};
if (key == 'title') {
edit[key] = value;
- } else if(list_keys.indexOf(key) > -1) {
+ } else if(listKeys.indexOf(key) > -1) {
edit[key] = value ? value.split(', ') : [];
} else {
edit[key] = value;
diff --git a/static/js/pandora/usersDialog.js b/static/js/pandora/usersDialog.js
index 5875f37d..ed13ead4 100644
--- a/static/js/pandora/usersDialog.js
+++ b/static/js/pandora/usersDialog.js
@@ -125,6 +125,13 @@ pandora.ui.usersDialog = function() {
visible: true,
width: 60
},
+ {
+ id: 'groups',
+ operator: '+',
+ title: 'Groups',
+ visible: true,
+ width: 90
+ },
{
format: function(value) {
return $('
')
@@ -490,18 +497,6 @@ pandora.ui.usersDialog = function() {
.bindEvent({
submit: function(data) {
- }
- }),
- Ox.Input({
- id: 'groups',
- label: 'Groups',
- labelWidth: 80,
- value: user.groups.join(', '),
- width: formWidth - 16
- })
- .bindEvent({
- submit: function(data) {
-
}
}),
Ox.Select({
@@ -517,6 +512,18 @@ pandora.ui.usersDialog = function() {
value: user.level,
width: formWidth - 16
}),
+ Ox.Input({
+ id: 'groups',
+ label: 'Groups',
+ labelWidth: 80,
+ value: user.groups.join(', '),
+ width: formWidth - 16
+ })
+ .bindEvent({
+ submit: function(data) {
+
+ }
+ }),
Ox.Checkbox({
id: 'newsletter',
label: 'Newsletter',
@@ -534,7 +541,7 @@ pandora.ui.usersDialog = function() {
}
}),
Ox.Input({
- height: dialogHeight - 160,
+ height: dialogHeight - 184,
id: 'notes',
placeholder: 'Notes',
type: 'textarea',