GithubHelp home page GithubHelp logo

wagtail / bakerydemo Goto Github PK

View Code? Open in Web Editor NEW
884.0 884.0 520.0 10.95 MB

Next generation Wagtail demo, born in Reykjavik

License: BSD 3-Clause "New" or "Revised" License

Python 73.75% HTML 14.46% Shell 0.83% CSS 9.90% Dockerfile 0.62% Procfile 0.02% JavaScript 0.22% Makefile 0.20%
hacktoberfest wagtail

bakerydemo's Introduction

Wagtail


Build Status License Version Monthly downloads follow on Twitter

Wagtail is an open source content management system built on Django, with a strong community and commercial support. It's focused on user experience, and offers precise control for designers and developers.

Wagtail screenshot

Join the Community at Wagtail Space! ๐Ÿš€

Wagtail Space is coming in June 2024! Don't miss your chance to meet other Wagtailers in person. The Call for Participation and registration for both Wagtail Space 2024 events is open. We'd love to have you give a talk, contribute to a sprint, or join us as an attendee in June.

๐Ÿ”ฅ Features

  • A fast, attractive interface for authors
  • Complete control over front-end design and structure
  • Scales to millions of pages and thousands of editors
  • Fast out of the box, cache-friendly when you need it
  • Content API for 'headless' sites with decoupled front-end
  • Runs on a Raspberry Pi or a multi-datacenter cloud platform
  • StreamField encourages flexible content without compromising structure
  • Powerful, integrated search, using Elasticsearch or PostgreSQL
  • Excellent support for images and embedded content
  • Multi-site and multi-language ready
  • Embraces and extends Django

Find out more at wagtail.org.

๐Ÿ‘‰ Getting started

Wagtail works with Python 3, on any platform.

To get started with using Wagtail, run the following in a virtual environment:

Installing Wagtail

pip install wagtail
wagtail start mysite
cd mysite
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver

For detailed installation and setup docs, see the getting started tutorial.

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ Whoโ€™s using it?

Wagtail is used by NASA, Google, Oxfam, the NHS, Mozilla, MIT, the Red Cross, Salesforce, NBC, BMW, and the US and UK governments. Add your own Wagtail site to madewithwagtail.org.

๐Ÿ“– Documentation

docs.wagtail.org is the full reference for Wagtail, and includes guides for developers, designers and editors, alongside release notes and our roadmap.

For those who are new to Wagtail, the Zen of Wagtail will help you understand what Wagtail is, and what Wagtail is not.

For developers who are ready to jump in to their first Wagtail website the Getting Started Tutorial will guide you through creating and editing your first page.

Do you have an existing Django project? The Wagtail Integration documentation is the best place to start.

๐Ÿ“Œ Compatibility

(If you are reading this on GitHub, the details here may not be indicative of the current released version - please see Compatible Django / Python versions in the Wagtail documentation.)

Wagtail supports:

  • Django 4.2.x and 5.0.x
  • Python 3.8, 3.9, 3.10, 3.11 and 3.12
  • PostgreSQL, MySQL and SQLite (with JSON1) as database backends

Previous versions of Wagtail additionally supported Python 2.7, 3.7 and earlier Django versions.


๐Ÿ“ข Community Support

There is an active community of Wagtail users and developers responding to questions on Stack Overflow. When posting questions, please read Stack Overflow's advice on how to ask questions and remember to tag your question "wagtail".

For topics and discussions that do not fit Stack Overflow's question and answer format we have a Slack workspace. Please respect the time and effort of volunteers by not asking the same question in multiple places.

Join slack community

Our GitHub discussion boards are open for sharing ideas and plans for the Wagtail project.

We maintain a curated list of third party packages, articles and other resources at Awesome Wagtail.

๐Ÿง‘โ€๐Ÿ’ผ Commercial Support

Wagtail is sponsored by Torchbox. If you need help implementing or hosting Wagtail, please contact us: [email protected]. See also madewithwagtail.org/developers/ for expert Wagtail developers around the world.

๐Ÿ” Security

