From d706f4de32292feb527c4575047dffdda1859068 Mon Sep 17 00:00:00 2001
From: AlasdairSwan <alasdair_swan@hotmail.com>
Date: Tue, 13 Jan 2015 09:30:20 -0500
Subject: [PATCH] ECOM-880 added mobile app links to footer enabled by feature
 flag ENABLE_FOOTER_MOBILE_APP_LINKS Allow configuration to override links to
 mobile app stores

---
 lms/envs/aws.py                               |   3 +
 lms/envs/common.py                            |  10 ++
 .../images/app/app_store_badge_135x40.svg     | 129 ++++++++++++++++++
 .../images/app/google_play_badge_45.png       | Bin 0 -> 8913 bytes
 lms/static/sass/shared/_footer.scss           |  28 ++++
 lms/templates/footer-edx-new.html             |  16 +++
 6 files changed, 186 insertions(+)
 create mode 100644 lms/static/images/app/app_store_badge_135x40.svg
 create mode 100644 lms/static/images/app/google_play_badge_45.png

diff --git a/lms/envs/aws.py b/lms/envs/aws.py
index 85a7cd1fd39..b21b0e9ebe8 100644
--- a/lms/envs/aws.py
+++ b/lms/envs/aws.py
@@ -210,6 +210,9 @@ THEME_NAME = ENV_TOKENS.get('THEME_NAME', None)
 # Marketing link overrides
 MKTG_URL_LINK_MAP.update(ENV_TOKENS.get('MKTG_URL_LINK_MAP', {}))
 
+# Mobile store URL overrides
+MOBILE_STORE_URLS = ENV_TOKENS.get('MOBILE_STORE_URLS', MOBILE_STORE_URLS)
+
 # Timezone overrides
 TIME_ZONE = ENV_TOKENS.get('TIME_ZONE', TIME_ZONE)
 
diff --git a/lms/envs/common.py b/lms/envs/common.py
index e785c78f8b2..8623017d421 100644
--- a/lms/envs/common.py
+++ b/lms/envs/common.py
@@ -308,6 +308,9 @@ FEATURES = {
 
     # Separate the verification flow from the payment flow
     'SEPARATE_VERIFICATION_FROM_PAYMENT': False,
+
+    # Show the mobile app links in the footer
+    'ENABLE_FOOTER_MOBILE_APP_LINKS': False,
 }
 
 # Ignore static asset files on import which match this pattern
@@ -1593,6 +1596,13 @@ MKTG_URL_LINK_MAP = {
     'WHAT_IS_VERIFIED_CERT': 'verified-certificate',
 }
 
