File tree Expand file tree Collapse file tree 12 files changed +153
-1
lines changed Expand file tree Collapse file tree 12 files changed +153
-1
lines changed Original file line number Diff line number Diff line change 87
87
88
88
'boxes' ,
89
89
'cms' ,
90
- 'pages' ,
91
90
'companies' ,
92
91
'jobs' ,
92
+ 'pages' ,
93
+ 'sponsors' ,
93
94
'successstories' ,
94
95
)
95
96
Original file line number Diff line number Diff line change 36
36
37
37
url (r'^jobs/' , include ('jobs.urls' , namespace = 'jobs' )),
38
38
url (r'^box/' , include ('boxes.urls' )),
39
+ url (r'^sponsors/' , include ('sponsors.urls' )),
39
40
url (r'^success-stories/' , include ('successstories.urls' )),
40
41
41
42
# admin
Original file line number Diff line number Diff line change
1
+ from django .contrib import admin
2
+
3
+ from .models import Sponsor
4
+ from cms .admin import ContentManageableModelAdmin
5
+
6
+
7
+ class SponsorAdmin (ContentManageableModelAdmin ):
8
+ raw_id_fields = ['company' ]
9
+
10
+ def get_list_filter (self , request ):
11
+ fields = list (super ().get_list_filter (request ))
12
+ return fields + ['is_published' ]
13
+
14
+ def get_list_display (self , request ):
15
+ fields = list (super ().get_list_display (request ))
16
+ return fields + ['is_published' ]
17
+
18
+ admin .site .register (Sponsor , SponsorAdmin )
Original file line number Diff line number Diff line change
1
+ from django .db .models import Manager
2
+ from django .db .models .query import QuerySet
3
+
4
+
5
+ class SponsorQuerySet (QuerySet ):
6
+ def draft (self ):
7
+ return self .filter (is_published = False )
8
+
9
+ def published (self ):
10
+ return self .filter (is_published = True )
11
+
12
+
13
+ class SponsorManager (Manager ):
14
+ def get_query_set (self ):
15
+ return SponsorQuerySet (self .model , using = self ._db )
16
+
17
+ def draft (self ):
18
+ return self .get_query_set ().draft ()
19
+
20
+ def published (self ):
21
+ return self .get_query_set ().published ()
Original file line number Diff line number Diff line change
1
+ from django .conf import settings
2
+ from django .db import models
3
+ from markupfield .fields import MarkupField
4
+
5
+ from .managers import SponsorManager
6
+ from cms .models import ContentManageable
7
+ from companies .models import Company
8
+
9
+
10
+ DEFAULT_MARKUP_TYPE = getattr (settings , 'DEFAULT_MARKUP_TYPE' , 'restructuredtext' )
11
+
12
+
13
+ class Sponsor (ContentManageable ):
14
+ company = models .ForeignKey (Company )
15
+ content = MarkupField (default_markup_type = DEFAULT_MARKUP_TYPE , blank = True )
16
+ is_published = models .BooleanField (default = False )
17
+
18
+ objects = SponsorManager ()
19
+
20
+ class Meta :
21
+ verbose_name = 'sponsor'
22
+ verbose_name_plural = 'sponsors'
23
+
24
+ def __str__ (self ):
25
+ return self .company .name
Original file line number Diff line number Diff line change
1
+ from .test_models import *
2
+ from .test_views import *
3
+ from .. import admin # coverage FTW
Original file line number Diff line number Diff line change
1
+ from django .test import TestCase
2
+
3
+ from ..models import Sponsor
4
+ from companies .models import Company
5
+
6
+
7
+ class SponsorModelTests (TestCase ):
8
+ def setUp (self ):
9
+ self .company1 = Company .objects .create (name = 'Python' )
10
+
11
+ self .Sponsor1 = Sponsor .objects .create (
12
+ company = self .company1 ,
13
+ is_published = True )
14
+
15
+ self .company2 = Company .objects .create (name = 'Python Hidden' )
16
+
17
+ self .Sponsor2 = Sponsor .objects .create (
18
+ company = self .company2 ,
19
+ is_published = False )
20
+
21
+ def test_draft (self ):
22
+ self .assertQuerysetEqual (Sponsor .objects .draft (), ['<Sponsor: Python Hidden>' ])
23
+
24
+ def test_published (self ):
25
+ self .assertQuerysetEqual (Sponsor .objects .published (), ['<Sponsor: Python>' ])
Original file line number Diff line number Diff line change
1
+ from django .core .urlresolvers import reverse
2
+ from django .test import TestCase
3
+
4
+ from ..models import Sponsor
5
+ from companies .models import Company
6
+
7
+
8
+ class SponsorViewTests (TestCase ):
9
+ urls = 'sponsors.urls'
10
+
11
+ def setUp (self ):
12
+ self .company1 = Company .objects .create (name = 'Python' )
13
+
14
+ self .Sponsor1 = Sponsor .objects .create (
15
+ company = self .company1 ,
16
+ is_published = True )
17
+
18
+ self .company2 = Company .objects .create (name = 'Python Hidden' )
19
+
20
+ self .Sponsor2 = Sponsor .objects .create (
21
+ company = self .company2 ,
22
+ is_published = False )
23
+
24
+ def test_sponsor_list (self ):
25
+ url = reverse ('sponsor_list' )
26
+ r = self .client .get (url )
27
+ self .assertEqual (r .status_code , 200 )
28
+ self .assertEqual (len (r .context ['sponsors' ]), 1 )
Original file line number Diff line number Diff line change
1
+ from django .conf .urls import patterns , url
2
+
3
+ from . import views
4
+
5
+
6
+ urlpatterns = patterns ('' ,
7
+ url (r'^$' , views .SponsorList .as_view (), name = 'sponsor_list' ),
8
+ )
You can’t perform that action at this time.
0 commit comments