We take the security of Wagtail, and related packages we maintain, seriously. If you have found a security issue with any of our projects please email us at [email protected] so we can work together to find and patch the issue. We appreciate responsible disclosure with any security related issues, so please contact us first before creating a GitHub issue.

If you want to send an encrypted email (optional), the public key ID for [email protected] is 0xbed227b4daf93ff9, and this public key is available from most commonly-used keyservers.

๐Ÿ•’ Release schedule

Feature releases of Wagtail are released every three months. Selected releases are designated as Long Term Support (LTS) releases, and will receive maintenance updates for an extended period to address any security and data-loss related issues. For dates of past and upcoming releases and support periods, see Release Schedule.

๐Ÿ•› Nightly releases

To try out the latest features before a release, we also create builds from main every night. You can find instructions on how to install the latest nightly release at https://releases.wagtail.org/nightly/index.html

๐Ÿ™‹๐Ÿฝ Contributing

If you're a Python or Django developer, fork the repo and get stuck in! We have several developer focused channels on the Slack workspace.

You might like to start by reviewing the contributing guidelines and checking issues with the good first issue label.

We also welcome translations for Wagtail's interface. Translation work should be submitted through Transifex.

๐Ÿ”“ License

BSD - Free to use and modify for any purpose, including both open and closed-source code.

๐Ÿ‘ Thanks

We thank the following organisations for their services used in Wagtail's development:

Browserstack
BrowserStack provides the project with free access to their live web-based browser testing tool, and automated Selenium cloud testing.

squash.io
Squash provides the project with free test environments for reviewing pull requests.

Assistiv Labs
Assistiv Labs provides the project with unlimited access to their remote testing with assistive technologies.

bakerydemo's People

Contributors

allcaps avatar amondale avatar arnartumi avatar azza-bazoo avatar blgo avatar cnk avatar daaray avatar fabienheureux avatar gasman avatar gzark1 avatar hminnovation avatar johnraz avatar jsma avatar kaedroho avatar kalobtaulien avatar laymonage avatar lb- avatar m1kola avatar nickmoreton avatar rachelhsmith avatar realorangeone avatar rgant avatar shacker avatar shurph avatar stormheg avatar thibaudcolas avatar tobiasmcnulty avatar tomdyson avatar vihaanthora avatar vossisboss avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bakerydemo's Issues

Remove StreamField intro block from blog

Semantically a blog page can only have a single introduction field, and it has to be in a specific location. Currently it's a StreamField block, which is slightly confusing, and I think cause us some issues.

Breadcrumb

The breadcrumb currently has fairly functional styling. Could stand to be improved.

There's also the open question of whether it's necessary. The benefit - from my perspective - is that it's a much easier way to understand how TreeBeard can be used than the main menu is (since the main menu is that much more complex). The negative is that - to accommodate it within the design - we're using content-header, breadcrumb and content-body as blocks rather than the more standard content.

Support both sqlite and postgres

Per discussion - Heroku does not support postgres and we probably don't want to support two db systems (or do we?)

