From 4d45ab257aab5b550272921baf74c708aa0ea5c7 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Tue, 21 Jan 2014 16:46:05 +0000 Subject: [PATCH] Site docs --- .gitignore | 4 + README.md | 7 +- docs/CNAME | 1 + docs/about/license.md | 26 ++ docs/api/base-views.md | 159 --------- docs/api/model-views.md | 324 ------------------ docs/img/djangocbv.png | Bin 182724 -> 0 bytes docs/img/example.png | Bin 26800 -> 0 bytes docs/index.md | 285 ++------------- docs/migration/base-views.md | 69 ---- docs/migration/model-views.md | 165 --------- docs/topics/django-braces-compatibility.md | 60 ---- .../django-extra-views-compatibility.md | 18 - docs/topics/frequently-asked-questions.md | 37 -- docs/topics/release-notes.md | 83 ----- docs/user-guide/configuration.md | 88 +++++ docs/user-guide/styling-your-docs.md | 47 +++ docs/user-guide/writing-your-docs.md | 100 ++++++ mkdocs.yaml | 19 +- mkdocs/config.py | 2 +- 20 files changed, 317 insertions(+), 1177 deletions(-) create mode 100644 docs/CNAME create mode 100644 docs/about/license.md delete mode 100644 docs/api/base-views.md delete mode 100644 docs/api/model-views.md delete mode 100644 docs/img/djangocbv.png delete mode 100644 docs/img/example.png delete mode 100644 docs/migration/base-views.md delete mode 100644 docs/migration/model-views.md delete mode 100644 docs/topics/django-braces-compatibility.md delete mode 100644 docs/topics/django-extra-views-compatibility.md delete mode 100644 docs/topics/frequently-asked-questions.md delete mode 100644 docs/topics/release-notes.md create mode 100644 docs/user-guide/configuration.md create mode 100644 docs/user-guide/styling-your-docs.md create mode 100644 docs/user-guide/writing-your-docs.md diff --git a/.gitignore b/.gitignore index d343c672..e6e489b7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,7 @@ build/ env/ mkdocs.egg-info/ *.pyc + +# The 'React' theme that we use for the docs is purchased from the +# wrapbootstrap.com site, and is not licensed for re-use. +theme/ diff --git a/README.md b/README.md index 76847983..563279f1 100644 --- a/README.md +++ b/README.md @@ -1 +1,6 @@ -# Work in progress +# MkDocs + +Project documentation with Markdown. + +**See in progress docs: [www.mkdocs.org](http://www.mkdocs.org)** + diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 00000000..d7525f16 --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +www.mkdocs.org diff --git a/docs/about/license.md b/docs/about/license.md new file mode 100644 index 00000000..49d265ce --- /dev/null +++ b/docs/about/license.md @@ -0,0 +1,26 @@ +# License + +The legal stuff. + +--- + +#### Included projects + +Themes used under license from the Bootstrap, ReadTheDocs, GhostWriter and Bootswatch projects. + +* Bootstrap theme - [View license]() +* ReadTheDocs theme - [View license](). +* GhostWriter theme - [View license](). +* Bootswatch theme - [View license](). + +Many thanks to the authors and contributors of those wonderful projects. + +#### MkDocs License + +Copyright © 2014, Tom Christie. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/docs/api/base-views.md b/docs/api/base-views.md deleted file mode 100644 index 7a603b18..00000000 --- a/docs/api/base-views.md +++ /dev/null @@ -1,159 +0,0 @@ -source: views.py - -# Base Views - -The base views provide a simple set of generic views for working with Django querysets and model instances. - -They replicate the functionality of Django's existing `TemplateView` and `FormView` but present a simpler API and implementation. Django's standard `RedirectView` is also included for completeness. - - View --+-------------------- RedirectView - | - +-- GenericView --+-- TemplateView - | - +-- FormView - ---- - -## GenericView - -The `GenericView` class is used as the base class for both `TemplateView` and `FormView`, and provides methods allowing for a default set of simple template and form actions. - -### Attributes - -#### form_class - -The form class that should be used for edit views. If you are using `FormView`, or your own custom view that calls `get_form()`, then you should either set this attribute, or override one of the form generation methods. Defaults to `None`. - -#### template_name - -A string representing the template name that should be used when rendering the response content. You should either set this attribute or override one of the methods controlling how responses are rendered. Defaults to `None`. - -### Methods - -#### get_form_class(self) - -This method returns the class that should be used for generating forms. - -The default behavior for this method is: - -* If `form_class` is specified on the view then use that. -* Otherwise raise a configuration error. - -You can customize how the form class for the view is determined by overriding this method. For example: - - def get_form_class(self): - is self.request.user.is_staff(): - return AccountForm - return BasicAccountForm - -#### get_form(self, data=None, files=None, **kwargs) - -The method instantiates and returns the form instance that should be used for the view. - -By default this method simply calls `get_form_class()`, and then instantiates the class with the parameters that have been passed to it. - -You can customize this method in order to supply additional arguments to the form class, add initial data, or other customizations. For example: - - def get_form(self, data=None, files=None, **kwargs): - kwargs['user'] = self.request.user - return AccountForm(data, files, **kwargs) - -#### get_context_data(self, **kwargs) - -This method takes a set of keyword arguments supplied by the view and returns a dictionary to use as context when rendering the response template. - -The default behavior of this method is to return a dictionary populated with the following keys: - -* `view` - A reference to the view instance. -* Any additional keyword arguments supplied to the method. In particular, `FormView` includes the `form` context key. - -You can override the method either to add additional context data: - - def get_context_data(self, **kwargs): - context = super(MyView, self).get_context_data(**kwargs) - context['is_admin'] = self.request.user.is_admin - return context - -Or to specify the complete set of context data explicitly: - - def get_context_data(self, **kwargs): - kwargs['view'] = self - kwargs['is_admin'] = self.request.user.is_admin - kwargs['account'] = self.object - return kwargs - -#### get_template_names(self) - -Returns a list of strings that should be used for determining the template name when rendering the response. - -The default behavior for this method is: - -* If `template_name` is specified on the view then use that. -* Otherwise raise a configuration error. - -#### render_to_response(self, context) - -Generates the response that should be returned by the view. Takes a single argument which should be a dictionary of context data to use when rendering the response template. - -The default behaviour of this method is to return an instance of Django's standard `TemplateResponse`. - -You can override this method if you need to customize how the response is generated. For example, to return a response with the `text/plain` content type instead of the standard `text/html`, you could write something like this: - - def render_to_response(context): - template = self.get_template_names() - return TemplateResponse(self.request, template, context, content_type='text/plain') - -You can also override this class in order to use a subclass of Django's standard `HttpResponse` or `TemplateResponse`. For example, if you had a written a custom `JSONResponse` class, you might override the method like this: - - def render_to_response(context): - return JSONResponse(self.request, context) - ---- - -## RedirectView - -For completeness, Django's standard `RedirectView` is included in the `django-vanilla-views` package. The class does not have any implementation or API differences from Django's implementation. - -You should [refer to the Django documentation][redirect-view-docs] for further information. - ---- - -## TemplateView - -A page which simply returns a template response. - -The context passed to the response template will be: - -* `view` - The view instance. - ---- - -## FormView - -A page which allows the user to preview and submit a form. - -The context passed to the response template will be: - -* `view` - The view instance. -* `form` - The form instance. - -#### success_url - -The URL that should be used when redirecting after a successful form submission. - -#### form_valid(self, form) - -This method will be run when a valid form submission occurs, and should return a response object. The default behavior is to return a redirect response as determined by calling `get_success_url()`. - -#### form_invalid(self, form) - -This method will be run when a valid form submission occurs, and should return a response object. The default behavior is to return a `TemplateResponse` which renders the form errors. - - -#### get_success_url() - -Returns the URL that should be used when redirecting after a successful form submission. Defaults to returning the value of the `success_url` attribute. - -**Note**: If you are customizing the view behavior, we'd typically recommend overriding the `form_valid()` method directly rather than overriding `get_success_url()`, as it will result in simpler, more obvious flow control. - -[redirect-view-docs]: https://docs.djangoproject.com/en/dev/ref/class-based-views/base/#redirectview diff --git a/docs/api/model-views.md b/docs/api/model-views.md deleted file mode 100644 index 664afd70..00000000 --- a/docs/api/model-views.md +++ /dev/null @@ -1,324 +0,0 @@ -source: model_views.py - -# Model Views - -The model views provide a simple set of generic views for working with Django querysets and model instances. - -They replicate the functionality of Django's existing `ListView`, `DetailView`, `CreateView`, `UpdateView` and `DeleteView`, but present a simpler API and implementation. - - View -- GenericModelView --+-- ListView - | - +-- DetailView - | - +-- CreateView - | - +-- UpdateView - | - +-- DeleteView - ---- - -## GenericModelView - -The `GenericModelView` class is used as the base class for all of the model views, and provides methods allowing for a default set of viewing, listing and editing actions. - -### Attributes - -#### model - -The model class that the view operates on. This is used as a shortcut to provide default behavior for the view. The default behaviour may be overridden by setting more specific attributes, or by overriding methods on the view. - -#### queryset - -The base queryset that should be used for list views, or used when performing object lookups for detail views. If set to `None` then a default queryset will be used based on the `model` attribute. Defaults to `None`. - -#### lookup_field - -The name of the model field that should be used for object lookups. Defaults to `'pk'`. - -#### lookup_url_kwarg - -The name of the URLconf keyword argument that should be used for object lookups. If unset this defaults to the same value as `lookup_field`. - -#### form_class - -The form class that should be used for create or update views. If set to `None` then a default form class will be used based on the `model` and `fields` attributes. Defaults to `None`. - -#### fields - -A list of strings, representing the fields that should be displayed by the form. This may be used along with the `model` attribute, as a shortcut to setting the `form_class` attribute. Defaults to `None`. - -#### paginate_by - -The number of items to return in each page. Set to a positive integer value to enable pagination. If set to `None` then pagination is disabled. Defaults to `None`. - -#### page_kwarg - -The name of the URL query parameter that is used to select the active page in a paginated list. For example: `http://example.com/widget_list?page=6`. Defaults to `'page'`. - -#### template_name - -A string representing the template name that should be used when rendering the response content. If set to `None`, then the template name will be automatically generated based on the `model` attribute. Defaults to `None`. - -#### template_name_suffix - -A suffix that should be appended when automatically generating template names based on the `model` attribute. Defaults to `None`, but is set to an appropriate value of either `'_detail'`, `'_list'` or `'_form'` by each of the model view subclasses. - -#### context_object_name - -A key to use when passing the queryset or instance as context to the response. If set to `None` then the context object name will be automatically generated based on the `model` attribute. Defaults to `None`. - ---- - -### Methods - -#### get_queryset(self) - -This method should return a queryset representing the set of instances that the view should operate on. - -The default behavior of this method is: - -* If the `queryset` attribute is set, then return that. -* Otherwise fallback to returning the default queryset for the model class as determined by the `model` atttibute. -* If neither the `queryset` or `model` attributes are set then a configuration error will be raised. - -You can customize how the querysets for the view are determined by overriding this method. For example: - - def get_queryset(self): - """ - Custom queryset that only returns book instances owned by the logged-in user. - """ - return Book.objects.filter(owner=self.request.user) - -#### get_object(self) - -This method should return a single model instance that the view should operate on, and is used by `DetailView`, `UpdateView` and `DeleteView`. - -The default behavior for this method is: - -* Call `get_queryset()` to determine the base queryset to use for the lookup. -* Perform the object lookup based on the `lookup_field` and `lookup_url_kwarg` attributes. -* Raise an `HTTP 404 Not Found` response if the instance does not exist. - -You can perform custom object lookups by overriding this method. For example: - - def get_object(self): - """ - Custom object lookup that returns an instances based on both the - 'account' and 'slug' as provided in the URL keyword arguments. - """ - queryset = self.get_queryset() - account = self.kwargs['account'] - slug = self.kwargs['slug'] - return get_object_or_404(queryset, account=account, slug=slug) - -#### get_form_class(self) - -This method returns the class that should be used for generating forms. - -The default behavior of this method is: - -* If the `form_class` attribute is set, then return that. -* Otherwise fallback to returning an automatically generated form class based on the `model` attribute. -* If neither the `form_class` or `model` attributes are set then a configuration error will be raised. - -You can customize how the form class for the view is determined by overriding this method. For example: - - def get_form_class(self): - is self.request.user.is_staff(): - return AccountForm - return BasicAccountForm - -#### get_form(self, data=None, files=None, **kwargs) - -The method instantiates and returns the form instance that should be used for the view. - -By default this method simply calls `get_form_class`, and then instantiates the class with the parameters that have been passed to it. - -You can customize this method in order to supply additional arguments to the form class, add initial data, or other customizations. For example: - - def get_form(self, data=None, files=None, **kwargs): - kwargs['user'] = self.request.user - return AccountForm(data, files, **kwargs) - -#### get_paginate_by(self) - -Returns an integer representing the number of items to display on each page of a paginated list. Returns `None` if pagination is not enabled. - -By default this method simply returns value of the `paginate_by` attribute. - -You can override this method to provide more complex behavior. For example, to allow the user to override the default pagination size using a query parameter in the URL, you might write something like this: - - def get_paginate_by(self): - try: - return int(self.request.GET('page_size', self.paginate_by)) - except ValueError: - return None - -#### get_paginator(self, queryset, page_size) - -Given a queryset and a page size, returns a paginator instance to use for a paginated list view. - -By default this method simply instantiates Django's standard `Paginator` class with the arugments passed. - -If you need to customize how the paginator is instantiated you can override this method. For example to ensure that the final page must always contain more than a single item, you could write something like this: - - def get_paginator(self, queryset, page_size): - return Paginator(queryset, page_size, orphans=2) - -#### paginate_queryset(self, queryset, page_size) - -Given a queryset and a page size, this method should return a `page` instance representing the current page that should be displayed in a paginated list view. You can override this method if you need to customize how the page object is determined, but the default behavior should typically be sufficient. - -#### get_context_object_name(self, is_list=False) - -This method returns a descriptive name that should be used when passing the object or object list as context to the template. The name is used *in addition* to the default `'object'` or `'object_list'` context name. - -The method takes a single parameter `is_list`, which is a boolean indicating if the context object should be named as representing a list of data, or if it should be named as representing a single object. - -The default behavior of this method is: - -* If the `context_object_name` attribute is set, then use that. -* Otherwise fallback to automatically using `` or `_list` based on the `model` attribute. -* If neither the `context_object_name` or `model` attributes are set, then only the standard `'object'` or `'object_list'` key will be used. - -#### get_context_data(self, **kwargs) - -This method takes a set of keyword arguments supplied by the view and returns a dictionary to use as context when rendering the response template. - -The default behavior of this method is to return a dictionary populated with the following keys: - -* `view` - A reference to the view instance. -* `object` or `object_list` - The instance or queryset being operated on by the view. -* `` - A more descriptive name for the instance or queryset as returned by `get_context_object_name`. -* Any additional keyword arguments supplied to the method. In particular, the model editing views include the `form` context key. - -You can override the method either to add additional context data: - - def get_context_data(self, **kwargs): - context = super(MyView, self).get_context_data(**kwargs) - context['is_admin'] = self.request.user.is_admin - return context - -Or to specify the complete set of context data explicitly: - - def get_context_data(self, **kwargs): - kwargs['view'] = self - kwargs['is_admin'] = self.request.user.is_admin - kwargs['account'] = self.object - return kwargs - -#### get_template_names(self) - -Returns a list of strings that should be used for determining the template name when rendering the response. - -The default behavior for this method is: - -* If `template_name` is specified on the view then use that. -* Otherwise fallback to automatically generating a template name as `{app_label}/{model_name}{suffix}.html`, using the `model` attribute as set on the view. -* If neither of `template_name` or `model` attributes are set then raise a configuration error. - -#### render_to_response(self, context) - -Generates the response that should be returned by the view. Takes a single argument which should be a dictionary of context data to use when rendering the response template. - -The default behaviour of this method is to return an instance of Django's standard `TemplateResponse`. - -You can override this method if you need to customize how the response is generated. For example, to return a response with the `text/plain` content type instead of the standard `text/html`, you could write something like this: - - def render_to_response(context): - template = self.get_template_names() - return TemplateResponse(self.request, template, context, content_type='text/plain') - -You can also override this class in order to use a subclass of Django's standard `HttpResponse` or `TemplateResponse`. For example, if you had a written a custom `JSONResponse` class, you might override the method like this: - - def render_to_response(context): - return JSONResponse(self.request, context) - ---- - -## ListView - -A page representing a list of objects. Optionally this may be present a paginated view onto the list. - -The `object_list` attribute will be set on this view, and will typically be a queryset instance. - -#### allow_empty - -A boolean indicating if empty lists may be returned using the standard page template, or if they should cause an `HTTP 404 Not Found` response to be returned. Defaults to `True`, indicating that empty pages should be allowed. - ---- - -## DetailView - -A page representing a single object. - -The `object` attribute will be set on this view, and will typically be a model instance. - ---- - -## CreateView - -A page which allows the user to create objects. - -If successfully created, then the `object` attribute will be set on this view. - -#### success_url - -The URL that should be used when redirecting after a successful form submission. - -#### form_valid(self, form) - -This method will be run when a valid form submission occurs, and should return a response object. The default behavior is to return a redirect response as determined by calling `get_success_url()`. - -#### form_invalid(self, form) - -This method will be run when a valid form submission occurs, and should return a response object. The default behavior is to return a `TemplateResponse` which renders the form errors. - -#### get_success_url() - -Returns the URL that should be used when redirecting after a successful form submission. Defaults to returning the value of the `success_url` attribute if it is set, or will be the return value of calling `get_absolute_url()` on the object instance. - -**Note**: If you are customizing the view behavior, we'd typically recommend overriding the `form_valid()` method directly rather than overriding `get_success_url()`, as it will result in simpler, more obvious flow control. - ---- - -## UpdateView - -A page which allows the user to update an existing object. - -The `object` attribute will be set on this view. - -#### success_url - -The URL that should be used when redirecting after a successful form submission. - -#### form_valid(self, form) - -This method will be run when a valid form submission occurs, and should return a response object. The default behavior is to save the updated object instance and then return a redirect response as determined by calling `get_success_url()`. - -#### form_invalid(self, form) - -This method will be run when a valid form submission occurs, and should return a response object. The default behavior is to return a `TemplateResponse` which renders the form errors. - -#### get_success_url() - -Returns the URL that should be used when redirecting after a successful form submission. Defaults to returning the value of the `success_url` attribute if it is set, or will be the return value of calling `get_absolute_url()` on the object instance. - -**Note**: If you are customizing the view behavior, we'd typically recommend overriding the `form_valid()` method directly rather than overriding `get_success_url()`, as it will result in simpler, more obvious flow control. - ---- - -## DeleteView - -The `object` attribute will be set on this view. - -#### success_url - -The URL that should be used when redirecting after a successful form submission. - -#### get_success_url() - -Returns the URL that should be used when redirecting after a successful form submission. Defaults to returning the value of the `success_url` attribute. - -**Note**: If you are customizing the view behavior, we'd typically recommend overriding the `post()` methhod directly rather than overriding `get_success_url()`, as it will result in simpler, more obvious flow control. diff --git a/docs/img/djangocbv.png b/docs/img/djangocbv.png deleted file mode 100644 index ba6b1cbc6d538e49a31b3c4393eac4a437526f60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182724 zcmb@ubzGIr^FItocQ=9{(v5UV3ew%(b?9zs2}x-r1Oe&pK6Hq5gMf5N!{K+ZZg2fO z_xGQN7reO6UK=y-nc110-92IQvJxnWgoqFj5GcKj~hSvw;DX)=lfzNanYnquzZ_hAOn=n*XUuP{MI1~F zoa`Kw?d+@tnL{|xrqtN#S&J7i$n6+i^*@XvWb0MYKwi5&t$2;#Y@u(BKE?gE@Xb~gy_@Id!D z+Dk$Yrts`gGQ_jR%;tgXBI@h{^$Z=-a6{j46wiYZP}kXRv!ECZjIc-PR$s!cudio4 zfQDSMpYk%wcHh>{#bu+CD0c9`wCDNE$=bkMWnU42XX$KLW*g14)`TgLE`rS=v~dG>rzV$D3f)naM zOBF(@b$+RM@#u`~f+{8!dRwNgabXwsv)-a#>*8<`)=zHB?4hncgL>R2q-?#db5!wF zLjOf+%r4Y=Ch#M$BKG##)9Nc0=C^`Psk34#p5KI#g@9;2EsE7tU>WH zcADfyQBK3pQU9p$9r=_jzW^+m!|cN6KSlftuipgkZ;UGsAWtrh+J5p|>0giL0Z@pt z?ClYSPyTbvSPh}}Fyj`U!qop_0L&*f*BCTYVansb2Ku3m_oPaiLc&nRUTzoI{wD)Z zsL{;>Y!u`E&}VQDzO>70z|*vs+9gP$^|uq)hrlRg2?$c8vlC}7Wb0?IiIj0dHY-lV zawbMpjvmq(oK`ky@Fx7~M@R(8{IjTt9%Q=SFDv;0;kHiONNccKu}<(M-G)Bscsfz7 z30Bx;St|t8^MvkT3TB+yW>Gm8+P^9L>BVtUGU|5q=qJ!pSnLnsPH71m(tIpx0v%`OWGw1)-o z*4R(_=zJJg^!Hq(&jm?(o#sK_Cm9maza*6P78*OvoZ3BI?cbOQQD6gfTnUT# zUqgm-GRTj?r=l0JO5hA?9uozBoq;{id`fVh$xq;kJWG@>OSl!u4(OM7l3N}q$i`oj z$ChQFB-|YrSrOX0x#p>1q0u|syD|S<=#DYfUxLC$;>O_S=5DYlmP>?U!YO-TX{kUX_pev2f$ zhTF|c*>d^1@b;Ee(zxBI1_PRfE?4X@eYG=F9cJBMd5ZsmwVi852V-X|m; z^S89i-Vq>~k!>ClV<%yIUIOQxIiB!2lQ8-^@ul4od)T)@ zcGLUHfGn9>VGvCj)1u;RN%qnk@7_N+D#fERa2Cc8Ul54h1R-AQwFvT%jFYr7q(rl! z@gT+J&xfs6K-uL6!{7^C9$6XZnXQdtNH|n=6FLc&bDAv{36_Z=)ddIKp40 zHF3K%nls7TRgWU6@}2FkaUB+l=tCkQwWYais(*c%2NXefzbV>-0>ixhe9f zp=kK04m}Qm@Lf=d{cR5Z{%BnXAtA@tHm?^?YEMR*Y2>%+Zc8=O0uk``_&oNiedV*v zYjgO#Vw>mGujKN5qcZB7#{}{j@RD5Yujy)6iu445N_YZcoFyKCR?oTWw)={jhHq!2 zP1n*qM|ue0GJW(gV>dc+ti;mR{Kjn^>nM4mA&R)=5oKxQQ za5UGNmbFEP`L+^>T%&eUYzju%J-J2m<~TCT|d{t^1b8Jev#aV&gvlt64jC)Qimw^%heGapY-?*5S-y zAxVV%D9s4UwCq9^Q|TMlJBgA86t9c5>uJ|s;n2kBwnM^Vrk_Yl>Qlg6xT8`cOp{y6 z>ha7EG9+nT>g)9V;V23e+8XkBpEPxjjIRM~JrC_7*3P=^9ZAfjU5qFul`>;kk~7{x zD;|E~MKjn=dygzGI*rhZ@A|49shQ`iVg3yv-{B;`+tn)GSdIwk&NvW*A_~~9winX0 zn(8(f{bjtI36<0yTT$sF;Oj7OVur~cnqzYNR z<27=0%L&;#?Nbg9moLEXVhS$z%yIk4&tux8hBN|it_T{c4}ul0GukZ@6uB)Sr<-<6 zRZ*gjdsk*LA!XO&16>%jJjdCcZO0#YqRzs}wcNo6+c^{Y=#_=;m^B5$4Z9=1YE^zr zD&g`OFL7lHE#q*TtzZg0s)o8}r8BxsW<>7*#^{Wsg6RSNd*WM`NE-mbo8I;qpU%V9 z8NG@U{;ewLPR=<5le8A8=f9@F8x^oC0~KnI^OjJiRw30U&nG%cZwr#E3sU}T(#TqY zF4md_1s9~$Ekh+5zwQ1QN+ffI#-9)*qAR~LFT%7MFYd^#Xz=*m&>f7YZDlm4gW*^q zOx<#OIs8=sGGZMv=d@%5W|XCRM8K*S@|PA$!7n(X1iW`PD8abecG>LM5zy-Bk66SA zyuQrUx7I!sdvg?FVwI@xzNq-B@!&=2?zABWBO*77GBt6}fwY<9htOf|rAHG)GZ;(* zT8;roE{Ot`HeA^sg=VgU$uURPE4CiqgL25_AjVOK6 zyk_UK!ZXjm&XI_9D()ppo=42^8cuMof^%x=Vl_#Q0N%p??X7E@Du0b>*%||^eoL+} ze)?>cq0U;~w!$y`tee2G43XWWa&)L~;TA0@_F7ZPCU=(dmy5iga;+O6ceD-0scw`)$dA1N0SnjKYLAd?G>rj>?}m;ByP5R6F6RvL8C*7?J~nf) z8nW$sqBb|U!qIQ&KX`P(QUZ9(@Q~zCTod4K$r!tLF3uhwG(h{#-f&o|4+{RsSdLAx zaC_Q0N>Y%9r#Ci|$_93UiA_*6l>y z%w8wyTqvJ}=FfZh-vIRof+VzcUkm!!Mi}Qp(=RK8dk%ZRcf#5YaeufdNuL^4>OVU= z1E_?1g6Dvr6$R4!#rH?=$v290$Qy$yW4~O2O8kWcDhtm3R4o> zJmKQm$R9z&Co<-!>*=D%iTR9G7s5bH33dH|k(qT;13aIPz$fY=CCDq0LS;{>mLrw9 zuI)Bg&(x^w`*Z1ctJX{0z6^zwJJ~;!nlWf~Fu@SGniNN!#+LRz8k0L%19A(JC6HcU zoAxL-UEg|YV+DxdziFDJ!hFnE`x>j6$7yAfC{C{xX&`CCbDc>iG2~7rGq|YbqQWE)_dm&-N$N&_#Seh zrep5TbAc}3^Lkhkag{WAT<3imG`Yf@bucIMF>hI4Og7Vy*rd{~D0KWl3{ zcO-D#4zo;yn%ck2*3c!E>hwT}bCzHo5!P(iGl<(qhCaA+CzBBRD#lbIs35QC*R5UK zp=ePTf0@J@(=G`;FwE4yrip1~xVfrEve|1>?MvjXnq7Og&Vg%nS&n5lH}_cfRwbV{k; z?Ot0eL5o&qoBi;N8tRPu=!Jq&v?EkI`+?H!&cG7-!HiyqMlv58DN@AL1X*wNp}n_N zygj==4Ejed|B3CV-Dw>bG!F>UU#F9ZV&pql2BQEFr%bQ%}AqPx~+oT~u-f#MERY9v0(oJNds_z6{kWb!K@}>4zOs@!^5o~le;GN(jIZQVYqV6bn@U8Fou!$T~MuoI{+W7<|?O%^v zzdt1Psr5{cJp2_Nk@Z3EsuBF#i`=jO+F%iGH1rJv5uXRVn7q{Ol|3u$N^VI7VtdqqYMmKRa#N3YRUtio&OaV|GUm9EttJ#haKbpCY_q=t>^#b`&V!N9ysuyc4nMd z{}rKt+n94eMUD7JlZH7in2sAiWk-M}J`@B#4@fCM{5fW^9GIQctuOq4ww*SIB+4eW zr;xRH4*gmZp7Bm8R>&LP%^yL$lYE6)1p8IgFAa&Q0;e1v@8v0U|A7g+tbby!%cd`1 z>&3_D(lBuho3u#z4@4jQ#2$ZqjnOM^Izx+X#j_*sNvUH0ZG7|X`{czbUGdo;aw;%` z#2cfcIP@m)%Y2RC%b%%}9|w_-DbhtMZoHne-<5FuQ*Fq&?{hB0JK36lbYWfv<=Qwk zWV&vn^t<8-MM4oSs#8R`Nc|_s@@inpJ|z_QC;X>Wv&6ySqowhf?4NM{B=7qm+frcE z8)8-Je~RIkEdQl_pQyna5=lQx^RLoB>k8>0P;)7$RnY#ikpF{Fe?l-Y1+T?;{|Gbw z=&pbc%)z#l>iYkIM~+ZdPxDX8%uS(&lVw%KRp)T`*ebGzinlCnV-c_`1cJn1TC$1M z=9|(^9_p8UKj@lo{RuwVrDA4D4sx~%WCVd6X)%H z&ktf^J;e5BtOueaTlg*i;0=sV7VJIpLSu~I70CzcZR}{*(Iteqh= zVFp_OWadanHB8ab%E(=JT2O11j(G>BbPe0O@zmX{945qCx)%<%hlwAoj zDoKc)Q0!AAIBUh$3>W)$hVei+a{hTR-CLeN#1SK;gLtuB0Z3r@PaW`sE(B-l6jVe@ z{}1UZ-AgxKElB#mwf%mQD$??Hvq@5jt)1MMCqD!I}cF$A3xtw69 zPhrVSKgXy#0B4bcZT!#pd8`j50|j~3DwgotkGRd}81QUA-R4;PHY^1o<%vml*vR70mmQ0a-mibN>K~6;2H<(sT-`Ta=bJ{winWn~ zc0{1J-=j6JsBqe~=GGP_I58_$kTU4Z^wxdgL0`e6X-CEdwkD`#ulFz{dvMybW^ z=z;Z!(Z((NT}v5t1xC8a+!hLOCzGKd$nCax#qpd{^^y_g_yaVIK07veCZmCe1k!=am3NF z-xTeKetibpJGpylq~-mtN7fip+J<%$j9_%;nuvuMP*9JTpjX!?lh&9!qyq2rlG8Yf~2JG)6MG@$MVJ1tzW0v<=)muo_4qLy8I}C zEOiqQ2XaPr;HeTnu;CPeeSkCfkSl-!OEG4Q6>I6mB{o{xB@?mFjHDC6=z|fxb9{OT zK--K2t0W8l)a@R*w!pgS=d54Fxu#f8+#I-w9}Y_vSaIfB9m z0Mrtud~6^{SQeL)0K!axYev}&cGOxD-vrKz&R`Sz8gtn=Mvm^R$BDZB22bIXxoB=$gj zBIAk3Kwuu`;3URM)rbc-NHPg}v6(V7mF?GBigWDQeqc-y$!Xzs)Vx1LS2%e`znLvt zBtN?7AARof?z|?#ON&2u+5Ws_sc>WJZ{Hv!a=-NybH!5&o+bUCFrteBylB&Gv~$&< zp;*z^X@|#LXTFZ9q%NUacwWc&pm^#+zl$Ztz6a~ z>1cegh0{Ewt;$U(I^I@AkP&JKjsK?LhLPc0`8g1ZWWBu(-97G;PJ4 z5j&$twYso>tYjN?uiSrAc2LiCwmsgY0CzSEg`l-tfs!wV=t*)br{hA(=yjy|l~iCf zRq;J=@)oc}z-ibE**Rv{$N;#=qc~c1j?PiZ=U5C4=a=P<@yE>M%qGtfgOy-LK7^v+ z82T9d1q$1dU9`0QmTN-k$%f1|2@Ks-w#l{Xm(fNfRVI_xMwHZLJiRtJ(y8p_7&N;p zs??h8VWlS?N}|o)BLiG(?b0z5v_vLid6EYDb73w%hrRx)W z4%ny9{4hctqza8?F*vaokBXXs*KRPH6bXdyk!7bz`~cV(sn^@>+oy8;Z=ZgY)z5g@ zV*;)H(#Loat7voT;a?tKs1qEkjsebiD!)nf5ulKb(Un1JmYEej<$>!8=YF%;4&lZe zJ<3+|OtNNq#KI7@a9>(D34+{5bnBs!EmsB;)Ka^Y0}Y=Nk7d)2NCx7V7(u@ZYf{ax z>$LC-^DhYi^iAmE1!m7C!}C$+huC5!;ttey*ANkUsRs?!$=x4d;UqBl8t#aFiucks zGnlMx%~HCvU2MRhgy~+47uP!A|D+W|@=7~t^@Luy%>Ro=V zq(_9PWZH}Vt%i%32XCehyddr7Z?o}Q%TMmEX5SE7l|9)7eBQsfN{DW*e&lj{4Jr>Rrt5ft!0?&H zfYHOoKQ0hR64@xO6T-INiqFr@+BsQX7Ef(xrHDLjf*we3v8b#*`5|+n0VaHF#rcQ| zJN=a$g)CRvLs_Euo-EOu7UR(&QFptwp_J|2kXAK9R@h($3HJ)mM)=o)>d*Nyr2p9r z{22}UU*Um6AkdJr_`T?4q{v7#IP-Fz3Vzrd9ueEBwM}ATUZQM3CuK1;K7OgP|@_ z>E(bF+U^?YJ-Qh8?jb{DW?<&?=+D)IRs&Zq#qr#Iy6Pc5vbJ=ksu8|g zZO-^S6`g{(#^tEz(>=91x{()EV%BBNH3~R2LQYLcOA$8clZ$7H-EqfBX9V7J#a3y_ zHXkB7nFtWHUd%z^Cq^}Hut%Bp9#$}9Hco3rXTNGkO%1nb8xHKp%Zv&_Zu0X}%Wy3? z?+zfhEo9-z1HwSpDcsP{>!QfFb4{^ycgc&B;7cPv9Cu1Z}a82tkq3 zYB#UbQA@;V=rHAB(X(RNrw`*E^O6AZ=%r|`I@%k$<-O8YUs3pwH<4Fb7MjAFw2GtO zhEvefwy5FzAXZ!|S@oBC|LypKvB8pfbn0yTO%g(W{vkr>0;wJ}_^U>Sar;g{(#(si zk&LBv-IK>B(>20d9Os%lP779ntVw1Kz~-~ulw;l`o?6?e_BG6g9jpGytZQqj+!C#? z9W7?W!AW)=P(V385`vkU8VJ08M#lDRf|JoaUo`9bIgX1f!ORZav>KXdReS$!(xq$M z5N-XWoR5@+iw}dNtiOsq3WUIw4`oI-h)}3K7#q{l_9T);GNI{jz~00okLfs~L#BSg zvtpU%F?E^NKog=QnjWH+FA(Lj!0Touq^_T1`01sq6Mc-KFsfFd;U|(!dz}b+JE=lN zSk4QBJ3__XH|O;bXWNu?_T#l^Ya2O?z!15num!Hw4)VvoA1es^Uo7g-NS+8f?6->7 zZ#D?pnKK+Xlr|^0|9fTsJwAKfEEMSrqVoQrBK&POk|gxMK<4And}NOFfc@iVI?LCI zyDGI9$RK@)>r7|pjLXdjb!!Jx`X?l{t2{_P#p-48IYd%T&QD+uS|8xGfrz7Z0dP|u z)0k|nHv~FxUq3$^yKPoLr$ok`=0Pvt3ZRF;XiuRmYI^_X#z)Y@b{uU)=M+6VZLtpu zxifn9fduHpm=Dk+^X9gdpx1UB6C8z~y^EMVed%p5&W|#0q=h_d_J%Xz6N_4Ucu0>- zhlQ(-pUZ+nJ+q5i6Z4Tml#6-b0?1C#4!W~YY=90oZ_)X)k8X3*R<5-&Y)FSXSr6-M zZwxDAhK+Cx=^_YGuj%VswUWpxeD_WQx8*dgW@p+fo7N!CLUI@F-HYt%p!IQS4TTas zQG^6Q?(+l;;^*!Qd%PB~4wjX+W;{uxBfREli5jaCeNSEMIOz+Aj#UzWE?RzRtiI8= ztnno(IBVPnl*=s{rt3bH8)<9GyUedAMQLqq8E$SlIUFw!yaa{J_mrLNgq^NWc;2_i zgc)`MT`JQC038@_#0=syoRfIV4K?$-y!t@%1XB*j8~j&kK1T>xGZw>Pd9fG39GMa2 zSiP4)Y#T=HU%82&Dun9>UXjyRF&mn)pb z+GT@8GGopW8N|tBP#oRyk;T2s^*XS4^g_(OR|n=xA0AZT_x9?w1h>bTz$XQbzSrX{ z^`YCWe6^U~3;}0^Uf%T<4WmS+{BX)0nak;HxY=VxsaMo)%9Vg9y!!DS03P-Vn*>5#`A`$xo0!~B=&zz@30u)Et8)I zRM<%%Q>}rTYbWnq3i&=Lja!&FRCn>*eTZuwi5UWKvq9vut$u;qucUd?6!fm1R@lP@ z7WSZ#Uqa=g={3fgj~59d(&Om@=v37{p1r{LG+$awn3yt~YqrwpM^~7$hLZ-(khDU^ z5|Q*a&vpm(A=CuRymgZqB{aXD_E)^mpr5IdZ|1rpCyZh!NuS}FOKs`f(5diFq%Xq| zY_08VIn;(^9A1d?$35V$$#LGSS)5aK0k$kOy*Sh5bN;drCRhIscE_k42dP+{mq9Xa z2&Rl5%L-cQS~uM-T)nZGWN0^HsWIhA+tcT6G$|S<6WV_UBa*D(TuAJ0KmpIaDiXf+ zbB3$TAIE)LgAb=t|_d+!hh7dC@DgU@c9fDl3 ze9}SeOtL^qoQ}yLbAqyCj5_T7_T}n<$_HsfvTV!dy*FLwSOdjdX<_bbo8viu*$(); z9mV~6x^AcVo`{qfp_w>?i~Qs9>B~I$IjD)hMfg3jqFxHlXYZ_!rGB%*Lo+DX1}r_Z zhjZZ5F8+^km*J@dr_%IMNc6C^3q=0e-2Rzc8uhzRvy!#Q{*#;ln=YKIIQGg&2O#|B z5NB%2-T8k+Z!-5;mE7!qyj4~h!u-B$U64$L%>Ni>8H%Gu@9*+|lIi#P;!ml5;3Tg_9xUy^e_hTrlBgcitxsak={I%S2E+Y>v5L z=GgW>jPG1H(dzz{ZYt9S_oU7gy%>M*sQfpm+E~b>Fu}+7_FlWFz-r!pLY-O4*w(I5 z!LrW&`}kd?q!0xa;aIn#%D04HmMx4|6k5AJVzxrb)*h{-LhUSV^ApHcK|dif7}SIA zS=pwX9LDTJio7mi;oO=5HTS` zj?d|~E7NoxLS7^`;5P5It(9l>L0N?oY35GnIe*J-Ll;9NSJcu>Z+43J8GBTkq^qJg zH^GM~4o_srpL+6B`a*H{*~30v&8IKG@({X(pI?#1A7PuBEEq4`!CUNwoqqQf4~EeJ z>rE}vuFQR)EKmlz)1!l87UgJ}s(PgREg!ju~xyu2bVshFkyK2O95RpQmn zHQ%U_Prv*72&Xv!JOdKmU>5vf#sA%-<-iX_5zcI}Zcf@MFs__1{3VuJS_zv1n_bQ{(M-pnGjrK)_IOXqHk4|mKvWw8t=P(4iu%c?v`BPG z;bj1+Voz=d-d=e9^~tCn$11?&e{7p&5!~kjUNP3B+#jILVuaqer}7zguu-zyfD*XS zf*9M!xL7dE-FAKTxREp)a0?0W!rIhd!p7 z7EEjZCFr~H6#Jo#ov_6?U`K0VKbxWSN~D<{yl~wNUQ_2aCnIS!+=ME&YyfS)i=Y zz%sk?@7+eQ;XC2|G7EoGGIT#XCs@|IhvK<)$R9!~`@kVg;7-YtKUzwv-bZz({RO)B zT0r>PZ!UDZuuv+i9`RzCiB=3D^sru;3B@|=3~tdQ{zPbMr%FTJ*o9ib?n_9+!4=_p4fTcTb=mah%F7TDJ1l?m=? zN-6h?=)HyMy-S0J5qQ~R(StqIvSpM;C(a9yz$9N5xl(X#NE)&^qlUT{A~@;^SD3B< zs`6jI;`>Z}aeHQ#4~0GSRn`2BX(Ou7jR&DX=J9FAg!(@F3rZ)|d!4JMDr0S;_bi&X zY0RtvazWn+gOn#mCT7P~o)bN8(;D79F|YwyHeFp-5;^q-8!G|~MdIVXZ`^|9mt|c$ zcD%+p@=O`gUzX;R`mfBF;lePaa!Y)Cn%OE1d$U||3bPVkJA z)XC^k#dOGGpT7N+T#Z=5s6Q5JGN4NKNB!@7Pi50c+vX#UOI%wIxP-$bN?U3`b9kV@kBnc;Dc z-vi+FO%xP%pPRE^>U?TqxoORc?R-pHg7OD2jJbIDd)j3hh!wgH=s+aM_UN@%x1q|5LDwDfc05ru#PA`I5Kg#kfd`%)T`cO^heM!mXs^ zI-)X_Io*4{KQU5nQ$s^p-lj3E(#S)-PWyJN*n}mCwUY8wJ~nFfE73gBF;w zA@g%dz>^+QAXk!2UmNjUMahEGYX9MDvGaN?v#yhFQaK04t=A~|R!yLqrD4e2#Ne{! zM$ZM$K3(qg4Q&BF7~+hs^`JFiko?Ao=#d=f6o5h2g%Lj{INk*^SFKoG?b(zQG~&hW zmCgD`qtYIpyZO!#d5s&*xmyfz%L0f2U!RUH;xl0vYnUdh@{$F{ zIqwkOl|c29emx1^BoxyScaFQ!=S^nZ*>uh;{QK){bepiU&Wzi!{#7ku&f(R(gbl#- z3-^heGmlqn1}{nTK-0GvjhSu=b)sZGnY+4`W!o${>C&7=5@R!-~o@IthFKuDK+G zo*{wHiS^oy3jbQj`ho+iF48{p*6)rt%Z~|j#|x0NTUYc2Vy-PPK?Vx5fC@5|Dx?o|$Bdnff8r(NV6(Jd%)& z`y^Bg&I^|5WsnyS2Sf)T(*%ldzM@7~C3i{fuO*GG^U^(>zT{yfn%T5Bmb+|GZ;Xgh z>nC|-uPkdbX2#p*&W)1Hy|W$P$MI5{b!=68qb2_s1DS@5iv}mTF(jF8KVEnf6Ps_K z38*}j8TP6220mjm-}i2K*@x|zpQtU&FJ^qOnL<4zx zxb&4N`I<0n5-jiljrU39RP5A-xM@=Xx#K04i>2HPiL)c*LS?R*TZPcxbD^EJWE;&@ zmKpfnb&<~?Wn&Y{n$D5yHRR3M#rtDlvV(Rb?!J7PVZ|9|eIVy4@*p#M?-;x2!jx7R z&5T})@F$50Q#6bF0Vx!uyK zOmeyx!_GshJsBo_x|=!+H_)=bn3I0I>#iw7IP=D6#I+vpu&&}wk05`($njI zCcb%5U3M^`d|(M}b)$RQ?&>IAHO)Ep6o6v@|g2DwH>_L1?qP2^zoo>@zEXUU50 zCW^$JLG$4%&Rut`oa$i|+GkdHHya6Lu4?pdw&W>VyCmU%spSN8;cbNuLx{_-zzOWt zJRk*G<<2M^JO~<7ump#!(?@o1kWa8KcRZQ~w06jQxqrk_V%mOierK`fc;;jfEk#Z41}0f)Qa#_&u$lNF>Dv&j=ul;z(OD9M^vUWu z6C&b7c}Jh3qIFmPJ2wS^7T8iT%gD`T7L%$%?6lD8&Pcs9H{tbY)bwH$aF;iH5|LAk zFa4}aYBUxYx*smE!d4Yd(DYkLVLdeB9BHWCLq^8?Ft?I`eZ3lJWTS6e^lX>dMQmna zsG_hoaI+S|?ebK%$-9o2?O^U@HeCiQ-pFgWk)GN1+b|d~KUZ(0cUfw9Cv7ufN(=LR zBxxcRkTwXJJ~j%H`+nNLIMsFa?FxSyZArC^YQ_10gwKB|+g7)NXNimy`=6kA4Q zd+7Qk9}V>Br?260uMGZnn-J{x-+?@rhk}u=HTAFM*kH)0}^t0WI+o~%J-1X3T&46q*%s`GC zYwrBkaAiUSbiqU=F8+~YpGwBnmtE0)5+~9aSNsNg-Q)05!-$W}9UrMw%{c~~JQsWS zlIkY@mV}bpn}S6!bDUezMw6D;THqa{OnZ%4rCGz{v9NV)7Gs4W4m5Y^U8UnRLmJK_ zP-r%F8+Z>yRH*uMo3Ef?@*P8|m{@+3%vcvhe=NE~p-hOfUqvZ5lnJp6e*BR@&_P0< z+#cM4b7`j99`t;>--t;!waq|2j%;G)RGB8x?u8+C6UH;khjuj;ZjDCi+be{;Tiola zV_U;Go8UW7ucrF;(XPc;X_24Sq^_iBoyfCO9)ZdZkOVs%i&0gSuuTqL#<2FZmLMbs zorlC_`o|KeoZJ!BmT+UKX)C{6oeZ1GM!vk!Me&w@+S;1bmd2);mpyQf zT;f#8!79{gL2@g7qTn|7VE>e}XU;p#@hm~aZM6_=DF8AM#1nPv>5wGxWjSXg>#Zr63ls%9zn#-;th|7y1RQH6 zwPL(LHQQN=S6U-*x94N9vdf{~>1XH{nSv;gz7PcO)7S?|yJoYiiJ>}J$Zifmm82r3 z93*d9pdf$D>onh?J|cI$GQtt>uUxY8-q@@kC-rKvK|yzm zXql@!1bT+^k2cu~${B@TzqZ_KMX=GTY3FE$GXUT0%K2g<8@qWNX_`hJ<%q}BXZF&q zf`F}H>$^t#!-DhD*}~J#iuY?*842)_p~Y_NNE@jkZ9gQUO0;g7b-rEOZsX&jdC{SJ z6&?Kq?bEYa8Qpz(9o-`=u@ph{kVgP!v(aR~Hu7zH&FXM{h;CP#$V>k)Wxk6u?~8Nb z$jT7HK~7!qwAC{gaahtEK;2dF8bH_{md1JmIkR)BW<;xNQR{2!CD&?OHX`xs;Usvp;Qg(gicZgLw+`>CUDn7sB87&1HjoMQH5 zwIE$i6v>zH8Dk*9ytU>N-pNz(0Ch<1>2x6S9xpOnm9u0&8OOWKV3RmB%FcZ?b|wGwg>##?S2#H&O(Vb)^bXFbCHKVJOF2i-j#_MTH_xb+sd42diKJPk zm#POxAof;opRBMcH4IEQjN8ou@MvhT6g@oH{>xd2!PEzr^{0o zvl2rH2ric-tg>5E5w0sk0o|(`%9|SVC#*_r?)y0`Wt)@cnQ@UyX9R(0?|fd_T<Fo9}jXf~P?WCvs&QLLpAv z<4}1x?J1XSVu}jBBa6OMiyNoch{eFFxqQ<(@=Q1^LQAg!hS!<{ir0pl*u=&4u|2Iz z+6u9dqbMo>YGzJD{Ma^q8+ z5aCA=h2hU6ej_9iMM+cR7S4pc$m%(3`LQk?KvB zj{@=Y4P^`-KH+-`Nz+b-N>I*3hc3;L7dK&XIlGSk$%>4pwy(P|fKU7DXi%?#kbXXc zYumCw;23QY3M!EgbjA4iSe}hsv5EWUf*`8MHA?$YBgv2g1`=RJ1aG-V$+kU4AP}%> zOJz9kZMJfEb|d(?X4|i+d(>#NHo&S$GZa+$!BdGH-S z;;2`LYyO-Ez%DC~Puu+vud? zE?na(B{_1T9LUiz&_ZtPviD%6K8j}7=Y*x;xX!uyV4t>6Z2mDN=`qL4mjv7m0c)~l zv_R)gRer`1drdYYvwc@LZL!t*(SGNA)m=$9uxr<1VJa%ORYfDNN|nievTjHd!n%oVC->5T|R%F7f@Jy*DryXIcWa_A3P@ea6rQSK+YITt9= zN^u)h-Z+4AGIMY5a+$VT3>??Ux4c!p$=J`(TlbtOfe}_aFSykFeAv7{Pg_zw;lJm? zs&gLFb=8$QcaE`uHx2h8lF3G?iDV&S1H3k=!Lla81`PkPC z`5b*dh)M9h+_1{qc!a(>zb4|4UUI|RwYk3z{w9TFwxx~UGS6q<*JR+7sulPgg5?30NmsaeM zWiPl;V)G)R8+ws=)JIM%qiX7I$|C^1vO57-xWwh%MQGEuXm-g*OB*8+wo#HS~Cci2@O?Nkq=O>lgpLwsOZ_K`eng+mKIhcZ7oyb}FFB zYsCI;I{ekT+yx2%{{$4s#Qm7cg_ori<&jPw>g-Ar%e1d1cQv%G(Zg%cxi3v!Q`!SC zSQh~}g=y2=R+}WC2N#xi7cCb#&IQM*_TkM@nQhx$Nv}|rS#6o@izElf z6PRq5*P^^$Sl4<}se2deCMe=E$MO!Zu^cH)BNWRnl`X7I?=NAZsUz*iAkGgU#b~U* zsS1j6G&Y;^W@2gOH(MmSWDdC8Tf$&EBIbBMP3L9raaj@`qS_|hR9EXDVMw&A742Gr zS5?q!C5IonJx1u}w|>4XeLy^Dg+glr8RzbAyE-5hW`hqL-fm@+>#o)hhR|yr0UFVo zY(zX;BqeAIns=KqQsoOt?*T0|`OVG!KgQlNE~@Q&92TS$2?aqxLX<8=x*Gv0=`Lx8 z?hZi#38e(2ySqE2J7$1^p*w~eh8&*3d++z^{rz7&Z{{;|W}kgl?Nxi7wdWY9fm;tv zH@n#gz{wrNAhs1iEZZ?Ubg!Jr_vNv6z1}hb1$<~d?BQA?gFw}idqQhQ=K?M}J7VHh z9C7pbwISw_mQLTNYqxhn%#lm2;%;$Z9^{+>6#b6xmgOtq-=;!(Mivprbt~Ybc}S;P zn}J~cS15eZSfcTqzn8B2Z9{9{M(m>0M<0jixQNT+gnN1;<39`*?`dLL5^Sr5&B(`6KDm`k?he~ z|Jr8IGkLSgZ#&9ms{E#v`*%mvRi$i`F|D%YysIkwydzXX*fvLB)UxJkSPm!=su4YT zwb?U#y#~3oe~e+*RFQJMNsS@OV(d;^eevT6?2%C z`$}%T&|;8+epivbV-t*xsTY3@YUGJ0=;z))T4KT?KMi<^>@Q-vTLX)D#&LL0a^L6C zz=+(FrM8eK=lX(Dp9XdKv2R=_=&i%N^@dskoyv=Z*ID=Q%tOdZ|~R68EX^BFMptA+lC`n8Jxf^Hq*J6~r;+*dsj37k7*nM|Cd=14nabzh zipt5BS9&H0CcQ|Kg+i?auO6Py@E-TUR*oGVW({SI*4ww!l4uSvh0HjM70Kq!(RbrN z^POR@3!TXxVO(d?m$OiX$#^YQQao5V3qauHKZbOx zz0FcK&7Io?&Lk_(5iUd?`&^~ql-b-z$d~@LJ1r;I=7YI7;(2K>0hlWi8-FjzbqT*Y zy=&(LBFvf}jM$evbflz?>Uj7t`Jg}6ma^5Y_$P5wOvfFGq}^v%gw+WWI<{fWD;3eL zURrraO)UC7QtvbljAjxaKVT?(DOd~2)^TbqtIFed-E9X3Xp|YTAYkKi$V$>r&TrKVc1FOmL92FAz#(dlxvaiA?c*46lX!S-G#lNcS2i9CibhZe!Jn5iM z9j=En4eIgZMYdexmk1i72EL@X7Atyk*-zv?!EKVA?YUu_Ff(fvAG@}(8CrA_r{mb! zgY=k|vqw^T#;axR#dp-Et&*DU=N&4{pB13k#0Mifr*)ThWT!s9lt8_C zq6vgZGud>Bd<$!f_-vZUXPZ`mD|B>K#!D2}Y1%>pzN+GtlQ%XT*{Su%JT^dol6a1m zM>esnoUSpsv}fkNo;}CfnAZ1eQ!TfvO<8^BWr7Nh zx#;%GunO(hVVA@z{Z0Ep-glXnBojlscF(ewRo7_WoF8f093JiI4%mV+w2Z`#-3)UN zaCXEM_`88VwWm`tEsOG`=!WpO{4*w(EC{N@uf)6RdYc;|`Y=S9r?HO_Yvm!rel*zJT0=#G*CaMpmYoSG9Dki$&7|mij|;+dtfV zrvSN-f>W5d3#q(1t$bNNzs?z{Ew^=dzv|+pPibPb zyNay!0&5fbjp_VZ8Oxz)&Y@slBGcyUEHAU{E7dpK)o3rvwotEHRK5uZ`CX45_~1`d zkUsW=i6iqDZ60WB{cLsJ!cjMF)49+N2FPF4$@m+ubyCEU-TwKr>@E{a(r1%%U!0xSUVy7Hu7*pEGo zPcs9_>v7e}HCE+}E{hFzaKfM!)Dg2=bUIfDLFP&GB-&13Dz(8_XS-5ELs&6RMQn;pyy&&QUnYbXC6KEkW3r4hzc$>?ko7oZBx5KAZhHD ztB}Ylpcn%|5%L|_aS%^fc_up6tXUs@RS3#DUvR7R5YUCkZS#RDdz=@R8*2b|M~(Zv z1qpjHJtZzvu4l8(6ie!0PC9$C(1nDPO|2}V|oUrOm)VJE=vIw0Or0649S=Q@{d zrBC$@xOlo{d-%)>l>EfEK_s%|66JWNMkL?sI{1xce^ZLfLeEtVK+&l2X5dQ=z|CRa zo-`$aM;ET-Qw<0tfVST)G(~h?j<7ZCJF6a-LY=j&6HDO0_}p>N5-X9GO2$1#U&FB? zlIR^s|21-+!yRtxRh+^eqYqjU)XO z{=Laa;qR%RPdrl_S19VRwico;3_+TIr#EmI+LQ<`%TaqAFN48uHc&RY_WeVRP`4K} z-!4G`Z1TPz`qU76U%^im^si7snoj~=xbP=Vyk1*A-byuSeeT;C+oRj}73C`Y)6I;N z9OSiEOO82n;GJ?r;Tc3R>&vxU`9q>+zLU;X5VY$!m4C=f>5AKo0rLGoFypGowkt_6 zB=Sl_3V!NsH&;Sy1P^oV77T=UpP)}XojP>9ppnGVs4W3F+E0J(EFW2Gq!i$IOmO4F zm}@&rmI>!003)>pChjGv5Y1kvlu&ErJz7W?2P^I&QT^~c*izaaUiTP?toxeFZZBl` zf!*}y&u8bE{Jt?(>Z^ztRr>77Pr@rQwl!G4U+}NMa@9LudHBPgrOxjBgZU z4tOp%%RyKP=9K>35Ad`hMu~c^+(A^M*KIUP79_%)Pew)p0xe zmoKk0+9Y0D_h$#z3K52>Gk2Nvyjv{a(!r*}qyAZbr+X;VrYiw6c>wlOROd3Iy7sio z{ZsPL*9Sd|mop1muj^JfeKVAkD@Fej;kg*|!dkO!n8pn|TpdI3sO&hd zvw7GP`~I{kJ;(RZ5&*9!fss~OXXukz*H<9lC%fo(cbz?C8bcc%zfK#gmy_a~#Lk-L z0i^HY7SB2s(2;gMD$K>{r7Mk4=hEKEuxcDGH|_^pWIh|Ol#-5x9|c*GInp=~{+6%C(L~jcWkO-{o57 zI;e;8r(IgwQl4_jd%$#xrMT|}>&F3vgPqP<|%yll5>MsEN5*mncf~sAuId~Yi=SVWKXYugdyfXlxA+zA|Wbl zgY$!nuk1%dZ+`fym6{=2#Ed>bpA4CNz}k?=bX!x$i7ralQiNvWdbt!6T)qpMWzsg` zVDU%R8n77054!)b;M=4!nbzH3n;=!kR?+@zX|?5GYm9ahB?tm;l$*yefm?sOe&J%2 zoz4Je>R&bg9=9!e$fKNp^`4N^TqK8gCs?Q6=E&QESSRrGckZB$RnskhHvhZ-knk~K znG&InnD%eG#|8qZ&(gF0t$O6tZM!h!p5QQ>2_DFAIpG_V1fY@%4o8_6$ zfxmt|n+t($Ng|Tozs=76+COUL!SVtdW_c(3Cppi@C6|T-RvC#e{Iif4jk`?0U%VTCb{NNv8nGnz?v!;RS0E?sxny7&Cv^D4#cAS$`9kSuBCvllX$B7}ta zQ3cbR7}!Lieohkj_*wMLXsFU}vGTKMUE>*T!8f+2`vR=-vW+_K1Fiw2NjDjP`I0EB?(de zjhf=W@^=Viam73DS+A`8- zfp;XHr|!-bXphEhYVwnh6gw!9pyBrtqbTTWk`Pk9MWa1hD^eP6dQ8dvwKg{*;05vt z_0Q8-+=gzFDC9BWj+r_!sDDH6p^(;JAewq@7U#N`P&?+F0hbpWBcD0uwqVQUzjSzOJ4u_Qc&qBDO;%Y-glfHBEFoodGqYFuYPMrsar(^LsRYZi|dE`?Gx*<*7vei4Nc>*L@}T6xP-`_oir zZ9@S({7riQ?-Cgg!IyYBX9m6&(g$D0tm<| z${ziF1*j@)TuCz?*MGKto>H&W^7c2D{mne#9#j(AAGcHfx=_^WXWJs_M)UlCtobBU z=Pm;rR5V)Povw*r5EK$~cQ!5`ybp_*iW01b0S`v_u6JlkeehD4Rs5@{&9a#fTh@Pk zmMpTiNC!rH{0^tE;r&Suh()$3S7CbqZW31dZ zFBK`_XgXr~RF7tMpcS?C>WVTSh5fPcf6zq{NOK_X@P|AaC6?};u&s>>YW^Z|ehAd2 z4OpT2lfgx$ez}X{lO`E`v`=t-y*Xwm{5h}=XteL*E8N0}RisCmUQaU)Tx1kZU$AK* z&4^aXLR~mwA^TC@{oFoG;BaUpZwS}|?bZ3g% z(7a?>Va!(vW={*NR2td}q?~`}ep(xPoCgFFYfAfZ=pwHGFA*xFvZ$Klfpt=V1Y2)y zV-fiPVFb1~vya21Oaud0QgqEUb-}~-kSn3$h3dB+O30ZEgFmG++(sE0i8sjkaI6{k4)a`mrYLpGKqlJsg6Agb=Cx#> zzc}hG%HK5fF=T1~scD1-?`N^I2}j@G4PB?*P0OM5V+__GxFRL6`jMU3VvknMhw0^ND&rSuysT|M2$E}!6@JOby)5SB z@g{Wd$spRQ$@Ufb1Ei@IKNDKP2XvyAv1o^!gi!o8e=xk!trS!fA(Hu=1nsuDUh)W&~@z6;z)L0@xVA0hoikiuW8?pDE z+KpK%Y&4zc!5^rWK~NvJ+%&P-Vw-@zn1au6l=3Ys}Kt+H6=*-p9KLjrKP;FSQt-mva@<{SZ&Jof0TWi zIXad+;a-03^8btae_cC?K#B>(ek1R%pM*dB%u=AWlME*LyYm5sw2%MyxPJuNA4Y62 z90KEdiTU?>jPmQYX9&?|T19Gl4F-(+f8dWSBHN){LWXiet(~oiARWdRYgp{g5dmyyYKUMTh|0JKg)$`aaM*STraAkmKm>JH{5K#-=%2O{|$GSu( z(QDoJk6=t4aG9^kz6D{w%Q+TdsGlTy-UOQ%>}ipSX8L592W3DeY2Rf3{m3|PGNqg z9X^_G3{y+@39@qw&e7BGJ*F$77~ff z22y7=I@;_8{Q>8nY)Zb>Ptx2jVz=P^W(a@#=|6n$Rgv<>+%)#zLuT)N9K^Qb&Q+Y| zzc$mkGdBF`)9=iW0;6)IfE3;sMt({BsWQH`emR&K56=BEzE+Q1X#7I{gcQh$HUa*X z%>$9Rnr@$}sIA!6g-)$*8bX?NX(AT*Q0ZkA@U&MYMnn^MwdDL1iZB~;?N4Z znxxY9QkZ5)p{qt;^1NCYVOni?&-FXvLk`E|sL$AxWo5di0c#{b$8$i1u~HU_7H?8O;yQz0h0B&9yu z6Fgr1VZt?WB!wMR+CY>)O3YhKuJYoZG1L6~uc|T7MXNirxpnRR<&iGZCK^fOpX~dG z?!qG2c89tmsd^0Y*hu%(VTnl*1Bnu4Bs%}G6Nj{&NJy}Ykwz}RU@Rfo-(38Q+jN#F z*CwRO;u%Hg=~;QN^Y~E(D3QiQz;Ez5a)5sa(OV8TBJD@zy~{KMuV~B+Q+KC;`%ciK zZ~^Ra;H%;#Y0jOXjq64d^~Spje@YxwgU_fdoBkYOSI z2!r!2t{#d8Ayay`z=Mst?8I&B^Bw^=bKF>C)Q1B<@XHTe*`+vm;im>7gay8%DC=oV@t!n&T;zH7Uc9_`mDS1!({Oa(S0 zdaY4GZ*bNRNi&o2@cs~|TY@b5qOw1`8VT_Ho1$gps4eF<9d+-z`CGd>-jUam$L-$g zz2C_%oR0nKxl4Mg;r6Hh{PXWm;fPz;v7A8E{x5p>s-q|f&{WJ*zmMyO41u;4ZGM-$ zU$|{bq69l{OX^hIDomtW`;O-HQ%oWxHmHNBW=&09>z#9M$?tGP-Js&6aIsjPa&UY< zRR`=(^j0gZ`4;D)pw=@A+fliW;85SL?jzAfCg_n=fAQ7lkJ&^VGe?fTd-}fmdW1hj zUFzG05V6E`%Kz64D8iw|{FSzai)&hfQ=)cM&|xa{VOk`B{kfGAnz!!oGeRuwyypP= zSf&X=&Qf~Ju(x0TLiJy5qLC>)`|d`&!lZL|j|6Uf7rFX>AQ#kdeL3+hMTNtJb5sN9 zF|_FGkYVN@s6kP;#sB}<1-iD!ZvQVg>R|Br{AZl!M$n`G__jq!!qZGet+vL@o)$LN zf5kWiM*oX(C>OPJ_)YDHc)!xgY4BdYD8aInfBYYzxi2m3AEH?hnS|C@8mDkS-)0is zUk9m9zlNCwvE4q-{pDg3mmolHB#22ZzN&%iIB%1%It*PN&cgG?hI*rmDefZSrW4S} z?OE}s`fX56n}ervj(93zh9p8kPCM`~o(>o&zsEDGO7aobZ! zwtj@hNk!CoAbXQKm1Vg<^8A6QnyTat-Sc#Yxba7Q8m6bkh)DPVIP|^U@8U*Bj(eM zgi*2l>i7@=QxE)q7^ zg#vqm$9s+LZ?&b$!PZ~?6eJ`!B%ULo%HSSS`77Jtzfa&cp?7^zQUlt+7SggT^jX}nfdJKUy4A~qwfEqW0bJWKPL!unzk}=?4+_azKf;dRw6V@kvWaK)5!~q zK{`A1uNT^&&dNq@d;EAmi{ zvqL-C){u|c6iq#?7Ba836#pPquQrN4wQHE{40v7Y3h9ICvLLnofOH=|QlrrcqOj1? zw>UzS!gq?+U&GQgGK8lB4iOy0u2ncY|BBJAr1L*qRG8=IQ6hZfi*)2yq4k-of9Z$S zm^RxhQYf%Yo)unRVC7I?K={k(|5BN^9~!PG9`Z$vPdzEi+_;J*FZs>}fQK!}=62q!po)j8?nq zTmZ0s`{i?F*_#%RuO{O|$@%83gFDKJu0gK;$#!(sjvFIY`a(yJN#IxE_tqOXnc^g` zyUIObVSomu`fSBLD%A>2Qvb4+#*I8N2qPEs+ZgSJJUwsc8ut1%HRCH=Z@4%s3C@_S z5kT*i^@IuPKG&Sk&8dFl4bZ{^8nnd$GO76RSLQ$%bi3%Z6dVS`P+ZYXjH!%a4G_NM zH$%yXKdzEWzz_VF01X(5MjjYRUE*GdqX{gsbRMi+C)WPQ_bt>?)X_W&Z zHb9{delYzjRQ^kc_!kKmZ;%B90Lo5cMVo?0CR4LLp6| z5#Qm|J-|*Zc(h_@@al86EY0}{lioVnDh_)XZmptbZ-I59@5necL|TtRTce>q=)JVn z+hG+S>}K!gb~Pe0L%FX}H%`}9Ec(cXdf$H*1SiJJXnLIIBBFi5Ya_Y3ma|_lC0bUD zuYR~eX%#VfYFJ(&vQ9gJhz@ZL@Wx}9nSQk7LnJ)~?&!)zB>6PgDs0h(c?L2i+Z?1? zB;v=+%aO+d(U!MN9yioR$EpgglTE=}iK_KAOlPqBQ|d>7hnj0F1SE=DSx|6wQb$50#LER zxvZpVn<;FkjyIyVI^Y@0Ph+7f!E&kMrV}DkNQJKIt|()em2RJH0AT!i5DgoVLhhbI zE@BK9eD*4=Q6c@UIkBv#Z@JS?{iYX9*rEyITB!={ELXpIt;j5u(^S}2t?_Ru3Zw_4 z9`=pmAI~-_40Y*1I4t;+X2?bW0axM%tlHdM8QVRDdaAQM+pcO>rgM8LZAV>nTVm-O z6t6}@qxmJf*Lz-mI*oW4cxC9OfmQ#5nwZj*$1-Dz)p6-Lx&k9%XDz7}pFPB5g1N>y zr+6h*%XI13yZWgDiv!r*7;Kd#%SXO9It<~w zG42@@ugeFr%HJ)Dyk64rseT#;F<<0;jib$*+HpBq*crB~fsO1xcFMWy=-$uF=Nz z^BY+dfB6WxU$7KpszC*F<=B^EPWVAk6y`yp)$QBMmj9jVadd#Qp>N_;Zi*@>Un>mU z)83%s5PIaR_1bT}?W6Y7BYkzByVW)cM?aog$Db^KewvSbkJtPV_no*1+eELDrZx4b zu=e}WgKsxKg1=a@jii>WjNqtcU#mOMy~j3599TEwKkleuN~sWIOD~mG;fvf!th!4(D*$wrjhJNY9!f8b5EuSH)I2UQxuuo(fur~hSZtDukWLQ z)VXe4uuYiyBkPR39x85J;UAFrW%rM6QS> zA;sg*`wiI~=dPfp49p=h{^}ywjn-wD zVty|E+9UjnXVs`zb~?;>3RI)nsQU`M$QbC>@!WYHRU)gMqZZG~8n*d<2iE&pxAAQo z_SQJe-0A0zw-bjuLjs#n=8j(jPf+I9^@o1!m=4`?Ds$i1CnF_{zApBks&s@m8mqlm zvdsUu&Sc>}SFt6-Wh0)hp*i;mM~-o|emuBHBirxByhH9i**lfy{_vy2d#>(DdKBxh zNL{U2QmcnIS8A;!yGycQ!yBF)JIq!DN3nY?1z*NW!$rME zjlwXpKPW>gxTHM&nuuRA%@uv_QdM7{QCBi)a;JU>q*F`CRup0Iu$gNP^x<*@3ncwc z|9l(GOpS!g%F?oBff@a|@~tL+i+1w$@~cn9T=w?q#F6P&l_X25Q7crkEBA3Llcly_ z)N!YaDnD^s_;xedHH||O1<`eu+m=8fzGGfwRc2w^yh6jME*9*gWpyt|tY*w5NyEa# z{kXw~Art%E;Dvbub8=&EaO8Y%0R{{w;9iN2H2QNvALoFd12WdDz|27KLh2187`Ewc z9c^!{{xr?bKjb2D%>`=WI*VdPVR0R7Q4p|igR@PO3K<0QRb5dYi}4lYiezf;$swX! z63dSS+_OoJEE0l!E`p|LQ%-JL_&09+PWTrDQx5bw+CUgk3DD+@ZCh~7k|ff<(5pWz zFC31-e#fNEHe%|{se}^nu>yeb!eZ1a@0*@yCStUwcsw6{RV9~l7N@FmTHD^qskg-a ze8@u3eK|>O%Jnnz521NMj~jiL)e!Z(Km|Bqkj_I5brd+cT#oYTLZp6WaE^!fDtjyU zJbY)JG@|<9T`4DRzYa3b?xqAz&#`x4i-}~yNtKtS)b(jyML~|%!4R$_915%WE5v=i zohWSU$uuRAGO9+h+P_4TMsfQx$X#Tl;dL1YssIf#r0B`x!AHui;&;^Ab5Lt~Vtr7| zUDOno@*>T$NgMukw#yFxMlFej`?9&?B9sQb-JQinGRJs@xb~K!%-FDa z_3CD9NouMdO(t#?292T6~Yrho|L+F z?J^geJL8i}LB2~6F11%ot6!~s1Jweb9|-Iwap~u|C+PYxgf+fYpizuY@rPmM)0T6!^+y`ChhXDYjAFR;L`-X%l2 zJ{C%i<2nrv$*-Y2{xVGzi>F^bJ4#U2GKis-Jjh4l$ z6*v`;-#JN{BB0KG%xO7@OB5N8=5Fz^2sd&|kVJMdLxbdLBH80|^h+c^gY+z^i$kC;y(8gm}W;s>_e_{=!^LgF4?n9{NSkE_V+O0Gr!6+I2Kz1cFNR;3c$T2eT@=75cR$D;bSYy(&~YWLIkdu4hnN}mU3$OcSOa?|icQDZ z3dzS8NSuoBQha+{_)cZxtlweaaF;yOKL;+U@ubPD9qm=#Q!Xw-9?(a^!H&hAmH3GB zc%EKFk9sZJWl>X#e)@fWcYM@P3j2#E>wP%-9KIJid+MfvkG<@BTyRRVaM9TGish}t zwMyc&LUM9h{8ojg4!)5{22u3?^>%dONDf16z@H z*_z>-X_xW_1>10IiItgHk6k^jaU1)RrdpmcB21dYScN=q)9UJEiomeD>K;(BRUG>1 zvnq_#=I)fiwufHb!})bz!A>IP?>QJ(c^(YbHnFPL)zMa)c$%8-*}5ky3yfI!Maa78 zPP%$wk&JW^0Y*r*Nbff$C0!yT$;<^G(9HUi>%d6a~P^gzu#Zike3EeJE2(EJ8PyDb`!InsqA>|aRD#X@M0ooP81+jC}Q0j z?(UAzBKl~(sY9-cmTN97RJK%kcil)SZHZKr_LVswxmEqG6G2Y}X#Kp((TejW@w{N3 zGwYhZ9I<z}7JM_ucs@$Au z+I)C9K~1}LGWe9#kYdOSgrSNv;dr>{$(jM*JaLaMwsrRftCZR{%kFVB$IXYiL>p>r zIhzQf3vre^;x=Pd#dZDD3t)8LbBWbuii@TCgZJ?(g|Hn<>nkCfYGR*@4At29nVCO+!EnZ$wH@)!8yE-dg9 zvJrHe9B+iQVoi9kb;Wy1>S=%9e{ws>x*KG=Ea>}(zY>1JC0KRcKA`9}m^l_vHClu7 z{_Q?ewrekSg`(PhVgn5Y6?D-0lN>zzaRc%o z;ISdj11Rb;{%|b069*O)L3moTiFelLV?9S!x zbv~zE7k(1Yp)$^piW!)qF02`0?s%yx-b~K|K4#*BM#h72KkbvpY}GFa7;elt=i@x% znIu13)3?6xOr5T^ZKcDCx-zJ>1uHC^C5O+N5?q3Z@TR}i~UHli^HRNW5ISwe17Y*5`UDraj`OynCOD}2_ zS8l*H(C22eDoG=T;nR_xVTYDuR`P zk>?T3u@ys*7Q4r(ls|r3l%7VQiVO;(#ZFq5qU>Cx#R?v!K!z+g(zBo)=;>X z9hJOKCauUbu1YlEy!>|Cp5f8vyg0M)aliz5W zoJPetRzJ%F0UaBf-$R>6oVES>U{sT&z-C(*xdT1v_p=E{SMUh=MgCsvipc3Ot?kTk zQbgr|Lftrn?2FSmzLD8T=w&%s_2ugtr}Ot<$HHbneXw)mP4=aA@ zYZ}?VMg*#9nYt{8(_(Grsx>v^5t3>k2$AIXgP% zbUMLkZ^E<5%lRH`%6k&9G6;(^FDh0?9$8MwZP$HvJW01alPS~)+HY7iUi3AmXB`4p_gP$hUQj zF%4;^IwQW!z6MtTONz_0Soq%BWr}J`W;N8L`_$$fKf^Z zhx0Pk{Uc0u9BgrgE(5&5*S-7s1aj123 zn1k2cd7)?hdZOtef?fB%XZX#B6%}Znpioq|I-%3qobQL3d;UB2*Cn7jipIQVtBPzA z+Y<__EAjKIj;jNg*;C`2^q*$Vaw3il@nNbYptsvvi}3M^WC*5B(;`J)`UzluUBy9+ ztNC)|f2JedM`fFLR7^rXwpxZ&xEF??40#(mD_$&Cm8%Y>sbQkP2w zgu=1XZU#9v>9%8fR~&P)?S`&LqzAkBV=pZ5Tml9C;(;^YW^ZNSa|n4OeB*S0g2Gm) z`B;vW&AQ6_4AQ#WL+tbORA^b7gpeDGW zZeKIAbSH_=DwLYz#X->s4SEkn7UNG{Z3p?6a-7RS7mQUZ+|tluDVU(AI0vuHz!PRt zE1q{dF?>=(vzbf8g=RdJ!q_ra>+a@^hOMuTP9Ac1tNh5vS2L@k=`WoRyl#B4wrqyT<}{M z_eC!1lTZ52e%EW?r1lCM$*hm#m{dj=(LBA6tZGI$8)x>7;geTHNwdC!9z!k*mOA); zjj#~?nLd5Np9KudoW9cI7_ceVEQF(2ov!=H8fTh}J5fQ{^m1ZQVxMXE-s)D1N)U9$p>&5;wBWDm9AT9E zbvs9Ym%BM>Evi6gaTJbyPJ$+yWNUf*_(~OW-x&3<5Zejd*C}h)4c|j0vVnXehWhl^ z%)3gFHXLGDw!t|*jN5^av#xiK6*lTz-f?K;Sc9*7X8dq4(Zl_11V4W;76m`Ue=zh2 zc)*ld^VFF7adyqvX%f1Ba5~9y-zNOwBZFixI5QaDSjYJX$B@5y!0 z(BM$!Qo!@OT+g1xOyH=l^?!p~)N849ns{1$3HJ_Sr^{35?bfvTpdbLz5Bvtl1_pKV zXKus;qxsb-pV^~Yv z$2gN@U6l(kcq&aM5TQpJlT$`O{ zU`}&l&%d#xa$(-7+=Fy3lZTXMW?aItxT!)5B~W*7$+JXt<;oYZwd|hQnxO?{Ru;Rt ztnoT$vl`{cg|;AUlMYS`fu%Qe=v)xh5v-sbElBD<^K!(B$J3w}54H6cJ|I2Jfr#r? zt3bVHEfm$oEoIuHvdhttdN}K@Zwm&x^)9{V3kojHz4P@PNT>=%48TT7$*MVm_XSm^ z&8Li^*YY*~fl^z?FS8c=G)Q?ow6*oXPadpP!6Go}%quFJuNP*(G!tA&6 zUu&fbFvuSORsBT63!??ylsYBll%E@)LP%L>_)4$A1soqHdMKK#!-$8g0j_f+rgEuy zdNc#Oovx|1FXZdkH_2+8`pjk#_rNNWk7E;CU#KJZCc-c|SDYW~}K_}#&8QKmmR^tJeuUD)K z<$CDM@vHr(9=o(ZT&PxuLG1O5wqKZNn}4p-t)0~@J*?AP7&9nIxLYIiHrm3L#0&Qe zIh$xF1E7Tbk^UsyvWxS{EAh)O)g$ZPBwk#2q@yDdb9-+aSESK7vaT*xxgP6im`m;Z z{5a}QWO$Wc!K_y^r{{LVgD%s(ecHNhc*rW3D4;CxieYahLAki0LFF>b`e-iXepOQu ze~YQqu1AbqGT%_n(3Gdu$!X10?;d-THmAPLZ5hS#qtVFm@~0zw3KX;P7Ejf6s&i|w zPMYor(0V|Aytpl`L8n%<>8o@qz80~>NL4pYPc3j5AyPpy7P zzJZ?|#d*M_kLB~yJ|-Y+7D6@wOPOAZn%_e(`jS2~9+ec^JGQ6{yi$WjGAg9{dk5w+ zUerGasLhu=2F8N-xkXkYPaXZEfv82>cg`yWY5G(w8-k1~nI65btoXJuQYP+^!@#eq zU^!_|EjML&ub9hM{(xI!!%FyY@RjB}wgoG4l75h2h*LGt0^_82W?TQ@3#aa6g8~#n z4_aE7TJ{j^;#DF9UG3_z6IX-bcLjVj2XsjS*LGb-VB4K48DlPU*9U1m0iGdTz}($o z{S=##>%Cf+D+{4AEVYq*DGONm)4qUA2sJh8A0B%VAdY z*&qdAHj4}JX+E-yK)&%EN@$q}M+`&RVNJ=TT9qgi8|3G)DlIf>CVc$yaGzlxd0bhc z`*27c+-VxwW_z!XTcC8jb<<7hn6y(fi zG}$2?^Qw!EX5M+V0qX-6GpnPXe|R^M~8PY*xF1HJ}4PO_uRrZIRHC$U~>+^>06

