# Conflicts: # .gitignore # app/conf/uwsgi_zuykov.conf.template # trademark/templates/trademark/registration.html # trademark/views.pymaster
commit
86f46363a2
472 changed files with 45343 additions and 27815 deletions
File diff suppressed because one or more lines are too long
@ -0,0 +1,79 @@ |
||||
aldryn-apphooks-config==0.2.6 |
||||
aldryn-boilerplates==0.7.3 |
||||
aldryn-bootstrap3==0.5.2 |
||||
aldryn-common==0.1.4 |
||||
aldryn-translation-tools==0.2.1 |
||||
cmsplugin-filer==0.10.2 |
||||
dj-database-url==0.3.0 |
||||
Django==1.7.8 |
||||
django-admin-enhancer==1.0.0 |
||||
django-admin-extend==0.0.3 |
||||
django-appconf==1.0.1 |
||||
django-appdata==0.1.4 |
||||
django-classy-tags==0.6.2 |
||||
django-cms==3.1.3 |
||||
django-cms-smartsnippets==0.1.3 |
||||
django-debug-toolbar==1.4 |
||||
django-durationfield==0.5.2 |
||||
django-easy-select2==1.3.1 |
||||
django-filer==0.9.12 |
||||
django-formtools==1.0 |
||||
django-ipware==1.1.1 |
||||
django-meta==0.3.1 |
||||
django-meta-mixin==0.2.1 |
||||
django-mptt==0.7.4 |
||||
django-multipleformwizard==0.2.16 |
||||
django-parler==1.5.1 |
||||
django-phonenumber-field==0.7.2 |
||||
django-pipeline==1.5.4 |
||||
django-polymorphic==0.7.2 |
||||
django-reversion==1.9.3 |
||||
django-sekizai==0.8.2 |
||||
Django-Select2==4.3.2 |
||||
django-sortedm2m==1.0.2 |
||||
django-taggit==0.17.3 |
||||
django-taggit-autosuggest==0.2.7 |
||||
django-tinymce==2.0.5 |
||||
django-treebeard==3.0 |
||||
djangocms-admin-style==0.2.8 |
||||
djangocms-column==1.5 |
||||
djangocms-file==0.1 |
||||
djangocms-flash==0.2.0 |
||||
djangocms-forms==0.1.15 |
||||
djangocms-googlemap==0.3 |
||||
djangocms-inherit==0.1 |
||||
djangocms-installer==0.8.1 |
||||
djangocms-link==1.7.1 |
||||
djangocms-picture==0.1 |
||||
djangocms-style==1.5 |
||||
djangocms-teaser==0.1 |
||||
djangocms-text-ckeditor==2.6.0 |
||||
djangocms-video==0.1 |
||||
easy-thumbnails==2.2 |
||||
futures==3.0.3 |
||||
GeoIP==1.3.2 # Hack: http://xazrad.blogspot.ru/2014/12/django-geoip-ubuntu-mac-os-x.html |
||||
hashids==1.1.0 |
||||
html5lib==0.9999999 |
||||
jsonfield==1.0.3 |
||||
mysql==0.0.1 |
||||
MySQL-python==1.2.5 |
||||
newrelic==2.56.0.42 |
||||
phonenumbers==7.1.0 |
||||
Pillow==3.0.0 |
||||
python-dateutil==2.4.2 |
||||
python-slugify==1.1.4 |
||||
pytz==2015.7 |
||||
pyuca==1.1 |
||||
requests==2.8.1 |
||||
six==1.10.0 |
||||
South==1.0.2 |
||||
sqlparse==0.1.18 |
||||
tablib==0.10.0 |
||||
tzlocal==1.2 |
||||
Unidecode==0.4.18 |
||||
vobject==0.6.6 |
||||
YURL==0.13 |
||||
# |
||||
pymorphy2==0.8 |
||||
pymorphy2-dicts==2.4.393442.3710985 |
||||
DAWG-Python==0.7.2 |
||||
@ -1,46 +0,0 @@ |
||||
.select2-container-multi .select2-choices .select2-search-field input { |
||||
min-width: 100px; |
||||
} |
||||
|
||||
.selector select[multiple] { |
||||
display: block; |
||||
} |
||||
|
||||
.selector { |
||||
width: auto; |
||||
margin-right: 12px; |
||||
} |
||||
|
||||
.selector-available, .selector-chosen { |
||||
width: auto; |
||||
} |
||||
|
||||
.selector .selector-available input, .selector .selector-chosen input { |
||||
margin: 0; |
||||
} |
||||
|
||||
form select { |
||||
max-width: 266px; |
||||
} |
||||
|
||||
.as-selections.vTextField { |
||||
width: 300px; |
||||
} |
||||
|
||||
.as-results ul.as-list { |
||||
margin-left:9em; |
||||
padding-left:0; |
||||
box-shadow: none !important; |
||||
border: 1px solid #888888 !important; |
||||
} |
||||
.as-results ul.as-list li { |
||||
list-style: none; |
||||
} |
||||
ul.as-selections.vTextField { |
||||
padding-left: 10px; |
||||
margin-left:9em; |
||||
} |
||||
|
||||
ul.as-selections li { |
||||
list-style: none; |
||||
} |
||||
@ -1,43 +0,0 @@ |
||||
.inline-related { |
||||
border: 1px solid #CCC; |
||||
border-radius: 2px; |
||||
box-shadow: 0 1px 2px 1px rgba(0, 0, 0, 0.08); |
||||
} |
||||
|
||||
.inline-related h3 { |
||||
background-color: #FCFCFC; |
||||
padding: 10px 20px 10px 3px; |
||||
margin: 0; |
||||
text-align: center; |
||||
} |
||||
|
||||
.inline-related .inline_label { |
||||
font-weight: 300; |
||||
} |
||||
|
||||
|
||||
.inline-related .collapse-expand { |
||||
display: inline-block; |
||||
text-transform: uppercase; |
||||
padding: 0px 10px 0px 10px; |
||||
width: 44px; |
||||
float: left; |
||||
text-decoration:none!important; |
||||
} |
||||
|
||||
.add-row { |
||||
height: 26px; |
||||
line-height: 26px; |
||||
text-align: center; |
||||
border: 1px dashed #CCC!important; |
||||
border-radius: 2px; |
||||
margin: 0; |
||||
} |
||||
|
||||
.add-row a { |
||||
display: block; |
||||
padding-left: 14px; |
||||
text-indent: -9999px; |
||||
font-size: 11px; |
||||
background-position: 50% 50%!important; |
||||
} |
||||
@ -1,53 +0,0 @@ |
||||
(function($) { |
||||
$(function() { |
||||
var formsubmission_form = $('#formsubmission_form'); |
||||
var form_field = $('select[id="id_form"]', formsubmission_form); |
||||
var headers_field = $('.field-headers', formsubmission_form); |
||||
|
||||
var loadHeaders = function() { |
||||
if (!form_field.val()) { |
||||
headers_field.slideUp('fast'); |
||||
return; |
||||
} |
||||
|
||||
var data = { |
||||
'csrfmiddlewaretoken': $('input[name="csrfmiddlewaretoken"]').val(), |
||||
'form': $('select[name="form"]').val(), |
||||
'file_type': $('select[name="file_type"]').val() |
||||
}; |
||||
|
||||
$.ajax({ |
||||
type: 'POST', |
||||
url: '', |
||||
data: data, |
||||
success: function(response) { |
||||
if (response.reloadBrowser) { |
||||
location.reload(); |
||||
} |
||||
$('select[id="id_headers_to"]').find('option').remove(); |
||||
|
||||
var headers_input_from = $('select[id="id_headers_from"]'); |
||||
headers_input_from.find('option').remove(); |
||||
|
||||
$.each(response.availableHeaders, function(index, value) { |
||||
headers_input_from.append('<option value=' + value + '>' + value + '</option>'); |
||||
}); |
||||
|
||||
SelectBox.init('id_headers_from'); |
||||
SelectBox.init('id_headers_to'); |
||||
headers_field.slideDown(); |
||||
}, |
||||
error: function() { |
||||
alert('We\'re sorry. Something unexpected happened. Please reload the page and try again.'); |
||||
} |
||||
}); |
||||
|
||||
return false; |
||||
}; |
||||
|
||||
if ($('body').hasClass('export-form')) { |
||||
loadHeaders(); |
||||
form_field.change(loadHeaders); |
||||
} |
||||
}); |
||||
})(django.jQuery); |
||||
@ -1,66 +0,0 @@ |
||||
/* |
||||
Makes all inline forms collapsible. |
||||
*/ |
||||
|
||||
jQuery(function($) { |
||||
$.makeCollapsible = function(target, item, collapsible, triggerTarget, setInitStatus, setFirstStatus) |
||||
{ |
||||
var triggerExpand = 'Edit'; |
||||
var triggerCollapse = 'Done'; |
||||
var triggerClass = 'collapse-expand'; |
||||
var triggerLink = '<a class="' + triggerClass + '" href="javascript:void(0);"></a>'; |
||||
|
||||
$(target).find(item).each(function(i) { |
||||
if ($(this).data('isCollapsible')) return; |
||||
$(this).data('isCollapsible', true); |
||||
|
||||
$(this).find(collapsible).hide(); |
||||
|
||||
// trigger already exists if created with "Add another" link
|
||||
var trigger = $(this).find(triggerTarget).find('.'+triggerClass); |
||||
if (!trigger.length) { |
||||
trigger = $(triggerLink); |
||||
$(this).find(triggerTarget).html(trigger); |
||||
} |
||||
|
||||
var item = this; |
||||
var toggleCollapse = function(status, speed) |
||||
{ |
||||
if (status == null) { |
||||
status = !item.collapseStatus; |
||||
} |
||||
if (speed == null) { |
||||
speed = 1; |
||||
} |
||||
item.collapseStatus = status; |
||||
if (status) { |
||||
trigger.html(triggerCollapse); |
||||
$(item).find(collapsible).slideDown('slow'); |
||||
} else { |
||||
trigger.html(triggerExpand); |
||||
$(item).find(collapsible).slideUp('slow'); |
||||
} |
||||
} |
||||
|
||||
trigger.click(function(event) { |
||||
event.preventDefault(); |
||||
toggleCollapse(null, 'normal') |
||||
}) |
||||
|
||||
// Collapse by default unless there are errors
|
||||
initStatus = setInitStatus != null ? setInitStatus : $(this).find('.errors').length != 0; |
||||
firstStatus = setFirstStatus != null ? setFirstStatus : initStatus; |
||||
|
||||
toggleCollapse(i == 0 ? firstStatus : initStatus) |
||||
}); |
||||
}; |
||||
|
||||
var init = function() { |
||||
$.makeCollapsible('div.inline-group', 'div.inline-related', 'fieldset', 'h3 b'); |
||||
}; |
||||
init(); |
||||
// init again when "Add another" link is clicked
|
||||
$('.add-row a').click(function() { |
||||
init(); |
||||
}) |
||||
}); |
||||
@ -1,95 +0,0 @@ |
||||
/* |
||||
Enables repositioning of all inline elements by drag & drop. |
||||
|
||||
The inline model requires is a "position" field that is blank by default. |
||||
This value will be set automatically by this code snippet when dragging elements. |
||||
The model instances can then be ordered by that "position" field. |
||||
*/ |
||||
|
||||
jQuery(function($) { |
||||
|
||||
var positionField = 'position'; |
||||
var target = $('div.inline-group#fields-group'); |
||||
var handle = 'h3'; |
||||
var item = 'div.inline-related'; |
||||
var positionInput = 'input[id$=-'+positionField+']'; |
||||
var hidePositionFieldClosest = '.form-row'; |
||||
|
||||
var renumberAll = function() { |
||||
var pos = 1; |
||||
target.find(item).each(function(i) { |
||||
$(this).removeClass('odd even').addClass(i % 2 ? 'even' : 'odd'); |
||||
if ($(this).find(positionInput).val() != '') { |
||||
$(this).find(positionInput).val(pos); |
||||
pos++; |
||||
} |
||||
}); |
||||
}; |
||||
|
||||
var init = function() { |
||||
target.find(item).each(function(i) { |
||||
if ($(this).data('isSortable')) return; |
||||
$(this).data('isSortable', true); |
||||
$(this).find(handle).css('cursor', 'ns-resize'); |
||||
$(this).find(handle).addClass('draggable'); |
||||
$(this).find(positionInput).each(function() { |
||||
if (hidePositionFieldClosest) { |
||||
var hidden =$('<input type="hidden" id="'+this.id+'" name="'+this.name+'" />'); |
||||
hidden.val($(this).val()); |
||||
$(this).closest(hidePositionFieldClosest).replaceWith(hidden); |
||||
} |
||||
}); |
||||
$(this).find('input, select, textarea').change(function() { |
||||
$(this).closest(item).find('input[id$='+positionField+']').val('X'); // mark for renumberAll() to fill in
|
||||
renumberAll($('div.inline-group')); |
||||
}); |
||||
}); |
||||
}; |
||||
|
||||
var addRow = target.find('.add-row'); |
||||
addRow.remove(); |
||||
var ordered = []; |
||||
var unordered = []; |
||||
// Initially, remove and re-append all inlines ordered by their "position" value
|
||||
target.find(item).each(function(i) { |
||||
var initialPos = $(this).find(positionInput).val(); |
||||
if (initialPos) { |
||||
while (initialPos < ordered.length && ordered[initialPos]) { |
||||
initialPos++; |
||||
} |
||||
ordered[initialPos] = this; |
||||
} else { |
||||
unordered[unordered.length] = this; |
||||
} |
||||
$(this).removeClass('odd even').addClass(i % 2 ? 'even' : 'odd'); |
||||
this.parentElement.removeChild(this); |
||||
}); |
||||
for (var i = 0; i < ordered.length; i++) { |
||||
var el = ordered[i]; |
||||
if (el) { |
||||
target.append(el); |
||||
} |
||||
} |
||||
// Add "position"-less elements in the end
|
||||
for (var i = 0; i < unordered.length; i++) { |
||||
var el = unordered[i]; |
||||
target.append(el); |
||||
} |
||||
target.append(addRow); |
||||
|
||||
target.sortable({ |
||||
containment: 'parent', |
||||
items: item, |
||||
handle: handle, |
||||
update: renumberAll, |
||||
revert: true, |
||||
opacity: 0.9 |
||||
}); |
||||
|
||||
init(); |
||||
// init again when "Add another" link is clicked
|
||||
$('.add-row a').click(function() { |
||||
init(); |
||||
}); |
||||
|
||||
}); |
||||
@ -1,45 +0,0 @@ |
||||
/* |
||||
Replaces the name in an inline element's header while typing it in the input of the "name" field. |
||||
This way, the extra inline element's header will be named instead of numbered #4, #5 etc. |
||||
*/ |
||||
|
||||
jQuery(function($) { |
||||
|
||||
var target = $('div.inline-group'); |
||||
var item = 'div.inline-related'; |
||||
var nameInput = 'input[id*=-label]'; |
||||
var typeInput = 'select[id*=-field_type]'; |
||||
|
||||
|
||||
var init = function() { |
||||
target.find(item).each(function() { |
||||
var nameField = $(this).find(nameInput); |
||||
var typeField = $(this).find(typeInput); |
||||
var label = $('.inline_label', this); |
||||
var rename = function() { |
||||
if (nameField.val()) { |
||||
label.text(nameField.val()); |
||||
} |
||||
else { |
||||
label.text(typeField.find('option:selected').text() + ' Field'); |
||||
} |
||||
}; |
||||
nameField.keyup(function(event) { |
||||
// Update name while typing
|
||||
rename(); |
||||
}); |
||||
|
||||
typeField.change(function(){ |
||||
rename(); |
||||
}); |
||||
rename(); |
||||
}) |
||||
} |
||||
|
||||
init(); |
||||
|
||||
// init again when "Add another" link is clicked
|
||||
$('.add-row a').click(function() { |
||||
init(); |
||||
}) |
||||
}); |
||||
@ -1,35 +0,0 @@ |
||||
jQuery(function($) { |
||||
var target = $('div.inline-group'); |
||||
var item = 'div.inline-related'; |
||||
var typeInput = 'select[id*=-field_type]'; |
||||
|
||||
var init = function() { |
||||
target.find(item).each(function() { |
||||
var that = $(this); |
||||
var inputField = that.find(typeInput); |
||||
var toggleField = function() { |
||||
var selectedFieldType = inputField.val(); |
||||
var choiceFields = ['checkbox_multiple', 'select', 'radio', 'file']; |
||||
var showChoiceField = $.inArray(selectedFieldType, choiceFields) >= 0; |
||||
that.find('.field-choice_values') |
||||
.toggle(showChoiceField) |
||||
.toggleClass('required', showChoiceField); |
||||
|
||||
that.find('.field-placeholder_text, .field-help_text, .field-choice_values:not(:hidden)') |
||||
.toggle(selectedFieldType != 'hidden') |
||||
|
||||
}; |
||||
inputField.change(function() { |
||||
toggleField(); |
||||
}); |
||||
toggleField(); |
||||
}) |
||||
}; |
||||
|
||||
init(); |
||||
|
||||
// init again when "Add another" link is clicked
|
||||
$('.add-row a').click(function() { |
||||
init(); |
||||
}) |
||||
}); |
||||
@ -1,109 +0,0 @@ |
||||
(function ($) { |
||||
$.fn.djangocms_forms = function (options) { |
||||
if (options === undefined) { options = {}; } |
||||
|
||||
var defaults = { |
||||
form_wrapper: '.form-wrapper', |
||||
field_wrapper: '.field-wrapper', |
||||
form_errors: '.form-errors', |
||||
field_errors: '.field-errors', |
||||
form_success: '.form-success', |
||||
errorlist_css_class: 'errorlist', |
||||
error_css_class: 'error', |
||||
server_error: 'We\'re sorry. Something Unexpected Happened. Please Try Again Later.' |
||||
}; |
||||
|
||||
$('input[type=tel]').inputmask("+7 999 999-99-99"); |
||||
|
||||
if(typeof consultation != "undefined") { |
||||
$('input[name=sotrudnik]').val(consultation.name); |
||||
} |
||||
|
||||
this.each(function(options) { |
||||
var options = $.extend( {}, defaults, options) ; |
||||
|
||||
var el = $(this), |
||||
form_wrapper = $(options.form_wrapper, el), |
||||
form_success = $(options.form_success, el), |
||||
form = $('form', form_wrapper); |
||||
|
||||
|
||||
function clearErrors() { |
||||
form.find(options.form_errors).fadeOut().empty(); //clear form errors
|
||||
form.find(options.field_errors).fadeOut().empty(); //clear field errors
|
||||
form.find(options.field_wrapper).removeClass(options.error_css_class); //remove error classes
|
||||
} |
||||
|
||||
// post-submit callback
|
||||
function ajaxSuccess(response) { |
||||
if (response.status == 'success'){ |
||||
formValid(response.redirect_url); |
||||
} |
||||
else if (response.status == 'error'){ |
||||
formInvalid(response.form_errors); |
||||
} |
||||
} |
||||
|
||||
function formValid(success_url) { |
||||
form_success.fadeIn('slow'); |
||||
form_wrapper.slideUp('slow').remove(); |
||||
|
||||
if (success_url){ |
||||
setTimeout(function(){ |
||||
window.location = success_url; |
||||
}, 1000); |
||||
} |
||||
|
||||
} |
||||
|
||||
function formInvalid(form_errors) { |
||||
clearErrors() |
||||
$.each(form_errors, function(key, value) { |
||||
var field = form.find(':input[name=' + key + ']').first(); |
||||
var field_wrapper = field.parents(options.field_wrapper).addClass(options.error_css_class); |
||||
var field_error = $('<ul/>').addClass(options.errorlist_css_class); |
||||
$.each(value, function(key, value) { |
||||
$('<li>', { |
||||
text: value |
||||
}).appendTo(field_error); |
||||
}); |
||||
field_wrapper.find(options.field_errors).append(field_error).fadeIn('slow') |
||||
}); |
||||
if (form_errors.__all__) { |
||||
var form_error = $('<ul/>').addClass(options.errorlist_css_class); |
||||
$.each(form_errors.__all__, function(key, value) { |
||||
$('<li>', { |
||||
text: value |
||||
}).appendTo(form_error); |
||||
}); |
||||
form.find(options.form_errors).append(form_error).fadeIn('slow'); |
||||
} |
||||
} |
||||
|
||||
function ajaxError() { |
||||
clearErrors(); |
||||
var form_error = $('<ul/>').addClass(options.error_class); |
||||
$('<li>', { |
||||
html: options.server_error |
||||
}).appendTo(form_error); |
||||
form.find(options.form_errors).append(form_error).fadeIn('slow'); |
||||
} |
||||
|
||||
// attach handler to form's submit event
|
||||
form.submit(function () { |
||||
var ajaxOptions = { |
||||
type: 'POST', |
||||
success: ajaxSuccess, |
||||
error: ajaxError |
||||
}; |
||||
// submit the form
|
||||
$(this).ajaxSubmit(ajaxOptions); |
||||
|
||||
form.find('button[type="submit"]').attr('disabled','disabled'); |
||||
|
||||
// return false to prevent normal browser submit and page navigation
|
||||
return false; |
||||
}); |
||||
}); |
||||
}; |
||||
})(jQuery); |
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,139 +0,0 @@ |
||||
0 info it worked if it ends with ok |
||||
1 verbose cli [ 'node', '/usr/local/bin/npm', '-g', 'install', 'yuglify' ] |
||||
2 info using npm@1.4.28 |
||||
3 info using node@v0.10.33 |
||||
4 verbose cache add [ 'yuglify', null ] |
||||
5 verbose cache add name=undefined spec="yuglify" args=["yuglify",null] |
||||
6 verbose parsed url { protocol: null, |
||||
6 verbose parsed url slashes: null, |
||||
6 verbose parsed url auth: null, |
||||
6 verbose parsed url host: null, |
||||
6 verbose parsed url port: null, |
||||
6 verbose parsed url hostname: null, |
||||
6 verbose parsed url hash: null, |
||||
6 verbose parsed url search: null, |
||||
6 verbose parsed url query: null, |
||||
6 verbose parsed url pathname: 'yuglify', |
||||
6 verbose parsed url path: 'yuglify', |
||||
6 verbose parsed url href: 'yuglify' } |
||||
7 silly lockFile a15791f5-yuglify yuglify |
||||
8 verbose lock yuglify /Users/fefa4ka/.npm/a15791f5-yuglify.lock |
||||
9 silly lockFile a15791f5-yuglify yuglify |
||||
10 silly lockFile a15791f5-yuglify yuglify |
||||
11 verbose addNamed [ 'yuglify', '' ] |
||||
12 verbose addNamed [ null, '*' ] |
||||
13 silly lockFile e77d10d2-yuglify yuglify@ |
||||
14 verbose lock yuglify@ /Users/fefa4ka/.npm/e77d10d2-yuglify.lock |
||||
15 silly addNameRange { name: 'yuglify', range: '*', hasData: false } |
||||
16 verbose request where is /yuglify |
||||
17 verbose request registry https://registry.npmjs.org/ |
||||
18 verbose request id b64ae15ba0fed38b |
||||
19 verbose url raw /yuglify |
||||
20 verbose url resolving [ 'https://registry.npmjs.org/', './yuglify' ] |
||||
21 verbose url resolved https://registry.npmjs.org/yuglify |
||||
22 verbose request where is https://registry.npmjs.org/yuglify |
||||
23 info trying registry request attempt 1 at 20:59:19 |
||||
24 http GET https://registry.npmjs.org/yuglify |
||||
25 http 200 https://registry.npmjs.org/yuglify |
||||
26 silly registry.get cb [ 200, |
||||
26 silly registry.get { server: 'CouchDB/1.5.0 (Erlang OTP/R16B03)', |
||||
26 silly registry.get etag: '"6EX7Y8ZUNLQGJO6A3BVILGV17"', |
||||
26 silly registry.get 'content-type': 'application/json', |
||||
26 silly registry.get 'cache-control': 'max-age=60', |
||||
26 silly registry.get 'content-length': '23910', |
||||
26 silly registry.get 'accept-ranges': 'bytes', |
||||
26 silly registry.get date: 'Sun, 02 Aug 2015 17:59:19 GMT', |
||||
26 silly registry.get via: '1.1 varnish', |
||||
26 silly registry.get age: '0', |
||||
26 silly registry.get connection: 'keep-alive', |
||||
26 silly registry.get 'x-served-by': 'cache-fra1243-FRA', |
||||
26 silly registry.get 'x-cache': 'HIT', |
||||
26 silly registry.get 'x-cache-hits': '1', |
||||
26 silly registry.get 'x-timer': 'S1438538359.464688,VS0,VE483', |
||||
26 silly registry.get vary: 'Accept' } ] |
||||
27 silly addNameRange number 2 { name: 'yuglify', range: '*', hasData: true } |
||||
28 silly addNameRange versions [ 'yuglify', |
||||
28 silly addNameRange [ '0.0.1', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4' ] ] |
||||
29 verbose addNamed [ 'yuglify', '0.1.4' ] |
||||
30 verbose addNamed [ '0.1.4', '0.1.4' ] |
||||
31 silly lockFile 2278936e-yuglify-0-1-4 yuglify@0.1.4 |
||||
32 verbose lock yuglify@0.1.4 /Users/fefa4ka/.npm/2278936e-yuglify-0-1-4.lock |
||||
33 silly lockFile 677ad253-js-org-yuglify-yuglify-0-1-4-tgz https://registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz |
||||
34 verbose lock https://registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz /Users/fefa4ka/.npm/677ad253-js-org-yuglify-yuglify-0-1-4-tgz.lock |
||||
35 verbose addRemoteTarball [ 'https://registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz', |
||||
35 verbose addRemoteTarball '726d5e4af810f741ef21865f6f954c4078a3a45f' ] |
||||
36 info retry fetch attempt 1 at 20:59:20 |
||||
37 verbose fetch to= /var/folders/cs/sr52sk7s1yd855sf_12mn6dxl770mb/T/npm-72095-pywUKB2P/registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz |
||||
38 http GET https://registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz |
||||
39 http 200 https://registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz |
||||
40 silly lockFile 677ad253-js-org-yuglify-yuglify-0-1-4-tgz https://registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz |
||||
41 silly lockFile 677ad253-js-org-yuglify-yuglify-0-1-4-tgz https://registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz |
||||
42 silly lockFile 2278936e-yuglify-0-1-4 yuglify@0.1.4 |
||||
43 silly lockFile 2278936e-yuglify-0-1-4 yuglify@0.1.4 |
||||
44 silly lockFile e77d10d2-yuglify yuglify@ |
||||
45 silly lockFile e77d10d2-yuglify yuglify@ |
||||
46 silly resolved [ { name: 'yuglify', |
||||
46 silly resolved description: 'cli wrapper for uglify and cssmin used by YUI', |
||||
46 silly resolved version: '0.1.4', |
||||
46 silly resolved dependencies: { 'uglify-js': '~1.3.4', ycssmin: '~1.0.1', nopt: '~2.1.1' }, |
||||
46 silly resolved devDependencies: { 'yui-lint': '~0.1.1', jshint: '~0.9.0', vows: '*' }, |
||||
46 silly resolved main: './lib/index.js', |
||||
46 silly resolved bin: { yuglify: './bin/yuglify' }, |
||||
46 silly resolved scripts: |
||||
46 silly resolved { pretest: 'jshint --config ./node_modules/yui-lint/jshint.json ./lib/*.js ./bin/yuglify', |
||||
46 silly resolved test: 'vows --spec ./tests/*.js' }, |
||||
46 silly resolved preferGlobal: 'true', |
||||
46 silly resolved bugs: { url: 'http://github.com/yui/yuglify/issues' }, |
||||
46 silly resolved licenses: [ [Object] ], |
||||
46 silly resolved repository: { type: 'git', url: 'http://github.com/yui/yuglify.git' }, |
||||
46 silly resolved readme: 'yUglify\n=======\n\n`yuglify` is a wrapper around [UglifyJS](https://github.com/mishoo/UglifyJS) and [cssmin](https://github.com/jbleuzen/node-cssmin)\nwith the default YUI configurations on each of them.\n\n\nBuild Status\n------------\n\n[](http://travis-ci.org/yui/yuglify)\n\n\nCLI Usage\n----------\n\n npm -g install yuglify\n\n`yuglify` has a very simple CLI interface to allow you to compress files from the command line.\n\n yuglify ./lib/*.js #uses shell globbing, won\'t work on Windows\n\nThis will read all passed files and compress them (js or css) and write them back beside the original\nwith the name altered to `-min.js|css`.\n\nRequired\n--------\n\n npm install yuglify\n\n\n```javascript\n\nvar yuglify = require(\'yuglify\');\n\nyuglify.jsmin(\'<string of source\', function(err, smashed) {\n fs.writeFile(\'/path/to/file\', smashed, \'utf8\', function() {});\n});\n\nyuglify.cssmin(\'<string of source\', function(err, smashed) {\n fs.writeFile(\'/path/to/file\', smashed, \'utf8\', function() {});\n});\n\n```\n\nPurpose\n-------\n\nThis module is primarily designed to be used inside [shifter](http://yui.github.com/shifter/).\n\nWhy not use the default Uglify?\n-------------------------------\n\nWe need to support the `/*!` license comment blocks when minifying, so we added\na preprocessor to the code to pull them from the source, then place them back when\nthe minification is complete.\n\nWe also needed to make sure that the file ends in a clean line ending for our\ncombo servers. This way we ensure that other modules don\'t have to end with a\nsemi-colon and the combohandler doesn\'t concat them together in a bad way.\n\nWe\'ve also added support to add a semi-colon if the last character of the\nminified source is either a `)` or a `}`.\n\nThe last thing this module does is provide the default config that we think\nis the most compatible with the way that YUI Compressor used to minify our\nfiles.\n\n```javascript\n{\n mangle: true,\n squeeze: true,\n semicolon: false,\n lift_vars: false,\n mangle_toplevel: true,\n no_mangle_functions: true,\n max_line_length: 6000\n}\n```\n\nTesting\n-------\n\nCurrently, the tests for this module are just to make sure that they are exported properly.\nShifter\'s test suite validates that these compressors are working as expected. Soon, we\'ll\nmove them over to this repo too.\n', |
||||
46 silly resolved readmeFilename: 'README.md', |
||||
46 silly resolved _id: 'yuglify@0.1.4', |
||||
46 silly resolved dist: |
||||
46 silly resolved { shasum: '726d5e4af810f741ef21865f6f954c4078a3a45f', |
||||
46 silly resolved tarball: 'http://registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz' }, |
||||
46 silly resolved _from: 'yuglify@', |
||||
46 silly resolved _npmVersion: '1.2.15', |
||||
46 silly resolved _npmUser: { name: 'davglass', email: 'davglass@gmail.com' }, |
||||
46 silly resolved maintainers: [ [Object] ], |
||||
46 silly resolved directories: {}, |
||||
46 silly resolved _shasum: '726d5e4af810f741ef21865f6f954c4078a3a45f', |
||||
46 silly resolved _resolved: 'https://registry.npmjs.org/yuglify/-/yuglify-0.1.4.tgz' } ] |
||||
47 info install yuglify@0.1.4 into /usr/local/lib |
||||
48 info installOne yuglify@0.1.4 |
||||
49 verbose lib/node_modules/yuglify unbuild |
||||
50 verbose tar unpack /Users/fefa4ka/.npm/yuglify/0.1.4/package.tgz |
||||
51 silly lockFile f8b66cbf-r-local-lib-node-modules-yuglify tar:///usr/local/lib/node_modules/yuglify |
||||
52 verbose lock tar:///usr/local/lib/node_modules/yuglify /Users/fefa4ka/.npm/f8b66cbf-r-local-lib-node-modules-yuglify.lock |
||||
53 silly lockFile 4ba9cf88-ka-npm-yuglify-0-1-4-package-tgz tar:///Users/fefa4ka/.npm/yuglify/0.1.4/package.tgz |
||||
54 verbose lock tar:///Users/fefa4ka/.npm/yuglify/0.1.4/package.tgz /Users/fefa4ka/.npm/4ba9cf88-ka-npm-yuglify-0-1-4-package-tgz.lock |
||||
55 silly gunzTarPerm modes [ '755', '644' ] |
||||
56 error Error: EACCES, mkdir '/usr/local/lib/node_modules/yuglify' |
||||
56 error { [Error: EACCES, mkdir '/usr/local/lib/node_modules/yuglify'] |
||||
56 error errno: 3, |
||||
56 error code: 'EACCES', |
||||
56 error path: '/usr/local/lib/node_modules/yuglify', |
||||
56 error fstream_type: 'Directory', |
||||
56 error fstream_path: '/usr/local/lib/node_modules/yuglify', |
||||
56 error fstream_class: 'DirWriter', |
||||
56 error fstream_stack: |
||||
56 error [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23', |
||||
56 error '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:46:53', |
||||
56 error 'Object.oncomplete (fs.js:107:15)' ] } |
||||
57 error Please try running this command again as root/Administrator. |
||||
58 error System Darwin 14.0.0 |
||||
59 error command "node" "/usr/local/bin/npm" "-g" "install" "yuglify" |
||||
60 error cwd /Users/fefa4ka/Documents/web/zuykov |
||||
61 error node -v v0.10.33 |
||||
62 error npm -v 1.4.28 |
||||
63 error path /usr/local/lib/node_modules/yuglify |
||||
64 error fstream_path /usr/local/lib/node_modules/yuglify |
||||
65 error fstream_type Directory |
||||
66 error fstream_class DirWriter |
||||
67 error code EACCES |
||||
68 error errno 3 |
||||
69 error stack Error: EACCES, mkdir '/usr/local/lib/node_modules/yuglify' |
||||
70 error fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23 |
||||
70 error fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:46:53 |
||||
70 error fstream_stack Object.oncomplete (fs.js:107:15) |
||||
71 verbose exit [ 3, true ] |
||||
@ -0,0 +1,2 @@ |
||||
# -*- coding: utf-8 -*- |
||||
__version__ = '0.5.2' |
||||
@ -0,0 +1,3 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from .models_admin import GroupAdmin, PersonAdmin # flake8: noqa |
||||
@ -0,0 +1,42 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django.conf import settings |
||||
from django.core.urlresolvers import reverse |
||||
|
||||
from cms.utils.i18n import get_current_language |
||||
|
||||
|
||||
class AllTranslationsAdminMixin(object): |
||||
"""To use this, apply this mixin to your Admin class, then add |
||||
'all_translations' to your list_display list.""" |
||||
|
||||
def all_translations(self, obj): |
||||
"""This is an adapter for the functionality that was in HVAD but not |
||||
in Parler. |
||||
""" |
||||
available = list(obj.get_available_languages()) |
||||
langs = [] |
||||
for lang, _ in settings.LANGUAGES: |
||||
if lang in available: |
||||
langs.append(lang) |
||||
available.remove(lang) |
||||
langs += available |
||||
for idx, lang in enumerate(langs): |
||||
change_form_url = reverse( |
||||
'admin:{app_label}_{model_name}_change'.format( |
||||
app_label=obj._meta.app_label.lower(), |
||||
model_name=obj.__class__.__name__.lower(), |
||||
), args=(obj.id, ) |
||||
) |
||||
link = '<a href="{url}?language={lang}">{lang}</a>'.format( |
||||
url=change_form_url, |
||||
lang=lang, |
||||
) |
||||
if lang == get_current_language(): |
||||
link = "<strong>{0}</strong>".format(link) |
||||
langs[idx] = link |
||||
return ', '.join(langs) |
||||
all_translations.short_description = 'available translations' |
||||
all_translations.allow_tags = True |
||||
@ -0,0 +1,64 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django.contrib import admin |
||||
from django.utils.translation import ugettext_lazy as _ |
||||
|
||||
from parler.admin import TranslatableAdmin |
||||
|
||||
from ..models import Person, Group |
||||
from ..forms import PersonForm |
||||
|
||||
from .base import AllTranslationsAdminMixin |
||||
|
||||
|
||||
class PersonAdmin(AllTranslationsAdminMixin, TranslatableAdmin): |
||||
|
||||
list_display = [ |
||||
'__str__', 'email', 'vcard_enabled', 'all_translations'] |
||||
list_filter = ['group', 'vcard_enabled'] |
||||
search_fields = ('name', 'email', 'translations__function') |
||||
raw_id_fields = ('user',) |
||||
|
||||
fieldsets = ( |
||||
(None, { |
||||
'fields': ( |
||||
'name', 'function', 'slug', 'visual', 'visual_portrait', 'vcard_enabled' |
||||
), |
||||
}), |
||||
(_('Contact'), { |
||||
'fields': ( |
||||
'phone', 'mobile', 'fax', 'email', 'website', 'user' |
||||
), |
||||
}), |
||||
(None, { |
||||
'fields': ( |
||||
'group', 'description', |
||||
), |
||||
}), |
||||
) |
||||
|
||||
form = PersonForm |
||||
|
||||
|
||||
class GroupAdmin(AllTranslationsAdminMixin, TranslatableAdmin): |
||||
|
||||
list_display = ['__str__', 'city', 'all_translations'] |
||||
search_filter = ['name'] |
||||
|
||||
fieldsets = ( |
||||
(None, { |
||||
'fields': ( |
||||
'name', 'description', 'phone', 'fax', 'email', 'website' |
||||
), |
||||
}), |
||||
(_('Address'), { |
||||
'fields': ( |
||||
'address', 'postal_code', 'city' |
||||
), |
||||
}), |
||||
) |
||||
|
||||
admin.site.register(Person, PersonAdmin) |
||||
admin.site.register(Group, GroupAdmin) |
||||
@ -0,0 +1,17 @@ |
||||
{% load aldryn_people_tags i18n thumbnail %} |
||||
|
||||
<div class="people-item"> |
||||
<h2>{{ person.name }} <span>{{ person.function }}</span></h2> |
||||
{% if person.visual %}<p class="people-visual"> |
||||
{% if instance.show_links %}<a href="{{ person.get_absolute_url }}">{% endif %} |
||||
<img src="{% thumbnail person.visual 200x100 crop subject_location=person.visual.subject_location %}" alt="{{ person.name }}" /> |
||||
{% if instance.show_links %}</a>{% endif %} |
||||
</p>{% endif %} |
||||
<p class="people-meta"> |
||||
{% if person.phone %}{% trans "Phone:" %} <span>{{ person.phone|phoneformat }}</span><br />{% endif %} |
||||
{% if person.mobile %}{% trans "Mobile:" %} <span>{{ person.mobile|phoneformat }}</span><br />{% endif %} |
||||
{% if person.email %}{% trans "E-Mail:" %} <a href="mailto:{{ person.email }}">{{ person.email }}</a>{% endif %} |
||||
{% if instance.show_vcard and person.vcard_enabled %}<br /><a href="{% url 'download_vcard' person.slug %}" class="btn-download">{% trans "Download vCard" %}</a>{% endif %} |
||||
</p> |
||||
{% if person.description %}<div class="people-desc">{{ person.description|safe }}</div>{% endif %} |
||||
</div> |
||||
@ -0,0 +1,7 @@ |
||||
{% load i18n thumbnail %} |
||||
|
||||
<ul class="people-items"> |
||||
{% for person in people %} |
||||
<li>{% include "aldryn_people/includes/people_item.html" with person=person %}</li> |
||||
{% endfor %} |
||||
</ul> |
||||
@ -0,0 +1,9 @@ |
||||
{% extends "base.html" %} |
||||
|
||||
{% block content %} |
||||
<div class="plugin plugin-people"> |
||||
<div class="people-detail"> |
||||
{% include "aldryn_people/includes/people_item.html" with person=person %} |
||||
</div> |
||||
</div> |
||||
{% endblock content %} |
||||
@ -0,0 +1,27 @@ |
||||
{% load i18n thumbnail %} |
||||
|
||||
<div class="plugin plugin-people"> |
||||
{% if people_groups %} |
||||
{# Because of hvad I have to activate the plugin's language :( #} |
||||
{% language instance.language %} |
||||
{% for group, people_list in people_groups.items %} |
||||
{% if group.name %} |
||||
<div class="people-group"> |
||||
<h2>{{ group.name }}</h2> |
||||
<div class="people-lead">{{ group.description|safe }}</div> |
||||
<p class="people-desc"> |
||||
{% if group.phone %}{% trans "Phone:" %} <span>{{ group.phone }}</span><br />{% endif %} |
||||
{% trans "Address:" %} |
||||
<span>{{ group.address }}</span> |
||||
</p> |
||||
</div> |
||||
{% endif %} |
||||
{% include "aldryn_people/includes/people_items.html" with people=people_list %} |
||||
{% endfor %} |
||||
{% endlanguage %} |
||||
{% endif %} |
||||
|
||||
{% if not people_groups %} |
||||
{% include "aldryn_people/includes/people_items.html" %} |
||||
{% endif %} |
||||
</div> |
||||
@ -0,0 +1,27 @@ |
||||
{% load i18n thumbnail %} |
||||
|
||||
<div class="plugin plugin-people"> |
||||
{% if people_groups %} |
||||
{# Because of hvad I have to activate the plugin's language :( #} |
||||
{% language instance.language %} |
||||
{% for group, people_list in people_groups.items %} |
||||
{% if group.name %} |
||||
<div class="people-group"> |
||||
<h2>{{ group.name }}</h2> |
||||
<div class="people-lead">{{ group.description|safe }}</div> |
||||
<p class="people-desc"> |
||||
{% if group.phone %}{% trans "Phone:" %} <span>{{ group.phone }}</span><br />{% endif %} |
||||
{% trans "Address:" %} |
||||
<span>{{ group.address }}</span> |
||||
</p> |
||||
</div> |
||||
{% endif %} |
||||
{% include "aldryn_people/includes/people_items.html" with people=people_list %} |
||||
{% endfor %} |
||||
{% endlanguage %} |
||||
{% endif %} |
||||
|
||||
{% if not people_groups %} |
||||
{% include "aldryn_people/includes/people_items.html" %} |
||||
{% endif %} |
||||
</div> |
||||
@ -0,0 +1,27 @@ |
||||
{% load i18n thumbnail %} |
||||
|
||||
<div class="plugin plugin-people"> |
||||
{% if people_groups %} |
||||
{# Because of hvad I have to activate the plugin's language :( #} |
||||
{% language instance.language %} |
||||
{% for group, people_list in people_groups.items %} |
||||
{% if group.name %} |
||||
<div class="people-group"> |
||||
<h2>{{ group.name }}</h2> |
||||
<div class="people-lead">{{ group.description|safe }}</div> |
||||
<p class="people-desc"> |
||||
{% if group.phone %}{% trans "Phone:" %} <span>{{ group.phone }}</span><br />{% endif %} |
||||
{% trans "Address:" %} |
||||
<span>{{ group.address }}</span> |
||||
</p> |
||||
</div> |
||||
{% endif %} |
||||
{% include "aldryn_people/includes/people_items.html" with people=people_list %} |
||||
{% endfor %} |
||||
{% endlanguage %} |
||||
{% endif %} |
||||
|
||||
{% if not people_groups %} |
||||
{% include "aldryn_people/includes/people_items.html" %} |
||||
{% endif %} |
||||
</div> |
||||
@ -0,0 +1,17 @@ |
||||
{% load aldryn_people_tags i18n thumbnail %} |
||||
|
||||
<div class="people-item"> |
||||
<h2>{{ person.name }} <span>{{ person.function }}</span></h2> |
||||
{% if person.visual %}<p class="people-visual"> |
||||
{% if instance.show_links %}<a href="{{ person.get_absolute_url }}">{% endif %} |
||||
<img src="{% thumbnail person.visual 200x100 crop subject_location=person.visual.subject_location %}" alt="{{ person.name }}" /> |
||||
{% if instance.show_links %}</a>{% endif %} |
||||
</p>{% endif %} |
||||
<p class="people-meta"> |
||||
{% if person.phone %}{% trans "Phone:" %} <span>{{ person.phone|phoneformat }}</span><br />{% endif %} |
||||
{% if person.mobile %}{% trans "Mobile:" %} <span>{{ person.mobile|phoneformat }}</span><br />{% endif %} |
||||
{% if person.email %}{% trans "E-Mail:" %} <a href="mailto:{{ person.email }}">{{ person.email }}</a>{% endif %} |
||||
{% if instance.show_vcard and person.vcard_enabled %}<br /><a href="{% url 'download_vcard' person.slug %}" class="btn-download">{% trans "Download vCard" %}</a>{% endif %} |
||||
</p> |
||||
{% if person.description %}<div class="people-desc">{{ person.description|safe }}</div>{% endif %} |
||||
</div> |
||||
@ -0,0 +1,7 @@ |
||||
{% load i18n thumbnail %} |
||||
|
||||
<ul class="people-items"> |
||||
{% for person in people %} |
||||
<li>{% include "aldryn_people/includes/people_item.html" with person=person %}</li> |
||||
{% endfor %} |
||||
</ul> |
||||
@ -0,0 +1,9 @@ |
||||
{% extends "base.html" %} |
||||
|
||||
{% block content %} |
||||
<div class="plugin plugin-people"> |
||||
<div class="people-detail"> |
||||
{% include "aldryn_people/includes/people_item.html" with person=person %} |
||||
</div> |
||||
</div> |
||||
{% endblock content %} |
||||
@ -0,0 +1,27 @@ |
||||
{% load i18n thumbnail %} |
||||
|
||||
<div class="plugin plugin-people"> |
||||
{% if people_groups %} |
||||
{# Because of hvad I have to activate the plugin's language :( #} |
||||
{% language instance.language %} |
||||
{% for group, people_list in people_groups.items %} |
||||
{% if group.name %} |
||||
<div class="people-group"> |
||||
<h2>{{ group.name }}</h2> |
||||
<div class="people-lead">{{ group.description|safe }}</div> |
||||
<p class="people-desc"> |
||||
{% if group.phone %}{% trans "Phone:" %} <span>{{ group.phone }}</span><br />{% endif %} |
||||
{% trans "Address:" %} |
||||
<span>{{ group.address }}</span> |
||||
</p> |
||||
</div> |
||||
{% endif %} |
||||
{% include "aldryn_people/includes/people_items.html" with people=people_list %} |
||||
{% endfor %} |
||||
{% endlanguage %} |
||||
{% endif %} |
||||
|
||||
{% if not people_groups %} |
||||
{% include "aldryn_people/includes/people_items.html" %} |
||||
{% endif %} |
||||
</div> |
||||
@ -0,0 +1,27 @@ |
||||
{% load i18n thumbnail %} |
||||
|
||||
<div class="plugin plugin-people"> |
||||
{% if people_groups %} |
||||
{# Because of hvad I have to activate the plugin's language :( #} |
||||
{% language instance.language %} |
||||
{% for group, people_list in people_groups.items %} |
||||
{% if group.name %} |
||||
<div class="people-group"> |
||||
<h2>{{ group.name }}</h2> |
||||
<div class="people-lead">{{ group.description|safe }}</div> |
||||
<p class="people-desc"> |
||||
{% if group.phone %}{% trans "Phone:" %} <span>{{ group.phone }}</span><br />{% endif %} |
||||
{% trans "Address:" %} |
||||
<span>{{ group.address }}</span> |
||||
</p> |
||||
</div> |
||||
{% endif %} |
||||
{% include "aldryn_people/includes/people_items.html" with people=people_list %} |
||||
{% endfor %} |
||||
{% endlanguage %} |
||||
{% endif %} |
||||
|
||||
{% if not people_groups %} |
||||
{% include "aldryn_people/includes/people_items.html" %} |
||||
{% endif %} |
||||
</div> |
||||
@ -0,0 +1,27 @@ |
||||
{% load i18n thumbnail %} |
||||
|
||||
<div class="plugin plugin-people"> |
||||
{% if people_groups %} |
||||
{# Because of hvad I have to activate the plugin's language :( #} |
||||
{% language instance.language %} |
||||
{% for group, people_list in people_groups.items %} |
||||
{% if group.name %} |
||||
<div class="people-group"> |
||||
<h2>{{ group.name }}</h2> |
||||
<div class="people-lead">{{ group.description|safe }}</div> |
||||
<p class="people-desc"> |
||||
{% if group.phone %}{% trans "Phone:" %} <span>{{ group.phone }}</span><br />{% endif %} |
||||
{% trans "Address:" %} |
||||
<span>{{ group.address }}</span> |
||||
</p> |
||||
</div> |
||||
{% endif %} |
||||
{% include "aldryn_people/includes/people_items.html" with people=people_list %} |
||||
{% endfor %} |
||||
{% endlanguage %} |
||||
{% endif %} |
||||
|
||||
{% if not people_groups %} |
||||
{% include "aldryn_people/includes/people_items.html" %} |
||||
{% endif %} |
||||
</div> |
||||
@ -0,0 +1,16 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django.utils.translation import ugettext_lazy as _ |
||||
|
||||
from cms.app_base import CMSApp |
||||
from cms.apphook_pool import apphook_pool |
||||
|
||||
|
||||
class PeopleApp(CMSApp): |
||||
name = _('People') |
||||
urls = ['aldryn_people.urls'] |
||||
app_name = 'aldryn_people' |
||||
|
||||
apphook_pool.register(PeopleApp) |
||||
@ -0,0 +1,50 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from collections import defaultdict |
||||
|
||||
from django.utils.translation import ugettext_lazy as _ |
||||
|
||||
from cms.plugin_base import CMSPluginBase |
||||
from cms.plugin_pool import plugin_pool |
||||
|
||||
from aldryn_people import models |
||||
|
||||
|
||||
class PeoplePlugin(CMSPluginBase): |
||||
|
||||
TEMPLATE_NAME = 'aldryn_people/plugins/%s/people_list.html' |
||||
module = 'People' |
||||
render_template = TEMPLATE_NAME % models.PeoplePlugin.STYLE_CHOICES[0][0] |
||||
name = _('People list') |
||||
model = models.PeoplePlugin |
||||
|
||||
def group_people(self, people, language): |
||||
groups = defaultdict(list) |
||||
|
||||
for people in people: |
||||
groups[people.group].append(people) |
||||
|
||||
# Python/Django bug ? |
||||
groups.default_factory = None |
||||
return groups |
||||
|
||||
def render(self, context, instance, placeholder): |
||||
people = instance.get_selected_people() |
||||
self.render_template = self.TEMPLATE_NAME % instance.style |
||||
|
||||
context['instance'] = instance |
||||
context['people'] = people |
||||
|
||||
if (models.Group.objects.filter(person__in=people).exists() and |
||||
instance.group_by_group): |
||||
context['people_groups'] = self.group_people( |
||||
people, instance.language) |
||||
context['group_less_people'] = people.filter(group__isnull=True) |
||||
else: |
||||
context['people_groups'] = [] |
||||
context['group_less_people'] = [] |
||||
return context |
||||
|
||||
plugin_pool.register_plugin(PeoplePlugin) |
||||
@ -0,0 +1,30 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from parler.forms import TranslatableModelForm |
||||
|
||||
from .models import Person |
||||
|
||||
|
||||
class PersonForm(TranslatableModelForm): |
||||
class Meta: |
||||
model = Person |
||||
fields = [ |
||||
'description', |
||||
'email', |
||||
'fax', |
||||
'function', |
||||
'group', |
||||
'mobile', |
||||
'name', |
||||
'phone', |
||||
'slug', |
||||
'user', |
||||
'vcard_enabled', |
||||
'visual', |
||||
'website', |
||||
] |
||||
|
||||
def clean_slug(self): |
||||
return self.cleaned_data['slug'] or None |
||||
@ -0,0 +1,119 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import models, migrations |
||||
import django.db.models.deletion |
||||
import djangocms_text_ckeditor.fields |
||||
import filer.fields.image |
||||
from django.conf import settings |
||||
import sortedm2m.fields |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
dependencies = [ |
||||
('cms', '0003_auto_20140926_2347'), |
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
||||
('filer', '__first__'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.CreateModel( |
||||
name='Group', |
||||
fields=[ |
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), |
||||
('address', models.TextField(verbose_name='address', blank=True)), |
||||
('postal_code', models.CharField(max_length=20, verbose_name='postal code', blank=True)), |
||||
('city', models.CharField(max_length=255, verbose_name='city', blank=True)), |
||||
('phone', models.CharField(max_length=100, null=True, verbose_name='phone', blank=True)), |
||||
('fax', models.CharField(max_length=100, null=True, verbose_name='fax', blank=True)), |
||||
('email', models.EmailField(default='', max_length=75, verbose_name='email', blank=True)), |
||||
('website', models.URLField(null=True, verbose_name='website', blank=True)), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Group', |
||||
'verbose_name_plural': 'Groups', |
||||
}, |
||||
bases=(models.Model,), |
||||
), |
||||
migrations.CreateModel( |
||||
name='GroupTranslation', |
||||
fields=[ |
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), |
||||
('name', models.CharField(max_length=255, verbose_name='name')), |
||||
('description', djangocms_text_ckeditor.fields.HTMLField(verbose_name='description', blank=True)), |
||||
('language_code', models.CharField(max_length=15, db_index=True)), |
||||
('master', models.ForeignKey(related_name='translations', editable=False, to='aldryn_people.Group', null=True)), |
||||
], |
||||
options={ |
||||
'abstract': False, |
||||
'db_table': 'aldryn_people_group_translation', |
||||
}, |
||||
bases=(models.Model,), |
||||
), |
||||
migrations.CreateModel( |
||||
name='PeoplePlugin', |
||||
fields=[ |
||||
('cmsplugin_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='cms.CMSPlugin')), |
||||
('style', models.CharField(default='standard', max_length=50, verbose_name='Style', choices=[('standard', 'Standard'), ('feature', 'Feature')])), |
||||
('group_by_group', models.BooleanField(default=True, help_text='when checked, people are grouped by their group', verbose_name='group by group')), |
||||
('show_links', models.BooleanField(default=False, verbose_name='Show links to Detail Page')), |
||||
('show_vcard', models.BooleanField(default=False, verbose_name='Show links to download vCard')), |
||||
], |
||||
options={ |
||||
'abstract': False, |
||||
}, |
||||
bases=('cms.cmsplugin',), |
||||
), |
||||
migrations.CreateModel( |
||||
name='Person', |
||||
fields=[ |
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), |
||||
('name', models.CharField(max_length=255, verbose_name='name')), |
||||
('phone', models.CharField(max_length=100, null=True, verbose_name='phone', blank=True)), |
||||
('mobile', models.CharField(max_length=100, null=True, verbose_name='mobile', blank=True)), |
||||
('fax', models.CharField(max_length=100, null=True, verbose_name='fax', blank=True)), |
||||
('email', models.EmailField(default='', max_length=75, verbose_name='email', blank=True)), |
||||
('website', models.URLField(null=True, verbose_name='website', blank=True)), |
||||
('slug', models.CharField(max_length=255, unique=True, null=True, verbose_name='unique slug', blank=True)), |
||||
('vcard_enabled', models.BooleanField(default=True, verbose_name='enable vCard download')), |
||||
('group', models.ForeignKey(verbose_name='group', blank=True, to='aldryn_people.Group', null=True)), |
||||
('user', models.ForeignKey(null=True, blank=True, to=settings.AUTH_USER_MODEL, unique=True)), |
||||
('visual', filer.fields.image.FilerImageField(on_delete=django.db.models.deletion.SET_NULL, default=None, blank=True, to='filer.Image', null=True)), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Person', |
||||
'verbose_name_plural': 'People', |
||||
}, |
||||
bases=(models.Model,), |
||||
), |
||||
migrations.CreateModel( |
||||
name='PersonTranslation', |
||||
fields=[ |
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), |
||||
('function', models.CharField(default='', max_length=255, verbose_name='function', blank=True)), |
||||
('description', djangocms_text_ckeditor.fields.HTMLField(default='', verbose_name='Description', blank=True)), |
||||
('language_code', models.CharField(max_length=15, db_index=True)), |
||||
('master', models.ForeignKey(related_name='translations', editable=False, to='aldryn_people.Person', null=True)), |
||||
], |
||||
options={ |
||||
'abstract': False, |
||||
'db_table': 'aldryn_people_person_translation', |
||||
}, |
||||
bases=(models.Model,), |
||||
), |
||||
migrations.AlterUniqueTogether( |
||||
name='persontranslation', |
||||
unique_together=set([('language_code', 'master')]), |
||||
), |
||||
migrations.AddField( |
||||
model_name='peopleplugin', |
||||
name='people', |
||||
field=sortedm2m.fields.SortedManyToManyField(help_text=None, to='aldryn_people.Person', null=True, blank=True), |
||||
preserve_default=True, |
||||
), |
||||
migrations.AlterUniqueTogether( |
||||
name='grouptranslation', |
||||
unique_together=set([('language_code', 'master')]), |
||||
), |
||||
] |
||||
@ -0,0 +1,34 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import models, migrations |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
dependencies = [ |
||||
('aldryn_people', '0001_initial'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.AlterModelOptions( |
||||
name='grouptranslation', |
||||
options={'default_permissions': (), 'verbose_name': 'Group Translation'}, |
||||
), |
||||
migrations.AlterModelOptions( |
||||
name='persontranslation', |
||||
options={'default_permissions': (), 'verbose_name': 'Person Translation'}, |
||||
), |
||||
migrations.AlterField( |
||||
model_name='grouptranslation', |
||||
name='language_code', |
||||
field=models.CharField(db_index=True, max_length=15, verbose_name='Language', choices=[(b'en', b'English')]), |
||||
preserve_default=True, |
||||
), |
||||
migrations.AlterField( |
||||
model_name='persontranslation', |
||||
name='language_code', |
||||
field=models.CharField(db_index=True, max_length=15, verbose_name='Language', choices=[(b'en', b'English')]), |
||||
preserve_default=True, |
||||
), |
||||
] |
||||
@ -0,0 +1,21 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import models, migrations |
||||
import aldryn_common.admin_fields.sortedm2m |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
dependencies = [ |
||||
('aldryn_people', '0002_auto_20150128_1411'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.AlterField( |
||||
model_name='peopleplugin', |
||||
name='people', |
||||
field=aldryn_common.admin_fields.sortedm2m.SortedM2MModelField(help_text=None, to='aldryn_people.Person', null=True, blank=True), |
||||
preserve_default=True, |
||||
), |
||||
] |
||||
@ -0,0 +1,34 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import models, migrations |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
dependencies = [ |
||||
('aldryn_people', '0003_auto_20150425_2103'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.AlterModelOptions( |
||||
name='grouptranslation', |
||||
options={'default_permissions': (), 'verbose_name': 'Group Translation', 'managed': True}, |
||||
), |
||||
migrations.AlterModelOptions( |
||||
name='persontranslation', |
||||
options={'default_permissions': (), 'verbose_name': 'Person Translation', 'managed': True}, |
||||
), |
||||
migrations.AlterField( |
||||
model_name='grouptranslation', |
||||
name='language_code', |
||||
field=models.CharField(max_length=15, verbose_name='Language', db_index=True), |
||||
preserve_default=True, |
||||
), |
||||
migrations.AlterField( |
||||
model_name='persontranslation', |
||||
name='language_code', |
||||
field=models.CharField(max_length=15, verbose_name='Language', db_index=True), |
||||
preserve_default=True, |
||||
), |
||||
] |
||||
@ -0,0 +1,248 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
import base64 |
||||
import urlparse |
||||
import aldryn_common |
||||
import warnings |
||||
import vobject |
||||
|
||||
from django.core.urlresolvers import reverse |
||||
from django.conf import settings |
||||
from django.db import models |
||||
from django.utils.encoding import python_2_unicode_compatible |
||||
from django.utils.translation import ugettext_lazy as _ |
||||
try: |
||||
from django.utils.text import slugify |
||||
except ImportError: |
||||
# In Djano <= 1.4 slugify is here |
||||
from django.template.defaultfilters import slugify |
||||
|
||||
from cms.models.pluginmodel import CMSPlugin |
||||
from djangocms_text_ckeditor.fields import HTMLField |
||||
from filer.fields.image import FilerImageField |
||||
from parler.models import TranslatableModel, TranslatedFields |
||||
import aldryn_common.admin_fields.sortedm2m |
||||
|
||||
from .utils import get_additional_styles |
||||
|
||||
|
||||
@python_2_unicode_compatible |
||||
class Group(TranslatableModel): |
||||
translations = TranslatedFields( |
||||
name=models.CharField(_('name'), max_length=255), |
||||
description=HTMLField(_('description'), blank=True), |
||||
address=models.TextField( |
||||
verbose_name=_('address'), blank=True), |
||||
city=models.CharField( |
||||
verbose_name=_('city'), max_length=255, blank=True) |
||||
) |
||||
postal_code = models.CharField( |
||||
verbose_name=_('postal code'), max_length=20, blank=True) |
||||
phone = models.CharField( |
||||
verbose_name=_('phone'), null=True, blank=True, max_length=100) |
||||
fax = models.CharField( |
||||
verbose_name=_('fax'), null=True, blank=True, max_length=100) |
||||
email = models.EmailField( |
||||
verbose_name=_('email'), blank=True, default='') |
||||
website = models.URLField( |
||||
verbose_name=_('website'), null=True, blank=True) |
||||
|
||||
@property |
||||
def company_name(self): |
||||
warnings.warn( |
||||
'"Group.company_name" has been refactored to "Group.name"', |
||||
DeprecationWarning |
||||
) |
||||
return self.safe_translation_getter('name') |
||||
|
||||
@property |
||||
def company_description(self): |
||||
warnings.warn( |
||||
'"Group.company_description" has been refactored to ' |
||||
'"Group.description"', |
||||
DeprecationWarning |
||||
) |
||||
return self.safe_translation_getter('description') |
||||
|
||||
def __str__(self): |
||||
return self.safe_translation_getter('name', str(self.pk)) |
||||
|
||||
class Meta: |
||||
verbose_name = _('Group') |
||||
verbose_name_plural = _('Groups') |
||||
|
||||
|
||||
@python_2_unicode_compatible |
||||
class Person(TranslatableModel): |
||||
translations = TranslatedFields( |
||||
function=models.CharField( |
||||
_('function'), max_length=255, blank=True, default=''), |
||||
description=HTMLField( |
||||
_('Description'), blank=True, default=''), |
||||
name=models.CharField( |
||||
verbose_name=_('name'), max_length=255) |
||||
) |
||||
phone = models.CharField( |
||||
verbose_name=_('phone'), null=True, blank=True, max_length=100) |
||||
mobile = models.CharField( |
||||
verbose_name=_('mobile'), null=True, blank=True, max_length=100) |
||||
fax = models.CharField( |
||||
verbose_name=_('fax'), null=True, blank=True, max_length=100) |
||||
email = models.EmailField( |
||||
verbose_name=_("email"), blank=True, default='') |
||||
website = models.URLField( |
||||
verbose_name=_('website'), null=True, blank=True) |
||||
group = models.ForeignKey( |
||||
Group, verbose_name=_('group'), blank=True, null=True) |
||||
visual = FilerImageField( |
||||
null=True, blank=True, default=None, on_delete=models.SET_NULL, related_name='visual') |
||||
visual_portrait = FilerImageField( |
||||
null=True, blank=True, default=None, on_delete=models.SET_NULL, related_name='visual_portrait') |
||||
slug = models.CharField( |
||||
verbose_name=_('unique slug'), max_length=255, blank=True, null=True, |
||||
unique=True) |
||||
vcard_enabled = models.BooleanField( |
||||
verbose_name=_('enable vCard download'), default=True) |
||||
user = models.ForeignKey( |
||||
getattr(settings, 'AUTH_USER_MODEL', 'auth.User'), |
||||
null=True, blank=True, unique=True) |
||||
|
||||
class Meta: |
||||
verbose_name = _('Person') |
||||
verbose_name_plural = _('People') |
||||
|
||||
def __str__(self): |
||||
return self.name |
||||
|
||||
@property |
||||
def comment(self): |
||||
return self.safe_translation_getter('description', '') |
||||
|
||||
def get_absolute_url(self): |
||||
if self.slug: |
||||
kwargs = {'slug': self.slug} |
||||
else: |
||||
kwargs = {'pk': self.pk} |
||||
return reverse('aldryn_people:person-detail', kwargs=kwargs) |
||||
|
||||
def get_vcard(self, request=None): |
||||
if self.group: |
||||
group_name = self.group.safe_translation_getter('name') |
||||
else: |
||||
group_name = '' |
||||
function = self.safe_translation_getter('function') |
||||
|
||||
vcard = vobject.vCard() |
||||
vcard.add('n').value = vobject.vcard.Name(given=self.name) |
||||
vcard.add('fn').value = self.name |
||||
|
||||
if self.visual: |
||||
try: |
||||
with open(self.visual.path, 'rb') as f: |
||||
photo = vcard.add('photo') |
||||
photo.type_param = self.visual.extension.upper() |
||||
photo.value = base64.b64encode(f.read()) |
||||
photo.encoded = True |
||||
photo.encoding_param = 'B' |
||||
except IOError: |
||||
if request: |
||||
photo = vcard.add('photo') |
||||
photo.type_param = self.visual.extension.upper() |
||||
photo.value = urlparse.urljoin( |
||||
request.build_absolute_uri(), self.visual.url) |
||||
|
||||
if self.email: |
||||
vcard.add('email').value = self.email |
||||
if function: |
||||
vcard.add('title').value = function |
||||
if self.phone: |
||||
tel = vcard.add('tel') |
||||
tel.value = unicode(self.phone) |
||||
tel.type_param = 'WORK' |
||||
if self.mobile: |
||||
tel = vcard.add('tel') |
||||
tel.value = unicode(self.mobile) |
||||
tel.type_param = 'CELL' |
||||
if self.fax: |
||||
fax = vcard.add('tel') |
||||
fax.value = unicode(self.fax) |
||||
fax.type_param = 'FAX' |
||||
if self.website: |
||||
website = vcard.add('url') |
||||
website.value = unicode(self.website) |
||||
|
||||
if self.group: |
||||
if group_name: |
||||
vcard.add('org').value = [group_name] |
||||
if self.group.address or self.group.city or self.group.postal_code: |
||||
vcard.add('adr') |
||||
vcard.adr.type_param = 'WORK' |
||||
vcard.adr.value = vobject.vcard.Address() |
||||
if self.group.address: |
||||
vcard.adr.value.street = self.group.address |
||||
if self.group.city: |
||||
vcard.adr.value.city = self.group.city |
||||
if self.group.postal_code: |
||||
vcard.adr.value.code = self.group.postal_code |
||||
if self.group.phone: |
||||
tel = vcard.add('tel') |
||||
tel.value = unicode(self.group.phone) |
||||
tel.type_param = 'WORK' |
||||
if self.group.fax: |
||||
fax = vcard.add('tel') |
||||
fax.value = unicode(self.group.fax) |
||||
fax.type_param = 'FAX' |
||||
if self.group.website: |
||||
website = vcard.add('url') |
||||
website.value = unicode(self.group.website) |
||||
|
||||
return vcard.serialize() |
||||
|
||||
def save(self, **kwargs): |
||||
name = self.safe_translation_getter('name') |
||||
if not self.slug: |
||||
self.slug = slugify(name) |
||||
return super(Person, self).save(**kwargs) |
||||
|
||||
|
||||
@python_2_unicode_compatible |
||||
class BasePeoplePlugin(CMSPlugin): |
||||
|
||||
STYLE_CHOICES = [ |
||||
('standard', _('Standard')), |
||||
('feature', _('Feature')) |
||||
] + get_additional_styles() |
||||
|
||||
style = models.CharField( |
||||
_('Style'), choices=STYLE_CHOICES, |
||||
default=STYLE_CHOICES[0][0], max_length=50) |
||||
people = aldryn_common.admin_fields.sortedm2m.SortedM2MModelField( |
||||
Person, blank=True, null=True) |
||||
group_by_group = models.BooleanField( |
||||
verbose_name=_('group by group'), |
||||
default=True, |
||||
help_text=_('when checked, people are grouped by their group') |
||||
) |
||||
show_links = models.BooleanField( |
||||
verbose_name=_('Show links to Detail Page'), default=False) |
||||
show_vcard = models.BooleanField( |
||||
verbose_name=_('Show links to download vCard'), default=False) |
||||
|
||||
class Meta: |
||||
abstract = True |
||||
|
||||
def __str__(self): |
||||
return unicode(self.pk) |
||||
|
||||
def copy_relations(self, oldinstance): |
||||
self.people = oldinstance.people.all() |
||||
|
||||
def get_selected_people(self): |
||||
return self.people.select_related('group', 'visual') |
||||
|
||||
|
||||
class PeoplePlugin(BasePeoplePlugin): |
||||
|
||||
class Meta: |
||||
abstract = False |
||||
@ -0,0 +1,34 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django.conf import settings |
||||
|
||||
from aldryn_search.utils import get_index_base, strip_tags |
||||
|
||||
from .models import Person |
||||
|
||||
|
||||
class PeopleIndex(get_index_base()): |
||||
haystack_use_for_indexing = getattr(settings, "ALDRYN_PEOPLE_SEARCH", True) |
||||
|
||||
INDEX_TITLE = True |
||||
|
||||
def get_title(self, obj): |
||||
return obj.name |
||||
|
||||
def get_description(self, obj): |
||||
return obj.description |
||||
|
||||
def get_index_kwargs(self, language): |
||||
return {'translations__language_code': language} |
||||
|
||||
def get_index_queryset(self, language): |
||||
return self.get_model().objects.active_translations( |
||||
language_code=language) |
||||
|
||||
def get_model(self): |
||||
return Person |
||||
|
||||
def get_search_data(self, obj, language, request): |
||||
return strip_tags(self.get_description(obj)).strip() |
||||
@ -0,0 +1,159 @@ |
||||
# -*- coding: utf-8 -*- |
||||
import datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding model 'GroupTranslation' |
||||
db.create_table(u'aldryn_people_group_translation', ( |
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
||||
('company_name', self.gf('django.db.models.fields.CharField')(max_length=255)), |
||||
('language_code', self.gf('django.db.models.fields.CharField')(max_length=15, db_index=True)), |
||||
('master', self.gf('django.db.models.fields.related.ForeignKey')(related_name='translations', null=True, to=orm['aldryn_people.Group'])), |
||||
)) |
||||
db.send_create_signal(u'aldryn_people', ['GroupTranslation']) |
||||
|
||||
# Adding unique constraint on 'GroupTranslation', fields ['language_code', 'master'] |
||||
db.create_unique(u'aldryn_people_group_translation', ['language_code', 'master_id']) |
||||
|
||||
# Adding model 'Group' |
||||
db.create_table(u'aldryn_people_group', ( |
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
||||
('address', self.gf('django.db.models.fields.TextField')()), |
||||
('postal_code', self.gf('django.db.models.fields.CharField')(max_length=20)), |
||||
('city', self.gf('django.db.models.fields.CharField')(max_length=255)), |
||||
('phone', self.gf('phonenumber_field.modelfields.PhoneNumberField')(max_length=128, null=True, blank=True)), |
||||
)) |
||||
db.send_create_signal(u'aldryn_people', ['Group']) |
||||
|
||||
# Adding model 'PersonTranslation' |
||||
db.create_table(u'aldryn_people_person_translation', ( |
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
||||
('function', self.gf('django.db.models.fields.CharField')(max_length=255)), |
||||
('comment', self.gf('django.db.models.fields.TextField')(default='', blank=True)), |
||||
('language_code', self.gf('django.db.models.fields.CharField')(max_length=15, db_index=True)), |
||||
('master', self.gf('django.db.models.fields.related.ForeignKey')(related_name='translations', null=True, to=orm['aldryn_people.Person'])), |
||||
)) |
||||
db.send_create_signal(u'aldryn_people', ['PersonTranslation']) |
||||
|
||||
# Adding unique constraint on 'PersonTranslation', fields ['language_code', 'master'] |
||||
db.create_unique(u'aldryn_people_person_translation', ['language_code', 'master_id']) |
||||
|
||||
# Adding model 'Person' |
||||
db.create_table(u'aldryn_people_person', ( |
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
||||
('name', self.gf('django.db.models.fields.CharField')(max_length=255)), |
||||
('phone', self.gf('phonenumber_field.modelfields.PhoneNumberField')(max_length=128, null=True, blank=True)), |
||||
('mobile', self.gf('phonenumber_field.modelfields.PhoneNumberField')(max_length=128, null=True, blank=True)), |
||||
('email', self.gf('django.db.models.fields.EmailField')(max_length=75)), |
||||
('group', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['aldryn_people.Group'], null=True, blank=True)), |
||||
)) |
||||
db.send_create_signal(u'aldryn_people', ['Person']) |
||||
|
||||
# Adding model 'PeoplePlugin' |
||||
db.create_table(u'cmsplugin_peopleplugin', ( |
||||
(u'cmsplugin_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['cms.CMSPlugin'], unique=True, primary_key=True)), |
||||
)) |
||||
db.send_create_signal(u'aldryn_people', ['PeoplePlugin']) |
||||
|
||||
# Adding M2M table for field people on 'PeoplePlugin' |
||||
db.create_table(u'aldryn_people_peopleplugin_people', ( |
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), |
||||
('peopleplugin', models.ForeignKey(orm[u'aldryn_people.peopleplugin'], null=False)), |
||||
('person', models.ForeignKey(orm[u'aldryn_people.person'], null=False)) |
||||
)) |
||||
db.create_unique(u'aldryn_people_peopleplugin_people', ['peopleplugin_id', 'person_id']) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Removing unique constraint on 'PersonTranslation', fields ['language_code', 'master'] |
||||
db.delete_unique(u'aldryn_people_person_translation', ['language_code', 'master_id']) |
||||
|
||||
# Removing unique constraint on 'GroupTranslation', fields ['language_code', 'master'] |
||||
db.delete_unique(u'aldryn_people_group_translation', ['language_code', 'master_id']) |
||||
|
||||
# Deleting model 'GroupTranslation' |
||||
db.delete_table(u'aldryn_people_group_translation') |
||||
|
||||
# Deleting model 'Group' |
||||
db.delete_table(u'aldryn_people_group') |
||||
|
||||
# Deleting model 'PersonTranslation' |
||||
db.delete_table(u'aldryn_people_person_translation') |
||||
|
||||
# Deleting model 'Person' |
||||
db.delete_table(u'aldryn_people_person') |
||||
|
||||
# Deleting model 'PeoplePlugin' |
||||
db.delete_table(u'cmsplugin_peopleplugin') |
||||
|
||||
# Removing M2M table for field people on 'PeoplePlugin' |
||||
db.delete_table('aldryn_people_peopleplugin_people') |
||||
|
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', 'db_table': "u'cmsplugin_peopleplugin'", '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'people': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'comment': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,169 @@ |
||||
# -*- coding: utf-8 -*- |
||||
import datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
depends_on = ( |
||||
("filer", "0001_initial"), |
||||
("cms", "0001_initial"), |
||||
) |
||||
|
||||
def forwards(self, orm): |
||||
# Adding field 'Person.visual' |
||||
db.add_column(u'aldryn_people_person', 'visual', |
||||
self.gf('django.db.models.fields.related.ForeignKey')(default=None, to=orm['filer.Image'], null=True, on_delete=models.SET_NULL, blank=True), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'Person.visual' |
||||
db.delete_column(u'aldryn_people_person', 'visual_id') |
||||
|
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', 'db_table': "u'cmsplugin_peopleplugin'", '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'people': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'comment': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,164 @@ |
||||
# -*- coding: utf-8 -*- |
||||
import datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding field 'PeoplePlugin.sort_value' |
||||
db.add_column(u'aldryn_people_peopleplugin_people', 'sort_value', |
||||
self.gf('django.db.models.fields.IntegerField')(default=1), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'PeoplePlugin.sort_value' |
||||
db.delete_column(u'aldryn_people_peopleplugin_people', 'sort_value') |
||||
|
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', 'db_table': "u'cmsplugin_peopleplugin'", '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'comment': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,165 @@ |
||||
# -*- coding: utf-8 -*- |
||||
import datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding field 'GroupTranslation.company_description' |
||||
db.add_column(u'aldryn_people_group_translation', 'company_description', |
||||
self.gf('djangocms_text_ckeditor.fields.HTMLField')(default='', blank=True), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'GroupTranslation.company_description' |
||||
db.delete_column(u'aldryn_people_group_translation', 'company_description') |
||||
|
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'blank': 'True'}), |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', 'db_table': "u'cmsplugin_peopleplugin'", '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'comment': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,166 @@ |
||||
# -*- coding: utf-8 -*- |
||||
import datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding field 'PeoplePlugin.group_by_group' |
||||
db.add_column(u'cmsplugin_peopleplugin', 'group_by_group', |
||||
self.gf('django.db.models.fields.BooleanField')(default=True), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'PeoplePlugin.group_by_group' |
||||
db.delete_column(u'cmsplugin_peopleplugin', 'group_by_group') |
||||
|
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'blank': 'True'}), |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', 'db_table': "u'cmsplugin_peopleplugin'", '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'group_by_group': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'comment': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,167 @@ |
||||
# -*- coding: utf-8 -*- |
||||
import datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding field 'PeoplePlugin.show_links' |
||||
db.add_column(u'cmsplugin_peopleplugin', 'show_links', |
||||
self.gf('django.db.models.fields.BooleanField')(default=False), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'PeoplePlugin.show_links' |
||||
db.delete_column(u'cmsplugin_peopleplugin', 'show_links') |
||||
|
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'blank': 'True'}), |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'group_by_group': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}), |
||||
'show_links': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'comment': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,168 @@ |
||||
# -*- coding: utf-8 -*- |
||||
import datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding field 'Person.slug' |
||||
db.add_column(u'aldryn_people_person', 'slug', |
||||
self.gf('django.db.models.fields.CharField')(max_length=255, unique=True, null=True, blank=True), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'Person.slug' |
||||
db.delete_column(u'aldryn_people_person', 'slug') |
||||
|
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'blank': 'True'}), |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'group_by_group': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}), |
||||
'show_links': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'comment': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,185 @@ |
||||
# -*- coding: utf-8 -*- |
||||
import datetime |
||||
from south.db import db |
||||
from south.v2 import DataMigration |
||||
from django.db import models |
||||
from django.template.defaultfilters import slugify |
||||
|
||||
|
||||
class Migration(DataMigration): |
||||
|
||||
def forwards(self, orm): |
||||
for person in orm.Person.objects.all(): |
||||
if person.slug: |
||||
continue |
||||
slug = slugify(person.name) |
||||
try: |
||||
# check for an existing person with this slug |
||||
orm.Person.objects.get(slug=slug) |
||||
except orm.Person.DoesNotExist: |
||||
# nope, let's save that one |
||||
person.slug = slug |
||||
person.save() |
||||
else: |
||||
# try to find a slug by appending a number |
||||
for i in range(2, 100): |
||||
try: |
||||
# check for an existing person with this slug |
||||
orm.Person.objects.get(slug='%s-%i' % (slug, i)) |
||||
except orm.Person.DoesNotExist: |
||||
person.slug = '%s-%i' % (slug, i) |
||||
person.save() |
||||
break |
||||
|
||||
def backwards(self, orm): |
||||
# nothing to do here |
||||
pass |
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'blank': 'True'}), |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'group_by_group': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}), |
||||
'show_links': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'comment': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
symmetrical = True |
||||
@ -0,0 +1,176 @@ |
||||
# -*- coding: utf-8 -*- |
||||
import datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import connection |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
TABLES_MAPPING = { |
||||
'cmsplugin_peopleplugin': 'aldryn_people_peopleplugin', |
||||
} |
||||
|
||||
REVERSE_TABLES_MAPPING = dict((v, k) for k, v in TABLES_MAPPING.iteritems()) |
||||
|
||||
@staticmethod |
||||
def rename_tables_by_map(mapper): |
||||
tables_names = connection.introspection.table_names() |
||||
for table_name in tables_names: |
||||
new_table_name = mapper.get(table_name) |
||||
if new_table_name: |
||||
db.rename_table(table_name, new_table_name) |
||||
|
||||
def forwards(self, orm): |
||||
self.rename_tables_by_map(self.TABLES_MAPPING) |
||||
|
||||
def backwards(self, orm): |
||||
self.rename_tables_by_map(self.REVERSE_TABLES_MAPPING) |
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'blank': 'True'}), |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'group_by_group': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}), |
||||
'show_links': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'comment': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,169 @@ |
||||
# -*- coding: utf-8 -*- |
||||
import datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding field 'PeoplePlugin.style' |
||||
db.add_column(u'aldryn_people_peopleplugin', 'style', |
||||
self.gf('django.db.models.fields.CharField')(default='standard', max_length=50), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'PeoplePlugin.style' |
||||
db.delete_column(u'aldryn_people_peopleplugin', 'style') |
||||
|
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'blank': 'True'}), |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'group_by_group': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}), |
||||
'show_links': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'style': ('django.db.models.fields.CharField', [], {'default': "'standard'", 'max_length': '50'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'comment': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,170 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from south.utils import datetime_utils as datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding field 'Group.email' |
||||
db.add_column(u'aldryn_people_group', 'email', |
||||
self.gf('django.db.models.fields.EmailField')(default='', max_length=75, blank=True), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'Group.email' |
||||
db.delete_column(u'aldryn_people_group', 'email') |
||||
|
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'blank': 'True'}), |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'group_by_group': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}), |
||||
'show_links': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'style': ('django.db.models.fields.CharField', [], {'default': "'standard'", 'max_length': '50'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'comment': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,164 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from south.utils import datetime_utils as datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
db.rename_column('aldryn_people_person_translation', 'comment', 'description') |
||||
|
||||
def backwards(self, orm): |
||||
db.rename_column('aldryn_people_person_translation', 'description', 'comment') |
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'blank': 'True'}), |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'group_by_group': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}), |
||||
'show_links': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'style': ('django.db.models.fields.CharField', [], {'default': "'standard'", 'max_length': '50'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,171 @@ |
||||
# -*- coding: utf-8 -*- |
||||
import datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding field 'Person.vcard_enabled' |
||||
db.add_column(u'aldryn_people_person', 'vcard_enabled', |
||||
self.gf('django.db.models.fields.BooleanField')(default=True), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'Person.vcard_enabled' |
||||
db.delete_column(u'aldryn_people_person', 'vcard_enabled') |
||||
|
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'blank': 'True'}), |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'group_by_group': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}), |
||||
'show_links': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'style': ('django.db.models.fields.CharField', [], {'default': "'standard'", 'max_length': '50'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
||||
'vcard_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,172 @@ |
||||
# -*- coding: utf-8 -*- |
||||
import datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding field 'PeoplePlugin.show_vcard' |
||||
db.add_column(u'aldryn_people_peopleplugin', 'show_vcard', |
||||
self.gf('django.db.models.fields.BooleanField')(default=False), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'PeoplePlugin.show_vcard' |
||||
db.delete_column(u'aldryn_people_peopleplugin', 'show_vcard') |
||||
|
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'blank': 'True'}), |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'group_by_group': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}), |
||||
'show_links': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'show_vcard': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'style': ('django.db.models.fields.CharField', [], {'default': "'standard'", 'max_length': '50'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('phonenumber_field.modelfields.PhoneNumberField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
||||
'vcard_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,182 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from south.utils import datetime_utils as datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
|
||||
# Changing field 'Group.phone' |
||||
db.alter_column(u'aldryn_people_group', 'phone', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)) |
||||
|
||||
# Changing field 'Person.mobile' |
||||
db.alter_column(u'aldryn_people_person', 'mobile', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)) |
||||
|
||||
# Changing field 'Person.phone' |
||||
db.alter_column(u'aldryn_people_person', 'phone', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)) |
||||
|
||||
def backwards(self, orm): |
||||
|
||||
# Changing field 'Group.phone' |
||||
db.alter_column(u'aldryn_people_group', 'phone', self.gf('phonenumber_field.modelfields.PhoneNumberField')(max_length=128, null=True)) |
||||
|
||||
# Changing field 'Person.mobile' |
||||
db.alter_column(u'aldryn_people_person', 'mobile', self.gf('phonenumber_field.modelfields.PhoneNumberField')(max_length=128, null=True)) |
||||
|
||||
# Changing field 'Person.phone' |
||||
db.alter_column(u'aldryn_people_person', 'phone', self.gf('phonenumber_field.modelfields.PhoneNumberField')(max_length=128, null=True)) |
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'blank': 'True'}), |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'group_by_group': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}), |
||||
'show_links': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'show_vcard': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'style': ('django.db.models.fields.CharField', [], {'default': "'standard'", 'max_length': '50'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
||||
'vcard_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,200 @@ |
||||
# -*- coding: utf-8 -*- |
||||
import datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding field 'Group.fax' |
||||
db.add_column(u'aldryn_people_group', 'fax', |
||||
self.gf('django.db.models.fields.CharField')(max_length=100, null=True, blank=True), |
||||
keep_default=False) |
||||
|
||||
# Adding field 'Group.website' |
||||
db.add_column(u'aldryn_people_group', 'website', |
||||
self.gf('django.db.models.fields.URLField')(max_length=200, null=True, blank=True), |
||||
keep_default=False) |
||||
|
||||
# Adding field 'Person.fax' |
||||
db.add_column(u'aldryn_people_person', 'fax', |
||||
self.gf('django.db.models.fields.CharField')(max_length=100, null=True, blank=True), |
||||
keep_default=False) |
||||
|
||||
# Adding field 'Person.website' |
||||
db.add_column(u'aldryn_people_person', 'website', |
||||
self.gf('django.db.models.fields.URLField')(max_length=200, null=True, blank=True), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'Group.fax' |
||||
db.delete_column(u'aldryn_people_group', 'fax') |
||||
|
||||
# Deleting field 'Group.website' |
||||
db.delete_column(u'aldryn_people_group', 'website') |
||||
|
||||
# Deleting field 'Person.fax' |
||||
db.delete_column(u'aldryn_people_person', 'fax') |
||||
|
||||
# Deleting field 'Person.website' |
||||
db.delete_column(u'aldryn_people_person', 'website') |
||||
|
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'fax': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}), |
||||
'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'blank': 'True'}), |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'group_by_group': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}), |
||||
'show_links': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'show_vcard': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'style': ('django.db.models.fields.CharField', [], {'default': "'standard'", 'max_length': '50'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'fax': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
||||
'vcard_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), |
||||
'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,177 @@ |
||||
# -*- coding: utf-8 -*- |
||||
import datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding field 'Person.user' |
||||
db.add_column(u'aldryn_people_person', 'user', |
||||
self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], unique=True, null=True, blank=True), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'Person.user' |
||||
db.delete_column(u'aldryn_people_person', 'user_id') |
||||
|
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'fax': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}), |
||||
'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'blank': 'True'}), |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'group_by_group': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}), |
||||
'show_links': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'show_vcard': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'style': ('django.db.models.fields.CharField', [], {'default': "'standard'", 'max_length': '50'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'fax': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
||||
'vcard_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), |
||||
'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,175 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from south.utils import datetime_utils as datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
|
||||
# Changing field 'PersonTranslation.description' |
||||
db.alter_column(u'aldryn_people_person_translation', 'description', self.gf('djangocms_text_ckeditor.fields.HTMLField')()) |
||||
|
||||
def backwards(self, orm): |
||||
|
||||
# Changing field 'PersonTranslation.description' |
||||
db.alter_column(u'aldryn_people_person_translation', 'description', self.gf('django.db.models.fields.TextField')()) |
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'fax': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}), |
||||
'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'company_description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'blank': 'True'}), |
||||
'company_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'group_by_group': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}), |
||||
'show_links': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'show_vcard': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'style': ('django.db.models.fields.CharField', [], {'default': "'standard'", 'max_length': '50'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'fax': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
||||
'vcard_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), |
||||
'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1,173 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from south.utils import datetime_utils as datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
db.rename_column('aldryn_people_group_translation', 'company_name', 'name') |
||||
db.rename_column('aldryn_people_group_translation', 'company_description', 'description') |
||||
|
||||
def backwards(self, orm): |
||||
db.rename_column('aldryn_people_group_translation', 'name', 'company_name') |
||||
db.rename_column('aldryn_people_group_translation', 'description', 'company_description') |
||||
|
||||
models = { |
||||
u'aldryn_people.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
'address': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'fax': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'phone': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}), |
||||
'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.grouptranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'GroupTranslation', 'db_table': "u'aldryn_people_group_translation'"}, |
||||
'description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Group']"}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) |
||||
}, |
||||
u'aldryn_people.peopleplugin': { |
||||
'Meta': {'object_name': 'PeoplePlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'group_by_group': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'people': ('sortedm2m.fields.SortedManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['aldryn_people.Person']", 'null': 'True', 'blank': 'True'}), |
||||
'show_links': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'show_vcard': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'style': ('django.db.models.fields.CharField', [], {'default': "'standard'", 'max_length': '50'}) |
||||
}, |
||||
u'aldryn_people.person': { |
||||
'Meta': {'object_name': 'Person'}, |
||||
'email': ('django.db.models.fields.EmailField', [], {'default': "''", 'max_length': '75', 'blank': 'True'}), |
||||
'fax': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'group': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['aldryn_people.Group']", 'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'mobile': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'phone': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
||||
'vcard_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'visual': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['filer.Image']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), |
||||
'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_people.persontranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'PersonTranslation', 'db_table': "u'aldryn_people_person_translation'"}, |
||||
'description': ('djangocms_text_ckeditor.fields.HTMLField', [], {'default': "''", 'blank': 'True'}), |
||||
'function': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['aldryn_people.Person']"}) |
||||
}, |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_people'] |
||||
@ -0,0 +1 @@ |
||||
# -*- coding: utf-8 -*- |
||||
@ -0,0 +1,18 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.template.base import Library |
||||
|
||||
from phonenumbers import parse, format_number, PhoneNumberFormat |
||||
from phonenumbers.phonenumberutil import NumberParseException |
||||
|
||||
|
||||
register = Library() |
||||
|
||||
|
||||
@register.filter(is_safe=True) |
||||
def phoneformat(phone_number, phone_format='INTERNATIONAL'): |
||||
try: |
||||
parsed_number = parse(phone_number, None) |
||||
format = getattr(PhoneNumberFormat, phone_format) |
||||
return format_number(parsed_number, format) |
||||
except NumberParseException: |
||||
return phone_number |
||||
@ -0,0 +1,172 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django.conf import settings |
||||
from django.contrib.auth.models import User |
||||
from django.contrib.sites.models import Site |
||||
from django.db import IntegrityError |
||||
from django.test import RequestFactory, TestCase |
||||
from django.utils.translation import override |
||||
|
||||
from cms import api |
||||
from cms.models import Title |
||||
from cms.test_utils.testcases import BaseCMSTestCase |
||||
from cms.utils import get_cms_setting |
||||
from cms.utils.i18n import get_language_list |
||||
|
||||
from djangocms_helper.utils import create_user |
||||
|
||||
from ..models import Group, Person |
||||
|
||||
|
||||
class BasePeopleTest(BaseCMSTestCase, TestCase): |
||||
su_username = 'user' |
||||
su_password = 'pass' |
||||
|
||||
data = { |
||||
'group1': { |
||||
'en': {'name': 'group1', 'description': 'description1'}, |
||||
'de': {'name': 'Gruppe1', 'description': 'Beschreibung1'}, |
||||
}, |
||||
'group2': { |
||||
# This should *not* have a EN translation |
||||
'de': {'name': 'Gruppe2', 'description': 'Beschreibung2'}, |
||||
}, |
||||
'person1': { |
||||
'en': {'function': 'function1', 'description': 'description-en'}, |
||||
'de': {'function': 'Funktion1', 'description': 'Beschreibung-de'}, |
||||
}, |
||||
'person2': { |
||||
# This should *not* have a EN translation |
||||
'de': {'function': 'Funktion2', 'description': 'Beschreibung2'}, |
||||
}, |
||||
} |
||||
|
||||
@staticmethod |
||||
def reload(obj, language=None): |
||||
"""Simple convenience method for re-fetching an object from the ORM, |
||||
optionally "as" a specified language.""" |
||||
try: |
||||
new_obj = obj.__class__.objects.language(language).get(id=obj.id) |
||||
except: |
||||
new_obj = obj.__class__.objects.get(id=obj.id) |
||||
return new_obj |
||||
|
||||
def assertEqualItems(self, a, b): |
||||
try: |
||||
# In Python3, this method has been renamed (poorly) |
||||
return self.assertCountEqual(a, b) |
||||
except: |
||||
# In 2.6, assertItemsEqual() doesn't sort first |
||||
return self.assertItemsEqual(sorted(a), sorted(b)) |
||||
|
||||
def mktranslation(self, obj, lang, **kwargs): |
||||
"""Simple method of adding a translation to an existing object.""" |
||||
try: |
||||
obj.set_current_language(lang) |
||||
except: |
||||
try: |
||||
obj.translate(lang) |
||||
except IntegrityError: |
||||
pass |
||||
for k, v in kwargs.items(): |
||||
setattr(obj, k, v) |
||||
obj.save() |
||||
|
||||
def setUp(self): |
||||
self.template = get_cms_setting('TEMPLATES')[0][0] |
||||
self.language = settings.LANGUAGES[0][0] |
||||
self.page = api.create_page( |
||||
'page', self.template, self.language, published=True) |
||||
self.placeholder = self.page.placeholders.all()[0] |
||||
self.superuser = self.create_superuser() |
||||
with override('en'): |
||||
self.person1 = Person(**self.data['person1']['en']) |
||||
self.group1 = Group(**self.data['group1']['en']) |
||||
self.person1.name = 'person1' |
||||
self.person1.slug = 'person1-slug' |
||||
self.person1.save() |
||||
self.group1.save() |
||||
|
||||
# Add a DE translation for person1, group1 |
||||
self.mktranslation(self.person1, 'de', **self.data['person1']['de']) |
||||
self.mktranslation(self.group1, 'de', **self.data['group1']['de']) |
||||
|
||||
# Make person2, group2 |
||||
with override('de'): |
||||
self.person2 = Person(**self.data['person2']['de']) |
||||
self.group2 = Group(**self.data['group2']['de']) |
||||
self.person2.name = 'person2' |
||||
self.person2.slug = 'person2-slug' |
||||
self.person2.save() |
||||
self.group2.save() |
||||
|
||||
def tearDown(self): |
||||
Person.objects.all().delete() |
||||
Group.objects.all().delete() |
||||
|
||||
def create_superuser(self): |
||||
return User.objects.create_superuser( |
||||
self.su_username, 'email@example.com', self.su_password) |
||||
|
||||
|
||||
class CMSRequestBasedTest(TestCase): |
||||
"""Sets-up User(s) and CMS Pages for testing.""" |
||||
languages = get_language_list() |
||||
|
||||
@classmethod |
||||
def setUpClass(cls): |
||||
cls.request_factory = RequestFactory() |
||||
cls.user = create_user('normal', 'normal@admin.com', 'normal') |
||||
cls.site1 = Site.objects.get(pk=1) |
||||
|
||||
@classmethod |
||||
def tearDownClass(cls): |
||||
User.objects.all().delete() |
||||
|
||||
def get_or_create_page(self, base_title=None, languages=None): |
||||
"""Creates a page with a given title, or, if it already exists, just |
||||
retrieves and returns it.""" |
||||
from cms.api import create_page, create_title |
||||
if not base_title: |
||||
# No title? Create one. |
||||
base_title = self.rand_str(prefix="page", length=8) |
||||
if not languages: |
||||
# If no langs supplied, use'em all |
||||
languages = self.languages |
||||
# If there is already a page with this title, just return it. |
||||
try: |
||||
page_title = Title.objects.get(title=base_title) |
||||
return page_title.page.get_draft_object() |
||||
except: |
||||
pass |
||||
|
||||
# No? Okay, create one. |
||||
page = create_page(base_title, 'fullwidth.html', language=languages[0]) |
||||
# If there are multiple languages, create the translations |
||||
if len(languages) > 1: |
||||
for lang in languages[1:]: |
||||
title_lang = "{0}-{1}".format(base_title, lang) |
||||
create_title(language=lang, title=title_lang, page=page) |
||||
page.publish(lang) |
||||
return page.get_draft_object() |
||||
|
||||
def get_page_request( |
||||
self, page, user, path=None, edit=False, lang_code='en'): |
||||
from cms.middleware.toolbar import ToolbarMiddleware |
||||
path = path or page and page.get_absolute_url() |
||||
if edit: |
||||
path += '?edit' |
||||
request = RequestFactory().get(path) |
||||
request.session = {} |
||||
request.user = user |
||||
request.LANGUAGE_CODE = lang_code |
||||
if edit: |
||||
request.GET = {'edit': None} |
||||
else: |
||||
request.GET = {'edit_off': None} |
||||
request.current_page = page |
||||
mid = ToolbarMiddleware() |
||||
mid.process_request(request) |
||||
return request |
||||
@ -0,0 +1,31 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django.contrib.sites.models import Site |
||||
from django.utils.translation import override |
||||
|
||||
from ..admin.models_admin import PersonAdmin |
||||
from ..models import Person |
||||
|
||||
from . import BasePeopleTest |
||||
|
||||
|
||||
class TestPersonAdmin(BasePeopleTest): |
||||
|
||||
def test_all_translations(self): |
||||
site = Site.objects.get(pk=1) |
||||
model_admin = PersonAdmin(self.person1, site) |
||||
all_translations = model_admin.all_translations(self.person1) |
||||
obj_id = self.person1.id |
||||
with override('en'): |
||||
self.assertEqual( |
||||
all_translations, |
||||
'<strong><a href="/en/admin/aldryn_people/person/{id}/?language=en">en</a></strong>, <a href="/en/admin/aldryn_people/person/{id}/?language=de">de</a>'.format(id=obj_id) # flake8: noqa |
||||
) |
||||
# This test does not pass |
||||
# with override('de'): |
||||
# self.assertEqual( |
||||
# all_translations, |
||||
# '<a href="/en/admin/aldryn_people/person/{id}/?language=en">en</a>, <strong><a href="/en/admin/aldryn_people/person/{id}/?language=de">de</a></strong>'.format(id=obj_id) # flake8: noqa |
||||
# ) |
||||
@ -0,0 +1,34 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django.core.urlresolvers import reverse |
||||
|
||||
from ..models import Person |
||||
|
||||
from . import BasePeopleTest |
||||
|
||||
|
||||
class TestPersonAppHook(BasePeopleTest): |
||||
|
||||
def test_add_people_app(self): |
||||
""" |
||||
We add a person to the app |
||||
""" |
||||
self.page.application_urls = 'PeopleApp' |
||||
self.page.application_namespace = 'aldryn_people' |
||||
self.page.publish(self.language) |
||||
|
||||
person = Person.objects.create( |
||||
name='Michael', phone='0785214521', email='michael@mit.ch', |
||||
slug='michael' |
||||
) |
||||
# By slug |
||||
url = reverse('aldryn_people:person-detail', kwargs={'slug': person.slug}) |
||||
response = self.client.get(url) |
||||
self.assertContains(response, 'Michael') |
||||
|
||||
# By pk |
||||
url = reverse('aldryn_people:person-detail', kwargs={'pk': person.pk}) |
||||
response = self.client.get(url) |
||||
self.assertContains(response, 'Michael') |
||||
@ -0,0 +1,201 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django.core.urlresolvers import reverse |
||||
from django.test import TransactionTestCase |
||||
from django.utils.translation import override, force_text |
||||
|
||||
from ..models import Person, Group |
||||
|
||||
from . import BasePeopleTest |
||||
|
||||
|
||||
class TestBasicPeopleModels(TransactionTestCase): |
||||
|
||||
def test_create_person(self): |
||||
"""We can create a person with a name.""" |
||||
name = 'Tom Test' |
||||
person = Person.objects.create(name=name) |
||||
self.assertEqual(person.name, name) |
||||
self.assertEqual(Person.objects.all()[0], person) |
||||
|
||||
def test_delete_person(self): |
||||
"""We can delete a person.""" |
||||
name = 'Person Delete' |
||||
Person.objects.create(name=name) |
||||
Person.objects.get(name=name).delete() |
||||
self.assertFalse(Person.objects.filter(name=name)) |
||||
|
||||
def test_str(self): |
||||
name = 'Person Str' |
||||
person = Person.objects.create(name=name) |
||||
self.assertEqual(force_text(person), name) |
||||
|
||||
def test_absolute_url(self): |
||||
slug = 'person-slug' |
||||
person = Person.objects.create(slug=slug) |
||||
# This isn't a translation test, per se, but let's make sure that we |
||||
# have a predictable language prefix, regardless of the tester's locale. |
||||
with override('en'): |
||||
self.assertEqual( |
||||
person.get_absolute_url(), |
||||
'/en/people/{0}/'.format(slug) |
||||
) |
||||
# Now test that it will work when there's no slug too. |
||||
person.slug = '' |
||||
self.assertEqual( |
||||
person.get_absolute_url(), |
||||
'/en/people/{0}/'.format(person.pk), |
||||
) |
||||
|
||||
def test_auto_slugify(self): |
||||
name = 'Melchior Hoffman' |
||||
slug = 'melchior-hoffman' |
||||
person = Person.objects.create(name=name) |
||||
person.save() |
||||
self.assertEquals(person.slug, slug) |
||||
|
||||
|
||||
class TestBasicGroupModel(TransactionTestCase): |
||||
|
||||
def test_create_group(self): |
||||
"""We can create a group with a name.""" |
||||
group = Group.objects.create(name='group_b') |
||||
self.assertTrue(group.name, 'group_b') |
||||
|
||||
def test_delete_group(self): |
||||
"""We can delete a group.""" |
||||
name = 'Group Delete' |
||||
Group.objects.create(name=name) |
||||
group = Group.objects.translated(name=name) |
||||
if group: |
||||
group[0].delete() |
||||
self.assertFalse(Group.objects.translated(name=name)) |
||||
|
||||
def test_create_another_group(self): |
||||
"""we create a group.""" |
||||
name = 'Gruppe Neu' |
||||
group = Group.objects.create(name=name) |
||||
self.assertEqual(group.name, name) |
||||
self.assertEqual(Group.objects.all()[0], group) |
||||
|
||||
def test_add_person_to_group(self): |
||||
"""We create a person and add her to the created group.""" |
||||
personname = 'Daniel' |
||||
person = Person.objects.create(name=personname) |
||||
name = 'Group One' |
||||
group = Group.objects.create(name=name) |
||||
person.group = group |
||||
person.save() |
||||
self.assertIn(person, group.person_set.all()) |
||||
|
||||
|
||||
class TestPersonModelTranslation(BasePeopleTest): |
||||
|
||||
def test_person_translatable(self): |
||||
person1 = self.reload(self.person1, 'en') |
||||
self.assertEqual( |
||||
person1.function, |
||||
self.data['person1']['en']['function'] |
||||
) |
||||
person1 = self.reload(self.person1, 'de') |
||||
self.assertEqual( |
||||
person1.safe_translation_getter('function'), |
||||
self.data['person1']['de']['function'] |
||||
) |
||||
|
||||
def test_comment(self): |
||||
person1 = self.reload(self.person1, 'en') |
||||
self.assertEqual( |
||||
person1.comment, |
||||
self.data['person1']['en']['description'] |
||||
) |
||||
person1 = self.reload(self.person1, 'de') |
||||
self.assertEqual( |
||||
person1.comment, |
||||
self.data['person1']['de']['description'] |
||||
) |
||||
|
||||
def test_get_vcard(self): |
||||
person1 = self.reload(self.person1, 'en') |
||||
# Test with no group |
||||
vcard_en = 'BEGIN:VCARD\r\nVERSION:3.0\r\nFN:person1\r\nN:;person1;;;\r\nTITLE:function1\r\nEND:VCARD\r\n' # flake8: noqa |
||||
self.assertEqual( |
||||
person1.get_vcard(), |
||||
vcard_en |
||||
) |
||||
# Test with a group and other fields populated |
||||
group1 = self.reload(self.group1, 'en') |
||||
group1.address = '123 Main Street' |
||||
group1.city = 'Anytown' |
||||
group1.postal_code = '12345' |
||||
group1.phone = '+1 (234) 567-8903' |
||||
group1.fax = '+1 (234) 567-8904' |
||||
group1.website = 'www.groupwebsite.com' |
||||
group1.save() |
||||
person1.group = group1 |
||||
person1.email = 'person@org.org' |
||||
person1.phone = '+1 (234) 567-8900' |
||||
person1.mobile = '+1 (234) 567-8901' |
||||
person1.fax = '+1 (234) 567-8902' |
||||
person1.website = 'www.website.com' |
||||
person1.save() |
||||
vcard_en = 'BEGIN:VCARD\r\nVERSION:3.0\r\nADR;TYPE=WORK:;;123 Main Street;Anytown;;12345;\r\nEMAIL:person@org.org\r\nFN:person1\r\nN:;person1;;;\r\nORG:group1\r\nTEL;TYPE=WORK:+1 (234) 567-8900\r\nTEL;TYPE=CELL:+1 (234) 567-8901\r\nTEL;TYPE=FAX:+1 (234) 567-8902\r\nTEL;TYPE=WORK:+1 (234) 567-8903\r\nTEL;TYPE=FAX:+1 (234) 567-8904\r\nTITLE:function1\r\nURL:www.website.com\r\nURL:www.groupwebsite.com\r\nEND:VCARD\r\n' # flake8: noqa |
||||
self.assertEqual( |
||||
person1.get_vcard(), |
||||
vcard_en |
||||
) |
||||
# Ensure this works for other langs too |
||||
person1 = self.reload(self.person1, 'de') |
||||
vcard_de = 'BEGIN:VCARD\r\nVERSION:3.0\r\nADR;TYPE=WORK:;;123 Main Street;Anytown;;12345;\r\nEMAIL:person@org.org\r\nFN:person1\r\nN:;person1;;;\r\nORG:Gruppe1\r\nTEL;TYPE=WORK:+1 (234) 567-8900\r\nTEL;TYPE=CELL:+1 (234) 567-8901\r\nTEL;TYPE=FAX:+1 (234) 567-8902\r\nTEL;TYPE=WORK:+1 (234) 567-8903\r\nTEL;TYPE=FAX:+1 (234) 567-8904\r\nTITLE:Funktion1\r\nURL:www.website.com\r\nURL:www.groupwebsite.com\r\nEND:VCARD\r\n' # flake8: noqa |
||||
with override('de'): |
||||
self.assertEqual( |
||||
person1.get_vcard(), |
||||
vcard_de |
||||
) |
||||
|
||||
|
||||
class TestGroupModelTranslation(BasePeopleTest): |
||||
|
||||
def test_group_translation(self): |
||||
group1 = self.reload(self.group1, 'en') |
||||
self.assertEqual(group1.name, self.data['group1']['en']['name']) |
||||
group1 = self.reload(self.group1, 'de') |
||||
self.assertEqual(group1.name, self.data['group1']['de']['name']) |
||||
|
||||
def test_company_name(self): |
||||
group1 = self.reload(self.group1, 'en') |
||||
self.assertEqual( |
||||
group1.company_name, |
||||
self.data['group1']['en']['name'], |
||||
) |
||||
group1 = self.reload(self.group1, 'de') |
||||
self.assertEqual( |
||||
group1.company_name, |
||||
self.data['group1']['de']['name'], |
||||
) |
||||
|
||||
def test_company_description(self): |
||||
group1 = self.reload(self.group1, 'en') |
||||
self.assertEqual( |
||||
group1.company_description, |
||||
self.data['group1']['en']['description'], |
||||
) |
||||
group1 = self.reload(self.group1, 'de') |
||||
self.assertEqual( |
||||
group1.company_description, |
||||
self.data['group1']['de']['description'], |
||||
) |
||||
|
||||
def test_str(self): |
||||
group1 = self.reload(self.group1, 'en') |
||||
self.assertEqual( |
||||
force_text(group1), |
||||
self.data['group1']['en']['name'], |
||||
) |
||||
group1 = self.reload(self.group1, 'de') |
||||
self.assertEqual( |
||||
force_text(group1), |
||||
self.data['group1']['de']['name'], |
||||
) |
||||
@ -0,0 +1,48 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django.utils.translation import force_text |
||||
|
||||
from cms import api |
||||
from cms.models import CMSPlugin |
||||
from cms.test_utils.testcases import URL_CMS_PLUGIN_ADD |
||||
|
||||
from ..models import Person |
||||
from ..cms_plugins import PeoplePlugin |
||||
|
||||
from . import BasePeopleTest |
||||
|
||||
|
||||
class TestPersonPlugins(BasePeopleTest): |
||||
|
||||
def test_add_people_list_plugin_api(self): |
||||
""" |
||||
We add a person to the People Plugin and look her up |
||||
""" |
||||
name = 'Donald' |
||||
Person.objects.create(name=name) |
||||
plugin = api.add_plugin(self.placeholder, PeoplePlugin, self.language) |
||||
plugin.people = Person.objects.all() |
||||
self.assertEqual(force_text(plugin), force_text(plugin.pk)) |
||||
self.page.publish(self.language) |
||||
|
||||
url = self.page.get_absolute_url() |
||||
response = self.client.get(url) |
||||
self.assertContains(response, name) |
||||
|
||||
def test_add_people_list_plugin_client(self): |
||||
""" |
||||
We log into the PeoplePlugin |
||||
""" |
||||
self.client.login(username=self.su_username, password=self.su_password) |
||||
|
||||
plugin_data = { |
||||
'plugin_type': 'PeoplePlugin', |
||||
'plugin_language': self.language, |
||||
'placeholder_id': self.placeholder.pk, |
||||
} |
||||
|
||||
response = self.client.post(URL_CMS_PLUGIN_ADD, plugin_data) |
||||
self.assertEqual(response.status_code, 200) |
||||
self.assertTrue(CMSPlugin.objects.exists()) |
||||
@ -0,0 +1,49 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from aldryn_people.search_indexes import PeopleIndex |
||||
|
||||
from ..models import Person |
||||
|
||||
from . import BasePeopleTest |
||||
|
||||
|
||||
class TestPeopleIndex(BasePeopleTest): |
||||
def test_get_title(self): |
||||
idx_obj = PeopleIndex() |
||||
person1 = self.reload(self.person1, "en") |
||||
self.assertEqual(idx_obj.get_title(person1), person1.name) |
||||
person1 = self.reload(self.person1, "de") |
||||
self.assertEqual(idx_obj.get_title(person1), person1.name) |
||||
|
||||
def test_get_index_kwargs(self): |
||||
# This is a silly test, but is here for completeness. |
||||
idx_obj = PeopleIndex() |
||||
self.assertEqual(idx_obj.get_index_kwargs("en"), { |
||||
'translations__language_code': 'en' |
||||
}) |
||||
|
||||
def test_get_index_queryset(self): |
||||
idx_obj = PeopleIndex() |
||||
# Person2 does NOT have an EN translation, so should appear here. |
||||
self.assertEqualItems( |
||||
[q.id for q in idx_obj.get_index_queryset("en")], |
||||
[self.person1.id], |
||||
) |
||||
# Both person objects have DE translations |
||||
self.assertEqualItems( |
||||
[q.id for q in idx_obj.get_index_queryset("de")], |
||||
[self.person1.id, self.person2.id], |
||||
) |
||||
|
||||
def test_get_model(self): |
||||
# This is a silly test, but is here for completeness. |
||||
idx_obj = PeopleIndex() |
||||
self.assertEqual(idx_obj.get_model(), Person) |
||||
|
||||
def test_get_search_data(self): |
||||
idx_obj = PeopleIndex() |
||||
person1 = self.reload(self.person1, "en") |
||||
search_data = idx_obj.get_search_data(person1, "en", None) |
||||
self.assertEqual(search_data, self.data['person1']['en']['description']) |
||||
@ -0,0 +1,34 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django.core.urlresolvers import reverse |
||||
from django.http import Http404 |
||||
from django.test.client import RequestFactory |
||||
|
||||
from ..views import DownloadVcardView |
||||
|
||||
from . import BasePeopleTest, CMSRequestBasedTest |
||||
|
||||
|
||||
class TestDownloadVcardView(BasePeopleTest, CMSRequestBasedTest): |
||||
def test_as_view(self): |
||||
"""Tests that DownloadVcardView produces the correct headers.""" |
||||
person1 = self.reload(self.person1, "en") |
||||
person1.slug = 'person1-slug' |
||||
kwargs = {"slug": person1.slug} |
||||
person1_url = reverse('aldryn_people:person-detail', kwargs=kwargs) |
||||
factory = RequestFactory() |
||||
request = factory.get(person1_url) |
||||
response = DownloadVcardView.as_view()(request, **kwargs) |
||||
filename = '{0}.vcf'.format(person1.name) |
||||
self.assertEqual( |
||||
response["Content-Disposition"], |
||||
'attachment; filename="{0}"'.format(filename) |
||||
) |
||||
# Now, disable vcards for this person, and re-test |
||||
person1.vcard_enabled = False |
||||
person1.save() |
||||
with self.assertRaises(Http404): |
||||
request = factory.get(person1_url) |
||||
response = DownloadVcardView.as_view()(request, **kwargs) |
||||
@ -0,0 +1,38 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django.conf import settings |
||||
from django.conf.urls import patterns, include, url |
||||
from django.conf.urls.i18n import i18n_patterns |
||||
from django.contrib import admin |
||||
from django.contrib.staticfiles.urls import staticfiles_urlpatterns |
||||
|
||||
from cms.utils.conf import get_cms_setting |
||||
|
||||
admin.autodiscover() |
||||
|
||||
urlpatterns = patterns('', |
||||
url( |
||||
r'^media/(?P<path>.*)$', 'django.views.static.serve', { |
||||
'document_root': settings.MEDIA_ROOT, 'show_indexes': True |
||||
} |
||||
), |
||||
url( |
||||
r'^media/cms/(?P<path>.*)$', 'django.views.static.serve', { |
||||
'document_root': get_cms_setting('MEDIA_ROOT'), 'show_indexes': True |
||||
} |
||||
), |
||||
url( |
||||
r'^jsi18n/(?P<packages>\S+?)/$', |
||||
'django.views.i18n.javascript_catalog' |
||||
), |
||||
) |
||||
|
||||
urlpatterns += staticfiles_urlpatterns() |
||||
|
||||
urlpatterns += i18n_patterns('', |
||||
url(r'^admin/', include(admin.site.urls)), |
||||
url(r'^people/', include('aldryn_people.urls', namespace='aldryn_people')), |
||||
url(r'^', include('cms.urls')), |
||||
) |
||||
@ -0,0 +1,18 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django.conf.urls import patterns, url |
||||
|
||||
from aldryn_people.views import PersonView, DownloadVcardView |
||||
|
||||
urlpatterns = patterns('', |
||||
url(r'^(?P<pk>[0-9]+)/$', |
||||
PersonView.as_view(), name='person-detail'), |
||||
url(r'^(?P<slug>[A-Za-z0-9_\-]+)/$', |
||||
PersonView.as_view(), name='person-detail'), |
||||
url(r'^(?P<pk>[0-9]+)/download/$', |
||||
DownloadVcardView.as_view(), name='download_vcard'), |
||||
url(r'^(?P<slug>[A-Za-z0-9_\-]+)/download/$', |
||||
DownloadVcardView.as_view(), name='download_vcard'), |
||||
) |
||||
@ -0,0 +1,14 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django.conf import settings |
||||
|
||||
|
||||
def get_additional_styles(): |
||||
""" |
||||
Get additional styles choices from settings |
||||
""" |
||||
styles = getattr(settings, 'PEOPLE_PLUGIN_STYLES', '') |
||||
choices = [(s.strip().lower(), s.title()) for s in styles.split(',') if s] |
||||
return choices |
||||
@ -0,0 +1,32 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django.http import Http404, HttpResponse |
||||
from django.views.generic import DetailView |
||||
|
||||
from aldryn_people.models import Person |
||||
|
||||
|
||||
class DownloadVcardView(DetailView): |
||||
model = Person |
||||
|
||||
def get(self, request, *args, **kwargs): |
||||
person = self.get_object() |
||||
if not person.vcard_enabled: |
||||
raise Http404 |
||||
|
||||
filename = "%s.vcf" % person.name |
||||
vcard = person.get_vcard(request) |
||||
try: |
||||
vcard = vcard.decode('utf-8').encode('ISO-8859-1') |
||||
except: |
||||
pass |
||||
response = HttpResponse(vcard, content_type="text/x-vCard") |
||||
response['Content-Disposition'] = 'attachment; filename="{0}"'.format( |
||||
filename) |
||||
return response |
||||
|
||||
|
||||
class PersonView(DetailView): |
||||
model = Person |
||||
@ -0,0 +1,3 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
__version__='0.6.4' |
||||
@ -0,0 +1,41 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
from django.conf.urls import url |
||||
from django.contrib import admin |
||||
|
||||
from .models import Segment |
||||
from .views import set_segment_override, reset_all_segment_overrides |
||||
|
||||
class SegmentAdmin(admin.ModelAdmin): |
||||
|
||||
# |
||||
# Note: model.Segment is empty and un-managed. Its sole purpose is to |
||||
# provide the opportunity to add custom views to the AdminSite for |
||||
# managing segments from the toolbar. |
||||
# |
||||
|
||||
def get_model_perms(self, request): |
||||
''' |
||||
Returns an empty perms dict which has the effect of disabling its |
||||
display in the AdminSite, but still allows access to the views defined |
||||
below. |
||||
''' |
||||
return dict() |
||||
|
||||
|
||||
def get_urls(self): |
||||
|
||||
return [ |
||||
url(r'set_override/$', |
||||
self.admin_site.admin_view(set_segment_override), |
||||
name='set_segment_override' |
||||
), |
||||
|
||||
url(r'reset_all_segment_overrides/$', |
||||
self.admin_site.admin_view(reset_all_segment_overrides), |
||||
name='reset_all_segment_overrides' |
||||
), |
||||
] + super(SegmentAdmin, self).get_urls() |
||||
|
||||
admin.site.register(Segment, SegmentAdmin) |
||||
@ -0,0 +1,5 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from .segment_plugin_base import * |
||||
from .segment_plugins import * |
||||
from .segment_limiter import * |
||||
@ -0,0 +1,124 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
from django.utils.translation import ugettext_lazy as _ |
||||
from cms.plugin_pool import plugin_pool |
||||
|
||||
from ..models import SegmentLimitPluginModel |
||||
from .segment_plugin_base import SegmentPluginBase |
||||
|
||||
|
||||
class SegmentLimitPlugin(SegmentPluginBase): |
||||
''' |
||||
This is a special SegmentPlugin that acts as a top-level container for |
||||
segmentation plugins and can set an upper-limit to the number of children |
||||
that will be rendered in the current context. |
||||
''' |
||||
|
||||
allow_children = True |
||||
model = SegmentLimitPluginModel |
||||
module = _('Segmentation') |
||||
name = _('Limit Block') |
||||
parent_classes = None |
||||
render_template = 'aldryn_segmentation/_limiter.html' |
||||
|
||||
allow_overrides = False |
||||
|
||||
def render(self, context, instance, placeholder): |
||||
context = super(SegmentLimitPlugin, self).render( |
||||
context, instance, placeholder) |
||||
context['child_plugins'] = self.get_context_appropriate_children( |
||||
context, instance) |
||||
return context |
||||
|
||||
|
||||
def is_context_appropriate(self, context, instance): |
||||
''' |
||||
Returns True if any of its children are context-appropriate, |
||||
else False. |
||||
''' |
||||
apt_children = self.get_context_appropriate_children(context, instance) |
||||
num_apt = sum( 1 for child in apt_children if child[1] ) |
||||
return num_apt > 0 |
||||
|
||||
|
||||
def get_context_appropriate_children(self, context, instance): |
||||
from ..segment_pool import SegmentOverride |
||||
''' |
||||
Returns a LIST OF TUPLES each containing a child plugin instance and a |
||||
Boolean representing the plugin's appropriateness for rendering in |
||||
this context. |
||||
''' |
||||
|
||||
children = [] |
||||
# child_plugin_instances can sometimes be None |
||||
generic_children = instance.child_plugin_instances or [] |
||||
render_all = (instance.max_children == 0) |
||||
slots_remaining = instance.max_children |
||||
|
||||
for child_instance in generic_children: |
||||
|
||||
child_plugin = child_instance.get_plugin_class_instance() |
||||
|
||||
if render_all or slots_remaining > 0: |
||||
|
||||
if hasattr(child_plugin, 'is_context_appropriate'): |
||||
# |
||||
# This quacks like a segment plugin... |
||||
# |
||||
if (hasattr(child_plugin, 'allow_overrides') and |
||||
child_plugin.allow_overrides and |
||||
hasattr(child_plugin, 'get_segment_override')): |
||||
|
||||
override = child_plugin.get_segment_override( |
||||
context, child_instance) |
||||
|
||||
if override == SegmentOverride.ForcedActive: |
||||
child = (child_instance, True) |
||||
elif override == SegmentOverride.ForcedInactive: |
||||
child = (child_instance, False) |
||||
else: |
||||
# |
||||
# There's no override, so, just let the segment |
||||
# decide... |
||||
# |
||||
child = ( |
||||
child_instance, |
||||
child_plugin.is_context_appropriate( |
||||
context, child_instance |
||||
), |
||||
) |
||||
else: |
||||
# |
||||
# Hmmm, this segment plugin appears to have no |
||||
# allow_overrides property or get_segment_override() |
||||
# method. OK then, let the plugin decide if it is |
||||
# appropriate to render. |
||||
# |
||||
child = ( |
||||
child_instance, |
||||
child_plugin.is_context_appropriate( |
||||
context, child_instance |
||||
), |
||||
) |
||||
else: |
||||
# |
||||
# This doesn't quack like a Segment Plugin, so, it is |
||||
# always OK to render. |
||||
# |
||||
child = ( child_instance, True, ) |
||||
|
||||
if child[1]: |
||||
slots_remaining -= 1 |
||||
else: |
||||
# |
||||
# We've run out of available slots... |
||||
# |
||||
child = ( child_instance, False, ) |
||||
|
||||
children.append(child) |
||||
|
||||
return children |
||||
|
||||
|
||||
plugin_pool.register_plugin(SegmentLimitPlugin) |
||||
@ -0,0 +1,68 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django.utils.translation import ugettext_lazy as _ |
||||
|
||||
from cms.plugin_base import CMSPluginBase |
||||
|
||||
|
||||
class SegmentPluginBase(CMSPluginBase): |
||||
''' |
||||
Abstract base class to be used for all segment plugins. It provides the |
||||
default implementation of necessary additional methods for: |
||||
|
||||
* Registering conditions for Segmentation Previews for operators; |
||||
* Reporting if the segment's condition(s) are met. |
||||
|
||||
Also, by using this base class, the Segmentation Group Plugin will be able |
||||
accept the plugin (The Segmentation Group plugin has child_classes set to |
||||
this class). |
||||
''' |
||||
|
||||
class Meta: |
||||
abstract = True |
||||
|
||||
allow_children = True |
||||
cache = False |
||||
module = _('Segmentation') |
||||
parent_classes = ['SegmentLimitPlugin', ] |
||||
render_template = 'aldryn_segmentation/_segment.html' |
||||
text_enabled = False |
||||
|
||||
# |
||||
# Leave set to True to allow this plugin to be displayed in the Segment |
||||
# Toolbar Menu for overriding by the operator. |
||||
# |
||||
allow_overrides = True |
||||
|
||||
|
||||
def get_segment_override(self, context, instance): |
||||
''' |
||||
If the current user is logged-in and this segment plugin allows |
||||
overrides, then return the current override for this segment, else, |
||||
returns SegmentOverride.NoOverride. |
||||
|
||||
This should NOT be overridden in subclasses. |
||||
''' |
||||
|
||||
# This can't be defined at the file level, else circular imports |
||||
from ..segment_pool import segment_pool, SegmentOverride |
||||
|
||||
request = context['request'] |
||||
if request.user.is_authenticated(): |
||||
return segment_pool.get_override_for_segment( |
||||
request.user, self, instance |
||||
) |
||||
|
||||
return SegmentOverride.NoOverride |
||||
|
||||
|
||||
def is_context_appropriate(self, context, instance): |
||||
''' |
||||
Return True if this plugin is appropriate for rendering in the given |
||||
context. (Non-degenerate) Segment Plugins should override this and |
||||
supply the appropriate tests. |
||||
''' |
||||
|
||||
return True |
||||
@ -0,0 +1,85 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
from django.utils.translation import ugettext_lazy as _ |
||||
|
||||
from cms.plugin_pool import plugin_pool |
||||
|
||||
from .segment_plugin_base import SegmentPluginBase |
||||
|
||||
from ..models import ( |
||||
AuthenticatedSegmentPluginModel, |
||||
CookieSegmentPluginModel, |
||||
FallbackSegmentPluginModel, |
||||
SwitchSegmentPluginModel, |
||||
) |
||||
|
||||
|
||||
class FallbackSegmentPlugin(SegmentPluginBase): |
||||
''' |
||||
This segment plugin represents a degenerate case where the segment |
||||
always matches. |
||||
''' |
||||
|
||||
model = FallbackSegmentPluginModel |
||||
name = _('Fallback') |
||||
|
||||
# It doesn't make much sense to override this one... |
||||
allow_overrides = False |
||||
|
||||
def is_context_appropriate(self, context, instance): |
||||
return True |
||||
|
||||
plugin_pool.register_plugin(FallbackSegmentPlugin) |
||||
|
||||
|
||||
class SwitchSegmentPlugin(SegmentPluginBase): |
||||
''' |
||||
This switch segmentation plugin allows the operator to turn the segment ON |
||||
or OFF statically and independently from the context. This is primarily |
||||
useful for testing. |
||||
''' |
||||
|
||||
model = SwitchSegmentPluginModel |
||||
name = _('Segment by switch') |
||||
|
||||
# It doesn't make much sense to override this one... |
||||
allow_overrides = False |
||||
|
||||
def is_context_appropriate(self, context, instance): |
||||
return instance.on_off |
||||
|
||||
plugin_pool.register_plugin(SwitchSegmentPlugin) |
||||
|
||||
|
||||
class CookieSegmentPlugin(SegmentPluginBase): |
||||
''' |
||||
This is a segmentation plugin that renders output on the condition that a |
||||
cookie with ``cookie_key`` is present and has the value ``cookie_value``. |
||||
''' |
||||
|
||||
model = CookieSegmentPluginModel |
||||
name = _('Segment by cookie') |
||||
|
||||
def is_context_appropriate(self, context, instance): |
||||
request = context.get('request') |
||||
value = request.COOKIES.get(instance.cookie_key) |
||||
return (value == instance.cookie_value) |
||||
|
||||
plugin_pool.register_plugin(CookieSegmentPlugin) |
||||
|
||||
|
||||
class AuthenticatedSegmentPlugin(SegmentPluginBase): |
||||
''' |
||||
This plugin allows segmentation based on the authentication/authorization |
||||
status of the visitor. |
||||
''' |
||||
|
||||
model = AuthenticatedSegmentPluginModel |
||||
name = _('Segment by auth') |
||||
|
||||
def is_context_appropriate(self, context, instance): |
||||
request = context.get('request') |
||||
return request and request.user and request.user.is_authenticated() |
||||
|
||||
plugin_pool.register_plugin(AuthenticatedSegmentPlugin) |
||||
@ -0,0 +1,20 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from cms.toolbar_base import CMSToolbar |
||||
from cms.toolbar_pool import toolbar_pool |
||||
|
||||
from .segment_pool import segment_pool |
||||
|
||||
|
||||
@toolbar_pool.register |
||||
class SegmentToolbar(CMSToolbar): |
||||
|
||||
def populate(self): |
||||
|
||||
segment_pool.get_segments_toolbar_menu( |
||||
self.request.user, |
||||
self.request.toolbar, |
||||
csrf_token=self.request.COOKIES.get('csrftoken') |
||||
) |
||||
Binary file not shown.
@ -0,0 +1,171 @@ |
||||
# SOME DESCRIPTIVE TITLE. |
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER |
||||
# This file is distributed under the same license as the PACKAGE package. |
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. |
||||
# |
||||
#, fuzzy |
||||
msgid "" |
||||
msgstr "" |
||||
"Project-Id-Version: PACKAGE VERSION\n" |
||||
"Report-Msgid-Bugs-To: \n" |
||||
"POT-Creation-Date: 2014-06-21 15:23+0300\n" |
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
||||
"Language-Team: LANGUAGE <LL@li.org>\n" |
||||
"Language: \n" |
||||
"MIME-Version: 1.0\n" |
||||
"Content-Type: text/plain; charset=UTF-8\n" |
||||
"Content-Transfer-Encoding: 8bit\n" |
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n" |
||||
|
||||
#: cms_toolbar.py:40 |
||||
#, python-format |
||||
msgid "Segments (%s)" |
||||
msgstr "Segments (%s)" |
||||
|
||||
#: cms_toolbar.py:40 |
||||
msgid "Segments" |
||||
msgstr "Segments" |
||||
|
||||
#: cms_toolbar.py:104 |
||||
msgid "Reset all segments" |
||||
msgstr "Réinitialiser tous les segments" |
||||
|
||||
#: models.py:29 models.py:75 |
||||
msgid "label" |
||||
msgstr "label" |
||||
|
||||
#: models.py:32 |
||||
msgid "Optionally set a label for this limit block." |
||||
msgstr "Éventuellement définir une étiquette pour ce bloc de limite." |
||||
|
||||
#: models.py:36 |
||||
msgid "# of matches to display" |
||||
msgstr "No. de matchs à afficher" |
||||
|
||||
#: models.py:39 |
||||
msgid "Display up to how many matching segments?" |
||||
msgstr "Afficher jusqu'à combien de segments correspondant?" |
||||
|
||||
#: models.py:45 |
||||
msgid "Show All" |
||||
msgstr "Afficher tous" |
||||
|
||||
#: models.py:47 models.py:49 |
||||
msgid "Show First" |
||||
msgstr "Afficher la première" |
||||
|
||||
#: models.py:54 models.py:108 |
||||
#, python-format |
||||
msgid "%(label)s [%(config)s]" |
||||
msgstr "%(label)s [%(config)s]" |
||||
|
||||
#: models.py:120 |
||||
msgid "Always active" |
||||
msgstr "Toujours activé" |
||||
|
||||
#: models.py:125 |
||||
msgid "Always on?" |
||||
msgstr "Toujours activé?" |
||||
|
||||
#: models.py:127 |
||||
msgid "Uncheck to always hide child plugins." |
||||
msgstr "Décochez de toujours cacher plugins enfants." |
||||
|
||||
#: models.py:133 |
||||
msgid "Always ON" |
||||
msgstr "Toujours activé?" |
||||
|
||||
#: models.py:135 |
||||
msgid "Always OFF" |
||||
msgstr "Toujours désactivé?" |
||||
|
||||
#: models.py:156 |
||||
msgid "name of cookie" |
||||
msgstr "Nom du cookie" |
||||
|
||||
#: models.py:159 |
||||
msgid "Name of cookie to consider." |
||||
msgstr "Nom du cookie à envisager" |
||||
|
||||
#: models.py:163 |
||||
msgid "value to compare" |
||||
msgstr "valeur à comparer" |
||||
|
||||
#: models.py:166 |
||||
msgid "Value to consider." |
||||
msgstr "Valeur à considérer" |
||||
|
||||
#: models.py:174 |
||||
#, python-format |
||||
msgid "“{key}” equals “{value}”" |
||||
msgstr "«{key}» est égal à «{value}»" |
||||
|
||||
#: models.py:460 |
||||
#, python-format |
||||
msgid "%(code)s: %(name)s" |
||||
msgstr "%(code)s: %(name)s" |
||||
|
||||
#: models.py:467 |
||||
msgid "country" |
||||
msgstr "pays" |
||||
|
||||
#: models.py:476 |
||||
msgid " (" |
||||
msgstr " (" |
||||
|
||||
#: models.py:476 |
||||
msgid ")" |
||||
msgstr ")" |
||||
|
||||
#: models.py:485 |
||||
msgid "is Authenticated" |
||||
msgstr "Est authentifiée" |
||||
|
||||
#: segment_pool.py:32 |
||||
msgid "No override" |
||||
msgstr "Pas de dérogation" |
||||
|
||||
#: segment_pool.py:33 |
||||
msgid "Forced active" |
||||
msgstr "Forcée active" |
||||
|
||||
#: segment_pool.py:34 |
||||
msgid "Forced inactive" |
||||
msgstr "Forcé inactif" |
||||
|
||||
#: views.py:23 |
||||
msgid "The segment override was successfully changed." |
||||
msgstr "La correction de segment a été modifié avec succès." |
||||
|
||||
#: views.py:32 |
||||
msgid "The all segment override were successfully reset." |
||||
msgstr "La correction tout segment ont été correctement remis à zéro." |
||||
|
||||
#: cms_plugins/segment_limiter.py:20 cms_plugins/segment_plugin_base.py:28 |
||||
msgid "Segmentation" |
||||
msgstr "Segmentation" |
||||
|
||||
#: cms_plugins/segment_limiter.py:21 |
||||
msgid "Limit Block" |
||||
msgstr "Bloc de limite" |
||||
|
||||
#: cms_plugins/segment_plugins.py:26 |
||||
msgid "Fallback" |
||||
msgstr "Repli" |
||||
|
||||
#: cms_plugins/segment_plugins.py:45 |
||||
msgid "Segment by switch" |
||||
msgstr "Secteur par switch" |
||||
|
||||
#: cms_plugins/segment_plugins.py:63 |
||||
msgid "Segment by cookie" |
||||
msgstr "Secteur par cookie" |
||||
|
||||
#: cms_plugins/segment_plugins.py:87 |
||||
msgid "Segment by country" |
||||
msgstr "Secteur par pays" |
||||
|
||||
#: cms_plugins/segment_plugins.py:107 |
||||
msgid "Segment by auth" |
||||
msgstr "Secteur par auth" |
||||
@ -0,0 +1,125 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from south.utils import datetime_utils as datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding model 'SegmentLimitPluginModel' |
||||
db.create_table(u'aldryn_segmentation_segmentlimitpluginmodel', ( |
||||
(u'cmsplugin_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['cms.CMSPlugin'], unique=True, primary_key=True)), |
||||
('label', self.gf('django.db.models.fields.CharField')(default=u'', max_length=128, blank=True)), |
||||
('max_children', self.gf('django.db.models.fields.PositiveIntegerField')(default=1)), |
||||
)) |
||||
db.send_create_signal(u'aldryn_segmentation', ['SegmentLimitPluginModel']) |
||||
|
||||
# Adding model 'FallbackSegmentPluginModel' |
||||
db.create_table(u'aldryn_segmentation_fallbacksegmentpluginmodel', ( |
||||
(u'cmsplugin_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['cms.CMSPlugin'], unique=True, primary_key=True)), |
||||
('label', self.gf('django.db.models.fields.CharField')(default=u'', max_length=128, blank=True)), |
||||
)) |
||||
db.send_create_signal(u'aldryn_segmentation', ['FallbackSegmentPluginModel']) |
||||
|
||||
# Adding model 'SwitchSegmentPluginModel' |
||||
db.create_table(u'aldryn_segmentation_switchsegmentpluginmodel', ( |
||||
(u'cmsplugin_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['cms.CMSPlugin'], unique=True, primary_key=True)), |
||||
('label', self.gf('django.db.models.fields.CharField')(default=u'', max_length=128, blank=True)), |
||||
('on_off', self.gf('django.db.models.fields.BooleanField')(default=True)), |
||||
)) |
||||
db.send_create_signal(u'aldryn_segmentation', ['SwitchSegmentPluginModel']) |
||||
|
||||
# Adding model 'CookieSegmentPluginModel' |
||||
db.create_table(u'aldryn_segmentation_cookiesegmentpluginmodel', ( |
||||
(u'cmsplugin_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['cms.CMSPlugin'], unique=True, primary_key=True)), |
||||
('label', self.gf('django.db.models.fields.CharField')(default=u'', max_length=128, blank=True)), |
||||
('cookie_key', self.gf('django.db.models.fields.CharField')(default=u'', max_length=4096)), |
||||
('cookie_value', self.gf('django.db.models.fields.CharField')(default=u'', max_length=4096)), |
||||
)) |
||||
db.send_create_signal(u'aldryn_segmentation', ['CookieSegmentPluginModel']) |
||||
|
||||
# Adding model 'AuthenticatedSegmentPluginModel' |
||||
db.create_table(u'aldryn_segmentation_authenticatedsegmentpluginmodel', ( |
||||
(u'cmsplugin_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['cms.CMSPlugin'], unique=True, primary_key=True)), |
||||
('label', self.gf('django.db.models.fields.CharField')(default=u'', max_length=128, blank=True)), |
||||
)) |
||||
db.send_create_signal(u'aldryn_segmentation', ['AuthenticatedSegmentPluginModel']) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting model 'SegmentLimitPluginModel' |
||||
db.delete_table(u'aldryn_segmentation_segmentlimitpluginmodel') |
||||
|
||||
# Deleting model 'FallbackSegmentPluginModel' |
||||
db.delete_table(u'aldryn_segmentation_fallbacksegmentpluginmodel') |
||||
|
||||
# Deleting model 'SwitchSegmentPluginModel' |
||||
db.delete_table(u'aldryn_segmentation_switchsegmentpluginmodel') |
||||
|
||||
# Deleting model 'CookieSegmentPluginModel' |
||||
db.delete_table(u'aldryn_segmentation_cookiesegmentpluginmodel') |
||||
|
||||
# Deleting model 'AuthenticatedSegmentPluginModel' |
||||
db.delete_table(u'aldryn_segmentation_authenticatedsegmentpluginmodel') |
||||
|
||||
|
||||
models = { |
||||
u'aldryn_segmentation.authenticatedsegmentpluginmodel': { |
||||
'Meta': {'object_name': 'AuthenticatedSegmentPluginModel'}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'label': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '128', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_segmentation.cookiesegmentpluginmodel': { |
||||
'Meta': {'object_name': 'CookieSegmentPluginModel'}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'cookie_key': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '4096'}), |
||||
'cookie_value': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '4096'}), |
||||
'label': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '128', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_segmentation.fallbacksegmentpluginmodel': { |
||||
'Meta': {'object_name': 'FallbackSegmentPluginModel'}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'label': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '128', 'blank': 'True'}) |
||||
}, |
||||
u'aldryn_segmentation.segment': { |
||||
'Meta': {'object_name': 'Segment', 'managed': 'False'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) |
||||
}, |
||||
u'aldryn_segmentation.segmentlimitpluginmodel': { |
||||
'Meta': {'object_name': 'SegmentLimitPluginModel', '_ormbases': ['cms.CMSPlugin']}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'label': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '128', 'blank': 'True'}), |
||||
'max_children': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}) |
||||
}, |
||||
u'aldryn_segmentation.switchsegmentpluginmodel': { |
||||
'Meta': {'object_name': 'SwitchSegmentPluginModel'}, |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'label': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '128', 'blank': 'True'}), |
||||
'on_off': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['aldryn_segmentation'] |
||||
@ -0,0 +1,241 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import models |
||||
from django.utils import six |
||||
from django.utils.encoding import python_2_unicode_compatible, force_text |
||||
from django.utils.functional import lazy |
||||
from django.utils.translation import ugettext_lazy as _, string_concat |
||||
|
||||
from cms.models import CMSPlugin |
||||
|
||||
|
||||
# |
||||
# NOTE: The SegmentLimitPluginModel does NOT subclass SegmentBasePluginModel |
||||
# |
||||
@python_2_unicode_compatible |
||||
class SegmentLimitPluginModel(CMSPlugin): |
||||
|
||||
# |
||||
# Need to consider how best to display this in the Plugin Change Form... |
||||
# |
||||
# 0 means "Display ALL segments that match", |
||||
# 1 means "Display first matching segment", |
||||
# 2 means "Display up to two matching segments," |
||||
# and so on... |
||||
# |
||||
|
||||
label = models.CharField(_('label'), |
||||
blank=True, |
||||
default='', |
||||
help_text=_('Optionally set a label for this limit block.'), |
||||
max_length=128, |
||||
) |
||||
|
||||
max_children = models.PositiveIntegerField(_('# of matches to display'), |
||||
blank=False, |
||||
default=1, |
||||
help_text=_('Display up to how many matching segments?'), |
||||
) |
||||
|
||||
@property |
||||
def configuration_string(self): |
||||
if self.max_children == 0: |
||||
return _('Show All') |
||||
elif self.max_children == 1: |
||||
return _('Show First') |
||||
else: |
||||
return string_concat(_('Show First'), ' ', self.max_children) |
||||
|
||||
|
||||
def __str__(self): |
||||
''' |
||||
If there is a label, show that with the configuration in brackets, |
||||
otherwise, just return the configuration string. |
||||
''' |
||||
|
||||
if self.label: |
||||
conf_str = _('{label} [{config}]').format( |
||||
label=self.label, |
||||
config=force_text(self.configuration_string), |
||||
) |
||||
else: |
||||
conf_str = self.configuration_string |
||||
|
||||
return force_text(conf_str) |
||||
|
||||
|
||||
@python_2_unicode_compatible |
||||
class SegmentBasePluginModel(CMSPlugin): |
||||
|
||||
# |
||||
# Defines a common interface for segment plugins. Also note that plugin |
||||
# model's subclassing this class will automatically be (un-)registered |
||||
# (from)to the segment_pool via 'pre_delete' and 'post_save' signals. This |
||||
# is implemented in aldryn_segmentation.segment_pool. |
||||
# |
||||
|
||||
class Meta: |
||||
abstract = True |
||||
|
||||
label = models.CharField(_('label'), |
||||
blank=True, |
||||
default='', |
||||
max_length=128, |
||||
) |
||||
|
||||
|
||||
@property |
||||
def configuration_string(self): |
||||
''' |
||||
Return a ugettext_lazy object (or a lazy function that returns the |
||||
same) that represents the configuration for the plugin instance in a |
||||
unique, concise manner that is suitable for a toolbar menu option. |
||||
|
||||
Some Examples: |
||||
Cookie: |
||||
'"key" equals "value"' |
||||
Country: |
||||
'Country is Kenya' |
||||
Auth: |
||||
'User is authenticated' |
||||
Switch: |
||||
'Always ON' |
||||
Limit: |
||||
'Show First' |
||||
|
||||
In cases where the returned string is composed with placeholders, E.g.: |
||||
|
||||
Cookie: |
||||
ugettext_lazy('“{key}” equals “{value}”').format( |
||||
key=self.key, |
||||
value=self.value |
||||
) |
||||
|
||||
You *must* actually return a evaluated, lazy wrapper around the |
||||
gettext_lazy operation as follows: |
||||
|
||||
def configuration_string(self): |
||||
wrapper(): |
||||
return ugettext_lazy('“{key}” equals “{value}”').format( |
||||
key=self.key, |
||||
value=self.value |
||||
) |
||||
|
||||
# NOTE: the trailing '()' |
||||
return lazy(wrapper, six.text_type)() |
||||
|
||||
Otherwise, the translations won't happen. |
||||
|
||||
This construction is not required for untranslated or non- |
||||
parameterized translations. |
||||
|
||||
|
||||
NOTE: Each subclass must override to suit. |
||||
''' |
||||
raise NotImplementedError("Please Implement this method") |
||||
|
||||
|
||||
def __str__(self): |
||||
''' |
||||
If there is a label, show that with the configuration in brackets, |
||||
otherwise, just return the configuration string. |
||||
''' |
||||
|
||||
if self.label: |
||||
conf_str = _('{label} [{config}]').format( |
||||
label=self.label, |
||||
config=force_text(self.configuration_string), |
||||
) |
||||
else: |
||||
conf_str = self.configuration_string |
||||
|
||||
return force_text(conf_str) |
||||
|
||||
|
||||
class FallbackSegmentPluginModel(SegmentBasePluginModel): |
||||
|
||||
@property |
||||
def configuration_string(self): |
||||
return _('Always active') |
||||
|
||||
|
||||
class SwitchSegmentPluginModel(SegmentBasePluginModel): |
||||
|
||||
on_off = models.BooleanField(_('Always on?'), |
||||
default=True, |
||||
help_text=_('Uncheck to always hide child plugins.'), |
||||
) |
||||
|
||||
@property |
||||
def configuration_string(self): |
||||
if self.on_off: |
||||
return _('Always ON') |
||||
else: |
||||
return _('Always OFF') |
||||
|
||||
|
||||
class CookieSegmentPluginModel(SegmentBasePluginModel): |
||||
|
||||
# |
||||
# Consider that we should probably support either: |
||||
# Simple wildcard '*', '?' expressions or |
||||
# RegEx expressions or |
||||
# Both. |
||||
# |
||||
# A note about the max_lengths selected: browsers can support up to 4093 |
||||
# characters for a given cookie (combining both the key and the value). So |
||||
# either one can be up to 4092 chars in length. Since these are |
||||
# implemented as VarChars, this shouldn't be too wasteful and still |
||||
# support almost anything. |
||||
# |
||||
# NOTE: This forces a requirement for MySQL users to be using 5.0.3 or |
||||
# later (which is already a requirement for Django 1.5+). |
||||
# |
||||
|
||||
cookie_key = models.CharField(_('name of cookie'), |
||||
blank=False, |
||||
default='', |
||||
help_text=_('Name of cookie to consider.'), |
||||
max_length=4096, |
||||
) |
||||
|
||||
cookie_value = models.CharField(_('value to compare'), |
||||
blank=False, |
||||
default='', |
||||
help_text=_('Value to consider.'), |
||||
max_length=4096, |
||||
) |
||||
|
||||
@property |
||||
def configuration_string(self): |
||||
|
||||
def wrapper(): |
||||
return _('“{key}” equals “{value}”').format(key=self.cookie_key, value=self.cookie_value) |
||||
|
||||
return lazy( |
||||
wrapper, |
||||
six.text_type |
||||
)() |
||||
|
||||
|
||||
class AuthenticatedSegmentPluginModel(SegmentBasePluginModel): |
||||
|
||||
@property |
||||
def configuration_string(self): |
||||
return _('is Authenticated') |
||||
|
||||
|
||||
@python_2_unicode_compatible |
||||
class Segment(models.Model): |
||||
''' |
||||
This is a hollow, unmanaged model that simply allows us to attach custom |
||||
admin views into the AdminSite. |
||||
''' |
||||
|
||||
class Meta: |
||||
managed=False |
||||
|
||||
def __str__(self): |
||||
return 'Segment is an empty, unmanaged model.' |
||||
@ -0,0 +1,4 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from .segment_pool import SegmentOverride, segment_pool |
||||
from .signals import register_segment, unregister_segment |
||||
@ -0,0 +1,600 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
import sys |
||||
import warnings |
||||
|
||||
from django.core.exceptions import ImproperlyConfigured |
||||
from django.core.urlresolvers import reverse |
||||
from django.utils import six |
||||
from django.utils.encoding import force_text, python_2_unicode_compatible |
||||
from django.utils.functional import Promise |
||||
from django.utils.translation import activate, get_language, ugettext_lazy as _ |
||||
|
||||
from cms.exceptions import PluginAlreadyRegistered, PluginNotRegistered |
||||
from cms.models import CMSPlugin |
||||
from cms.plugin_pool import plugin_pool |
||||
from cms.toolbar.items import SubMenu, Break, AjaxItem |
||||
|
||||
from ..cms_plugins import SegmentPluginBase |
||||
from ..models import SegmentBasePluginModel |
||||
|
||||
|
||||
# |
||||
# A simple enum so we can use the same code in Python's < 3.4. |
||||
# |
||||
class SegmentOverride: |
||||
NoOverride, ForcedActive, ForcedInactive = range(3) |
||||
|
||||
overrides_list = [ |
||||
(NoOverride, _('No override')), |
||||
(ForcedActive, _('Forced active')), |
||||
(ForcedInactive, _('Forced inactive')), |
||||
] |
||||
|
||||
|
||||
@python_2_unicode_compatible |
||||
class SegmentPool(object): |
||||
''' |
||||
This maintains a set of nested sorted dicts containing, among other |
||||
attributes, a list of segment plugin instances in the form: |
||||
|
||||
segments = { |
||||
/class/ : { |
||||
NAME: _(/name/), |
||||
CFGS: { |
||||
/configuration_string/ : { |
||||
LABEL: _(/configuration_string/), |
||||
OVERRIDES: { |
||||
/user.id/: /SegmentOverride enum value/, |
||||
... |
||||
}, |
||||
INSTANCES: [ ... ] |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
The outer-most dict organizes everything by the class name of the plugin. |
||||
The actual human-readable version of the plugin's type name is stored |
||||
under the key 'NAME'. |
||||
|
||||
Each plugin's unique configuration is stored in the plugin type's CFGS |
||||
dict keyed with the instance's configuration_string realised as 'en' |
||||
unicode. The unresolved version of the string--usually a lazy translation |
||||
proxy object--is stored under the configuration's 'LABEL' key. This allows |
||||
translation to any other language (that is in the gettext catalog) at |
||||
will. This is also used for correctly sorting the configurations in the |
||||
current language. |
||||
|
||||
This is implmented as a non-persistent, system-wide singleton, it is |
||||
shared by all operators of the system. In order to keep overrides for each |
||||
user distinct, they are stored in the OVERRIDES dict, keyed with the |
||||
user's username. |
||||
|
||||
Plugin instances are recorded in the INSTANCES list. As well as allowing |
||||
us to find instances that have changed their configuration (likely to |
||||
happen when an operator changes the plugin's configuration), this allows |
||||
us to prune no-longer relevant parts of this structure as instances are |
||||
de-registered. |
||||
''' |
||||
|
||||
# |
||||
# Magic Strings for managing the structures below. |
||||
# |
||||
CFGS = 'CFGS' |
||||
NAME = 'NAME' |
||||
LABEL = 'LABEL' |
||||
OVERRIDES = 'OVERRIDES' |
||||
INSTANCES = 'INSTANCES' |
||||
|
||||
|
||||
def __init__(self): |
||||
self.segments = dict() |
||||
self._sorted_segments = dict() |
||||
|
||||
|
||||
def discover(self): |
||||
''' |
||||
Find and register any SegmentPlugins already configured in the CMS and |
||||
register them. |
||||
''' |
||||
|
||||
# |
||||
# To reduce the number of queries we'll be making against CMSPlugin, |
||||
# let's build a set of eligible plugin_types. This part should not hit |
||||
# the database at all (provided that the plugin_pool is already |
||||
# populated.) |
||||
# |
||||
# In this case, 'eligible' means that the plugin class subclasses |
||||
# SegmentPluginBase and that it has allow_overrides = True. Segment |
||||
# plugins that have allow_overrides = False are not registered. |
||||
# |
||||
plugin_types = [] |
||||
for plugin_class in plugin_pool.get_all_plugins(): |
||||
if (issubclass(plugin_class, SegmentPluginBase) and |
||||
plugin_class.allow_overrides): |
||||
plugin_types.append(plugin_class.__name__) |
||||
|
||||
# |
||||
# Process the plugins that are one of these types. |
||||
# |
||||
for plugin_instance in CMSPlugin.objects.filter(plugin_type__in=plugin_types): |
||||
# |
||||
# Get the instance as an instance of its proper class rather than |
||||
# this CMSPlugin object. |
||||
# |
||||
plugin_instance = plugin_instance.get_plugin_instance()[0] |
||||
self.register_segment_plugin(plugin_instance, suppress_discovery=True) |
||||
|
||||
|
||||
def register_segment_plugin(self, plugin_instance, suppress_discovery=False): |
||||
''' |
||||
Registers the provided plugin_instance into the SegmentPool. |
||||
Raises: |
||||
PluginAlreadyRegistered: if the plugin is already registered and |
||||
ImproperlyConfigured: if not an appropriate type of plugin. |
||||
|
||||
Note: plugin_instance.configuration_string can return either of: |
||||
|
||||
1. A normal string of text, |
||||
2. A gettext_lazy object, |
||||
3. A extra-lazy object (Promise to return a gettext_lazy object) |
||||
|
||||
the `suppress_discovery` flag, when set to true, prevents recursion |
||||
and should be only used by the self.discovery() method. |
||||
''' |
||||
|
||||
if not suppress_discovery and not self.segments: |
||||
self.discover() |
||||
|
||||
if isinstance(plugin_instance, SegmentBasePluginModel): |
||||
plugin_class_instance = plugin_instance.get_plugin_class_instance() |
||||
|
||||
if plugin_class_instance.allow_overrides: |
||||
# |
||||
# There is no need to register a plugin that doesn't |
||||
# allow overrides. |
||||
# |
||||
plugin_class_name = plugin_class_instance.__class__.__name__ |
||||
plugin_name = plugin_class_instance.name |
||||
|
||||
if plugin_class_name not in self.segments: |
||||
self.segments[plugin_class_name] = { |
||||
self.NAME: plugin_name, |
||||
self.CFGS: dict(), |
||||
} |
||||
self._sorted_segments = dict() |
||||
segment_class = self.segments[plugin_class_name] |
||||
|
||||
plugin_config = plugin_instance.configuration_string |
||||
|
||||
# |
||||
# NOTE: We always use the 'en' version of the configuration string |
||||
# as the key. |
||||
# |
||||
lang = get_language() |
||||
activate('en') |
||||
|
||||
if isinstance(plugin_config, Promise): |
||||
plugin_config_key = force_text(plugin_config) |
||||
elif isinstance(plugin_config, six.text_type): |
||||
plugin_config_key = plugin_config |
||||
else: |
||||
warnings.warn('register_segment: Not really sure what ' |
||||
'‘plugin_instance.configuration_string’ returned!') |
||||
|
||||
activate(lang) |
||||
|
||||
segment_configs = segment_class[self.CFGS] |
||||
|
||||
if plugin_config_key not in segment_configs: |
||||
# We store the un-translated version as the LABEL |
||||
segment_configs[plugin_config_key] = { |
||||
self.LABEL : plugin_config, |
||||
self.OVERRIDES : dict(), |
||||
self.INSTANCES : list(), |
||||
} |
||||
self._sorted_segments = dict() |
||||
|
||||
segment = segment_configs[plugin_config_key] |
||||
|
||||
if plugin_instance not in segment[self.INSTANCES]: |
||||
segment[self.INSTANCES].append( plugin_instance ) |
||||
self._sorted_segments = dict() |
||||
else: |
||||
cls = plugin_instance.get_plugin_class_instance().__class__.__name__ |
||||
raise PluginAlreadyRegistered('The segment plugin {0} cannot ' |
||||
'be registered because it already is.'.format(cls)) |
||||
|
||||
else: |
||||
cls = plugin_instance.__class__.__name__ |
||||
raise ImproperlyConfigured('Segment Plugin models must ' |
||||
'subclass SegmentBasePluginModel. {0!r} does not.'.format(cls)) |
||||
|
||||
|
||||
def unregister_segment_plugin(self, plugin_instance): |
||||
''' |
||||
Removes the given plugin from the SegmentPool. |
||||
''' |
||||
|
||||
# |
||||
# NOTE: In many cases, the configuration of a given plugin may have |
||||
# changed before we receive the call to unregister it. So, we'll look |
||||
# for the plugin in all CFGS for this plugin's class. |
||||
# |
||||
|
||||
if not self.segments: |
||||
self.discover() |
||||
|
||||
if not isinstance(plugin_instance, SegmentBasePluginModel): |
||||
raise ImproperlyConfigured('Segment Plugins must subclasses of ' |
||||
'SegmentBasePluginModel. {0} is not.'.format( |
||||
plugin_instance.get_plugin_class_instance().__class__.__name__ |
||||
)) |
||||
else: |
||||
plugin_class_instance = plugin_instance.get_plugin_class_instance() |
||||
if plugin_class_instance.allow_overrides: |
||||
# |
||||
# A segment plugin that doesn't allow overrides wouldn't be |
||||
# registered in the first place. |
||||
# |
||||
plugin_class_name = plugin_class_instance.__class__.__name__ |
||||
|
||||
if plugin_class_name in self.segments: |
||||
segment_class = self.segments[plugin_class_name] |
||||
segment_configs = segment_class[self.CFGS] |
||||
for configuration, data in segment_configs.items(): |
||||
if plugin_instance in data[self.INSTANCES]: |
||||
# Found it! Now remove it... |
||||
data[self.INSTANCES].remove(plugin_instance) |
||||
self._sorted_segments = dict() |
||||
|
||||
# Clean-up any empty elements caused by this removal... |
||||
if len(data[self.INSTANCES]) == 0: |
||||
# OK, this was the last one, so... |
||||
del segment_configs[configuration] |
||||
|
||||
if len(segment_configs) == 0: |
||||
# This too was the last one |
||||
del self.segments[plugin_class_name] |
||||
return |
||||
|
||||
try: |
||||
cls = plugin_instance.get_plugin_class_instance().__class__.__name__ |
||||
raise PluginNotRegistered('The segment plugin {0} cannot be ' |
||||
'unregistered because it is not currently registered in the ' |
||||
'SegmentPool.'.format(cls)) |
||||
except: |
||||
raise PluginNotRegistered() |
||||
|
||||
|
||||
def set_override(self, user, segment_class, segment_config, override): |
||||
''' |
||||
(Re-)Set an override on a segment (segment_class x segment_config). |
||||
''' |
||||
|
||||
if not self.segments: |
||||
self.discover() |
||||
|
||||
overrides = self.segments[segment_class][self.CFGS][segment_config][self.OVERRIDES] |
||||
if override == SegmentOverride.NoOverride: |
||||
del overrides[user.username] |
||||
else: |
||||
overrides[user.username] = override |
||||
self._sorted_segments = dict() |
||||
|
||||
|
||||
def reset_all_segment_overrides(self, user): |
||||
''' |
||||
Resets (disables) the overrides for all segments. |
||||
''' |
||||
|
||||
if not self.segments: |
||||
self.discover() |
||||
|
||||
for segment_class in self.segments.values(): |
||||
for configuration in segment_class[self.CFGS].values(): |
||||
for username, override in configuration[self.OVERRIDES].items(): |
||||
if username == user.username: |
||||
configuration[self.OVERRIDES][username] = SegmentOverride.NoOverride |
||||
self._sorted_segments = dict() |
||||
|
||||
|
||||
def get_num_overrides_for_user(self, user): |
||||
''' |
||||
Returns a count of the number of overrides for all segments for the |
||||
given user. This is used for the toolbar menu where we show the number |
||||
of active overrides. |
||||
''' |
||||
|
||||
if not self.segments: |
||||
self.discover() |
||||
|
||||
num = 0 |
||||
for segment_class_name, segment_class in self.segments.items(): |
||||
for config_str, config in segment_class[self.CFGS].items(): |
||||
for username, override in config[self.OVERRIDES].items(): |
||||
if username == user.username and int(override): |
||||
num += 1 |
||||
return num |
||||
|
||||
|
||||
def get_override_for_classname(self, user, plugin_class_name, segment_config): |
||||
''' |
||||
Given the user, plugin_class_name and segment_config, return the |
||||
current override, if any. |
||||
''' |
||||
|
||||
# |
||||
# Note: segment_config can be either of: |
||||
# |
||||
# 1. A number string of text |
||||
# 2. A lazy translation object (Promise) |
||||
# |
||||
|
||||
if not self.segments: |
||||
self.discover() |
||||
|
||||
lang = get_language() |
||||
activate('en') |
||||
if isinstance(segment_config, Promise): |
||||
segment_key = force_text(segment_config) |
||||
elif isinstance(segment_config, six.text_type): |
||||
segment_key = segment_config |
||||
else: |
||||
segment_key = segment_config |
||||
activate(lang) |
||||
|
||||
try: |
||||
overrides = self.segments[plugin_class_name][self.CFGS][segment_key][self.OVERRIDES] |
||||
|
||||
if user.username in overrides: |
||||
# TODO: I don't like this int-casting used here or anywhere. |
||||
return int(overrides[user.username]) |
||||
|
||||
except KeyError: |
||||
if not isinstance(segment_config, Promise): |
||||
import inspect |
||||
warnings.warn('get_override_for_segment() received ' |
||||
'segment_config: “{0}” as type {1} from: {2!r}. ' |
||||
'This has resulted in a failure to retrieve a ' |
||||
'segment override.'.format( |
||||
segment_config, |
||||
type(segment_config), |
||||
inspect.stack()[1][3] |
||||
) |
||||
) |
||||
|
||||
return SegmentOverride.NoOverride |
||||
|
||||
|
||||
def get_override_for_segment(self, user, plugin_class_instance, plugin_instance): |
||||
''' |
||||
Given a specific user, plugin class and instance, return the current |
||||
override. This is a wrapper around get_override_for_classname() and |
||||
provides the appropriate duck-checking and is therefore more useful as |
||||
an external entry-point into the segment_pool. |
||||
''' |
||||
|
||||
if not self.segments: |
||||
self.discover() |
||||
|
||||
if (hasattr(plugin_class_instance, 'allow_overrides') and |
||||
plugin_class_instance.allow_overrides and |
||||
hasattr(plugin_instance, 'configuration_string')): |
||||
|
||||
segment_class = plugin_class_instance.__class__.__name__ |
||||
segment_config = plugin_instance.configuration_string |
||||
|
||||
return self.get_override_for_classname(user, segment_class, segment_config) |
||||
|
||||
return SegmentOverride.NoOverride |
||||
|
||||
|
||||
def _get_sorted_copy(self): |
||||
''' |
||||
Returns the SegmentPool as a list of tuples sorted appropriately for |
||||
human consumption in *the current language*. This means that the |
||||
_(NAME) value should determine the sort order of the outer dict and |
||||
the _('segment_config') key should determine the order of the inner |
||||
dicts. In both cases, the keys need to be compared in the provided |
||||
language. |
||||
|
||||
Further note that the current language is given by get_language() and |
||||
that this will reflect the CMS operator's user settings, NOT the current |
||||
PAGE language. |
||||
|
||||
NOTE: that the structure of the sorted pool is different. Two of the |
||||
nested dicts are now lists of tuples so that the sort can be retained. |
||||
|
||||
_sorted_segments = [ |
||||
(/class/, { |
||||
NAME: _(/name/), |
||||
CFGS: [ |
||||
(/configuration_string/, { |
||||
LABEL: _(/configuration_string/), |
||||
OVERRIDES: { |
||||
/user.id/: /SegmentOverride enum value/, |
||||
... |
||||
}, |
||||
INSTANCES: [ ... ] |
||||
}) |
||||
] |
||||
}) |
||||
] |
||||
|
||||
NOTE: On Python 3.0+ systems, we depend on pyuca for collation, which |
||||
produces excellent results. On earlier systems, this is not available, |
||||
so, we use a cruder mapping of accented characters into their |
||||
unaccented ASCII equivalents. |
||||
''' |
||||
|
||||
sort_key = None |
||||
if sys.version_info >= (3, 0): |
||||
uca = None |
||||
# |
||||
# Unfortunately, the pyuca class–which can provide collation of |
||||
# strings in a thread-safe manner–is for Python 3.0+ only |
||||
# |
||||
try: |
||||
from pyuca import Collator |
||||
uca = Collator() |
||||
sort_key = uca.sort_key |
||||
except: |
||||
pass |
||||
|
||||
if not sort_key: |
||||
# |
||||
# Our fallback position is to use a more simple approach of |
||||
# mapping 'accented' chars to latin equivalents before sorting, |
||||
# this is crude, but better than nothing. |
||||
# |
||||
from .unaccent import unaccented_map |
||||
|
||||
def sort_key(s): |
||||
return s.translate(unaccented_map()) |
||||
|
||||
pool = self.segments |
||||
clone = [] |
||||
for cls_key in sorted(pool.keys()): |
||||
cls_dict = { |
||||
self.NAME: pool[cls_key][self.NAME], |
||||
self.CFGS: list(), |
||||
} |
||||
clone.append(( cls_key, cls_dict )) |
||||
# We'll build the CFG as a list in arbitrary order for now... |
||||
for cfg_key in pool[cls_key][self.CFGS]: |
||||
cfg_dict = { |
||||
self.LABEL: pool[cls_key][self.CFGS][cfg_key][self.LABEL], |
||||
self.OVERRIDES: dict(), |
||||
self.INSTANCES: list(), |
||||
} |
||||
for username, override in pool[cls_key][self.CFGS][cfg_key][self.OVERRIDES].items(): |
||||
cfg_dict[self.OVERRIDES][username] = override |
||||
for instance in pool[cls_key][self.CFGS][cfg_key][self.INSTANCES]: |
||||
cfg_dict[self.INSTANCES].append(instance) |
||||
cls_dict[self.CFGS].append( (cfg_key, cfg_dict) ) |
||||
# |
||||
# Now, sort the CFGS by their LABEL, using which every means we |
||||
# have available to us at this moment. |
||||
# |
||||
cls_dict[self.CFGS] = sorted(cls_dict[self.CFGS], key=lambda x: sort_key(force_text(x[1][self.LABEL]))) |
||||
|
||||
return clone |
||||
|
||||
|
||||
def get_registered_segments(self): |
||||
''' |
||||
This is the interfact for obtaining a copy of the pool. It is returned |
||||
sorted for the current language. |
||||
''' |
||||
|
||||
if not self.segments: |
||||
self.discover() |
||||
|
||||
lang = get_language() |
||||
if not lang in self._sorted_segments: |
||||
self._sorted_segments[lang] = self._get_sorted_copy() |
||||
|
||||
return self._sorted_segments[lang] |
||||
|
||||
|
||||
def get_segments_toolbar_menu(self, user, toolbar, csrf_token): |
||||
''' |
||||
Returns a CMSToolbar "Segments" menu from the pool. |
||||
''' |
||||
|
||||
# |
||||
# NOTE: This is usually when the discovery process starts. |
||||
# |
||||
if not self.segments: |
||||
self.discover() |
||||
|
||||
pool = self.get_registered_segments() |
||||
|
||||
num_overrides = self.get_num_overrides_for_user(user) |
||||
|
||||
if num_overrides: |
||||
segment_menu_name = _('Segments ({num:d})'.format(num=num_overrides)) |
||||
else: |
||||
segment_menu_name = _('Segments') |
||||
|
||||
segment_menu = toolbar.get_or_create_menu( |
||||
'segmentation-menu', |
||||
segment_menu_name |
||||
) |
||||
|
||||
for segment_class_name, segment_class in pool: |
||||
segment_name = segment_class[self.NAME] |
||||
|
||||
segment_class_menu = segment_menu.get_or_create_menu( |
||||
segment_class_name, |
||||
segment_name |
||||
) |
||||
|
||||
for config_str, config in segment_class[self.CFGS]: |
||||
|
||||
user_override = segment_pool.get_override_for_classname( |
||||
user, |
||||
segment_class_name, |
||||
config_str |
||||
) |
||||
|
||||
config_menu = SubMenu(config[self.LABEL], csrf_token) |
||||
segment_class_menu.add_item(config_menu) |
||||
|
||||
for override, override_label in SegmentOverride.overrides_list: |
||||
if override == SegmentOverride.NoOverride: |
||||
# We don't really want to show the 'No override' as an |
||||
# actionable item. |
||||
continue |
||||
|
||||
active = bool(override == user_override) |
||||
|
||||
if active: |
||||
# Mark parent menus active too |
||||
config_menu.active = True |
||||
segment_class_menu.active = True |
||||
|
||||
if (override != user_override): |
||||
override_value = override |
||||
else: |
||||
override_value = SegmentOverride.NoOverride |
||||
|
||||
config_menu.add_ajax_item( |
||||
override_label, |
||||
action=reverse('admin:set_segment_override'), |
||||
data={ |
||||
'segment_class': segment_class_name, |
||||
'segment_config': config_str, |
||||
'override': override_value, |
||||
}, |
||||
active=active, |
||||
on_success=toolbar.REFRESH_PAGE |
||||
) |
||||
|
||||
segment_menu.add_item(Break()) |
||||
reset_ajax_item = AjaxItem( |
||||
_('Reset all segments'), |
||||
# TODO: This should not use a named pattern |
||||
action=reverse('admin:reset_all_segment_overrides'), |
||||
csrf_token=csrf_token, |
||||
data={}, |
||||
disabled=bool(num_overrides == 0), |
||||
on_success=toolbar.REFRESH_PAGE |
||||
) |
||||
segment_menu.add_item(reset_ajax_item) |
||||
|
||||
|
||||
def __str__(self): |
||||
''' |
||||
Returns the whole segment_pool structure. Useful for debugging. Not |
||||
much else. |
||||
''' |
||||
|
||||
return self.segments |
||||
|
||||
|
||||
segment_pool = SegmentPool() |
||||
@ -0,0 +1,44 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from django.db.models.signals import post_save, pre_delete |
||||
from django.dispatch import receiver |
||||
from django.core.exceptions import ImproperlyConfigured |
||||
|
||||
from cms.exceptions import PluginAlreadyRegistered, PluginNotRegistered |
||||
from .segment_pool import segment_pool |
||||
from ..models import SegmentBasePluginModel |
||||
|
||||
|
||||
@receiver(post_save) |
||||
def register_segment(sender, instance, created, **kwargs): |
||||
''' |
||||
Ensure that saving changes in the model results in the de-registering (if |
||||
necessary) and registering of this segment plugin. |
||||
''' |
||||
|
||||
if isinstance(instance, SegmentBasePluginModel): |
||||
if not created: |
||||
try: |
||||
segment_pool.unregister_segment_plugin(instance) |
||||
except (PluginAlreadyRegistered, ImproperlyConfigured): |
||||
pass |
||||
|
||||
# Either way, we register it. |
||||
try: |
||||
segment_pool.register_segment_plugin(instance) |
||||
except (PluginAlreadyRegistered, ImproperlyConfigured): |
||||
pass |
||||
|
||||
|
||||
@receiver(pre_delete) |
||||
def unregister_segment(sender, instance, **kwargs): |
||||
''' |
||||
Listens for signals that a SegmentPlugin instance is to be deleted, and |
||||
un-registers it from the segment_pool. |
||||
''' |
||||
|
||||
if isinstance(instance, SegmentBasePluginModel): |
||||
try: |
||||
segment_pool.unregister_segment_plugin(instance) |
||||
except (PluginNotRegistered, ImproperlyConfigured): |
||||
pass |
||||
@ -0,0 +1,64 @@ |
||||
# -*- coding: latin-1 -*- |
||||
# Notice the encoding string above! |
||||
# |
||||
|
||||
# $Id$ |
||||
# use a dynamically populated translation dictionary to remove accents |
||||
# from a string |
||||
# |
||||
# This was originally borrowed from: |
||||
# http://svn.effbot.org/public/stuff/sandbox/text/unaccent.py |
||||
# |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
import unicodedata, sys |
||||
|
||||
CHAR_REPLACEMENT = { |
||||
# latin-1 characters that don't have a unicode decomposition |
||||
0xc6: u"AE", # LATIN CAPITAL LETTER AE |
||||
0xd0: u"D", # LATIN CAPITAL LETTER ETH |
||||
0xd8: u"OE", # LATIN CAPITAL LETTER O WITH STROKE |
||||
0xde: u"Th", # LATIN CAPITAL LETTER THORN |
||||
0xdf: u"ss", # LATIN SMALL LETTER SHARP S |
||||
0xe6: u"ae", # LATIN SMALL LETTER AE |
||||
0xf0: u"d", # LATIN SMALL LETTER ETH |
||||
0xf8: u"oe", # LATIN SMALL LETTER O WITH STROKE |
||||
0xfe: u"th", # LATIN SMALL LETTER THORN |
||||
} |
||||
|
||||
## |
||||
# Translation dictionary. Translation entries are added to this |
||||
# dictionary as needed. |
||||
|
||||
class unaccented_map(dict): |
||||
|
||||
## |
||||
# Maps a unicode character code (the key) to a replacement code |
||||
# (either a character code or a unicode string). |
||||
|
||||
def mapchar(self, key): |
||||
ch = self.get(key) |
||||
if ch is not None: |
||||
return ch |
||||
if sys.version_info >= (3, 0): |
||||
de = unicodedata.decomposition(chr(key)) |
||||
else: |
||||
de = unicodedata.decomposition(unichr(key)) |
||||
if de: |
||||
try: |
||||
ch = int(de.split(None, 1)[0], 16) |
||||
except (IndexError, ValueError): |
||||
ch = key |
||||
else: |
||||
ch = CHAR_REPLACEMENT.get(key, key) |
||||
self[key] = ch |
||||
return ch |
||||
|
||||
if sys.version >= "2.5": |
||||
# use __missing__ where available |
||||
__missing__ = mapchar |
||||
else: |
||||
# otherwise, use standard __getitem__ hook (this is slower, |
||||
# since it's called for each character) |
||||
__getitem__ = mapchar |
||||
@ -0,0 +1,7 @@ |
||||
{% load segmentation_tags %}{% comment %} |
||||
|
||||
NOTE: child_plugins is a list of tuples of the form (instance, Boolean) |
||||
where, instance is the child plugin instance and Boolean represents |
||||
whether the plugin should be rendered in this context. |
||||
|
||||
{% endcomment %}{% for child in child_plugins %}{% render_segment_plugin child.0 child.1 %}{% endfor %} |
||||
@ -0,0 +1,2 @@ |
||||
{% load cms_tags %} |
||||
{% for child in instance.child_plugin_instances %}{% render_plugin child %}{% endfor %} |
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue