├── django_de ├── __init__.py ├── apps │ ├── __init__.py │ ├── ticker │ │ ├── __init__.py │ │ ├── templatetags │ │ │ ├── __init__.py │ │ │ └── ticker_tags.py │ │ ├── sitemaps.py │ │ ├── context_processors.py │ │ ├── feeds.py │ │ ├── urls.py │ │ ├── templates │ │ │ └── ticker │ │ │ │ ├── entry.html │ │ │ │ ├── archive.html │ │ │ │ ├── archive_by_tag.html │ │ │ │ ├── overview.html │ │ │ │ └── details.html │ │ ├── forms.py │ │ ├── admin │ │ │ ├── widgets.py │ │ │ └── __init__.py │ │ ├── views.py │ │ ├── models.py │ │ └── textutils.py │ ├── aggregator │ │ ├── __init__.py │ │ ├── management │ │ │ ├── __init__.py │ │ │ └── commands │ │ │ │ ├── __init__.py │ │ │ │ └── updatefeeds.py │ │ ├── locale │ │ │ ├── de │ │ │ │ └── LC_MESSAGES │ │ │ │ │ ├── django.mo │ │ │ │ │ ├── django.po~ │ │ │ │ │ └── django.po │ │ │ └── en │ │ │ │ └── LC_MESSAGES │ │ │ │ └── django.po │ │ ├── bin │ │ │ └── update.py │ │ ├── manager.py │ │ ├── templates │ │ │ ├── aggregator │ │ │ │ ├── feeds │ │ │ │ │ └── item_description.html │ │ │ │ ├── add_feed_thankyou.html │ │ │ │ ├── add_feed.html │ │ │ │ └── overview.html │ │ │ └── admin │ │ │ │ └── aggregator │ │ │ │ └── change_list.html │ │ ├── feeds.py │ │ ├── urls.py │ │ ├── admin.py │ │ ├── forms.py │ │ ├── views.py │ │ └── models.py │ ├── authors │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── urls.py │ │ ├── models.py │ │ └── templates │ │ │ └── authors │ │ │ └── author_list.html │ └── jobboard │ │ ├── __init__.py │ │ ├── templatetags │ │ ├── __init__.py │ │ └── jobboard.py │ │ ├── locale │ │ └── de │ │ │ └── LC_MESSAGES │ │ │ ├── django.mo │ │ │ └── django.po │ │ ├── admin.py │ │ ├── manager.py │ │ ├── urls.py │ │ ├── templates │ │ └── jobboard │ │ │ ├── thankyou.html │ │ │ ├── details_verified.html │ │ │ ├── mail │ │ │ └── add_notify.txt │ │ │ ├── details.html │ │ │ ├── add.html │ │ │ └── overview.html │ │ ├── forms.py │ │ ├── models.py │ │ └── views.py ├── signals.py ├── templates │ ├── feeds │ │ ├── liens_description.html │ │ ├── atom_description.html │ │ └── rss_description.html │ ├── base_2col.html │ ├── base_3col.html │ ├── 500.html │ ├── cache_status.html │ ├── links │ │ ├── link_archive_year.html │ │ ├── link_archive_month.html │ │ ├── link_archive.html │ │ └── link_form.html │ ├── pagination │ │ └── pagination.html │ ├── 404.html │ ├── impressum.html │ ├── participate.html │ ├── base.html │ ├── download.html │ └── homepage.html ├── site_media │ ├── theme │ │ ├── area.gif │ │ ├── form.gif │ │ ├── logo.png │ │ ├── gravatar.png │ │ ├── icons │ │ │ ├── ktip.png │ │ │ ├── misc.png │ │ │ ├── document.png │ │ │ ├── link_doc.png │ │ │ ├── reminders.png │ │ │ ├── thumb_down.png │ │ │ ├── thumb_up.png │ │ │ └── applications-internet.png │ │ ├── bullets │ │ │ ├── 0107_dl.gif │ │ │ ├── 0125_li.gif │ │ │ ├── 0181_1.gif │ │ │ ├── 0051_plus.gif │ │ │ ├── 0111_arrow.gif │ │ │ ├── 0024_chevrons.gif │ │ │ ├── 0025_bullet.gif │ │ │ ├── 0035_bullet01.gif │ │ │ ├── 0035_bullet02.gif │ │ │ └── 0129_ibullet.gif │ │ ├── background │ │ │ ├── background_corpus.png │ │ │ ├── background_dark_header.png │ │ │ ├── background_billboard_top.png │ │ │ ├── background_light_header.png │ │ │ ├── background_billboard_bottom.png │ │ │ ├── background_navigation_items.png │ │ │ ├── background_corpus_without_dot.png │ │ │ ├── background_corpus_first-content.png │ │ │ ├── background_dark_header_for_billboard.png │ │ │ ├── background_light_header_for_billboard.png │ │ │ └── background_corpus_first-content_without_dot.png │ │ ├── autocomplete.css │ │ ├── js │ │ │ ├── jquery.bgiframe.min.js │ │ │ ├── jquery.syncheight-1.0.js │ │ │ ├── jquery.ajaxQueue.js │ │ │ ├── jquery.dimensions.js │ │ │ └── jquery.autocomplete.min.js │ │ └── screen.css │ └── images │ │ ├── admin01.png │ │ ├── admin02.png │ │ ├── admin03.png │ │ ├── admin04.png │ │ ├── admin05.png │ │ ├── admin06.png │ │ ├── admin07.png │ │ ├── admin08.png │ │ ├── admin09.png │ │ ├── admin10.png │ │ ├── admin11.png │ │ ├── admin12.png │ │ ├── admin13.png │ │ ├── admin14.png │ │ ├── admin02t.png │ │ ├── admin03t.png │ │ ├── admin04t.png │ │ ├── admin05t.png │ │ ├── admin06t.png │ │ ├── admin08t.png │ │ ├── admin11t.png │ │ ├── admin13t.png │ │ ├── admin14t.png │ │ ├── flatfiles_admin.png │ │ └── users_changelist.png ├── manage.py ├── sitemaps.py ├── utils.py ├── urls.py ├── monitor.py └── settings.py ├── .gitignore ├── extras ├── crontab ├── post-commit.c ├── htaccess ├── django.fcgi ├── django.wsgi ├── post-commit.py └── fabfile.py ├── COPYING └── README /django_de/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /django_de/apps/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /django_de/apps/ticker/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /django_de/apps/aggregator/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /django_de/apps/authors/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /django_de/apps/jobboard/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /django_de/apps/aggregator/management/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /django_de/apps/jobboard/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /django_de/apps/ticker/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /django_de/apps/aggregator/management/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /django_de/signals.py: -------------------------------------------------------------------------------- 1 | post_commit = object() 2 | pre_commit = object() 3 | -------------------------------------------------------------------------------- /django_de/templates/feeds/liens_description.html: -------------------------------------------------------------------------------- 1 | {{ obj.comment }} 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .svn 2 | *.pyc 3 | *.pyo 4 | *~ 5 | .project 6 | .pydevproject 7 | local_settings.py 8 | django_de.db 9 | -------------------------------------------------------------------------------- /django_de/site_media/theme/area.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/area.gif -------------------------------------------------------------------------------- /django_de/site_media/theme/form.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/form.gif -------------------------------------------------------------------------------- /django_de/site_media/theme/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/logo.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin01.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin02.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin03.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin04.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin05.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin06.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin07.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin08.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin09.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin10.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin11.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin12.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin13.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin14.png -------------------------------------------------------------------------------- /django_de/site_media/theme/gravatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/gravatar.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin02t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin02t.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin03t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin03t.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin04t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin04t.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin05t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin05t.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin06t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin06t.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin08t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin08t.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin11t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin11t.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin13t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin13t.png -------------------------------------------------------------------------------- /django_de/site_media/images/admin14t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/admin14t.png -------------------------------------------------------------------------------- /django_de/site_media/theme/icons/ktip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/icons/ktip.png -------------------------------------------------------------------------------- /django_de/site_media/theme/icons/misc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/icons/misc.png -------------------------------------------------------------------------------- /django_de/site_media/images/flatfiles_admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/flatfiles_admin.png -------------------------------------------------------------------------------- /django_de/site_media/theme/bullets/0107_dl.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/bullets/0107_dl.gif -------------------------------------------------------------------------------- /django_de/site_media/theme/bullets/0125_li.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/bullets/0125_li.gif -------------------------------------------------------------------------------- /django_de/site_media/theme/bullets/0181_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/bullets/0181_1.gif -------------------------------------------------------------------------------- /django_de/site_media/theme/icons/document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/icons/document.png -------------------------------------------------------------------------------- /django_de/site_media/theme/icons/link_doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/icons/link_doc.png -------------------------------------------------------------------------------- /django_de/site_media/theme/icons/reminders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/icons/reminders.png -------------------------------------------------------------------------------- /django_de/site_media/theme/icons/thumb_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/icons/thumb_down.png -------------------------------------------------------------------------------- /django_de/site_media/theme/icons/thumb_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/icons/thumb_up.png -------------------------------------------------------------------------------- /django_de/site_media/images/users_changelist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/images/users_changelist.png -------------------------------------------------------------------------------- /django_de/site_media/theme/bullets/0051_plus.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/bullets/0051_plus.gif -------------------------------------------------------------------------------- /django_de/site_media/theme/bullets/0111_arrow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/bullets/0111_arrow.gif -------------------------------------------------------------------------------- /django_de/site_media/theme/bullets/0024_chevrons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/bullets/0024_chevrons.gif -------------------------------------------------------------------------------- /django_de/site_media/theme/bullets/0025_bullet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/bullets/0025_bullet.gif -------------------------------------------------------------------------------- /django_de/site_media/theme/bullets/0035_bullet01.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/bullets/0035_bullet01.gif -------------------------------------------------------------------------------- /django_de/site_media/theme/bullets/0035_bullet02.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/bullets/0035_bullet02.gif -------------------------------------------------------------------------------- /django_de/site_media/theme/bullets/0129_ibullet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/bullets/0129_ibullet.gif -------------------------------------------------------------------------------- /django_de/apps/aggregator/locale/de/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/apps/aggregator/locale/de/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /django_de/apps/jobboard/locale/de/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/apps/jobboard/locale/de/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /django_de/site_media/theme/background/background_corpus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/background/background_corpus.png -------------------------------------------------------------------------------- /django_de/site_media/theme/icons/applications-internet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/icons/applications-internet.png -------------------------------------------------------------------------------- /django_de/site_media/theme/background/background_dark_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/background/background_dark_header.png -------------------------------------------------------------------------------- /extras/crontab: -------------------------------------------------------------------------------- 1 | PYTHONPATH=/home/django-de/lib/ 2 | DJANGO_SETTINGS_MODULE=django_de.settings 3 | 0 * * * * /usr/bin/env python /home/django-de/lib/django_de/manage.py updatefeeds 4 | -------------------------------------------------------------------------------- /django_de/site_media/theme/background/background_billboard_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/background/background_billboard_top.png -------------------------------------------------------------------------------- /django_de/site_media/theme/background/background_light_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/background/background_light_header.png -------------------------------------------------------------------------------- /COPYING: -------------------------------------------------------------------------------- 1 | This django project is in the public domain, except parts from other apps: 2 | 3 | Feel free to use, copy and hack other parts :-). 4 | 5 | Thanks to David Larlet and Django-fr.org! -------------------------------------------------------------------------------- /django_de/site_media/theme/background/background_billboard_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/background/background_billboard_bottom.png -------------------------------------------------------------------------------- /django_de/site_media/theme/background/background_navigation_items.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/background/background_navigation_items.png -------------------------------------------------------------------------------- /django_de/site_media/theme/background/background_corpus_without_dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/background/background_corpus_without_dot.png -------------------------------------------------------------------------------- /django_de/site_media/theme/background/background_corpus_first-content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/background/background_corpus_first-content.png -------------------------------------------------------------------------------- /django_de/site_media/theme/background/background_dark_header_for_billboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/background/background_dark_header_for_billboard.png -------------------------------------------------------------------------------- /django_de/site_media/theme/background/background_light_header_for_billboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/background/background_light_header_for_billboard.png -------------------------------------------------------------------------------- /extras/post-commit.c: -------------------------------------------------------------------------------- 1 | #define REAL_SCRIPT "/home/django-de/svn/django/hooks/post-commit.py" 2 | #include 3 | #include 4 | main( ac, av ) 5 | char **av; 6 | { 7 | execv( REAL_SCRIPT, av ); 8 | } -------------------------------------------------------------------------------- /django_de/site_media/theme/background/background_corpus_first-content_without_dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jezdez/django-de/master/django_de/site_media/theme/background/background_corpus_first-content_without_dot.png -------------------------------------------------------------------------------- /django_de/apps/aggregator/bin/update.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | """Updates newsfeeds of the aggregator app.""" 4 | 5 | from django.core import management 6 | 7 | if __name__ == "__main__": 8 | management.call_command('updatefeeds') 9 | -------------------------------------------------------------------------------- /django_de/templates/feeds/atom_description.html: -------------------------------------------------------------------------------- 1 |

Gemeldet von: {{ obj.get_author }}

2 | {{ obj.content_processed|safe }} 3 | {% if obj.source_url %} 4 |

Quelle: {{ obj.source_url }}

5 | {% endif %} 6 | -------------------------------------------------------------------------------- /django_de/templates/feeds/rss_description.html: -------------------------------------------------------------------------------- 1 |

Gemeldet von: {{ obj.get_author }}

2 | {{ obj.content_processed|safe }} 3 | {% if obj.source_url %} 4 |

Quelle: {{ obj.source_url }}

5 | {% endif %} 6 | -------------------------------------------------------------------------------- /extras/htaccess: -------------------------------------------------------------------------------- 1 | AddHandler wsgi-script .wsgi 2 | 3 | DirectoryIndex index.php index.html 4 | RewriteEngine On 5 | RewriteCond %{REQUEST_FILENAME} !-f 6 | RewriteCond %{REQUEST_FILENAME}/index.php !-f 7 | RewriteCond %{REQUEST_FILENAME}/index.html !-f 8 | RewriteRule ^(.*)$ /django-de.wsgi/$1 [QSA,L] -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | Die deutsche Django-Seite django-de.org 2 | 3 | Danke an alle Autoren und Helfer. 4 | 5 | Nach dem inhaltlichen und programmiertechnischen Vorbild von djanog-fr.org 6 | 7 | Danke an SuperJared für das Generator Skript. 8 | 9 | Django und das Django Logo sind eingetragen Markenzeichen der Django Software Foundation. 10 | -------------------------------------------------------------------------------- /django_de/apps/jobboard/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from django_de.apps.jobboard.models import Entry 3 | 4 | class EntryAdmin(admin.ModelAdmin): 5 | list_display = ( 6 | 'name', 7 | 'job_type', 8 | 'verified', 9 | 'published', 10 | ) 11 | 12 | admin.site.register(Entry, EntryAdmin) -------------------------------------------------------------------------------- /extras/django.fcgi: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | import os, sys 4 | sys.stdout = sys.stderr 5 | 6 | sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../lib/')) 7 | os.environ['DJANGO_SETTINGS_MODULE'] = "django_de.settings" 8 | 9 | from django.core.servers.fastcgi import runfastcgi 10 | runfastcgi() 11 | -------------------------------------------------------------------------------- /django_de/apps/jobboard/manager.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | class EntryManager(models.Manager): 4 | 5 | def get_jobs(self): 6 | return self.filter(job_type=1).exclude(verified=False).order_by('-published') 7 | 8 | def get_developer(self): 9 | return self.filter(job_type=2).exclude(verified=False).order_by('-published') -------------------------------------------------------------------------------- /django_de/apps/aggregator/manager.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | class FeedManager(models.Manager): 4 | def public(self): 5 | return self.filter(public=True) 6 | 7 | class ItemManager(models.Manager): 8 | def latest_public(self): 9 | return self.filter(public=True).select_related().order_by('-published_original') 10 | -------------------------------------------------------------------------------- /django_de/apps/authors/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from django_de.apps.authors.models import Author 3 | 4 | class AuthorAdmin(admin.ModelAdmin): 5 | list_display = ('name', 'email', 'url') 6 | search_fields = ('name', 'bio') 7 | prepopulated_fields = {'slug': ('name',)} 8 | 9 | admin.site.register(Author, AuthorAdmin) 10 | -------------------------------------------------------------------------------- /django_de/apps/ticker/sitemaps.py: -------------------------------------------------------------------------------- 1 | from django.contrib.sitemaps import Sitemap 2 | from django_de.apps.ticker.models import Entry 3 | 4 | class TickerSitemap(Sitemap): 5 | changefreq = "daily" 6 | priority = 0.6 7 | 8 | def items(self): 9 | return Entry.objects.public() 10 | 11 | def lastmod(self, obj): 12 | return obj.modified 13 | -------------------------------------------------------------------------------- /django_de/templates/base_2col.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block columnwrap %} 4 |
5 | {% block content %}{% endblock %} 6 |
7 | 8 | 11 | 12 | {% endblock %} 13 | -------------------------------------------------------------------------------- /django_de/apps/authors/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls.defaults import * 2 | from django_de.apps.authors.models import Author 3 | 4 | urlpatterns = patterns('django.views.generic.list_detail', 5 | (r'^$', 'object_list', 6 | dict( 7 | queryset = Author.objects.order_by('name', 'slug'), 8 | template_object_name = 'author', 9 | allow_empty=True, 10 | ), 11 | ) 12 | ) 13 | -------------------------------------------------------------------------------- /django_de/apps/jobboard/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls.defaults import * 2 | 3 | urlpatterns = patterns('django_de.apps.jobboard.views', 4 | # Die Community-Seite 5 | (r'^$', 'overview'), 6 | (r'^add/$', 'add'), 7 | (r'^thankyou/$', 'thankyou'), 8 | (r'^(?P[\d]+)/$', 'details'), 9 | (r'^edit/(?P[\d]+)-(?P[a-z0-9]{40})/$', 'edit'), 10 | (r'^verify/(?P[\d]+)-(?P[a-f0-9]{40})/$', 'verify'), 11 | ) 12 | -------------------------------------------------------------------------------- /django_de/apps/aggregator/templates/aggregator/feeds/item_description.html: -------------------------------------------------------------------------------- 1 | {{ obj.summary|safe|truncatewords:"40"|linebreaks }} 2 | 3 |
4 |

Dieser Beitrag wurde django-de von {{ obj.feed.title }} zur Verfügung gestellt. Den vollständigen Beitrag finden Sie auf der Seite des/der Autors/Autorin.

5 |
6 | -------------------------------------------------------------------------------- /django_de/apps/ticker/templatetags/ticker_tags.py: -------------------------------------------------------------------------------- 1 | import urlparse 2 | from django.utils.safestring import mark_safe 3 | from django import template 4 | 5 | 6 | register = template.Library() 7 | 8 | @register.filter 9 | def shorten_url(url): 10 | return urlparse.urlsplit(url)[1] 11 | 12 | @register.filter 13 | def truncurl(url, chars): 14 | a = url.find("//")+2 15 | b = a + int(chars) 16 | if len(url) > a+b: 17 | return mark_safe("%s…" % url[a:b]) 18 | return url[a:] -------------------------------------------------------------------------------- /extras/django.wsgi: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | import os 4 | import sys 5 | import site 6 | sys.stdout = sys.stderr 7 | 8 | lib_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '../lib/python2.4/site-packages')) 9 | path = site.addsitedir(lib_path, set()) 10 | if path: 11 | sys.path = list(path) + sys.path 12 | 13 | os.environ['DJANGO_SETTINGS_MODULE'] = 'django_de.settings' 14 | 15 | import django.core.handlers.wsgi 16 | application = django.core.handlers.wsgi.WSGIHandler() 17 | -------------------------------------------------------------------------------- /django_de/apps/jobboard/templates/jobboard/thankyou.html: -------------------------------------------------------------------------------- 1 | {% extends "jobboard/details.html" %} 2 | 3 | {% block content %} 4 | 5 |

Vielen Dank!

6 |
7 |

Du erhälst nun eine E-Mail mit einem Link zur Bestätigung deiner 8 | Angaben. Klicke einfach darauf und schalte damit das Stellenangebot 9 | oder -gesuch frei. Außerdem ist in der E-Mail auch ein Link, mit 10 | dem du das Stellenangebot in Zukunft ändern oder löschen kannst. 11 |

12 |

13 | {% endblock %} 14 | -------------------------------------------------------------------------------- /django_de/apps/jobboard/templates/jobboard/details_verified.html: -------------------------------------------------------------------------------- 1 | {% extends "jobboard/details.html" %} 2 | 3 | {% block content %} 4 | 5 |

Vielen Dank!

6 |
7 |

Deine Stellanzeige wurde online gestellt. In der E-Mail war auch ein 8 | Link, mit dem du das Stellenangebot in Zukunft ändern oder löschen kannst.

9 | 10 |

Hier ist deine Stellenanzeige: (Originale URL)

11 |
12 | 13 | {{ block.super }} 14 | {% endblock %} 15 | -------------------------------------------------------------------------------- /django_de/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from django.core.management import execute_manager 3 | try: 4 | import settings # Assumed to be in the same directory. 5 | except ImportError: 6 | import sys 7 | sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__) 8 | sys.exit(1) 9 | 10 | if __name__ == "__main__": 11 | execute_manager(settings) 12 | -------------------------------------------------------------------------------- /django_de/apps/ticker/context_processors.py: -------------------------------------------------------------------------------- 1 | from django.template.defaultfilters import dictsortreversed 2 | 3 | from tagging.models import Tag 4 | from django_de.apps.ticker.models import Entry 5 | 6 | def popular_tags(request): 7 | poptags = Tag.objects.usage_for_model(Entry, counts=True, filters={'status': Entry.STATUS_OPEN}) 8 | poptags = dictsortreversed(poptags, 'count') 9 | 10 | if len(poptags) < 1: 11 | poptags_max = 0 12 | else: 13 | poptags_max = poptags[0].count 14 | 15 | return { 16 | 'popular_tags': poptags, 17 | 'popular_tags_max': poptags_max, 18 | } -------------------------------------------------------------------------------- /django_de/templates/base_3col.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block columnwrap %} 4 |
5 |
6 | {% block content %}{% endblock %} 7 |
8 | 9 | 12 | 13 |
14 | 15 | 18 | 19 | {% endblock %} 20 | -------------------------------------------------------------------------------- /django_de/apps/aggregator/templates/aggregator/add_feed_thankyou.html: -------------------------------------------------------------------------------- 1 | {% extends "aggregator/overview.html" %} 2 | 3 | {% block content %} 4 |