&|BVz?24hzK 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 diff --git a/docs/index.md b/docs/index.md index c393aec5..d562db5d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,284 +1,73 @@ -# Django Vanilla Views +# MkDocs -**Beautifully simple class-based views.** +Project documentation with Markdown. -**Author:** Tom Christie. Follow me on Twitter, [here][twitter]. +--- -[![Build Status](https://travis-ci.org/tomchristie/django-vanilla-views.png?branch=master)](https://travis-ci.org/tomchristie/django-vanilla-views) [![Coverage Status](https://coveralls.io/repos/tomchristie/django-vanilla-views/badge.png?branch=master)](https://coveralls.io/r/tomchristie/django-vanilla-views?branch=master) [![PyPI version](https://badge.fury.io/py/django-vanilla-views.png)](http://badge.fury.io/py/django-vanilla-views) +## Overview - View --+------------------------- RedirectView - | - +-- GenericView -------+-- TemplateView - | | - | +-- FormView - | - +-- GenericModelView --+-- ListView - | - +-- DetailView - | - +-- CreateView - | - +-- UpdateView - | - +-- DeleteView +MkDocs is a **fast, simple and downright gorgeous** static site generator that's geared towards building project documentation. Documentation source files are written in simple Markdown, and configured with a single yaml configuration file. -Django's generic class-based view implementation is unneccesarily complicated. +#### Host anywhere. -Django vanilla views gives you **exactly the same functionality**, in a vastly simplified, easier-to-use package, including: +Builds completely static HTML sites that you can host on GitHub pages, Amazon S3, or anywhere else you choose. -* No mixin classes. -* No calls to `super()`. -* A sane class hierarchy. -* A stripped down API. -* Simpler method implementations, with less magical behavior. +#### Great built-in themes. -Remember, even though the API has been greatly simplified, everything you're able to do with Django's existing implementation is also supported in `django-vanilla-views`. Although note that the package does not yet include the date based generic views. +There's a stack of good looking themes included by default. Choose from bootstrap, readthedocs, ghostwriter, or any of the 12 bootswatch themes. -If you believe you've found some behavior in Django's generic class-based views that can't also be trivially achieved in `django-vanilla-views`, then please [open a ticket][tickets], and we'll treat it as a bug. To review the full set of API differences between the two implementations, please see the migration guide for the [base views][base-views-migration], and the [model views][model-views-migration]. +#### Preview your documentation as you work on it. -For further background, the original release announcement for `django-vanilla-views` is [available here][release-announcement]. There are also slides to a talk ['Design by minimalism'][design-by-minimalism] which introduces `django-vanilla-views` and was presented at the Django User Group, London. You can also view the Django class hierarchy for the same set of views that `django-vanilla-views` provides, [here][django-cbv-hierarchy]. +The built-in devserver allows you to preview your documentation as your writing it. It will even auto-reload whenever you save any changes, so all you need to do to see your latest edits is refresh your browser. -## Helping you to code smarter +#### Easy to customize. -Django Vanilla Views isn't just easier to use. I'd contest that because it presents fewer points of API to override, you'll also end up writing better, more maintainable code as a result. You'll be working from a smaller set of repeated patterns throughout your projects, and with a much more obvious flow control in your views. +Get your project documentation looking just the way you want it by customizing the theme. -As an example, a custom view implemented against Django's `CreateView` class might typically look something like this: +#### Cross-reference your documentation. - from django.views.generic import CreateView +Create richly cross-referenced documents, using the MkDocs interlinking syntax. - class AccountCreateView(CreateView): - model = Account - - def get_success_url(self): - return self.object.account_activated_url() - - def get_form_class(self): - if self.request.user.is_staff: - return AdminAccountForm - return AccountForm - - def get_form_kwargs(self): - kwargs = super(AccountCreateView, self).get_form_kwargs() - kwargs['owner'] = self.request.user - return kwargs - - def form_valid(self, form): - send_activation_email(self.request.user) - return super(AccountCreateView, self).form_valid(form) - -Writing the same code with `django-vanilla-views`, you'd instead arrive at a simpler, more concise, and more direct style: - - from vanilla import CreateView - from django.http import HttpResponseRedirect - - class AccountCreateView(CreateView): - model = Account - - def get_form(self, data=None, files=None, **kwargs): - user = self.request.user - if user.is_staff: - return AdminAccountForm(data, files, owner=user, **kwargs) - return AccountForm(data, files, owner=user, **kwargs) - - def form_valid(self, form): - send_activation_email(self.request.user) - account = form.save() - return HttpResponseRedirect(account.account_activated_url()) - -## Requirements - -* **Django**: 1.3, 1.4, 1.5, 1.6 -* **Python**: 2.6, 2.7, 3.2, 3.3 +--- ## Installation -Install using pip. +Install using pip: - pip install django-vanilla-views + pip install mkdocs -## Usage +You should now have the `mkdocs` command installed on your system. Run `mkdocs help` to check that everything worked okay. -Import and use the views. - - from vanilla import ListView, DetailView - -For example: - - from django.core.urlresolvers import reverse_lazy - from example.notes.models import Note - from vanilla import CreateView, DeleteView, ListView, UpdateView - - class ListNotes(ListView): - model = Note - - - class CreateNote(CreateView): - model = Note - success_url = reverse_lazy('list_notes') - - - class EditNote(UpdateView): - model = Note - success_url = reverse_lazy('list_notes') - - - class DeleteNote(DeleteView): - model = Note - success_url = reverse_lazy('list_notes') - - -## Compare and contrast - -To help give you an idea of the relative complexity of `django-vanilla-views` against Django's existing implementations, let's compare the two. - -#### Inheritance hierachy, Vanilla style. - -The inheritance hierarchy of the views in `django-vanilla-views` is trivial, making it easy to figure out the control flow in the view. - - CreateView --> GenericModelView --> View - -**Total number of source files**: 1 ([model_views.py][model_views.py]) - -#### Inheritance hierachy, Django style. - -Here's the corresponding inheritance hiearchy in Django's implementation of `CreateView`. - - +--> SingleObjectTemplateResponseMixin --> TemplateResponseMixin - | - CreateView --+ +--> ProcessFormView --> View - | | - +--> BaseCreateView --+ - | +--> FormMixin ----------+ - +--> ModelFormMixin --+ +--> ContextMixin - +--> SingleObjectMixin --+ - -**Total number of source files**: 3 ([edit.py][edit.py], [detail.py][detail.py], [base.py][base.py]) + $ mkdocs help + mkdocs [build|serve] {options} --- -#### Calling hierarchy, Vanilla style. +## Getting started -Let's take a look at the calling hierarchy when making an HTTP `GET` request to `CreateView`. +In order to run, mkdocs requires a single configuration file named `mkdocs.yaml` to exist in the current directory. - CreateView.get() - | - +--> GenericModelView.get_form() - | | - | +--> GenericModelView.get_form_class() - | - +--> GenericModelView.get_context_data() - | | - | +--> GenericModelView.get_context_object_name() - | - +--> GenericModelView.render_to_response() - | - +--> GenericModelView.get_template_names() +An sed aeque munere facilisi, modus tractatos quo ei. Eu veniam tincidunt cum. -**Total number of code statements covered**: ~40 + project_name: 'Cat indexer' + pages: + - ['index.md', 'Home'] + - ['about.md', 'About'] -#### Calling hierarchy, Django style. +You documentation source files should all exist in a single directory. By default this directory should be named `docs`. -Here's the equivalent calling hierarchy in Django's `CreateView` implementation. +Quo ex ceteros theophrastus, mel eius repudiandae an, has autem legendos ut. Eu quo moderatius interpretaris, pro ad homero tractatos cotidieque. His errem dictas instructior ad, tation causae ceteros ex eum. Nam falli dicunt te, mea et unum contentiones, ius noluisse rationibus cotidieque ei. - BaseCreateView.get() - | - +--> ProcessFormView.get() - | - +--> ModelFormMixin.get_form_class() - | | - | +--> SingleObjectMixin.get_queryset() - | - +--> FormMixin.get_form() - | | - | +--> ModelFormMixin.get_form_kwargs() - | | | - | | +--> FormMixin.get_form_kwargs() - | | - | +--> FormMixin.get_prefix() - | | - | +--> FormMixin.get_initial() - | - +--> ModelFormMixin.get_context_data() - | | - | +--> SingleObjectMixin.get_context_object_name() - | | - | +--> SingleObjectMixin.get_context_data() - | | - | +--> SingleObjectMixin.get_context_object_name() - | | - | +--> ContextMixin.get_context_data() - | - +--> TemplateResponseMixin.render_to_response() - | - +--> SingleObjectTemplateResponseMixin.get_template_names() - | - +--> TemplateResponseMixin.get_template_names() + $ ls docs + about.md index.md -**Total number of code statements covered**: ~70 +Quo ex ceteros theophrastus, mel eius repudiandae an, has autem legendos ut. Eu quo moderatius interpretaris, pro ad homero tractatos cotidieque. His errem dictas instructior ad, tation causae ceteros ex eum. Nam falli dicunt te, mea et unum contentiones, ius noluisse rationibus cotidieque ei. -## Example project + $ mkdocs serve -This repository includes an example project in the [example][example] directory. +Mea dicta aliquid ornatus cu, duis sanctus disputationi his in. Rebum adolescens definiebas vis te. Ornatus noluisse mel te, modo utinam ea sit, putent omittantur quo ad. Ius ad dicta iusto, vel ne nonumy quaestio. -You can run the example locally by following these steps: + $ mkdocs build - git clone git://github.com/tomchristie/django-vanilla-views.git - cd django-vanilla-views/example +Quo ad delectus praesent quaerendum. Ridens deleniti iracundia est eu. Ex vis labitur adipisci laboramus, eu corrumpit maiestatis mea, in usu graeci apeirian moderatius. Id adhuc decore facilis pro, ad meliore dolorem sea. Iudico partiendo ex eum. Illud illum molestiae ea ius, mei iusto audire te. - # Create a clean virtualenv environment and install Django - virtualenv env - source env/bin/activate - pip install -r requirements.txt - - # Ensure the local copy of the 'vanilla' pacakge is on our path - export PYTHONPATH=..:. - - # Run the project - python ./manage.py syncdb --noinput - python ./manage.py runserver - -Open a browser and navigate to `http://127.0.0.1:8000`. - -Once you've added a few notes you should see something like the following: - -![image](img/example.png) - ---- - -## License - -Copyright © Tom Christie. - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. -Redistributions in binary form must reproduce the above copyright notice, this -list of conditions and the following disclaimer in the documentation and/or -other materials provided with the distribution. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -[twitter]: http://twitter.com/_tomchristie -[tickets]: https://github.com/tomchristie/django-vanilla-views/issues -[base-views-migration]: migration/base-views.md -[model-views-migration]: migration/model-views.md -[release-announcement]: http://dabapps.com/blog/fixing-djangos-generic-class-based-views/ -[design-by-minimalism]: http://slid.es/tomchristie/design-by-minimalism -[django-cbv-hierarchy]: img/djangocbv.png -[model_views.py]: https://github.com/tomchristie/django-vanilla-views/tree/master/vanilla/model_views.py -[base.py]: https://github.com/django/django/tree/master/django/views/generic/base.py -[detail.py]: https://github.com/django/django/tree/master/django/views/generic/detail.py -[edit.py]: https://github.com/django/django/tree/master/django/views/generic/edit.py -[example]: https://github.com/tomchristie/django-vanilla-views/tree/master/example diff --git a/docs/migration/base-views.md b/docs/migration/base-views.md deleted file mode 100644 index b20b03ad..00000000 --- a/docs/migration/base-views.md +++ /dev/null @@ -1,69 +0,0 @@ -# Migration Guide - -## Base Views - -This document provides the complete set of API changes between Django's existing basic generic views and the corresponding `django-vanilla-views` implementations. - -It covers `RedirectView`, `TemplateView` and `FormView`. For the model views please [see here][model-views]. - -Wherever API points have been removed, we provide examples of what you should be using instead. - -Although a large amount of API has been removed, the functionality that the views provide should be identical to Django's existing views. If you believe you've found some behavior in Django's generic class based views that can't also be trivially achieved in `django-vanilla-views`, then please [open a ticket][tickets], and we'll treat it as a bug. - ---- - -#### `initial`, `prefix`, `get_initial()`, `get_prefix()`, `get_form_kwargs()` - ---- - -**These are all removed**. If you need to override how the form is intialized, just override `get_form()`. - -For example, instead of this: - - def get_form_kwargs(self): - kwargs = super(AccountEditView, self).get_form_kwargs - kwargs['user'] = self.request.user - return kwargs - -You should write this: - - def get_form(self, data, files, **kwargs): - kwargs['user'] = self.request.user - return AccountForm(data, files, **kwargs) - ---- - -#### `content_type`, `response_cls` - ---- - -**These are removed**. If you need to customize how responses are rendered, you should override `render_to_response()`. - - def render_to_response(context): - return JSONResponse(self.request, context) - -If you needed to override the content type, you might write: - - def render_to_response(context): - template = self.get_template_names() - return TemplateResponse(self.request, template, context, content_type='text/plain') - ---- - -#### `get_form()` - ---- - -**This is refactored**, instead of taking a single `form_class` argument it instead takes the form `data` and `files` arguments, plus optional extra keyword arguments. This results in a simpler, more direct control flow in the implementation. - -Instead of this in your views: - - form_cls = self.get_form_class() - form = self.get_form(form_cls) - -You should write this: - - form = self.get_form(request.DATA, request.FILES) - -[model-views]: model-views.md -[tickets]: https://github.com/tomchristie/django-vanilla-views/issues diff --git a/docs/migration/model-views.md b/docs/migration/model-views.md deleted file mode 100644 index dbfda4c6..00000000 --- a/docs/migration/model-views.md +++ /dev/null @@ -1,165 +0,0 @@ -# Migration Guide - -## Model Views - -This document provides the complete set of API changes between Django's existing model views and the corresponding `django-vanilla-views` implementations. - -It covers `ListView`, `DetailView`, `CreateView`, `UpdateView` and `DeleteView`. For the base views please [see here][base-views]. - -Wherever API points have been removed, we provide examples of what you should be using instead. - -This scope of this migration guide may appear intimidating at first if you're intending to port your existing views accross to using `django-vanilla-views`, but you should be able to approach refactorings in a fairly simple step-by-step manner, working through each item in the list one at a time. - -Although a large amount of API has been removed, the functionality that the views provide should be identical to Django's existing views. If you believe you've found some behavior in Django's generic class based views that can't also be trivially achieved in `django-vanilla-views`, then please [open a ticket][tickets], and we'll treat it as a bug. - ---- - -#### `pk_url_field`, `slug_url_field`, `slug_url_kwarg`, `get_slug_field()` - ---- - -**These have been replaced** with a simpler style using `lookup_field` and `lookup_url_kwarg`. - -If you need non-pk based lookup, specify `lookup_field` on the view: - - class AccountListView(ListView): - model = Account - lookup_field = 'slug' - -If you need a differing URL kwarg from the model field name, you should also set `lookup_url_kwarg`. - - class AccountListView(ListView): - model = Account - lookup_field = 'slug' - lookup_url_kwarg = 'account_name' - -For more complex lookups, override `get_object()`, like so: - - class AccountListView(ListView): - def get_object(self): - queryset = self.get_queryset() - return get_object_or_404(queryset, slug=self.kwargs['slug'], owner=self.request.user) - ---- - -#### `initial`, `prefix`, `get_initial()`, `get_prefix()`, `get_form_kwargs()` - ---- - -**These are all removed**. If you need to override how the form is intialized, just override `get_form()`. - -For example, instead of this: - - def get_form_kwargs(self): - kwargs = super(AccountEditView, self).get_form_kwargs - kwargs['user'] = self.request.user - return kwargs - -You should write this: - - def get_form(self, data, files, **kwargs): - kwargs['user'] = self.request.user - return AccountForm(data, files, **kwargs) - ---- - -#### `template_name_field` - ---- - -**This is removed**. If you need to dynamically determine template names, you should override `get_template_names()`. - - def get_template_names(self): - return [self.object.template] - ---- - -#### `content_type`, `response_cls` - ---- - -**These are removed**. If you need to customize how responses are rendered, you should override `render_to_response()`. - - def render_to_response(context): - return JSONResponse(self.request, context) - -If you needed to override the content type, you might write: - - def render_to_response(context): - template = self.get_template_names() - return TemplateResponse(self.request, template, context, content_type='text/plain') - ---- - -#### `paginator_cls`, `paginate_orphans`, `get_paginate_orphans()` - ---- - -**These are removed**. If you need to customize how the paginator is instantiated, you should override `get_paginator()`. - - def get_paginator(self, queryset, page_size): - return CustomPaginator(queryset, page_size, orphans=3) - ---- - -#### `paginate_queryset()` - ---- - -The **return value has been simplified**. Instead of returning a 4-tuple it now simply returns a page object. Instead of this: - - (page, paginator, queryset, is_paginated) = self.paginate_queryset(queryset, page_size) - -You should write this: - - page = self.paginate_queryset(queryset, page_size) - -The page object contains a `paginator` attribute, an `object_list` attribute, and a `has_other_pages()` method, so you still have access to the same set of information that is available in the 4-tuple return style. - ---- - -#### `get_object()` - ---- - -The **call signature has been simplified**. The `get_object()` method no longer takes an optional `queryset` parameter. - ---- - -#### `get_form_class()` - ---- - -The behavior has been **refactored to use less magical behavior**. In the regular Django implementation, if neither `model` or `form_class` is specified on the view, then `get_form_class()` will fallback to attempting to automatically generate a form class based on either the object currently being operated on, or failing that to generate a form class by calling `get_queryset` and determining a default model form class from that. Failing both of those it'll raise a configuration error. - -In `django-vanilla-views`, if neither the `model` or `form_class` is specified, it'll raise a configuration error. If you need any more complex behavior that that, you should override `get_form_class()`. - ---- - -#### `get_template_names()` - ---- - -The behavior has been **refactored to use less magical behavior**. In the regular Django implementation if `template_name` has been defined that will be the preferred option. Failing that, if `template_name_field` is defined, and `object` is set on the view, then a template name given by a field on the object will be the next most preferred option. Next, if `object` is set on the view then `{app}/{model_name}{suffix}.html` will be used based on the class of the object. Finally if `model` is set on the view then `{app}/{model_name}{suffix}.html` will be used. - -In `django-vanilla-views`, if `template_name` is defined that will be used, otherwise if `model` is defined it'll use `{app}/{model_name}{suffix}.html`. If neither is defined it'll raise a configuration error. If you need any more complex behavior that that, you should override `get_template_names()`. - ---- - -#### `get_form()` - ---- - -**This is refactored**, instead of taking a single `form_class` argument it instead takes the form `data` and `files` arguments, plus optional extra keyword arguments. This results in a simpler, more direct control flow in the implementation. - -Instead of this in your views: - - form_cls = self.get_form_class() - form = self.get_form(form_cls) - -You should write this: - - form = self.get_form(request.DATA, request.FILES, instance=self.object) - -[base-views]: base-views.md -[tickets]: https://github.com/tomchristie/django-vanilla-views/issues diff --git a/docs/topics/django-braces-compatibility.md b/docs/topics/django-braces-compatibility.md deleted file mode 100644 index b6475131..00000000 --- a/docs/topics/django-braces-compatibility.md +++ /dev/null @@ -1,60 +0,0 @@ -# Django Braces compatibility - -The `django-vanilla-views` package is almost completely compatible with the mixin classes provided by the popular [`django-braces`][django-braces] package. - -The full set of mixins is listed below. If you believe any of these entries to be incorrect, or if new mixins are added that are not listed here, then please [open an issue on GitHub][issues] so we can keep the information up to date. - -## Access Mixins - - - - - - - - - -
Mixin classAPI compatible
LoginRequiredMixinYes
PermissionRequiredMixinYes
MultiplePermissionsRequiredMixinYes
GroupRequiredMixinYes
SuperuserRequiredMixinYes
StaffuserRequiredMixinYes
- -## Form Mixins - - - - - - - - - - -
Mixin classAPI compatible
CsrfExemptMixinYes
UserFormKwargsMixinNo (*)
UserKwargModelFormMixinYes
SuccessURLRedirectListMixinYes
FormValidMessageMixinYes
FormInvalidMessageMixinYes
FormMessagesMixinYes
- -(*) The `UserFormKwargsMixin` class is not compatible because it overrides the `get_form_kwargs()` method, which does not exist in `django-vanilla-views`. - -You can instead write a `django-vanilla-views` compatible mixin, like this: - - class UserFormKwargsMixin(object): - def get_form(self, data=None, files=None, **kwargs): - kwargs['user'] = self.request.user - return super(UserFormKwargsMixin, self).get_form(data=data, files=files, **kwargs) - -## Other Mixins - - - - - - - - - - - -
Mixin classAPI compatible
SetHeadlineMixinYes
SelectRelatedMixinYes
PrefetchRelatedMixinYes
JSONResponseMixinYes
JsonRequestResponseMixinYes
AjaxResponseMixinYes
OrderableListMixinYes
CanonicalSlugDetailMixinYes (*)
- -(*) The `CanonicalSlugDetailMixin` is not compatible in the current `1.2.2` PyPI release, but is compatible in the current `master` branch, and should be compatible in the next upcoming PyPI release. - -Note that if using `CanonicalSlugDetailMixin` you **must** also set a `slug_url_kwarg` on the view. - -[django-braces]: https://github.com/brack3t/django-braces -[issues]: https://github.com/tomchristie/django-vanilla-views/issues diff --git a/docs/topics/django-extra-views-compatibility.md b/docs/topics/django-extra-views-compatibility.md deleted file mode 100644 index 566ca604..00000000 --- a/docs/topics/django-extra-views-compatibility.md +++ /dev/null @@ -1,18 +0,0 @@ -# Django Extra Views Compatibility - -You can use the views in `django-vanilla-views` alongside the additional views that are supplied by [`django-extra-views`][django-extra-views] just fine, although it will mean that you'll be working with Django's mixin style for some of your views, and the Vanilla style for other views. - -A good candidate for a future PyPI package would be a version of [`django-extra-views`][django-extra-views], that uses the `django-vanilla-views` views as the base and is implemented in a more vanilla-like style. - -There are also a couple of stand-alone mixin classes provided by [`django-extra-views`][django-extra-views], both of which are fully API compatible with `django-vanilla-views`. The mixins are listed below. If you believe either of these entries to be incorrect, or if new mixins are added that are not listed here, then please [open an issue on GitHub][issues] so we can keep the information up to date. - -## Mixin classes - - - - - -
Mixin classAPI compatible
SortableListMixinYes
SearchableListMixinYes
- -[django-extra-views]: https://github.com/andrewingram/django-extra-views -[issues]: https://github.com/tomchristie/django-vanilla-views/issues diff --git a/docs/topics/frequently-asked-questions.md b/docs/topics/frequently-asked-questions.md deleted file mode 100644 index 61e3d1af..00000000 --- a/docs/topics/frequently-asked-questions.md +++ /dev/null @@ -1,37 +0,0 @@ -# Frequently Asked Questions - -## Usage - -### Won't I lose functionality or flexiblity? - -No. Everything you can do with Django's standard class based views you can also do with `django-vanilla-views`. The migration guides cover all the bits of API that have been removed, and explain how you can easily achieve the same functionality with vanilla views. - -### Can I still use mixin classes? - -Sure. The `django-vanilla-views` package doesn't happen to use mixin classes, but there's no reason you shouldn't do so in your own code. Overuse of mixin classes can make for poor style, but when used in moderation they're a powerful and useful tool. - -### I've already learnt Django's GCBVs, is this worth my time? - -Absolutely. The API presented by `django-vanilla-views` is pretty simple so it shouldn't take you long to get up and running with it. The generic class based views are the bread and butter of our web sites, and the small investment in time you'll make learning `django-vanilla-views` should pay of quickly as you'll be using simpler, more obvious views throughout. - -### Is it stable? - -The `django-vanilla-views` package has issued a 1.0 release and now has a [formal deprecation policy][deprecation-policy]. You should be free to use it knowing that package upgrades will be fully documented and will not break API compatibility between releases. We also have 100% code coverage and fully intend to quickly deal with any issues reported. - ---- - -## Design - -### Isn't a mixin-less style less DRY? - -Actually not really. The base views and the model views do share some common implementation, but there's only a very small amount of duplication. - -It's also worth noting that Django's existing class based views also include duplication despite being implemented using a mixin style. For example, both `SingleObjectMixin` and `MultipleObjectMixin` implement a functionally identical `get_queryset()` method. - -### What about seperation of concerns? - -The base classes used by vanilla views include a small core set of functionality. In the author's opinion there's no real practical issue introduced here, and the design trade-off should favor simplicity of implementation. - -It's also worth noting that Django's existing class based views also include unused methods in base classes despite being implemented using a mixin style. For example, `CreateView` inherits from `SingleObjectMixin` and includes `get_object()` which is never used. - -[deprecation-policy]: release-notes.md \ No newline at end of file diff --git a/docs/topics/release-notes.md b/docs/topics/release-notes.md deleted file mode 100644 index b327a410..00000000 --- a/docs/topics/release-notes.md +++ /dev/null @@ -1,83 +0,0 @@ -# Release Notes - -The `django-vanilla-views` package is not expected to change rapidly, as it's feature set is intended to remain in lock-step with Django's releases. - -## Deprecation policy - -The `django-vanilla-views` package follows a formal deprecation policy, which is in line with [Django's deprecation policy][django-deprecation-policy]. - -The timeline for deprecation of a feature present in version 1.0 would work as follows: - -* Version 1.1 would remain **fully backwards compatible** with 1.0, but would raise `PendingDeprecationWarning` warnings if you use the feature that are due to be deprecated. These warnings are **silent by default**, but can be explicitly enabled when you're ready to start migrating any required changes. For example if you start running your tests using `python -Wd manage.py test`, you'll be warned of any API changes you need to make. - -* Version 1.2 would escalate these warnings to `DeprecationWarning`, which is loud by default. - -* Version 1.3 would remove the deprecated bits of API entirely. - -## Upgrading - -To upgrade `django-vanilla-views` to the latest version, use pip: - - pip install -U django-vanilla-views - -You can determine your currently installed version using `pip freeze`: - - pip freeze | grep django-vanilla-views - ---- - -## 1.0.2 - -**Released**: 28th September 2013 - -* Resolve PyPI packaging issue. - -## 1.0.1 - -**Released**: 24th September 2013 - -* Fix `DeleteView.template_name_suffix` by changing it to `'_confirm_delete'`. - -## 1.0.0 - -**Released**: 23rd September 2013 - -* Introduced `get_success_url()` for easier mixin overriding of view behavior. -* Introduced `**kwargs` arguments to `get_form` to kee API identicatal between base and model views, and for easier mixin overriding. -* Introduced 1.6's behavior of pending deprecation for `.fields` not specified when auto-generating model forms. - -## 0.2.1 - -**Released**: 10th September 2013 - -* **Beta release.** -* Fix method names to match Django's. - -## 0.2.0 - -**Released**: 9th September 2013 - -* Fix some messaging. -* Python 3 compatiblity. -* Use Django's `RedirectView`. - -## 0.1.2 - -**Released**: 7th September 2013 - -* Simple module names. -* Refactored pagination. - -## 0.1.1 - -**Released**: 2nd September 2013 - -* Fix missing arguments. - -## 0.1.0 - -**Released**: 2nd September 2013 - -* **Alpha release.** - -[django-deprecation-policy]: https://docs.djangoproject.com/en/dev/internals/release-process/#internal-release-deprecation-policy diff --git a/docs/user-guide/configuration.md b/docs/user-guide/configuration.md new file mode 100644 index 00000000..6e064434 --- /dev/null +++ b/docs/user-guide/configuration.md @@ -0,0 +1,88 @@ +# Configuration + +Guide to all available configuration settings. + +--- + +## Basic project settings + +#### project_title + +Mea dicta aliquid ornatus cu, duis sanctus disputationi his in. Rebum adolescens definiebas vis te. Ornatus noluisse mel te, modo utinam ea sit, putent omittantur quo ad. Ius ad dicta iusto, vel ne nonumy quaestio. + +#### project_description + +Eam no quis bonorum legendos. Eos prodesset cotidieque in, atqui saperet eos te. Sit eruditi fastidii detraxit cu, sed elit voluptatum in. Vel esse possim accumsan et, eam et amet nihil putent. Mei putent impetus no, iuvaret labores duo an. + +#### project_url + +Quo ex ceteros theophrastus, mel eius repudiandae an, has autem legendos ut. Eu quo moderatius interpretaris, pro ad homero tractatos cotidieque. His errem dictas instructior ad, tation causae ceteros ex eum. Nam falli dicunt te, mea et unum contentiones, ius noluisse rationibus cotidieque ei. + +#### pages + +Eam no quis bonorum legendos. Eos prodesset cotidieque in, atqui saperet eos te. Sit eruditi fastidii detraxit cu, sed elit voluptatum in. Vel esse possim accumsan et, eam et amet nihil putent. Mei putent impetus no, iuvaret labores duo an. + + pages: + - 'index.md' + +Quo ex ceteros theophrastus, mel eius repudiandae an, has autem legendos ut. Eu quo moderatius interpretaris, pro ad homero tractatos cotidieque. + + pages: + - ['index.md', 'Introduction'] + - ['about.md', 'About'] + +Mea dicta aliquid ornatus cu, duis sanctus disputationi his in. Rebum adolescens definiebas vis te. Ornatus noluisse mel te, modo utinam ea sit, putent omittantur quo ad. Ius ad dicta iusto, vel ne nonumy quaestio. + + pages: + - ['index.md', 'Introduction'] + - ['user-guide/markdown.md', 'User Guide / Writing your documentation'] + - ['user-guide/themes.md', 'User Guide / Theming your documentation'] + - ['user-guide/configuration.md', 'User Guide / Configuration options'] + +## Build directories + +#### theme + +Mea dicta aliquid ornatus cu, duis sanctus disputationi his in. Rebum adolescens definiebas vis te. Ornatus noluisse mel te, modo utinam ea sit, putent omittantur quo ad. Ius ad dicta iusto, vel ne nonumy quaestio. + +#### theme_dir + +Eam no quis bonorum legendos. Eos prodesset cotidieque in, atqui saperet eos te. Sit eruditi fastidii detraxit cu, sed elit voluptatum in. Vel esse possim accumsan et, eam et amet nihil putent. Mei putent impetus no, iuvaret labores duo an. + +#### docs_dir + +Quo ex ceteros theophrastus, mel eius repudiandae an, has autem legendos ut. Eu quo moderatius interpretaris, pro ad homero tractatos cotidieque. His errem dictas instructior ad, tation causae ceteros ex eum. Nam falli dicunt te, mea et unum contentiones, ius noluisse rationibus cotidieque ei. + +#### build_dir + +Lorem ipsum dolor sit amet, eam facer liberavisse ad. Vis te cetero blandit temporibus, id meliore definiebas qui. At mei vidit etiam adipisci, mea ad malis nobis. An sed aeque munere facilisi, modus tractatos quo ei. Eu veniam tincidunt cum. + +## Extra build steps + +#### include_search + +Mea et graeci persecuti, sit possit neglegentur ex. Nam modus maluisset id. Praesent laboramus expetendis an vis. Mea scripta eleifend et. Ex zril quidam facilis nec, eu inani errem expetendis eum. Falli electram periculis te ius, sed nihil saperet cu. Possit quodsi cu sea, usu ei saperet lobortis adolescens. + +#### include_404 + +Lorem ipsum dolor sit amet, ex usu velit harum dignissim. Graeco saperet tibique ea mea. Mel vocent veritus assentior ne, ponderum dissentiunt nec eu. No civibus commune duo, nec in mollis regione eruditi, nec feugiat accumsan interesset te. Natum accusam legendos sea no, te eam libris tamquam, ius fabulas vocibus rationibus ad. Eum ex sonet nostrum argumentum, mel persius cotidieque repudiandae in, cum legendos patrioque in. + +#### include_sitemap + +Consul percipitur usu an, no dico facer inermis cum. Eum ea mentitum accommodare. An sea periculis euripidis, dicant minimum patrioque at vis. Justo atomorum abhorreant vel in. Eos agam intellegam disputando at, zril consul nostrud ut eum. + +## Preview controls + +#### local_build + +Sit discere dolorem cu. Has an alienum repudiare delicatissimi. Cu salutatus efficiendi mea, in homero possim maiorum sed. Dicam delenit laboramus ad eum, altera laboramus instructior nec in. Vix et diam libris, eu sit justo soluta fuisset. Periculis maluisset eum ut, ut eos illud scaevola. + +#### devserver_addr + +Brute invidunt et qui. Ei mea epicuri placerat sententiae, at mea delicata hendrerit, suas legimus his id. Mel viderer commune molestiae at, quo ex similique argumentum. Sea ut doming graecis hendrerit, iriure praesent usu at. Eam purto petentium ne. Case ubique usu eu, no vidit quidam possit pri. + +## Other configuration + +Vel at magna falli fierent. Clita putant nam no, cu per eros possit omnium, dicit pertinacia consetetur at has. Nam quis delenit cu, at vix consul expetendis, mucius mediocrem reprimique te mel. Ex vim quem oratio cotidieque, periculis iracundia at his, his omnium consulatu ei. + +No sale minim definiebas vis. An quem utinam eam, est et consul patrioque maiestatis. Vel id decore periculis eloquentiam. Eu vim graeco causae, nec ut dicta graecis delicatissimi. Ne quod etiam salutandi vix, est stet veritus ne. Modus corrumpit usu ea, pri et dicam dignissim, quo ea sumo essent interesset. diff --git a/docs/user-guide/styling-your-docs.md b/docs/user-guide/styling-your-docs.md new file mode 100644 index 00000000..723cbbb9 --- /dev/null +++ b/docs/user-guide/styling-your-docs.md @@ -0,0 +1,47 @@ +# Styling your docs + +How to style and theme your documentation. + +--- + +## Built-in themes + +#### Bootstrap + +![Bootstrap](http://bootstrapdocs.com/v2.3.1/docs/assets/img/examples/bootstrap-example-fluid.png) + +#### Read the Docs + +![ReadTheDocs](https://docs.readthedocs.org/en/latest/_images/screen_mobile.png) + +#### Ghostwriter + +![GhostWriter](https://github.com/roryg/ghostwriter/blob/master/screenshot.png?raw=true) + +#### The bootswatch themes + +![Amelia](http://bootswatch.com/amelia/thumbnail.png) + +![Cerulean](http://bootswatch.com/cerulean/thumbnail.png) + +![Cosmo](http://bootswatch.com/cosmo/thumbnail.png) + +![Cyborg](http://bootswatch.com/cyborg/thumbnail.png) + +![Flatly](http://bootswatch.com/flatly/thumbnail.png) + +![Journal](http://bootswatch.com/journal/thumbnail.png) + +![Readable](http://bootswatch.com/readable/thumbnail.png) + +![Simplex](http://bootswatch.com/simplex/thumbnail.png) + +![Slate](http://bootswatch.com/slate/thumbnail.png) + +![Spacelab](http://bootswatch.com/spacelab/thumbnail.png) + +![United](http://bootswatch.com/united/thumbnail.png) + +![Yeti](http://bootswatch.com/yeti/thumbnail.png) + +## Custom themes diff --git a/docs/user-guide/writing-your-docs.md b/docs/user-guide/writing-your-docs.md new file mode 100644 index 00000000..0069513b --- /dev/null +++ b/docs/user-guide/writing-your-docs.md @@ -0,0 +1,100 @@ +# Writing your docs + +How to write and layout your markdown source files. + +--- + +## File layout + +Lorem ipsum dolor sit amet, meliore deserunt referrentur per ad, mei eros elaboraret no. Soluta sadipscing eum ex. Duo ne nominati definitiones, animal sententiae nam no. Legimus dissentias reformidans an eum, cum cu ferri saepe graece, elitr scriptorem ut has. + +Duis audiam vix eu. Vidit dissentiunt nec ea, an dolor incorrupte vix. Has modus gloriatur assueverit ne. Elitr inciderint ea pro. Ad dictas nostrum nec, mei ad alterum fabellas. + + + +## Linking documents + +Solum nonumy alienum mel ea. Ea brute intellegam vis, antiopam argumentum te eos. Pro ut sumo altera salutatus, modus periculis te his, an vix aeque paulo maiorum. Mea cu dolorum praesent hendrerit. + +#### Internal hyperlinks + +In cum esse utroque, pri equidem molestie epicurei an, at ludus euismod pertinax mea. Ex nam adipisci repudiare comprehensam. Ex propriae detracto intellegat vel, vel et lorem dicta tincidunt. Mei ne affert mollis voluptatibus. Mel et sonet graecis, ius deserunt eloquentiam no. + + Ex vim diceret [vocibus salutandi](../example.md), qui liber nostrud ad. + +Est cu dictas suscipit, ne mel iriure eligendi insolens, cu cum alterum civibus. Vidisse vivendum ne has, pertinax neglegentur no vis. Vel ei referrentur efficiantur, sed facer indoctum similique et. Ad temporibus liberavisse his, nec cu primis electram moderatius. Ex meliore denique has. Eam ea offendit expetenda. Ei error facilis suavitate pri, ex utroque vulputate efficiendi eos. + + Ex vim diceret [vocibus salutandi](../example.md#lorum-ipsum), qui liber nostrud ad. + +#### Cross-referencing your documentation + +Ex eam quem facilisi deserunt. Veri audiam audire id his, quo at aperiri moderatius. In admodum partiendo est, ei rebum minimum eam, singulis accusata delicatissimi eos ut. Imperdiet vulputate assueverit eos an, elit recusabo et usu. Eam ad euismod accusata vituperata. Oratio vocent nominavi ei eum. + + At mel verear persius torquatos, his dolores [Sensibus](ref:) id, alia urbanitas in usu. + +Eam ad euismod accusata vituperata. Oratio vocent nominavi ei eum. + + Ne his mucius oporteat, [mea ut eros delicatissimi](ref:delicatissimi), iudico nonumes moderatius an mel. + +## Images and media + +Ex vim diceret vocibus salutandi, qui liber nostrud ad. An eius postea nam, cu labore argumentum cum. + + At mel verear persius torquatos, his dolores. + + [!Sensibus](../images/sensibus.png) + + Alia urbanitas in usu. + +Fuisset nostrum eos ut. + + docs/index.md + docs/api-guide/sensibus.md + docs/api-guide/dicant.md + docs/images/sensibus.png + +## Markdown extensions + +Quas malorum vituperatoribus mei et, ei augue dicant pri. Etiam denique temporibus ei vis, sea an dicant malorum petentium. + +#### Page metadata + +Unum errem propriae vis cu, et deseruisse interpretaris eam. Illum graecis per an, ludus laoreet repudiare nec an, molestie recteque et eam. Purto duis rationibus id eum, pro et amet appetere referrentur, minim impedit ad ius. Et nostrud perfecto sapientem vix, et dicit impedit consequat vim. Vis liber blandit no. + +At mel verear persius torquatos, his dolores sensibus id, alia urbanitas in usu. Te pri cibo blandit. Debet dolore periculis ei pro, eu vis vidit ignota, vim natum dicta cu. Et appareat delicata vix, mei at solum lorem quodsi, verterem electram sit eu. Eius malis cum an, pro malorum euripidis ad, oblique appetere est cu. Eos ei fugit deterruisset. Vix ei aliquip dolorem, usu te euripidis reformidans, volumus pertinacia ea eam. + + page_title: Lorum + page_description: "lorum ipsum dolor" + source_files: example.js, lorum.js + + # Lorum Ipsum + + Unum errem propriae vis cu, et deseruisse interpretaris eam. Illum graecis per an, ludus laoreet repudiare nec an, molestie recteque et eam. + +#### Tables + +Unum errem propriae vis cu, et deseruisse interpretaris eam. Illum graecis per an, ludus laoreet repudiare nec an, molestie recteque et eam. Purto duis rationibus id eum, pro et amet appetere referrentur, minim impedit ad ius. Et nostrud perfecto sapientem vix, et dicit impedit consequat vim. Vis liber blandit no. + + First Header | Second Header + ------------- | ------------- + Content Cell | Content Cell + Content Cell | Content Cell + +Ut qualisque suscipiantur nam, probo solum incorrupte sed no. + +#### Code blocks + +Unum errem propriae vis cu, et deseruisse interpretaris eam. Illum graecis per an, ludus laoreet repudiare nec an, molestie recteque et eam. Purto duis rationibus id eum, pro et amet appetere referrentur, minim impedit ad ius. Et nostrud perfecto sapientem vix, et dicit impedit consequat vim. Vis liber blandit no. + + ```python + # moar python code + def init(): + yield init + ``` + +#### Admonitions + +Ad est nibh suscipiantur. Quaeque deleniti delectus an has, tempor accusamus eu vix. Et democritum expetendis nam, putent fuisset duo ea, elaboraret efficiendi no vis. + + !!! danger "Don't try this at home" + May cause grevious bodily harm diff --git a/mkdocs.yaml b/mkdocs.yaml index 5e43e483..a0d0af96 100644 --- a/mkdocs.yaml +++ b/mkdocs.yaml @@ -1,13 +1,8 @@ -project_name: 'Django Vanilla Views' +project_name: MkDocs pages: -- ['index.md', 'Home'] -- ['api/base-views.md', 'API Guide / Base Views'] -- ['api/model-views.md', 'API Guide / Model Views'] -- ['migration/base-views.md', 'Migration / Base Views'] -- ['migration/model-views.md', 'Migration / Model Views'] -- ['topics/frequently-asked-questions.md', 'Topics / Frequently Asked Questions'] -- ['topics/django-braces-compatibility.md', 'Topics / Django Braces Compatilibity'] -- ['topics/django-extra-views-compatibility.md', 'Topics / Django Extra Views Compatilibity'] -- ['topics/release-notes.md', 'Topics / Release Notes'] - -theme: 'bootstrap' +- ['index.md', 'Introduction'] +- ['user-guide/writing-your-docs.md', 'User Guide / Writing your docs'] +- ['user-guide/styling-your-docs.md', 'User Guide / Styling your docs'] +- ['user-guide/configuration.md', 'User Guide / Configuration'] +- ['about/license.md', 'About / License'] +theme_dir: 'theme' diff --git a/mkdocs/config.py b/mkdocs/config.py index 6e7cc61f..6d87cddb 100644 --- a/mkdocs/config.py +++ b/mkdocs/config.py @@ -9,7 +9,7 @@ DEFAULT_CONFIG = { 'pages': None, 'base_url': '', - 'theme': 'plain', + 'theme': 'bootstrap', 'docs_dir': 'docs', 'build_dir': 'build',