Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
Niels van Dijk committed Feb 7, 2013
2 parents 7a07666 + 9f7276c commit 4f33305
Show file tree
Hide file tree
Showing 10 changed files with 128 additions and 17 deletions.
8 changes: 4 additions & 4 deletions README.md
Expand Up @@ -32,10 +32,10 @@ We're assuming you are using Django 1.3.x or 1.4.

These dependencies are automatically installed:

Pillow==1.7.7
django-mptt==0.5.1
django-compressor>=0.7.1
djangorestframework==2.1.12
Pillow==1.7.8
django-mptt==0.5.5
django-compressor>=1.2
djangorestframework==2.1.17


## Settings
Expand Down
4 changes: 3 additions & 1 deletion fiber/admin.py
Expand Up @@ -101,7 +101,7 @@ class PageAdmin(UserPermissionMixin, MPTTModelAdmin):
form = forms.PageForm
fieldsets = (
(None, {'fields': ('parent', 'title', 'url', 'redirect_page', 'template_name')}),
(_('Advanced options'), {'classes': ('collapse',), 'fields': ('mark_current_regexes', 'show_in_menu', 'is_public', 'protected',)}),
(_('Advanced options'), {'classes': ('collapse',), 'fields': ('meta_description', 'mark_current_regexes', 'show_in_menu', 'is_public', 'protected',)}),
(_('Metadata'), {'classes': ('collapse',), 'fields': ('metadata',)}),
)

Expand Down Expand Up @@ -177,11 +177,13 @@ def __init__(self, *args, **kwargs):
self.fieldsets = (
(None, {'fields': ('title', 'url', )}),
(_('Advanced options'), {'fields': ('redirect_page', 'show_in_menu', 'is_public', )}),
(_('SEO'), {'fields': ('meta_description', )}),
)
else:
self.fieldsets = (
(None, {'fields': ('title', 'url', )}),
(_('Advanced options'), {'fields': ('template_name', 'redirect_page', 'show_in_menu', 'is_public', )}),
(_('SEO'), {'fields': ('meta_description', )}),
)

def save_model(self, request, obj, form, change):
Expand Down
1 change: 1 addition & 0 deletions fiber/admin_forms.py
Expand Up @@ -21,6 +21,7 @@ def __init__(self, *args, **kwargs):

class PageForm(forms.ModelForm):

meta_description = forms.CharField(widget=forms.Textarea, required=False)
parent = TreeNodeChoiceField(queryset=Page.tree.all(), level_indicator=3 * unichr(160), empty_label='---------', required=False)
redirect_page = TreeNodeChoiceField(label=_('Redirect page'), queryset=Page.objects.filter(redirect_page__isnull=True), level_indicator=3 * unichr(160), empty_label='---------', required=False)

Expand Down
Expand Up @@ -7,13 +7,13 @@
class Migration(SchemaMigration):

def forwards(self, orm):

# Adding field 'ContentItem.used_on_pages_data'
db.add_column('fiber_contentitem', 'used_on_pages_data', self.gf('fiber.utils.json.JSONField')(null=True, blank=True), keep_default=False)


def backwards(self, orm):

# Deleting field 'ContentItem.used_on_pages_data'
db.delete_column('fiber_contentitem', 'used_on_pages_data')

Expand Down Expand Up @@ -55,6 +55,7 @@ def backwards(self, orm):
'content_items': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['fiber.ContentItem']", 'through': "orm['fiber.PageContentItem']", 'symmetrical': 'False'}),
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'mark_current_regexes': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
Expand Down
@@ -0,0 +1,92 @@
# -*- 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 'Page.meta_description'
db.add_column('fiber_page', 'meta_description',
self.gf('django.db.models.fields.CharField')(default='', max_length=255, blank=True),
keep_default=False)