+################# Mobile URLS ##########################
+
+# These are URLs to the app store for mobile.
+MOBILE_STORE_URLS = {
+    'apple': '#',
+    'google': '#'
+}
 
 ################# Student Verification #################
 VERIFY_STUDENT = {
diff --git a/lms/static/images/app/app_store_badge_135x40.svg b/lms/static/images/app/app_store_badge_135x40.svg
new file mode 100644
index 00000000000..ac111e59746
--- /dev/null
+++ b/lms/static/images/app/app_store_badge_135x40.svg
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="US_UK_Download_on_the" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+	 x="0px" y="0px" width="135px" height="40px" viewBox="0 0 135 40" enable-background="new 0 0 135 40" xml:space="preserve">
+<g>
+	<path fill="#A6A6A6" d="M130.197,40H4.729C2.122,40,0,37.872,0,35.267V4.726C0,2.12,2.122,0,4.729,0h125.468
+		C132.803,0,135,2.12,135,4.726v30.541C135,37.872,132.803,40,130.197,40L130.197,40z"/>
+	<path d="M134.032,35.268c0,2.116-1.714,3.83-3.834,3.83H4.729c-2.119,0-3.839-1.714-3.839-3.83V4.725
+		c0-2.115,1.72-3.835,3.839-3.835h125.468c2.121,0,3.834,1.72,3.834,3.835L134.032,35.268L134.032,35.268z"/>
+	<g>
+		<g>
+			<path fill="#FFFFFF" d="M30.128,19.784c-0.029-3.223,2.639-4.791,2.761-4.864c-1.511-2.203-3.853-2.504-4.676-2.528
+				c-1.967-0.207-3.875,1.177-4.877,1.177c-1.022,0-2.565-1.157-4.228-1.123c-2.14,0.033-4.142,1.272-5.24,3.196
+				c-2.266,3.923-0.576,9.688,1.595,12.859c1.086,1.553,2.355,3.287,4.016,3.226c1.625-0.067,2.232-1.036,4.193-1.036
+				c1.943,0,2.513,1.036,4.207,0.997c1.744-0.028,2.842-1.56,3.89-3.127c1.255-1.78,1.759-3.533,1.779-3.623
+				C33.507,24.924,30.161,23.647,30.128,19.784z"/>
+			<path fill="#FFFFFF" d="M26.928,10.306c0.874-1.093,1.472-2.58,1.306-4.089c-1.265,0.056-2.847,0.875-3.758,1.944
+				c-0.806,0.942-1.526,2.486-1.34,3.938C24.557,12.205,26.016,11.382,26.928,10.306z"/>
+		</g>
+	</g>
+	<g>
+		<path fill="#FFFFFF" d="M53.645,31.504h-2.271l-1.244-3.909h-4.324l-1.185,3.909h-2.211l4.284-13.308h2.646L53.645,31.504z
+			 M49.755,25.955L48.63,22.48c-0.119-0.355-0.342-1.191-0.671-2.507h-0.04c-0.131,0.566-0.342,1.402-0.632,2.507l-1.105,3.475
+			H49.755z"/>
+		<path fill="#FFFFFF" d="M64.662,26.588c0,1.632-0.441,2.922-1.323,3.869c-0.79,0.843-1.771,1.264-2.942,1.264
+			c-1.264,0-2.172-0.454-2.725-1.362h-0.04v5.055h-2.132V25.067c0-1.026-0.027-2.079-0.079-3.159h1.875l0.119,1.521h0.04
+			c0.711-1.146,1.79-1.718,3.238-1.718c1.132,0,2.077,0.447,2.833,1.342C64.284,23.949,64.662,25.127,64.662,26.588z M62.49,26.666
+			c0-0.934-0.21-1.704-0.632-2.31c-0.461-0.632-1.08-0.948-1.856-0.948c-0.526,0-1.004,0.176-1.431,0.523
+			c-0.428,0.35-0.708,0.807-0.839,1.373c-0.066,0.264-0.099,0.48-0.099,0.65v1.6c0,0.698,0.214,1.287,0.642,1.768
+			s0.984,0.721,1.668,0.721c0.803,0,1.428-0.31,1.875-0.928C62.266,28.496,62.49,27.68,62.49,26.666z"/>
+		<path fill="#FFFFFF" d="M75.699,26.588c0,1.632-0.441,2.922-1.324,3.869c-0.789,0.843-1.77,1.264-2.941,1.264
+			c-1.264,0-2.172-0.454-2.724-1.362H68.67v5.055h-2.132V25.067c0-1.026-0.027-2.079-0.079-3.159h1.875l0.119,1.521h0.04
+			c0.71-1.146,1.789-1.718,3.238-1.718c1.131,0,2.076,0.447,2.834,1.342C75.32,23.949,75.699,25.127,75.699,26.588z M73.527,26.666
+			c0-0.934-0.211-1.704-0.633-2.31c-0.461-0.632-1.078-0.948-1.855-0.948c-0.527,0-1.004,0.176-1.432,0.523
+			c-0.428,0.35-0.707,0.807-0.838,1.373c-0.065,0.264-0.099,0.48-0.099,0.65v1.6c0,0.698,0.214,1.287,0.64,1.768
+			c0.428,0.48,0.984,0.721,1.67,0.721c0.803,0,1.428-0.31,1.875-0.928C73.303,28.496,73.527,27.68,73.527,26.666z"/>
+		<path fill="#FFFFFF" d="M88.039,27.772c0,1.132-0.393,2.053-1.182,2.764c-0.867,0.777-2.074,1.165-3.625,1.165
+			c-1.432,0-2.58-0.276-3.449-0.829l0.494-1.777c0.936,0.566,1.963,0.85,3.082,0.85c0.803,0,1.428-0.182,1.877-0.544
+			c0.447-0.362,0.67-0.848,0.67-1.454c0-0.54-0.184-0.995-0.553-1.364c-0.367-0.369-0.98-0.712-1.836-1.029
+			c-2.33-0.869-3.494-2.142-3.494-3.816c0-1.094,0.408-1.991,1.225-2.689c0.814-0.699,1.9-1.048,3.258-1.048
+			c1.211,0,2.217,0.211,3.02,0.632l-0.533,1.738c-0.75-0.408-1.598-0.612-2.547-0.612c-0.75,0-1.336,0.185-1.756,0.553
+			c-0.355,0.329-0.533,0.73-0.533,1.205c0,0.526,0.203,0.961,0.611,1.303c0.355,0.316,1,0.658,1.936,1.027
+			c1.145,0.461,1.986,1,2.527,1.618C87.77,26.081,88.039,26.852,88.039,27.772z"/>
+		<path fill="#FFFFFF" d="M95.088,23.508h-2.35v4.659c0,1.185,0.414,1.777,1.244,1.777c0.381,0,0.697-0.033,0.947-0.099l0.059,1.619
+			c-0.42,0.157-0.973,0.236-1.658,0.236c-0.842,0-1.5-0.257-1.975-0.77c-0.473-0.514-0.711-1.376-0.711-2.587v-4.837h-1.4v-1.6h1.4
+			v-1.757l2.094-0.632v2.389h2.35V23.508z"/>
+		<path fill="#FFFFFF" d="M105.691,26.627c0,1.475-0.422,2.686-1.264,3.633c-0.883,0.975-2.055,1.461-3.516,1.461
+			c-1.408,0-2.529-0.467-3.365-1.401s-1.254-2.113-1.254-3.534c0-1.487,0.43-2.705,1.293-3.652c0.861-0.948,2.023-1.422,3.484-1.422
+			c1.408,0,2.541,0.467,3.396,1.402C105.283,24.021,105.691,25.192,105.691,26.627z M103.479,26.696
+			c0-0.885-0.189-1.644-0.572-2.277c-0.447-0.766-1.086-1.148-1.914-1.148c-0.857,0-1.508,0.383-1.955,1.148
+			c-0.383,0.634-0.572,1.405-0.572,2.317c0,0.885,0.189,1.644,0.572,2.276c0.461,0.766,1.105,1.148,1.936,1.148
+			c0.814,0,1.453-0.39,1.914-1.168C103.281,28.347,103.479,27.58,103.479,26.696z"/>
+		<path fill="#FFFFFF" d="M112.621,23.783c-0.211-0.039-0.436-0.059-0.672-0.059c-0.75,0-1.33,0.283-1.738,0.85
+			c-0.355,0.5-0.533,1.132-0.533,1.895v5.035h-2.131l0.02-6.574c0-1.106-0.027-2.113-0.08-3.021h1.857l0.078,1.836h0.059
+			c0.225-0.631,0.58-1.139,1.066-1.52c0.475-0.343,0.988-0.514,1.541-0.514c0.197,0,0.375,0.014,0.533,0.039V23.783z"/>
+		<path fill="#FFFFFF" d="M122.156,26.252c0,0.382-0.025,0.704-0.078,0.967h-6.396c0.025,0.948,0.334,1.673,0.928,2.173
+			c0.539,0.447,1.236,0.671,2.092,0.671c0.947,0,1.811-0.151,2.588-0.454l0.334,1.48c-0.908,0.396-1.98,0.593-3.217,0.593
+			c-1.488,0-2.656-0.438-3.506-1.313c-0.848-0.875-1.273-2.05-1.273-3.524c0-1.447,0.395-2.652,1.186-3.613
+			c0.828-1.026,1.947-1.539,3.355-1.539c1.383,0,2.43,0.513,3.141,1.539C121.873,24.047,122.156,25.055,122.156,26.252z
+			 M120.123,25.699c0.014-0.632-0.125-1.178-0.414-1.639c-0.369-0.593-0.936-0.889-1.699-0.889c-0.697,0-1.264,0.289-1.697,0.869
+			c-0.355,0.461-0.566,1.014-0.631,1.658H120.123z"/>
+	</g>
+	<g>
+		<g>
+			<path fill="#FFFFFF" d="M49.05,10.009c0,1.177-0.353,2.063-1.058,2.658c-0.653,0.549-1.581,0.824-2.783,0.824
+				c-0.596,0-1.106-0.026-1.533-0.078V6.982c0.557-0.09,1.157-0.136,1.805-0.136c1.145,0,2.008,0.249,2.59,0.747
+				C48.723,8.156,49.05,8.961,49.05,10.009z M47.945,10.038c0-0.763-0.202-1.348-0.606-1.756c-0.404-0.407-0.994-0.611-1.771-0.611
+				c-0.33,0-0.611,0.022-0.844,0.068v4.889c0.129,0.02,0.365,0.029,0.708,0.029c0.802,0,1.421-0.223,1.857-0.669
+				S47.945,10.892,47.945,10.038z"/>
+			<path fill="#FFFFFF" d="M54.909,11.037c0,0.725-0.207,1.319-0.621,1.785c-0.434,0.479-1.009,0.718-1.727,0.718
+				c-0.692,0-1.243-0.229-1.654-0.689c-0.41-0.459-0.615-1.038-0.615-1.736c0-0.73,0.211-1.329,0.635-1.794s0.994-0.698,1.712-0.698
+				c0.692,0,1.248,0.229,1.669,0.688C54.708,9.757,54.909,10.333,54.909,11.037z M53.822,11.071c0-0.435-0.094-0.808-0.281-1.119
+				c-0.22-0.376-0.533-0.564-0.94-0.564c-0.421,0-0.741,0.188-0.961,0.564c-0.188,0.311-0.281,0.69-0.281,1.138
+				c0,0.435,0.094,0.808,0.281,1.119c0.227,0.376,0.543,0.564,0.951,0.564c0.4,0,0.714-0.191,0.94-0.574
+				C53.725,11.882,53.822,11.506,53.822,11.071z"/>
+			<path fill="#FFFFFF" d="M62.765,8.719l-1.475,4.714h-0.96l-0.611-2.047c-0.155-0.511-0.281-1.019-0.379-1.523h-0.019
+				c-0.091,0.518-0.217,1.025-0.379,1.523l-0.649,2.047h-0.971l-1.387-4.714h1.077l0.533,2.241c0.129,0.53,0.235,1.035,0.32,1.513
+				h0.019c0.078-0.394,0.207-0.896,0.389-1.503l0.669-2.25h0.854l0.641,2.202c0.155,0.537,0.281,1.054,0.378,1.552h0.029
+				c0.071-0.485,0.178-1.002,0.32-1.552l0.572-2.202H62.765z"/>
+			<path fill="#FFFFFF" d="M68.198,13.433H67.15v-2.7c0-0.832-0.316-1.248-0.95-1.248c-0.311,0-0.562,0.114-0.757,0.343
+				c-0.193,0.229-0.291,0.499-0.291,0.808v2.796h-1.048v-3.366c0-0.414-0.013-0.863-0.038-1.349h0.921l0.049,0.737h0.029
+				c0.122-0.229,0.304-0.418,0.543-0.569c0.284-0.176,0.602-0.265,0.95-0.265c0.44,0,0.806,0.142,1.097,0.427
+				c0.362,0.349,0.543,0.87,0.543,1.562V13.433z"/>
+			<path fill="#FFFFFF" d="M71.088,13.433h-1.047V6.556h1.047V13.433z"/>
+			<path fill="#FFFFFF" d="M77.258,11.037c0,0.725-0.207,1.319-0.621,1.785c-0.434,0.479-1.01,0.718-1.727,0.718
+				c-0.693,0-1.244-0.229-1.654-0.689c-0.41-0.459-0.615-1.038-0.615-1.736c0-0.73,0.211-1.329,0.635-1.794s0.994-0.698,1.711-0.698
+				c0.693,0,1.248,0.229,1.67,0.688C77.057,9.757,77.258,10.333,77.258,11.037z M76.17,11.071c0-0.435-0.094-0.808-0.281-1.119
+				c-0.219-0.376-0.533-0.564-0.939-0.564c-0.422,0-0.742,0.188-0.961,0.564c-0.188,0.311-0.281,0.69-0.281,1.138
+				c0,0.435,0.094,0.808,0.281,1.119c0.227,0.376,0.543,0.564,0.951,0.564c0.4,0,0.713-0.191,0.939-0.574
+				C76.074,11.882,76.17,11.506,76.17,11.071z"/>
+			<path fill="#FFFFFF" d="M82.33,13.433h-0.941l-0.078-0.543h-0.029c-0.322,0.433-0.781,0.65-1.377,0.65
+				c-0.445,0-0.805-0.143-1.076-0.427c-0.246-0.258-0.369-0.579-0.369-0.96c0-0.576,0.24-1.015,0.723-1.319
+				c0.482-0.304,1.16-0.453,2.033-0.446V10.3c0-0.621-0.326-0.931-0.979-0.931c-0.465,0-0.875,0.117-1.229,0.349l-0.213-0.688
+				c0.438-0.271,0.979-0.407,1.617-0.407c1.232,0,1.85,0.65,1.85,1.95v1.736C82.262,12.78,82.285,13.155,82.33,13.433z
+				 M81.242,11.813v-0.727c-1.156-0.02-1.734,0.297-1.734,0.95c0,0.246,0.066,0.43,0.201,0.553c0.135,0.123,0.307,0.184,0.512,0.184
+				c0.23,0,0.445-0.073,0.641-0.218c0.197-0.146,0.318-0.331,0.363-0.558C81.236,11.946,81.242,11.884,81.242,11.813z"/>
+			<path fill="#FFFFFF" d="M88.285,13.433h-0.93l-0.049-0.757h-0.029c-0.297,0.576-0.803,0.864-1.514,0.864
+				c-0.568,0-1.041-0.223-1.416-0.669s-0.562-1.025-0.562-1.736c0-0.763,0.203-1.381,0.611-1.853c0.395-0.44,0.879-0.66,1.455-0.66
+				c0.633,0,1.076,0.213,1.328,0.64h0.02V6.556h1.049v5.607C88.248,12.622,88.26,13.045,88.285,13.433z M87.199,11.445v-0.786
+				c0-0.136-0.01-0.246-0.029-0.33c-0.059-0.252-0.186-0.464-0.379-0.635c-0.195-0.171-0.43-0.257-0.701-0.257
+				c-0.391,0-0.697,0.155-0.922,0.466c-0.223,0.311-0.336,0.708-0.336,1.193c0,0.466,0.107,0.844,0.322,1.135
+				c0.227,0.31,0.533,0.465,0.916,0.465c0.344,0,0.619-0.129,0.828-0.388C87.1,12.069,87.199,11.781,87.199,11.445z"/>
+			<path fill="#FFFFFF" d="M97.248,11.037c0,0.725-0.207,1.319-0.621,1.785c-0.434,0.479-1.008,0.718-1.727,0.718
+				c-0.691,0-1.242-0.229-1.654-0.689c-0.41-0.459-0.615-1.038-0.615-1.736c0-0.73,0.211-1.329,0.635-1.794s0.994-0.698,1.713-0.698
+				c0.691,0,1.248,0.229,1.668,0.688C97.047,9.757,97.248,10.333,97.248,11.037z M96.162,11.071c0-0.435-0.094-0.808-0.281-1.119
+				c-0.221-0.376-0.533-0.564-0.941-0.564c-0.42,0-0.74,0.188-0.961,0.564c-0.188,0.311-0.281,0.69-0.281,1.138
+				c0,0.435,0.094,0.808,0.281,1.119c0.227,0.376,0.543,0.564,0.951,0.564c0.4,0,0.715-0.191,0.941-0.574
+				C96.064,11.882,96.162,11.506,96.162,11.071z"/>
+			<path fill="#FFFFFF" d="M102.883,13.433h-1.047v-2.7c0-0.832-0.316-1.248-0.951-1.248c-0.311,0-0.562,0.114-0.756,0.343
+				s-0.291,0.499-0.291,0.808v2.796h-1.049v-3.366c0-0.414-0.012-0.863-0.037-1.349h0.92l0.049,0.737h0.029
+				c0.123-0.229,0.305-0.418,0.543-0.569c0.285-0.176,0.602-0.265,0.951-0.265c0.439,0,0.805,0.142,1.096,0.427
+				c0.363,0.349,0.543,0.87,0.543,1.562V13.433z"/>
+			<path fill="#FFFFFF" d="M109.936,9.504h-1.154v2.29c0,0.582,0.205,0.873,0.611,0.873c0.188,0,0.344-0.016,0.467-0.049
+				l0.027,0.795c-0.207,0.078-0.479,0.117-0.814,0.117c-0.414,0-0.736-0.126-0.969-0.378c-0.234-0.252-0.35-0.676-0.35-1.271V9.504
+				h-0.689V8.719h0.689V7.855l1.027-0.31v1.173h1.154V9.504z"/>
+			<path fill="#FFFFFF" d="M115.484,13.433h-1.049v-2.68c0-0.845-0.316-1.268-0.949-1.268c-0.486,0-0.818,0.245-1,0.735
+				c-0.031,0.103-0.049,0.229-0.049,0.377v2.835h-1.047V6.556h1.047v2.841h0.02c0.33-0.517,0.803-0.775,1.416-0.775
+				c0.434,0,0.793,0.142,1.078,0.427c0.355,0.355,0.533,0.883,0.533,1.581V13.433z"/>
+			<path fill="#FFFFFF" d="M121.207,10.853c0,0.188-0.014,0.346-0.039,0.475h-3.143c0.014,0.466,0.164,0.821,0.455,1.067
+				c0.266,0.22,0.609,0.33,1.029,0.33c0.465,0,0.889-0.074,1.271-0.223l0.164,0.728c-0.447,0.194-0.973,0.291-1.582,0.291
+				c-0.73,0-1.305-0.215-1.721-0.645c-0.418-0.43-0.625-1.007-0.625-1.731c0-0.711,0.193-1.303,0.582-1.775
+				c0.406-0.504,0.955-0.756,1.648-0.756c0.678,0,1.193,0.252,1.541,0.756C121.068,9.77,121.207,10.265,121.207,10.853z
+				 M120.207,10.582c0.008-0.311-0.061-0.579-0.203-0.805c-0.182-0.291-0.459-0.437-0.834-0.437c-0.342,0-0.621,0.142-0.834,0.427
+				c-0.174,0.227-0.277,0.498-0.311,0.815H120.207z"/>
+		</g>
+	</g>
+</g>
+</svg>
diff --git a/lms/static/images/app/google_play_badge_45.png b/lms/static/images/app/google_play_badge_45.png
new file mode 100644
index 0000000000000000000000000000000000000000..9891cbbd39d36e215940fa18a1fd1a0a83bcb9af
GIT binary patch
literal 8913
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

literal 0
HcmV?d00001

diff --git a/lms/static/sass/shared/_footer.scss b/lms/static/sass/shared/_footer.scss
index 3819ef37959..e9eb83d1662 100644
--- a/lms/static/sass/shared/_footer.scss
+++ b/lms/static/sass/shared/_footer.scss
@@ -429,4 +429,32 @@ $edx-footer-bg-color: rgb(252,252,252);
       }
     }
   }