Also need to document the dependency and suggest easiest path to postgres installation (for Mac users that's http://postgresapp.com/

Homepage styling and content

I think the issue between styling of the homepage and the content it has is quite interlinked. We didn't, in the sprint, have time to really have a conversation about what should be on the homepage. A little like the about page it'll need to juggle - in my mind - the content model of the bakery chain, alongside being clear it's a demo for Wagtail.

Alongside any homepage fields we have the following apps we can show content from:

  • About page
  • Blog page
  • Bread page
  • Locations
  • Gallery

I wonder whether we could have a content model similar to a shop/ chain, though the first screen the user sees is relevant to Wagtail rather than the bakery? For the sort of creative positioning I had in mind:

Happy to draw something up if useful? But was also curious to hear what others had thought.

Universal header via include

Page header chunk is being handled inconsistently across pages (image, intro). base/include/header.html should be included on all pages. This is also consistent with the mixin we're using to include these fields on all page models.

Pin requirements

The requirements file should be amended to pin the current working versions of all libraries (at the time this demo is being actively developed). Leaving it to the most recent versions will invariably cause a problem later on.

Missing migration

This commit: bc54cb4 references a missing migration. I pulled master and received this output when running pythpn manage.py migrate:

django.db.migrations.exceptions.NodeNotFoundError: Migration breads.0002_auto_20170217_0853 dependencies reference nonexistent parent node ('wagtailimages', '0018_remove_rendition_filter')

Enhance tags display

When showing tags at bottom of blog page, style each tag as a button (which is a fairly standard tag display) or otherwise make them distinct (right now it just looks like linked text "pinepapple bike". In bootstrap, add to the a href class btn btn-primary

On tag view page, add a header at top of page e.g. "Pages tagged with pineapple"

Demonstrate ManyToMany

Wagtail 1.9 now supports true ManyToMany relations. This is a pretty big deal and erases a long-standing limitation. I know it's late in the game but can we think of a way to demonstrate this important feature?

WagtailBakery admin menu item

We are surfacing the People snippet under WagtailBakery. But People and the other three snippet models are already present under Snippets. Do we want to move all snippets under WagtailBakery? Or remove that and leave them all under Snippets? (I vote for the latter - it's more standard).

Validation on long lat co-ordinates

Putting in anything other than the expected format for long lat co-ordinate into the editor will give an IndexError list index out of range error.

A long lat will normally be something like 64.127146, -21.880038. Co-ordinates that aren't valid (e.g. 10391293939, -1238929101) will avoid the error, but putting in abc or 123 -123 etc. will create the error.

Regex on the field?

referenced files that don't exist

readme says:

cp bakerydemo/settings/local.example.py bakerydemo/settings/local.py

bash says:

cp: bakerydemo/settings/local.example.py: No such file or directory

and:

./manage.py runserver yields:

    raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

But secret key is already there in base.py. Is base.py no longer being read? Looks like manage.py now references:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bakerydemo.settings")

But there is no settings.py in bakerydemo. So I'm totally blocked and can't even runserver. Can't work on the project tonight. Grumble.

Clean up db migrations

Just before release, let's squash all migrations one more time for a clean start, esp since we have many auto-named migration files.

Create a BasePage model and inherit

Most of the main site sections include redundant image and introduction fields. Create a BasePage model to contain these and make Blog, Breads, Locations, Contact inherit from BasePage. Gallery is a special case.

  • Blog
  • Breads
  • Locations

Gallery Page

Needs to add link to first page that the image is used in, to show reverse linking from images to pages (I think I have seen this done sometime...)

Vagrant - Migrate migrations and load initial data

The vagrant/provsion.sh file appears to be doing everything correctly

# Run syncdb/migrate/load_initial_data/update_index
su - vagrant -c "$PYTHON $PROJECT_DIR/manage.py migrate --noinput && \
                 $PYTHON $PROJECT_DIR/manage.py load_initial_data && \
                 $PYTHON $PROJECT_DIR/manage.py update_index"

But none of those commands are being run in the initial vagrant up command nor if you run a subsequent vagrant provision

WAI-ARIA markers

We need to wheel back and make sure the templates are correctly marked up with ARIA markers because there's been a bit of volatility with presentation they haven't been put in yet.

Vagrant alias djrun behaving unexpectedly

Running the setup works fine for vagrant.

Running ./manage.py runserver 0.0.0.0:8000 works fine

Using djrun though gives the following error

django.core.exceptions.ImproperlyConfigured: Requested setting DATABASES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
[bakerydemo vagrant]$ Connection to 127.0.0.1 closed by remote host.
Connection to 127.0.0.1 closed.

In provision.sh the alias is setup as
alias djrun="dj runserver 0.0.0.0:8000"

This was working until PR #25 was merged in. Perhaps we just ditch the aliases?

Handle locations on About template, or ditch that relationship

Locations are shown as children of LocationIndex. About also has AboutLocationRelationship, which lets you manually attach those same locations to the about page. But if you do, they don't show up since the template doesn't handle them.

Either add that handling to the about template, or remove the AboutLocationRelationship since it duplicates data on Locations and we're going to use About for info about the demo itself anyway.

Handler header image on gallery view

I'm making all of the main site sections use a common header via include. It assumes existence of image and introduction on the model.But this page is unique and has no model. How should we show something for the hero image here?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.