# Changing field 'Page.redirect_page'
db.alter_column('fiber_page', 'redirect_page_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['fiber.Page']))

def backwards(self, orm):
# Deleting field 'Page.meta_description'
db.delete_column('fiber_page', 'meta_description')


# Changing field 'Page.redirect_page'
db.alter_column('fiber_page', 'redirect_page_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['fiber.Page']))

models = {
'fiber.contentitem': {
'Meta': {'object_name': 'ContentItem'},
'content_html': ('fiber.utils.fields.FiberHTMLField', [], {}),
'content_markup': ('fiber.utils.fields.FiberMarkupField', [], {}),
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'metadata': ('fiber.utils.json.JSONField', [], {'null': 'True', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
'protected': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'template_name': ('django.db.models.fields.CharField', [], {'max_length': '70', 'blank': 'True'}),
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'used_on_pages_data': ('fiber.utils.json.JSONField', [], {'null': 'True', 'blank': 'True'})
},
'fiber.file': {
'Meta': {'ordering': "('file',)", 'object_name': 'File'},
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
},
'fiber.image': {
'Meta': {'ordering': "('image',)", 'object_name': 'Image'},
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
},
'fiber.page': {
'Meta': {'ordering': "('tree_id', 'lft')", 'object_name': 'Page'},
'content_items': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['fiber.ContentItem']", 'through': "orm['fiber.PageContentItem']", 'symmetrical': 'False'}),
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'mark_current_regexes': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'meta_description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
'metadata': ('fiber.utils.json.JSONField', [], {'null': 'True', 'blank': 'True'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'subpages'", 'null': 'True', 'to': "orm['fiber.Page']"}),
'protected': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'redirect_page': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'redirected_pages'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['fiber.Page']"}),
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'show_in_menu': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'template_name': ('django.db.models.fields.CharField', [], {'max_length': '70', 'blank': 'True'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'url': ('fiber.utils.fields.FiberURLField', [], {'max_length': '255', 'blank': 'True'})
},
'fiber.pagecontentitem': {
'Meta': {'object_name': 'PageContentItem'},
'block_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'content_item': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'page_content_items'", 'to': "orm['fiber.ContentItem']"}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'page': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'page_content_items'", 'to': "orm['fiber.Page']"}),
'sort': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
}
}

complete_apps = ['fiber']
13 changes: 10 additions & 3 deletions fiber/models.py
Expand Up @@ -76,7 +76,7 @@ class Page(MPTTModel):
created = models.DateTimeField(_('created'), auto_now_add=True)
updated = models.DateTimeField(_('updated'), auto_now=True)
parent = models.ForeignKey('self', null=True, blank=True, related_name='subpages', verbose_name=_('parent'))
# TODO: add keywords, description (as meta?)
meta_description = models.CharField(max_length=255, blank=True)
title = models.CharField(_('title'), max_length=255)
url = FiberURLField(blank=True)
redirect_page = models.ForeignKey('self', null=True, blank=True, related_name='redirected_pages', verbose_name=_('redirect page'), on_delete=models.SET_NULL)
Expand Down Expand Up @@ -229,6 +229,13 @@ def move_page(self, target_id, position):
def is_public_for_user(self, user):
return user.is_staff or self.is_public

def has_visible_children(self):
visible_children = [page for page in self.get_children() if page.show_in_menu]
if visible_children:
return True
else:
return False


class PageContentItem(models.Model):
content_item = models.ForeignKey(ContentItem, related_name='page_content_items', verbose_name=_('content item'))
Expand Down Expand Up @@ -303,7 +310,7 @@ def save(self, *args, **kwargs):
super(Image, self).save(*args, **kwargs)

def delete(self, *args, **kwargs):
os.remove(os.path.join(settings.MEDIA_ROOT, str(self.image)))
self.image.storage.delete(self.image.name)
super(Image, self).delete(*args, **kwargs)

def get_image_information(self):
Expand Down Expand Up @@ -339,7 +346,7 @@ def save(self, *args, **kwargs):
super(File, self).save(*args, **kwargs)

def delete(self, *args, **kwargs):
os.remove(os.path.join(settings.MEDIA_ROOT, str(self.file)))
self.file.storage.delete(self.file.name)
super(File, self).delete(*args, **kwargs)

def get_filename(self):
Expand Down
6 changes: 6 additions & 0 deletions fiber/static/fiber/css/admin.css
Expand Up @@ -287,6 +287,7 @@ div.ui-dialog form label {
div.ui-dialog form input[type="text"],
div.ui-dialog form input[type="password"],
div.ui-dialog form select,
div.ui-dialog form textarea,
#ui-file-select-filter-input,
#ui-image-select-filter-input {
margin: 0 0 5px 0;
Expand All @@ -309,6 +310,11 @@ div.ui-dialog form select,
clear: none;
}

div.ui-dialog form textarea {
padding: 3px;
height: 80px;
}

div.ui-dialog form input[type="checkbox"] {
float: left;
margin: 6px 6px 0 0;
Expand Down
3 changes: 2 additions & 1 deletion fiber/templates/fiber/admin.html
@@ -1,4 +1,5 @@
{% load fiber_tags i18n %}
{% load url from future %}
<div id="df-wpr-layer">
<div id="df-layer"></div>
</div>
Expand All @@ -7,7 +8,7 @@
<div id="df-sidebar">
<div id="df-sidebar-top-section">
<p class="logout"><a href="{{ logout_url }}">{% trans 'Log out' %}</a></p>
<p class="backend"><a href="{% url admin:index %}" title="{% trans 'Backend' %}"><span class="icon"></span>{% trans 'Backend' %}</a></p>
<p class="backend"><a href="{% url 'admin:index' %}" title="{% trans 'Backend' %}"><span class="icon"></span>{% trans 'Backend' %}</a></p>
</div>
<div id="df-sidebar-page-section">
<h2>{% trans "Pages" %}</h2>
Expand Down
3 changes: 2 additions & 1 deletion fiber/templates/fiber/header.html
@@ -1,6 +1,7 @@
{% load compress %}
{% load url from future %}

<script src="{% url django.views.i18n.javascript_catalog %}" type="text/javascript"></script>
<script src="{% url 'django.views.i18n.javascript_catalog' %}" type="text/javascript"></script>

{% compress js %}
<script type="text/javascript">
Expand Down
10 changes: 5 additions & 5 deletions setup.py
Expand Up @@ -4,7 +4,7 @@

version = __import__('fiber').__version__

if sys.argv[-1] == 'publish': # upload to pypi
if sys.argv[-1] == 'publish': # upload to pypi
os.system("python setup.py register sdist upload")
print "You probably want to also tag the version now:"
print " git tag -a %s -m 'version %s'" % (version, version)
Expand All @@ -17,10 +17,10 @@
license='Apache License, Version 2.0',

install_requires=[
'Pillow==1.7.7',
'django-mptt==0.5.1',
'django-compressor>=0.7.1',
'djangorestframework==2.1.12'
'Pillow==1.7.8',
'django-mptt==0.5.5',
'django-compressor>=1.2',
'djangorestframework==2.1.17'
],

description='Django Fiber - a simple, user-friendly CMS for all your Django projects',
Expand Down

0 comments on commit 4f33305

Please sign in to comment.