+
+  // App links
+  // --------------------
+  .footer-mobile-apps {
+    padding-top: 20px;
+
+    .mobile-app-wrapper {
+      margin: 0 0 10px 0;
+    }
+
+    a {
+      display: inline-block;
+
+      &:hover {
+        border: none;
+      }
+    }
+
+    .app-store {
+      height: auto;
+      width: 129px;
+    }
+
+    .google-play {
+      height: auto;
+      width: 129px;
+    }
+  }
 }
diff --git a/lms/templates/footer-edx-new.html b/lms/templates/footer-edx-new.html
index c3667758ca4..9f207bc2766 100644
--- a/lms/templates/footer-edx-new.html
+++ b/lms/templates/footer-edx-new.html
@@ -94,6 +94,22 @@
           <span class="copy">${_("Google+")}</span>
         </a>
       </div>
+
+      % if settings.FEATURES.get('ENABLE_FOOTER_MOBILE_APP_LINKS'):
+      <div class="footer-mobile-apps">
+        <h2 class="footer-nav-title">${_("Mobile Apps")}</h2>
+        <div class="mobile-app-wrapper">
+          <a href="${settings.MOBILE_STORE_URLS.get('apple', '#')}">
+            <img class="app-store" alt="${_("Apple app on Apple Store")}" src="${static.url('images/app/app_store_badge_135x40.svg')}">
+          </a>
+        </div>
+        <div class="mobile-app-wrapper">
+          <a href="${settings.MOBILE_STORE_URLS.get('google', '#')}">
+            <img class="google-play" alt="${_("Android app on Google Play")}" src="${static.url('images/app/google_play_badge_45.png')}">
+          </a>
+        </div>
+      </div>
+      % endif
     </div>
   </footer>
 </div>
-- 
GitLab