Completed
Pull Request — master (#155)
by
unknown
41s
created

TwitterSidebarItem   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 4
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
wmc 1
1
import logging
2
logger = logging.getLogger(__name__)
3
4
from website.jdpages.models import HomePage
5
from website.jdpages.models import PageHeaderImage
6
7
8
def get_page_header(page):
9
    """
10
    :returns: the page header for a given page.
11
    Uses parent page image when none is defined.
12
    Top parent is the HomePage.
13
    None when there is no Hompage or when the HomePage has no header.
14
    """
15
16
    # Get a random page header, or the first one if there is only one
17
    image = PageHeaderImage.objects.filter(page=page).order_by('?').first()
18
    if image is not None:
19
        return image
20
21
    # No image found! If we received an integer, then do not search further
22
    if isinstance(page, int):
23
        return None
24
25
    # Try from parent
26
    if page.parent:
27
        return get_page_header(page.parent)
28
29
    # Try from first homepage
30
    homepage = HomePage.objects.values_list('id').first()
31
    if len(homepage) != 0:
32
        # Since we give get_page_header an integer, there is no infinite recursion here...
33
        return get_page_header(homepage[0])
34
35
    return None
36
37
38
def get_homepage_header():
39
    """ Returns the page header image of the homepage """
40
    homepage = HomePage.objects.values_list('id').first()
41
    if not homepage:
42
        return None
43
    return get_page_header(homepage[0])
44