richleland / django-happening
a collection of news and events focused django apps.
$ hg clone http://code.richleland.com/django-happening
| commit 41: | d4e59e583e53 |
| parent 40: | a3c213b6ea64 |
| branch: | default |
Changed (Δ2.9 KB):
happening/news/admin.py (1 lines added, 1 lines removed)
happening/news/fixtures/test-data-news.yaml (5 lines added, 0 lines removed)
happening/news/migrations/0005_make_long_text_optional.py (47 lines added, 0 lines removed)
happening/news/models.py (5 lines added, 1 lines removed)
happening/news/tests.py (6 lines added, 0 lines removed)
Up to file-list happening/news/admin.py:
| … | … | @@ -9,7 +9,7 @@ except: |
9 |
9 |
|
10 |
10 |
if TinyMCE: |
11 |
11 |
class NewsItemForm(forms.ModelForm): |
12 |
long_text = forms.CharField( |
|
12 |
long_text = forms.CharField(required=False, widget=TinyMCE(attrs={'cols': 80, 'rows': 30})) |
|
13 |
13 |
|
14 |
14 |
class Meta: |
15 |
15 |
model = NewsItem |
Up to file-list happening/news/fixtures/test-data-news.yaml:
9 |
9 |
News Item, visible: true} |
10 |
10 |
model: news.newsitem |
11 |
11 |
pk: 1 |
12 |
- fields: {end_date: null, long_text: '', pub_date: !!timestamp '2010-01-20 11:19:43', |
|
13 |
short_text: '', slug: another-news-item, subhead: '', title: Another |
|
14 |
News Item, visible: true} |
|
15 |
model: news.newsitem |
|
16 |
pk: 2 |
|
12 |
17 |
Up to file-list happening/news/migrations/0005_make_long_text_optional.py:
1 |
||
2 |
from south.db import db |
|
3 |
from django.db import models |
|
4 |
from happening.news.models import * |
|
5 |
||
6 |
class Migration: |
|
7 |
||
8 |
def forwards(self, orm): |
|
9 |
||
10 |
# Changing field 'NewsItem.long_text' |
|
11 |
# (to signature: django.db.models.fields.TextField(blank=True)) |
|
12 |
db.alter_column('news_newsitem', 'long_text', orm['news.newsitem:long_text']) |
|
13 |
||
14 |
||
15 |
||
16 |
def backwards(self, orm): |
|
17 |
||
18 |
# Changing field 'NewsItem.long_text' |
|
19 |
# (to signature: django.db.models.fields.TextField()) |
|
20 |
db.alter_column('news_newsitem', 'long_text', orm['news.newsitem:long_text']) |
|
21 |
||
22 |
||
23 |
||
24 |
models = { |
|
25 |
'news.category': { |
|
26 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
27 |
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
28 |
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'unique': 'True', 'db_index': 'True'}) |
|
29 |
}, |
|
30 |
'news.newsitem': { |
|
31 |
'Meta': {'unique_together': "(('pub_date', 'slug'),)"}, |
|
32 |
'breaking': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), |
|
33 |
'category': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['news.Category']", 'null': 'True', 'blank': 'True'}), |
|
34 |
'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
|
35 |
'external_url': ('django.db.models.fields.URLField', [], {'default': "''", 'max_length': '200', 'blank': 'True'}), |
|
36 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
37 |
'long_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
|
38 |
'pub_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
|
39 |
'short_text': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}), |
|
40 |
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}), |
|
41 |
'subhead': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
|
42 |
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
43 |
'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}) |
|
44 |
} |
|
45 |
} |
|
46 |
||
47 |
complete_apps = ['news'] |
Up to file-list happening/news/models.py:
| … | … | @@ -27,7 +27,7 @@ class NewsItem(models.Model): |
27 |
27 |
slug = models.SlugField() |
28 |
28 |
subhead = models.CharField(max_length=255, blank=True) |
29 |
29 |
short_text = models.CharField(max_length=50, blank=True) |
30 |
long_text = models.TextField( |
|
30 |
long_text = models.TextField(blank=True) |
|
31 |
31 |
external_url = models.URLField(verify_exists=False, default="", blank=True) |
32 |
32 |
|
33 |
33 |
objects = NewsItemManager() |
| … | … | @@ -49,3 +49,7 @@ class NewsItem(models.Model): |
49 |
49 |
'day': self.pub_date.strftime('%d'), |
50 |
50 |
'slug': self.slug |
51 |
51 |
}) |
52 |
||
53 |
@property |
|
54 |
def has_detail(self): |
|
55 |
return True if self.long_text else False |
Up to file-list happening/news/tests.py:
| … | … | @@ -48,3 +48,9 @@ class NewsTests(MainTests): |
48 |
48 |
}) |
49 |
49 |
response = self.client.get(url) |
50 |
50 |
self.assertEquals(response.status_code, 200) |
51 |
||
52 |
def test_news_has_detail(self): |
|
53 |
news_item = NewsItem.objects.get(pk=1) |
|
54 |
self.assertEquals(news_item.has_detail, True) |
|
55 |
news_item = NewsItem.objects.get(pk=2) |
|
56 |
self.assertEquals(news_item.has_detail, False) |