Vielen Dank!

5 | 6 |
7 |

Dein Feed wurde in den Community-Aggregator aufgenommen. Deine Daten 8 | werden noch von einem Admin auf Plausibilität überprüft, dass geschieht 9 | in der Regel binnen weniger Stunden.

10 |

Wenn du wieder aus diesem Aggregator entfernt werden möchtest, wende dich 11 | bitte an Jannis.

12 |

Nochmal danke, dass du dabei bist. :-)

13 |
14 | {% endblock %} -------------------------------------------------------------------------------- /django_de/apps/ticker/feeds.py: -------------------------------------------------------------------------------- 1 | from django.contrib.syndication import feeds 2 | from django.utils.feedgenerator import Atom1Feed 3 | 4 | from django_de.apps.ticker.models import Entry 5 | 6 | class LatestEntries(feeds.Feed): 7 | title = "django-de.org - Letzte News" 8 | link = "/" 9 | 10 | def items(self): 11 | return Entry.objects.public()[:30] 12 | 13 | def item_pubdate(self, item): 14 | return item.published 15 | 16 | def item_author_name(self, item): 17 | return item.get_author() 18 | 19 | class LatestEntriesAtom(LatestEntries): 20 | feed_type = Atom1Feed 21 | 22 | feeds = { 23 | 'rss': LatestEntries, 24 | 'atom': LatestEntriesAtom, 25 | } 26 | -------------------------------------------------------------------------------- /django_de/apps/ticker/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls.defaults import * 2 | from django_de.apps.ticker import views as ticker_views 3 | from django_de.apps.ticker.feeds import feeds 4 | 5 | urlpatterns = patterns('', 6 | url(r'^$', ticker_views.overview, name='ticker_overview'), 7 | url(r'^feeds/(?P.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}, name='ticker_feeds'), 8 | 9 | url(r'^archive/$', ticker_views.archive, name='ticker_archive'), 10 | url(r'^archive/(?P[\w\s_\-\.% ]+)/$', ticker_views.archive_by_tag, name='ticker_archive_details'), 11 | 12 | # Details 13 | url(r'^(?P[\d]+)-(?P[-\w]+)/$', ticker_views.details, name='ticker_details'), 14 | ) 15 | -------------------------------------------------------------------------------- /django_de/apps/aggregator/templates/admin/aggregator/change_list.html: -------------------------------------------------------------------------------- 1 | {% extends "admin/change_list.html" %} 2 | {% load adminmedia admin_list i18n %} 3 | {% block result_list %} 4 |
5 | {% result_list cl %} 6 |
7 | {% trans "Marked Items" %}: 8 | 9 | 10 | 11 |
12 |
13 | {% endblock %} 14 | -------------------------------------------------------------------------------- /django_de/apps/jobboard/templatetags/jobboard.py: -------------------------------------------------------------------------------- 1 | import markdown 2 | from django import template 3 | from django.template.defaultfilters import stringfilter, mark_safe, striptags, truncatewords 4 | 5 | register = template.Library() 6 | 7 | @register.filter 8 | @stringfilter 9 | def strip_jobdescription(content, max_words=None): 10 | content = striptags(content) 11 | if max_words and int(max_words) > 0: 12 | content = truncatewords(content, max_words) 13 | content = markdown.markdown(content) 14 | return mark_safe(content) 15 | 16 | @register.filter 17 | @stringfilter 18 | def obfuscate_email(email): 19 | email = email.replace("@", " (at) ") 20 | email = email.replace(".", " (dot) ") 21 | return mark_safe(email) 22 | -------------------------------------------------------------------------------- /django_de/apps/aggregator/feeds.py: -------------------------------------------------------------------------------- 1 | from django.contrib.syndication.feeds import Feed 2 | from django_de.apps.aggregator.models import Item 3 | 4 | class LatestItems(Feed): 5 | title = "django-de.org Community Aggregator" 6 | link = "/community/" 7 | description_template = "aggregator/feeds/item_description.html" 8 | 9 | def items(self): 10 | return Item.objects.latest_public()[:30] 11 | 12 | def item_pubdate(self, item): 13 | return item.published_original 14 | 15 | def item_link(self, item): 16 | return item.url 17 | 18 | def item_author_name(self, item): 19 | return item.feed.title 20 | 21 | def item_author_link(self, item): 22 | return item.feed.url 23 | 24 | feeds = { 25 | 'latest': LatestItems, 26 | } 27 | -------------------------------------------------------------------------------- /django_de/apps/authors/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | from django.utils.translation import ugettext_lazy as _ 3 | 4 | class Author(models.Model): 5 | name = models.CharField(_('name'), max_length=50, unique=True) 6 | slug = models.SlugField(_('slug'), help_text=_('for direct access on the website of an author')) 7 | email = models.EmailField(_('email adress')) 8 | url = models.URLField(_('personal website'), null=True, blank=True, verify_exists=False) 9 | bio = models.TextField(_('bio'), help_text=_('HTML please, optional'), null=True, blank=True) 10 | 11 | class Meta: 12 | verbose_name = _('Author') 13 | 14 | def __unicode__(self): 15 | return self.name 16 | 17 | def get_absolute_url(self): 18 | return '/authors/#%s' % (self.slug) 19 | -------------------------------------------------------------------------------- /django_de/sitemaps.py: -------------------------------------------------------------------------------- 1 | from django.contrib.sitemaps import Sitemap 2 | 3 | class StaticFilePage: 4 | "Custom Page class for use with static template in sitemaps" 5 | def __init__(self, url): 6 | self.url = url 7 | def get_absolute_url(self): 8 | return self.url 9 | 10 | class StaticFileSitemap(Sitemap): 11 | "Custom Sitemap Class for use with static templates" 12 | def __init__(self, urls, priority=0.5, changefreq='daily'): 13 | self.priority = priority 14 | self.changefreq = changefreq 15 | self.item_list = [] 16 | if type(urls) not in (list, tuple): 17 | urls = [urls] 18 | for url in urls: 19 | self.item_list.append(StaticFilePage(url)) 20 | 21 | def items(self): 22 | return self.item_list 23 | -------------------------------------------------------------------------------- /django_de/templates/500.html: -------------------------------------------------------------------------------- 1 | {% extends "base_2col.html" %} 2 | 3 | {% block sectionid %}505{% endblock %} 4 | {% block title %}Fehler gefunden{% endblock %} 5 | {% block billboard %}

Fehler gefunden!

{% endblock %} 6 | 7 | {% block content %} 8 |

Wir haben eben einen Fehler im System entdeckt

9 |
10 |

11 | Django erlaubt sehr schnell zu entwickeln, daher lassen sich 12 | Fehler leider nicht immer ausschließen. Ein Administrator kümmert sich aber 13 | gerade schon darum. 14 |

15 |
16 | {% endblock %} 17 | 18 | {% block content-related %} 19 |

Fehler gefunden?

20 |

Wird beim Aufrufen einer Web-Adresse ein Fehler entdeckt, antwortet der Server mit dem HTTP-Fehlercode 500.

21 | {% endblock %} 22 | -------------------------------------------------------------------------------- /django_de/apps/ticker/templates/ticker/entry.html: -------------------------------------------------------------------------------- 1 | {% load ticker_tags %} 2 | 3 |
4 |
5 |

{{ entry.title }}

6 |

7 | Von {{ entry.get_author }}, 8 | geschrieben am {{ entry.published|date:"d. F Y H:i" }} Uhr

9 |
{{ entry.content_processed|safe }}
10 | {% if entry.source_url %} 11 |

12 | Quelle: {{ entry.source_url|truncurl:"50" }} 13 |

14 | {% endif %} 15 | {% if not is_detail %} 16 |

Details und Kommentare: {{ entry.title }} →

17 | {% endif %} 18 |
19 |
-------------------------------------------------------------------------------- /django_de/apps/aggregator/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls.defaults import * 2 | from django_de.apps.aggregator.feeds import feeds 3 | from django_de.apps.aggregator.models import Feed 4 | 5 | urlpatterns = patterns('', 6 | # Die Community-Seite 7 | (r'^$', 'django_de.apps.aggregator.views.overview'), 8 | 9 | # Feed hinzufuegen 10 | (r'^add/$', 'django_de.apps.aggregator.views.add_feed'), 11 | (r'^add/thankyou/$', 'django.views.generic.simple.direct_to_template', { 12 | 'template': 'aggregator/add_feed_thankyou.html', 13 | 'extra_context': { 14 | 'feed_list': Feed.objects.public().order_by('title'), 15 | } 16 | }), 17 | 18 | # Feed-Feed :-) 19 | (r'^feeds/(?P.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}), 20 | 21 | # Admin-Kram 22 | (r'^adminactions/(?P[-\w]+)/(?P[-\w]+)/$', 'django_de.apps.aggregator.views.admin_actions'), 23 | ) 24 | -------------------------------------------------------------------------------- /extras/post-commit.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | import os 4 | import sys 5 | import site 6 | 7 | lib_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '../lib/python2.4/site-packages')) 8 | path = site.addsitedir(lib_path, set()) 9 | if path: 10 | sys.path = list(path) + sys.path 11 | os.environ['DJANGO_SETTINGS_MODULE'] = "django_de.settings" 12 | 13 | from django.core.management import call_command 14 | from django.core.mail import mail_admins 15 | 16 | def main(): 17 | """ 18 | Deletes or generates static documentation files depending on the 19 | received signal. 20 | """ 21 | repo, rev = sys.argv[1:3] 22 | mail_admins("SVN revision %s committed!" % rev, "SVN repo: %s\nhttps://www.django-de.org/trac/changeset/%s/" % (repo, rev), fail_silently=True) 23 | call_command('deletestatic', **{'repo': repo, 'rev': rev}) 24 | 25 | if __name__ == '__main__': 26 | if len(sys.argv) < 3: 27 | sys.stderr.write("Usage: %s REPOS TXN\n" % (sys.argv[0])) 28 | else: 29 | main() 30 | -------------------------------------------------------------------------------- /django_de/apps/aggregator/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from django.utils.translation import ugettext_lazy as _ 3 | 4 | from django_de.apps.aggregator.models import Feed, Item 5 | 6 | class FeedAdmin(admin.ModelAdmin): 7 | list_display = ( 8 | 'admin_action_checkbox', 9 | 'public_flag', 10 | 'title', 11 | 'url_link', 12 | 'errors', 13 | 'keyword_check_flag', 14 | 'keywords', 15 | 'item_count', 16 | 'published', 17 | ) 18 | 19 | list_display_links = ( 20 | 'title', 21 | ) 22 | 23 | list_filter = ( 24 | 'public', 25 | 'published', 26 | ) 27 | 28 | 29 | class ItemAdmin(admin.ModelAdmin): 30 | list_display = ( 31 | 'admin_action_checkbox', 32 | 'public_flag', 33 | 'feed', 34 | 'title', 35 | 'published', 36 | 'published_original', 37 | ) 38 | 39 | list_display_links = ( 40 | 'title', 41 | ) 42 | 43 | admin.site.register(Feed, FeedAdmin) 44 | admin.site.register(Item, ItemAdmin) -------------------------------------------------------------------------------- /django_de/templates/cache_status.html: -------------------------------------------------------------------------------- 1 | {% extends "base_2col.html" %} 2 | 3 | {% block title %}Cache Status{% endblock %} 4 | {% block billboard %}

Cache Status

{% endblock %} 5 | 6 | {% block content %} 7 |

Cache Status

8 |
9 |
10 |     uptime                {{ stats.uptime }}
11 |     time                  {{ stats.time }}
12 |     version               {{ stats.version }}
13 |     cpu time              user: {{ stats.rusage_user }}, system: {{ stats.rusage_system }}
14 |     items                 {{ stats.curr_items }} of {{ stats.total_items }}
15 |     memory usage          {{ stats.bytes|filesizeformat }}
16 |     connections           current: {{ stats.curr_connections }}, total: {{ stats.total_connections }}
17 |     hits                  {{ stats.get_hits }} of {{ stats.cmd_get }} ({{ hit_rate }}%)
18 |     cmd_set               {{ stats.cmd_set }}
19 |     get_misses            {{ stats.get_misses }}
20 |     traffic               {{ stats.bytes_read|filesizeformat }} in, {{ stats.bytes_written|filesizeformat }} out
21 |     
22 |
23 | {% endblock %} 24 | -------------------------------------------------------------------------------- /django_de/apps/jobboard/templates/jobboard/mail/add_notify.txt: -------------------------------------------------------------------------------- 1 | Hallo {{ entry.name }}, 2 | 3 | deine Stellenanzeige bei https://www.django-de.org/jobs/ wurde erfolgreich 4 | eingestellt. 5 | 6 | 1. Stellenanzeige aktivieren 7 | 8 | Bitte klicke noch auf den folgenden Link, um die Anzeige zu aktivieren. 9 | 10 | https://www.django-de.org/jobs/verify/{{ entry.id }}-{{ entry.edit_key }}/ 11 | 12 | 13 | 2. Stellenanzeige ändern oder löschen 14 | 15 | Du kannst diese Stellenanzeige auch jederzeit ändern oder löschen. Klicke dazu 16 | einfach auf diesen Link: 17 | 18 | https://www.django-de.org/jobs/edit/{{ entry.id }}-{{ entry.edit_key }}/ 19 | 20 | Hebe dir diese E-Mail gut auf! 21 | 22 | Wenn du diese E-Mail nicht erwartet hast, oder in dem Glauben bist, jemand 23 | Fremdes hat unter deinem Namen (oder deiner E-Mail-Adresse) ein Stellenangebot 24 | aufgegeben, ignoriere diese Nachricht einfach. Die Anzeige wird nicht 25 | veröffentlicht und nach einigen Tagen aus dem System gelöscht. 26 | 27 | Im Zweifelsfall nimm Kontakt mit uns auf: http://www.django-de.org/imprint/ 28 | 29 | Vielen Dank. 30 | 31 | -- 32 | Das django-de.org Team -------------------------------------------------------------------------------- /django_de/templates/links/link_archive_year.html: -------------------------------------------------------------------------------- 1 | {% extends "base_2col.html" %} 2 | 3 | {% block sectionid %}links{% endblock %} 4 | {% block active_nav-links %}class="active"{% endblock %} 5 | {% block title %}Links zum Thema Django{% endblock %} 6 | 7 | {% block billboard %}

Links

{% endblock %} 8 | 9 | {% block content %} 10 |

Links zum Thema Django aus dem Jahr {{ year }}

11 |
12 | {% for link in link_list %} 13 |

14 | {{ link.title }} ({{ link.lang|lower }}) 15 |

16 |
{{ link.comment }}
17 | {% endfor %} 18 |
19 | {% endblock %} 20 | 21 | {% block content-related %} 22 |

Informiert bleiben

23 |

24 | RSS Feed der letzten Links 26 |

27 |

Einen Link hinzufügen

28 |

Alle Links werden vor der Veröffentlichung geprüft.

29 |

Einen neuen Link vorschlagen

30 | {% endblock %} 31 | -------------------------------------------------------------------------------- /django_de/apps/jobboard/templates/jobboard/details.html: -------------------------------------------------------------------------------- 1 | {% extends "jobboard/overview.html" %} 2 | {% load jobboard %} 3 | 4 | {% block billboard %}

Django Jobs → {{ jobentry.title|truncatewords:6 }}

{% endblock %} 5 | 6 | {% block content %} 7 |

{{ jobentry.title }}

8 | 9 |
10 |
11 | 12 |

Beschreibung

13 | {{ jobentry.description|strip_jobdescription|urlize }} 14 | 15 |

Hinzugefügt am {{ jobentry.published|date:"d. F Y" }} 16 | 17 |

Kontaktdaten

18 |

19 | Name: {{ jobentry.name }}
20 | {% if jobentry.homepage %}Homepage: {{ jobentry.homepage }}
{% endif %} 21 | E-Mail: {{ jobentry.email|obfuscate_email }}
22 | Ort: {{ jobentry.location }}
23 |

24 |
25 |
26 | 27 |
28 | 31 |
32 | {% endblock %} 33 | -------------------------------------------------------------------------------- /django_de/templates/links/link_archive_month.html: -------------------------------------------------------------------------------- 1 | {% extends "base_2col.html" %} 2 | 3 | {% block sectionid %}links{% endblock %} 4 | {% block active_nav-links %}class="active"{% endblock %} 5 | {% block title %}Links zum Thema Django{% endblock %} 6 | 7 | {% block billboard %}

Links

{% endblock %} 8 | 9 | {% block content %} 10 |

Links zum Thema Django aus dem Monat {{ month|date:"F Y"|lower }}

11 |
12 | {% for link in link_list %} 13 |

14 | {{ link.title }} ({{ link.lang|lower }}) 15 |

16 |
{{ link.comment }}
17 | {% endfor %} 18 |
19 | {% endblock %} 20 | 21 | {% block content-related %} 22 |

Informiert bleiben

23 |

24 | RSS Feed der letzten Links 26 |

27 |

Einen Link hinzufügen

28 |

Alle Links werden vor der Veröffentlichung geprüft.

29 |

Einen neuen Link vorschlagen

30 | {% endblock %} 31 | -------------------------------------------------------------------------------- /extras/fabfile.py: -------------------------------------------------------------------------------- 1 | set( 2 | project = 'django-de', 3 | fab_hosts = ['django-de.org'], 4 | fab_user = 'django-de', 5 | used_apps = 'django-comment-utils django-extensions django-mptt django-pagination django-registration django-tagging django-threadedcomments django-gravatar', 6 | app_dir = '~/lib/python2.4/site-packages', 7 | web_root = '~/public_html', 8 | log_dir = '~/logs', 9 | ) 10 | 11 | def update(): 12 | "Updates the django-de code from the Github repository." 13 | run("cd %(app_dir)s/%(project)s; git pull; git gc;") 14 | 15 | def app_status(): 16 | "Looks at the git status of the used Django apps." 17 | run("for app in %(used_apps)s; do cd %(app_dir)s/\$app && git status; done") 18 | 19 | def upgrade(): 20 | "Upgrades all used Django apps." 21 | run("for app in %(used_apps)s; do cd %(app_dir)s/\$app && git pull && git gc; done") 22 | 23 | def restart(): 24 | "Restarts the Django proccess." 25 | run("touch %(web_root)s/%(project)s.wsgi") 26 | 27 | def error_log(): 28 | "Tail the servers error logfile." 29 | run('tail -f %(log_dir)s/error_log') 30 | 31 | def access_log(): 32 | "Tail the servers access logfile." 33 | run('tail -f %(log_dir)s/access_log') 34 | -------------------------------------------------------------------------------- /django_de/site_media/theme/autocomplete.css: -------------------------------------------------------------------------------- 1 | /* ***************************************************************************** 2 | * jQuery autocomplete 3 | **************************************************************************** */ 4 | .ac_results { 5 | padding: 0px; 6 | border: 1px solid black; 7 | background-color: white; 8 | overflow: hidden; 9 | z-index: 99999; 10 | text-align: left; 11 | } 12 | 13 | .ac_results ul { 14 | width: 100%; 15 | list-style-position: outside; 16 | list-style: none; 17 | padding: 0; 18 | margin: 0; 19 | } 20 | 21 | .ac_results li { 22 | margin: 0px; 23 | padding: 2px 5px; 24 | cursor: default; 25 | display: block; 26 | /* 27 | if width will be 100% horizontal scrollbar will apear 28 | when scroll mode will be used 29 | */ 30 | /*width: 100%;*/ 31 | font: menu; 32 | font-size: 12px; 33 | /* 34 | it is very important, if line-height not setted or setted 35 | in relative units scroll will be broken in firefox 36 | */ 37 | line-height: 16px; 38 | overflow: hidden; 39 | } 40 | 41 | .ac_loading { 42 | background: white url('indicator.gif') right center no-repeat; 43 | } 44 | 45 | .ac_odd { 46 | background-color: #eee; 47 | } 48 | 49 | .ac_over { 50 | background-color: #0A246A; 51 | color: white; 52 | } -------------------------------------------------------------------------------- /django_de/templates/pagination/pagination.html: -------------------------------------------------------------------------------- 1 | {% if is_paginated %} 2 | 31 | {% endif %} 32 | -------------------------------------------------------------------------------- /django_de/apps/aggregator/forms.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import feedparser 4 | from django import forms 5 | from django_de.apps.aggregator.models import Feed 6 | 7 | class NewFeedForm(forms.ModelForm): 8 | feed_url = forms.URLField( 9 | label = 'Die Adresse deines Feeds:', 10 | ) 11 | 12 | url = forms.URLField( 13 | label = 'Die Adresse deines Weblogs oder deiner Homepage:', 14 | ) 15 | 16 | title = forms.CharField( 17 | label = 'Der Titel deines Weblogs oder dein Name:', 18 | ) 19 | 20 | owner_email = forms.EmailField( 21 | label = 'Deine E-Mail-Adresse', 22 | help_text='Die E-Mail dient nur zur Kontaktaufnahme im Falle von Problemen und wird für den Gravatar verwendet. Sie wird nicht öffentlich angezeigt!' 23 | ) 24 | 25 | def clean_feed_url(self): 26 | feed_url = self.cleaned_data.get('feed_url', '') 27 | parsed_feed = feedparser.parse(feed_url) 28 | 29 | if not parsed_feed.version: 30 | raise forms.ValidationError('Das ist kein Feed. Bitte prüfe, ob der Feed valide ist.') 31 | return feed_url 32 | 33 | class Meta: 34 | model = Feed 35 | fields = ( 36 | 'feed_url', 37 | 'url', 38 | 'title', 39 | 'owner_email', 40 | ) 41 | -------------------------------------------------------------------------------- /django_de/site_media/theme/js/jquery.bgiframe.min.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net) 2 | * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 3 | * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. 4 | * 5 | * $LastChangedDate: 2007-07-22 01:45:56 +0200 (Son, 22 Jul 2007) $ 6 | * $Rev: 2447 $ 7 | * 8 | * Version 2.1.1 9 | */ 10 | (function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&/6.0/.test(navigator.userAgent)){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='