commiting
This commit is contained in:
@@ -1,61 +1,28 @@
|
||||
title = 'Frequently asked questions'
|
||||
import os
|
||||
from markdown import markdown
|
||||
import frontmatter
|
||||
|
||||
content = {
|
||||
'How does this process work?': {
|
||||
'tag': 'basics-faq',
|
||||
'answer': '''First go to the services page. On the bottom
|
||||
of the page, you'll find a "Request meet & greet"
|
||||
button. After filling out the form, I'll get an email
|
||||
with the form information. I will contact you about
|
||||
the request within 24 hours.'''
|
||||
},
|
||||
'What types of payments do you accept?': {
|
||||
'tag': 'accepted-payments-faq',
|
||||
'answer': '''A broad range of payment types are accepted '
|
||||
to make the process easy.''',
|
||||
'include': [
|
||||
'Cash',
|
||||
'Credit/Debit cards',
|
||||
'ACH (direct bank transfers)',
|
||||
'Paypal',
|
||||
'Apple Pay',
|
||||
'Google Pay',
|
||||
'Zelle'
|
||||
]
|
||||
},
|
||||
'When is payment for a service due?': {
|
||||
'tag': 'payment-terms-faq',
|
||||
'answer': 'Payments are due 7 days after invoicing. '
|
||||
+ 'Invoices are usually sent after completed services.'
|
||||
},
|
||||
'What kind of animals do you caretake?': {
|
||||
'tag': 'animal-types-faq',
|
||||
'answer': '''I have experience careing for many types of animals.
|
||||
I provide care for reptiles, mammals, etc.'''
|
||||
},
|
||||
'Can you care for special needs pets?': {
|
||||
'tag': 'special-needs-faq',
|
||||
'answer': '''I have experience care for special needs, including older
|
||||
animals'''
|
||||
},
|
||||
'Can you stay at my house?': {
|
||||
'tag': 'house-sitting-faq',
|
||||
'answer': 'I offer house sitting services. This includes in home stays.'
|
||||
},
|
||||
'Can you take care of my plants?': {
|
||||
'tag': 'plant-faq',
|
||||
'answer': '''I love plants and have a garden of my own. I'll gladly
|
||||
remove the mess for you.'''
|
||||
},
|
||||
'My yard is a mess, can you clean up the dog poop?': {
|
||||
'tag': 'poop-scoop-faq',
|
||||
'answer': 'I do offer animal poop clean up add-on yard'
|
||||
}
|
||||
}
|
||||
markdown_dir = '{}/markdown'.format(
|
||||
os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
def get_title():
|
||||
return title
|
||||
def __get_content_dict():
|
||||
faqs = dict()
|
||||
for f in os.listdir(markdown_dir):
|
||||
f_abspath = '{}/{}'.format(markdown_dir, f)
|
||||
matter = frontmatter.load(f_abspath)
|
||||
faq = {matter.metadata['question']: {
|
||||
'tag': matter.metadata['tag'],
|
||||
'answer': markdown(matter.content)}}
|
||||
|
||||
faqs.update(faq)
|
||||
|
||||
return faqs
|
||||
|
||||
content = __get_content_dict()
|
||||
def get_content():
|
||||
return content
|
||||
|
||||
title = 'Frequently asked questions'
|
||||
def get_title():
|
||||
return title
|
||||
|
||||
|
||||
23
all_paw_care/content/pages/faqs/faq.py
Normal file
23
all_paw_care/content/pages/faqs/faq.py
Normal file
@@ -0,0 +1,23 @@
|
||||
from markdown import markdown
|
||||
import frontmatter
|
||||
|
||||
import os
|
||||
|
||||
class FAQ(object):
|
||||
def __init__(self, markdown_file: str):
|
||||
with frontmatter.load(markdown_file) as matter:
|
||||
metadata = matter.metadata
|
||||
self.answer = markdown(matter.content)
|
||||
|
||||
self.question = metadata['question']
|
||||
self.tag = metadata['tag']
|
||||
|
||||
def get_question(self):
|
||||
return self.question
|
||||
|
||||
def get_answer_html(self):
|
||||
return self.answer
|
||||
|
||||
def get_tag(self):
|
||||
return self.tag
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
tag: accepted-payments-faq
|
||||
question: What types of payments do you accept?
|
||||
---
|
||||
|
||||
A broad range of payment types are accepted to make the process
|
||||
easy. Below is a list of what is accepted:
|
||||
|
||||
- cash
|
||||
- credit/debit
|
||||
- ACH (bank transfers)
|
||||
- Paypal
|
||||
- Apple Pay
|
||||
- Zelle
|
||||
|
||||
11
all_paw_care/content/pages/faqs/markdown/animal-types-faq.md
Normal file
11
all_paw_care/content/pages/faqs/markdown/animal-types-faq.md
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
tag: animal-types-faq
|
||||
question: What kind of animals do you caretake?
|
||||
---
|
||||
|
||||
I have experience caring for many types of animals. Below is a
|
||||
non-exhaustive list of animals I have experience with:
|
||||
|
||||
- reptiles (e.g. snakes, lizards, and spiders)
|
||||
- mammals (e.g. cats, dogs, and guinea pigs)
|
||||
|
||||
10
all_paw_care/content/pages/faqs/markdown/basics-faq.md
Normal file
10
all_paw_care/content/pages/faqs/markdown/basics-faq.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
tag: basics-faq
|
||||
question: How does this process work?
|
||||
---
|
||||
|
||||
First go to the [services](/pages/services#request-meet-greet) page. On the bottom
|
||||
of the page, you'll find a "Request meet and & greet" button. After
|
||||
filling out the form, I'll get an email with the form information.
|
||||
I will contact you about the request within 24 hours.
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
tag: house-sitting-faq
|
||||
question: Can you watch my pets while I'm away?
|
||||
---
|
||||
|
||||
I offer house sitting services. The service includes overnight
|
||||
in-home stays with your pet.
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
tag: payment-terms-faq
|
||||
question: When is payment for a service due?
|
||||
---
|
||||
|
||||
Payments are due 7 days after invoicing. Invoices are typically sent
|
||||
after services are completed.
|
||||
|
||||
8
all_paw_care/content/pages/faqs/markdown/plant-faq.md
Normal file
8
all_paw_care/content/pages/faqs/markdown/plant-faq.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
tag: plant-faq
|
||||
question: I have plants, can you care for them while I'm away?
|
||||
---
|
||||
|
||||
I'll gladly make sure your plants stay healthy while your gone. I love
|
||||
plants and have a collection of my own.
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
tag: poop-scoop-faq
|
||||
question: My yard is a mess, can you remove the dog poop?
|
||||
---
|
||||
|
||||
I do offer dog poop clean-up as an add-on services. I can provide
|
||||
this service along with a scheduled primary service.
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
tag: special-needs-faq
|
||||
question: Can you care for special needs pets?
|
||||
---
|
||||
|
||||
I have experience caring for animals with special needs, including
|
||||
older pets.
|
||||
|
||||
@@ -1,51 +1,31 @@
|
||||
from flask import url_for
|
||||
from markdown import markdown
|
||||
import frontmatter
|
||||
|
||||
import os
|
||||
|
||||
markdown_dir = '{}/markdown'.format(
|
||||
os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
title = 'About me'
|
||||
|
||||
content = {
|
||||
'section 1': {
|
||||
'images': ['img/about_me/about_me_1_sm.jpg',
|
||||
'img/about_me/about_me_1_md.jpg',
|
||||
'img/about_me/about_me_1_lg.jpg',
|
||||
'img/about_me/about_me_1_xl.jpg',
|
||||
'img/about_me/about_me_1_xxl.jpg'],
|
||||
|
||||
'content': '''Before I provided animal caretaking services,
|
||||
I focused my time on computers. I attended AACC
|
||||
after high school, computer network management and
|
||||
computer science are the two areas I studied.
|
||||
I designed and coded this website!'''
|
||||
},
|
||||
'section 2': {
|
||||
'images': ['img/about_me/about_me_2_sm.jpg',
|
||||
'img/about_me/about_me_2_md.jpg',
|
||||
'img/about_me/about_me_2_lg.jpg',
|
||||
'img/about_me/about_me_2_xl.jpg',
|
||||
'img/about_me/about_me_2_xxl.jpg'],
|
||||
'content': '''For the past 5 years, my interest in plants and
|
||||
horticulture have expanded exponentially. As a kid,
|
||||
my mother always had plants around our home. I
|
||||
have many plants of my own, most of which I've
|
||||
grown from cuttings I take around town. My favorite
|
||||
plant type is succulents (e.g jade plants and aloes)
|
||||
because they're so easy to grow.'''
|
||||
},
|
||||
'section 3': {
|
||||
'images': ['img/about_me/about_me_3_sm.jpg',
|
||||
'img/about_me/about_me_3_md.jpg',
|
||||
'img/about_me/about_me_3_lg.jpg',
|
||||
'img/about_me/about_me_3_xl.jpg',
|
||||
'img/about_me/about_me_3_xxl.jpg'],
|
||||
'content': '''My passion for animals and plants are what I
|
||||
spend most my time on currently. I love providing
|
||||
quality animal care.'''
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def get_title():
|
||||
return title
|
||||
|
||||
def get_content():
|
||||
return content
|
||||
def __get_content_dict():
|
||||
sections = dict()
|
||||
for file in os.listdir(markdown_dir):
|
||||
images = list()
|
||||
matter = frontmatter.load('{}/{}'.format(markdown_dir, file))
|
||||
for img in matter.metadata['images']:
|
||||
images.append('{}/{}'.format(
|
||||
matter.metadata['image-dir'], img))
|
||||
|
||||
sections[file.removesuffix('.md')] = {'images':
|
||||
images, 'content': markdown(matter.content)}
|
||||
|
||||
return sections
|
||||
|
||||
content = __get_content_dict()
|
||||
def get_content():
|
||||
return content.values()
|
||||
|
||||
|
||||
16
all_paw_care/content/pages/home/markdown/section1.md
Normal file
16
all_paw_care/content/pages/home/markdown/section1.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
image-dir: img/about_me
|
||||
images:
|
||||
- about_me_1_sm.jpg
|
||||
- about_me_1_md.jpg
|
||||
- about_me_1_lg.jpg
|
||||
- about_me_1_xl.jpg
|
||||
- about_me_1_xxl.jpg
|
||||
---
|
||||
|
||||
Before I provided animal caretaking services, I focused on my interest
|
||||
in computer technologies. I studied computer networking and computer
|
||||
science at [AACC](https://www.aacc.edu). The knowledge I gained from my
|
||||
studies was harnessed writing the code that powers this website and
|
||||
configuring the servers that the code runs on.
|
||||
|
||||
18
all_paw_care/content/pages/home/markdown/section2.md
Normal file
18
all_paw_care/content/pages/home/markdown/section2.md
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
image-dir: img/about_me
|
||||
images:
|
||||
- about_me_2_sm.jpg
|
||||
- about_me_2_md.jpg
|
||||
- about_me_2_lg.jpg
|
||||
- about_me_2_xl.jpg
|
||||
- about_me_2_xxl.jpg
|
||||
---
|
||||
|
||||
Plants and horticulture are a passion of mine, too. My interest has
|
||||
actively grown since starting caretaking services. Caring for
|
||||
animals in the Baltimore area, I have the opportunity of observing
|
||||
a broad range of vegetation. I've collected cuttings for propagation
|
||||
and many survive and thrive enough to make it to my garden or potted
|
||||
house plants. Succulent type plants are a favorite of mine and I have
|
||||
a ever growing collection.
|
||||
|
||||
17
all_paw_care/content/pages/home/markdown/section3.md
Normal file
17
all_paw_care/content/pages/home/markdown/section3.md
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
image-dir: img/about_me
|
||||
images:
|
||||
- about_me_3_sm.jpg
|
||||
- about_me_3_md.jpg
|
||||
- about_me_3_lg.jpg
|
||||
- about_me_3_xl.jpg
|
||||
- about_me_3_xxl.jpg
|
||||
---
|
||||
|
||||
I've been lucky enough to have the opportunity to grow my animal
|
||||
caretaking services to my primary source of income. I started
|
||||
listing availability on the [Rover](https://www.rover.com/) platform
|
||||
in 2018. After gaining loyal clients and reputation, moving my services
|
||||
to being independent was a logical move. I really love providing great
|
||||
and affordable caretaking services.
|
||||
|
||||
@@ -1,52 +1,25 @@
|
||||
title = 'Services & Pricing'
|
||||
|
||||
content = {
|
||||
'Primary services': [
|
||||
{
|
||||
'title': 'Walking',
|
||||
'images': [
|
||||
'img/services/dog_walking_card_sm.png',
|
||||
'img/services/dog_walking_card_md.png',
|
||||
'img/services/dog_walking_card_lg.png',
|
||||
'img/services/dog_walking_card_xl.png',
|
||||
'img/services/dog_walking_card_xxl.png'],
|
||||
'price': '$20/visit',
|
||||
'included': [
|
||||
'30 minute walk.',
|
||||
'Bags for poop clean-up.']
|
||||
},
|
||||
{
|
||||
'title': 'Drop-in',
|
||||
'images': [
|
||||
'img/services/drop_in_card_sm.png',
|
||||
'img/services/drop_in_card_md.png',
|
||||
'img/services/drop_in_card_lg.png',
|
||||
'img/services/drop_in_card_xl.png',
|
||||
'img/services/drop_in_card_xxl.png'],
|
||||
'price': '$20/visit',
|
||||
'included': [
|
||||
'30 minute in home visit.',
|
||||
'Bags for poop clean-up.']
|
||||
},
|
||||
{
|
||||
'title': 'House sitting',
|
||||
'images': [
|
||||
'img/services/house_sitting_card_sm.png',
|
||||
'img/services/house_sitting_card_md.png',
|
||||
'img/services/house_sitting_card_lg.png',
|
||||
'img/services/house_sitting_card_xl.png',
|
||||
'img/services/house_sitting_card_xxl.png'],
|
||||
'price': '$38/visit',
|
||||
'included': [
|
||||
'Animal care.',
|
||||
'In-home overnight stays.']
|
||||
}
|
||||
]
|
||||
}
|
||||
from all_paw_care.content.pages.services.cards import primary_services
|
||||
|
||||
#def __get_content_dict():
|
||||
# content = {'primary-services': dict(), 'addon-services': dict()}
|
||||
# for file in os.listdir(markdown_dir):
|
||||
# images = list()
|
||||
# matter = frontmatter.load('{}/{}'.format(markdown_dir, file))
|
||||
# if matter.metadata['type'] == 'primary':
|
||||
# for img in matter.metadata['images']:
|
||||
# images.append('{}/{}'.format(
|
||||
# matter.metadata['image-dir'], img))
|
||||
#
|
||||
# content['primary-services'].update()
|
||||
#
|
||||
# return content
|
||||
#
|
||||
#content = __get_content_dict()
|
||||
#
|
||||
__title = 'Services & Pricing'
|
||||
def get_title():
|
||||
return title
|
||||
return __title
|
||||
|
||||
def get_content():
|
||||
return content
|
||||
def get_primary_service_cards():
|
||||
return primary_services
|
||||
|
||||
|
||||
6
all_paw_care/content/pages/services/cards/__init__.py
Normal file
6
all_paw_care/content/pages/services/cards/__init__.py
Normal file
@@ -0,0 +1,6 @@
|
||||
from all_paw_care.content.pages.services.cards.drop_ins import drop_ins
|
||||
from all_paw_care.content.pages.services.cards.house_sitting import house_sitting
|
||||
from all_paw_care.content.pages.services.cards.walking import walking
|
||||
|
||||
primary_services = [drop_ins, house_sitting, walking]
|
||||
|
||||
37
all_paw_care/content/pages/services/cards/card.py
Normal file
37
all_paw_care/content/pages/services/cards/card.py
Normal file
@@ -0,0 +1,37 @@
|
||||
from markdown import markdown
|
||||
import frontmatter
|
||||
|
||||
import os
|
||||
|
||||
class Card(object):
|
||||
def __init__(self, card_file: str):
|
||||
metadata = frontmatter.load(card_file).metadata
|
||||
self.service_type = metadata['type']
|
||||
self.title = metadata['title']
|
||||
self.images = self._get_image_list(
|
||||
metadata['image-dir'], metadata['images'])
|
||||
self.price = metadata['price']
|
||||
self.included = metadata['included']
|
||||
|
||||
def _get_image_list(self, base_dir: str, images: list):
|
||||
image_list = list()
|
||||
for img in images:
|
||||
image_list.append(os.path.join(base_dir, img))
|
||||
|
||||
return image_list
|
||||
|
||||
def get_title(self):
|
||||
return self.title
|
||||
|
||||
def get_price(self):
|
||||
return self.price
|
||||
|
||||
def get_included(self):
|
||||
return self.included
|
||||
|
||||
def get_images(self):
|
||||
return self.images
|
||||
|
||||
def get_default_image(self):
|
||||
return self.images[1]
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
from all_paw_care.content.pages.services.cards.card import Card
|
||||
|
||||
import os
|
||||
|
||||
__markdown_file = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'drop-ins.md')
|
||||
|
||||
drop_ins = Card(__markdown_file)
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
type: primary
|
||||
title: Drop-ins
|
||||
image-dir: img/services
|
||||
images:
|
||||
- drop_in_card_sm.png
|
||||
- drop_in_card_md.png
|
||||
- drop_in_card_lg.png
|
||||
- drop_in_card_xl.png
|
||||
- drop_in_card_xxl.png
|
||||
price: $20/visit
|
||||
included:
|
||||
- 30 minute at home visit
|
||||
- Bags for poop clean-up
|
||||
---
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
from all_paw_care.content.pages.services.cards.card import Card
|
||||
|
||||
import os
|
||||
|
||||
__markdown_file = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'house-sitting.md')
|
||||
|
||||
house_sitting = Card(__markdown_file)
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
type: primary
|
||||
title: House sitting
|
||||
image-dir: img/services
|
||||
images:
|
||||
- house_sitting_card_sm.png
|
||||
- house_sitting_card_md.png
|
||||
- house_sitting_card_lg.png
|
||||
- house_sitting_card_xl.png
|
||||
- house_sitting_card_xxl.png
|
||||
price: $38/night
|
||||
included:
|
||||
- Animal care
|
||||
- At home overnight stays
|
||||
- Bags for poop clean-up
|
||||
---
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
from all_paw_care.content.pages.services.cards.card import Card
|
||||
|
||||
from markdown import markdown
|
||||
import frontmatter
|
||||
|
||||
import os
|
||||
|
||||
__markdown_file = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'walking.md')
|
||||
|
||||
walking = Card(__markdown_file)
|
||||
|
||||
16
all_paw_care/content/pages/services/cards/walking/walking.md
Normal file
16
all_paw_care/content/pages/services/cards/walking/walking.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
type: primary
|
||||
title: Walking
|
||||
image-dir: img/services
|
||||
images:
|
||||
- dog_walking_card_sm.png
|
||||
- dog_walking_card_md.png
|
||||
- dog_walking_card_lg.png
|
||||
- dog_walking_card_xl.png
|
||||
- dog_walking_card_xxl.png
|
||||
price: $20/visit
|
||||
included:
|
||||
- 30 minute walk
|
||||
- Bags for poop clean-up
|
||||
---
|
||||
|
||||
7
all_paw_care/content/pages/services/services.md
Normal file
7
all_paw_care/content/pages/services/services.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Services & Pricing
|
||||
---
|
||||
|
||||
Below are animal caretaking services I provide. New clients should
|
||||
fill out the [meet & greet request](/forms/meet_and_gree) form
|
||||
|
||||
Reference in New Issue
Block a user