├── .editorconfig
├── .gitignore
├── .travis.yml
├── CHANGES.txt
├── LICENSE
├── MANIFEST.in
├── README.rst
├── docs
├── Makefile
├── _static
│ └── example.png
├── conf.py
├── index.rst
├── install.rst
└── make.bat
├── example
├── app
│ ├── __init__.py
│ ├── forms.py
│ ├── models.py
│ ├── templates
│ │ └── index.html
│ ├── tests.py
│ └── views.py
├── example
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── manage.py
└── requirements.txt
├── runtests.py
├── semanticuiform
├── __init__.py
├── config.py
├── fixtures
│ ├── basic.html
│ └── inline.html
├── meta.py
├── models.py
├── templates
│ └── semanticui
│ │ ├── field.html
│ │ ├── form.html
│ │ └── formset.html
├── templatetags
│ ├── __init__.py
│ └── semanticui.py
└── tests.py
├── setup.py
└── tests
└── test_settings.py
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 4
6 | end_of_line = lf
7 | charset = utf-8
8 | trim_trailing_whitespace = true
9 | insert_final_newline = true
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.pyc
2 | *.egg
3 | *.egg-info
4 | .DS_Store
5 | docs/_build
6 | /build
7 | /dist
8 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: python
2 | python:
3 | - '2.7'
4 | - '3.3'
5 | - '3.4'
6 | install:
7 | - pip install coverage coveralls
8 | script:
9 | - coverage run --source=semanticuiform setup.py test
10 | after_success:
11 | - coveralls
12 | deploy:
13 | provider: pypi
14 | user: peterbe
15 | password:
16 | secure: eV46DAh+a4chCo/MaE7oqknzRaynF/oUnzLBD3MV/JYZEo5I09q3Fw92im3TOLUJKFqSti17VmWxLbStEci993xJwaMl3rteq8xuOI8k8aixnBY3333UDhTaV2RLAmX/0MeHgFKXONZMf8ngVAGs7X3y8pwsVUuxa8UNUPr78BzPSFiVQiUfByTzJIxotDj0uk4xdVhI3DOg9v3piFKC/9n6TsWX4B1N53Ro7xU80emULN35YVnPLmcdcegnH3Jllp/dbi8a8MwaEnuAXixP6qkrvhMzBYIgxeutgyjj6Eb1Mr9ufrkgGVGLAEqdNOSYLhr30AZUwOyIUunsceAi9bFC6jf8Jz2JlJangZAOl5eKFf3IZq7SCTFQcHU48yh5Y6dhEVRNo/Sz0XuuXC/JmY9TOsryn5F2oHd4nyqxf4P7PbZF2lvU3SjCPBAZWWZVIN39WKFIdmmcfcxLNuFduOOr6CgbZLqZ8W2cqzH8xKEHhKDv3pLP+WWCsOdQjufViggxmB7HjMhTOYcDtRzaNmeak34WikZ55pUeQv+AO543hMhMgSQSFxSG+agJJLbcz1WTn/DAukfecbaEVV1h8LtaoreNHt/N9/semsfCDBZYJrjoeeWBYs4f5P+dXPWlfANwjtZubYXRWWeza85PW85a7BuKf2ij/Psml3B4OzA=
17 | on:
18 | repo: peterbe/django-semanticui-form
19 | distributions: "sdist bdist_wheel"
20 |
--------------------------------------------------------------------------------
/CHANGES.txt:
--------------------------------------------------------------------------------
1 | - 2015-09-12:
2 |
3 | Rought, half-decent draft
4 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) Peter Bengtsson and individual contributors.
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without modification,
5 | are permitted provided that the following conditions are met:
6 |
7 | 1. Redistributions of source code must retain the above copyright notice,
8 | this list of conditions and the following disclaimer.
9 |
10 | 2. Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 |
14 | 3. Neither the name of django-semanticui-form nor the names of its
15 | contributors may be used to endorse or promote products derived from
16 | this software without specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
22 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
25 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 |
--------------------------------------------------------------------------------
/MANIFEST.in:
--------------------------------------------------------------------------------
1 | include README.rst
2 | graft semanticuiform/templates
3 |
--------------------------------------------------------------------------------
/README.rst:
--------------------------------------------------------------------------------
1 | =======================
2 | Django Semantic UI form
3 | =======================
4 |
5 | .. image:: https://badge.fury.io/py/django-semanticui-form.png
6 | :alt: PyPI version
7 | :target: https://pypi.python.org/pypi/django-semanticui-form
8 |
9 | .. image:: https://travis-ci.org/peterbe/django-semanticui-form.png?branch=master
10 | :target: https://travis-ci.org/peterbe/django-semanticui-form
11 |
12 | .. image:: https://coveralls.io/repos/peterbe/django-semanticui-form/badge.png?branch=master
13 | :target: https://coveralls.io/r/peterbe/django-semanticui-form?branch=master
14 |
15 |
16 | Semantic UI for Django Form.
17 |
18 | A simple Django template tag to work with `Semantic UI `_
19 |
20 | This project is a fork from
21 | `django-bootstrap-form `_ by
22 | `tzangms `_.
23 |
24 | Usage
25 | ======
26 |
27 | Add ``semanticuiform`` to your ``INSTALLED_APPS``.
28 |
29 | At the top of your template load in our template tags::
30 |
31 | {% load semanticui %}
32 |
33 | Then to render your form::
34 |
35 |
41 |
42 | To make the form with inline element, change the ``|semanticui`` template
43 | tag to ``|semanticui_inline``.::
44 |
45 |
51 |
52 |
53 | Demo
54 | =====
55 |
56 | Not yet.
57 |
--------------------------------------------------------------------------------
/docs/Makefile:
--------------------------------------------------------------------------------
1 | # Makefile for Sphinx documentation
2 | #
3 |
4 | # You can set these variables from the command line.
5 | SPHINXOPTS =
6 | SPHINXBUILD = sphinx-build
7 | PAPER =
8 | BUILDDIR = _build
9 |
10 | # Internal variables.
11 | PAPEROPT_a4 = -D latex_paper_size=a4
12 | PAPEROPT_letter = -D latex_paper_size=letter
13 | ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
14 | # the i18n builder cannot share the environment and doctrees with the others
15 | I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
16 |
17 | .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
18 |
19 | help:
20 | @echo "Please use \`make ' where is one of"
21 | @echo " html to make standalone HTML files"
22 | @echo " dirhtml to make HTML files named index.html in directories"
23 | @echo " singlehtml to make a single large HTML file"
24 | @echo " pickle to make pickle files"
25 | @echo " json to make JSON files"
26 | @echo " htmlhelp to make HTML files and a HTML help project"
27 | @echo " qthelp to make HTML files and a qthelp project"
28 | @echo " devhelp to make HTML files and a Devhelp project"
29 | @echo " epub to make an epub"
30 | @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
31 | @echo " latexpdf to make LaTeX files and run them through pdflatex"
32 | @echo " text to make text files"
33 | @echo " man to make manual pages"
34 | @echo " texinfo to make Texinfo files"
35 | @echo " info to make Texinfo files and run them through makeinfo"
36 | @echo " gettext to make PO message catalogs"
37 | @echo " changes to make an overview of all changed/added/deprecated items"
38 | @echo " linkcheck to check all external links for integrity"
39 | @echo " doctest to run all doctests embedded in the documentation (if enabled)"
40 |
41 | clean:
42 | -rm -rf $(BUILDDIR)/*
43 |
44 | html:
45 | $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
46 | @echo
47 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
48 |
49 | dirhtml:
50 | $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
51 | @echo
52 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
53 |
54 | singlehtml:
55 | $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
56 | @echo
57 | @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
58 |
59 | pickle:
60 | $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
61 | @echo
62 | @echo "Build finished; now you can process the pickle files."
63 |
64 | json:
65 | $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
66 | @echo
67 | @echo "Build finished; now you can process the JSON files."
68 |
69 | htmlhelp:
70 | $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
71 | @echo
72 | @echo "Build finished; now you can run HTML Help Workshop with the" \
73 | ".hhp project file in $(BUILDDIR)/htmlhelp."
74 |
75 | qthelp:
76 | $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
77 | @echo
78 | @echo "Build finished; now you can run "qcollectiongenerator" with the" \
79 | ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
80 | @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/djangosemanticuiform.qhcp"
81 | @echo "To view the help file:"
82 | @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/djangosemanticuiform.qhc"
83 |
84 | devhelp:
85 | $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
86 | @echo
87 | @echo "Build finished."
88 | @echo "To view the help file:"
89 | @echo "# mkdir -p $$HOME/.local/share/devhelp/djangosemanticuiform"
90 | @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/djangosemanticuiform"
91 | @echo "# devhelp"
92 |
93 | epub:
94 | $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
95 | @echo
96 | @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
97 |
98 | latex:
99 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
100 | @echo
101 | @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
102 | @echo "Run \`make' in that directory to run these through (pdf)latex" \
103 | "(use \`make latexpdf' here to do that automatically)."
104 |
105 | latexpdf:
106 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
107 | @echo "Running LaTeX files through pdflatex..."
108 | $(MAKE) -C $(BUILDDIR)/latex all-pdf
109 | @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
110 |
111 | text:
112 | $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
113 | @echo
114 | @echo "Build finished. The text files are in $(BUILDDIR)/text."
115 |
116 | man:
117 | $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
118 | @echo
119 | @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
120 |
121 | texinfo:
122 | $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
123 | @echo
124 | @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
125 | @echo "Run \`make' in that directory to run these through makeinfo" \
126 | "(use \`make info' here to do that automatically)."
127 |
128 | info:
129 | $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
130 | @echo "Running Texinfo files through makeinfo..."
131 | make -C $(BUILDDIR)/texinfo info
132 | @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
133 |
134 | gettext:
135 | $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
136 | @echo
137 | @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
138 |
139 | changes:
140 | $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
141 | @echo
142 | @echo "The overview file is in $(BUILDDIR)/changes."
143 |
144 | linkcheck:
145 | $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
146 | @echo
147 | @echo "Link check complete; look for any errors in the above output " \
148 | "or in $(BUILDDIR)/linkcheck/output.txt."
149 |
150 | doctest:
151 | $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
152 | @echo "Testing of doctests in the sources finished, look at the " \
153 | "results in $(BUILDDIR)/doctest/output.txt."
154 |
--------------------------------------------------------------------------------
/docs/_static/example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/django-semanticui-form/0087156d12cb04d70d6bb54de20f5b322532d0ed/docs/_static/example.png
--------------------------------------------------------------------------------
/docs/conf.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # django semanticui form documentation build configuration file, created by
4 | # sphinx-quickstart on Tue Jul 17 16:36:38 2012.
5 | #
6 | # This file is execfile()d with the current directory set to its containing dir.
7 | #
8 | # Note that not all possible configuration values are present in this
9 | # autogenerated file.
10 | #
11 | # All configuration values have a default; values that are commented out
12 | # serve to show the default.
13 |
14 | import sys, os
15 |
16 | # If extensions (or modules to document with autodoc) are in another directory,
17 | # add these directories to sys.path here. If the directory is relative to the
18 | # documentation root, use os.path.abspath to make it absolute, like shown here.
19 | #sys.path.insert(0, os.path.abspath('.'))
20 |
21 | # -- General configuration -----------------------------------------------------
22 |
23 | # If your documentation needs a minimal Sphinx version, state it here.
24 | #needs_sphinx = '1.0'
25 |
26 | # Add any Sphinx extension module names here, as strings. They can be extensions
27 | # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
28 | extensions = []
29 |
30 | # Add any paths that contain templates here, relative to this directory.
31 | templates_path = ['_templates']
32 |
33 | # The suffix of source filenames.
34 | source_suffix = '.rst'
35 |
36 | # The encoding of source files.
37 | #source_encoding = 'utf-8-sig'
38 |
39 | # The master toctree document.
40 | master_doc = 'index'
41 |
42 | # General information about the project.
43 | project = u'django-semanticui-form'
44 | copyright = u'2015, Peter Bengtsson'
45 |
46 | # The version info for the project you're documenting, acts as replacement for
47 | # |version| and |release|, also used in various other places throughout the
48 | # built documents.
49 | #
50 | # The short X.Y version.
51 | version = '2.0.6'
52 | # The full version, including alpha/beta/rc tags.
53 | release = '2.0.6'
54 |
55 | # The language for content autogenerated by Sphinx. Refer to documentation
56 | # for a list of supported languages.
57 | #language = None
58 |
59 | # There are two options for replacing |today|: either, you set today to some
60 | # non-false value, then it is used:
61 | #today = ''
62 | # Else, today_fmt is used as the format for a strftime call.
63 | #today_fmt = '%B %d, %Y'
64 |
65 | # List of patterns, relative to source directory, that match files and
66 | # directories to ignore when looking for source files.
67 | exclude_patterns = ['_build']
68 |
69 | # The reST default role (used for this markup: `text`) to use for all documents.
70 | #default_role = None
71 |
72 | # If true, '()' will be appended to :func: etc. cross-reference text.
73 | #add_function_parentheses = True
74 |
75 | # If true, the current module name will be prepended to all description
76 | # unit titles (such as .. function::).
77 | #add_module_names = True
78 |
79 | # If true, sectionauthor and moduleauthor directives will be shown in the
80 | # output. They are ignored by default.
81 | #show_authors = False
82 |
83 | # The name of the Pygments (syntax highlighting) style to use.
84 | pygments_style = 'sphinx'
85 |
86 | # A list of ignored prefixes for module index sorting.
87 | #modindex_common_prefix = []
88 |
89 |
90 | # -- Options for HTML output ---------------------------------------------------
91 |
92 | # The theme to use for HTML and HTML Help pages. See the documentation for
93 | # a list of builtin themes.
94 | html_theme = 'nature'
95 |
96 | # Theme options are theme-specific and customize the look and feel of a theme
97 | # further. For a list of options available for each theme, see the
98 | # documentation.
99 | #html_theme_options = {}
100 |
101 | # Add any paths that contain custom themes here, relative to this directory.
102 | #html_theme_path = []
103 |
104 | # The name for this set of Sphinx documents. If None, it defaults to
105 | # " v documentation".
106 | #html_title = None
107 |
108 | # A shorter title for the navigation bar. Default is the same as html_title.
109 | #html_short_title = None
110 |
111 | # The name of an image file (relative to this directory) to place at the top
112 | # of the sidebar.
113 | #html_logo = None
114 |
115 | # The name of an image file (within the static path) to use as favicon of the
116 | # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
117 | # pixels large.
118 | #html_favicon = None
119 |
120 | # Add any paths that contain custom static files (such as style sheets) here,
121 | # relative to this directory. They are copied after the builtin static files,
122 | # so a file named "default.css" will overwrite the builtin "default.css".
123 | html_static_path = ['_static']
124 |
125 | # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
126 | # using the given strftime format.
127 | #html_last_updated_fmt = '%b %d, %Y'
128 |
129 | # If true, SmartyPants will be used to convert quotes and dashes to
130 | # typographically correct entities.
131 | #html_use_smartypants = True
132 |
133 | # Custom sidebar templates, maps document names to template names.
134 | #html_sidebars = {}
135 |
136 | # Additional templates that should be rendered to pages, maps page names to
137 | # template names.
138 | #html_additional_pages = {}
139 |
140 | # If false, no module index is generated.
141 | #html_domain_indices = True
142 |
143 | # If false, no index is generated.
144 | #html_use_index = True
145 |
146 | # If true, the index is split into individual pages for each letter.
147 | #html_split_index = False
148 |
149 | # If true, links to the reST sources are added to the pages.
150 | #html_show_sourcelink = True
151 |
152 | # If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
153 | #html_show_sphinx = True
154 |
155 | # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
156 | #html_show_copyright = True
157 |
158 | # If true, an OpenSearch description file will be output, and all pages will
159 | # contain a tag referring to it. The value of this option must be the
160 | # base URL from which the finished HTML is served.
161 | #html_use_opensearch = ''
162 |
163 | # This is the file name suffix for HTML files (e.g. ".xhtml").
164 | #html_file_suffix = None
165 |
166 | # Output file base name for HTML help builder.
167 | htmlhelp_basename = 'djangosemanticuiformdoc'
168 |
169 |
170 | # -- Options for LaTeX output --------------------------------------------------
171 |
172 | latex_elements = {
173 | # The paper size ('letterpaper' or 'a4paper').
174 | #'papersize': 'letterpaper',
175 |
176 | # The font size ('10pt', '11pt' or '12pt').
177 | #'pointsize': '10pt',
178 |
179 | # Additional stuff for the LaTeX preamble.
180 | #'preamble': '',
181 | }
182 |
183 | # Grouping the document tree into LaTeX files. List of tuples
184 | # (source start file, target name, title, author, documentclass [howto/manual]).
185 | latex_documents = [
186 | ('index', 'djangosemanticuiform.tex', u'django semanticui form Documentation',
187 | u'peterbe', 'manual'),
188 | ]
189 |
190 | # The name of an image file (relative to this directory) to place at the top of
191 | # the title page.
192 | #latex_logo = None
193 |
194 | # For "manual" documents, if this is true, then toplevel headings are parts,
195 | # not chapters.
196 | #latex_use_parts = False
197 |
198 | # If true, show page references after internal links.
199 | #latex_show_pagerefs = False
200 |
201 | # If true, show URL addresses after external links.
202 | #latex_show_urls = False
203 |
204 | # Documents to append as an appendix to all manuals.
205 | #latex_appendices = []
206 |
207 | # If false, no module index is generated.
208 | #latex_domain_indices = True
209 |
210 |
211 | # -- Options for manual page output --------------------------------------------
212 |
213 | # One entry per manual page. List of tuples
214 | # (source start file, name, description, authors, manual section).
215 | man_pages = [
216 | ('index', 'djangosemanticuiform', u'django semanticui form Documentation',
217 | [u'peterbe'], 1)
218 | ]
219 |
220 | # If true, show URL addresses after external links.
221 | #man_show_urls = False
222 |
223 |
224 | # -- Options for Texinfo output ------------------------------------------------
225 |
226 | # Grouping the document tree into Texinfo files. List of tuples
227 | # (source start file, target name, title, author,
228 | # dir menu entry, description, category)
229 | texinfo_documents = [
230 | ('index', 'djangosemanticuiform', u'django semanticui form Documentation',
231 | u'peterbe', 'djangosemanticuiform', 'One line description of project.',
232 | 'Miscellaneous'),
233 | ]
234 |
235 | # Documents to append as an appendix to all manuals.
236 | #texinfo_appendices = []
237 |
238 | # If false, no module index is generated.
239 | #texinfo_domain_indices = True
240 |
241 | # How to display URL addresses: 'footnote', 'no', or 'inline'.
242 | #texinfo_show_urls = 'footnote'
243 |
--------------------------------------------------------------------------------
/docs/index.rst:
--------------------------------------------------------------------------------
1 | .. django semanticui form documentation master file, created by
2 | sphinx-quickstart on Tue Jul 17 16:36:38 2012.
3 | You can adapt this file completely to your liking, but it should at least
4 | contain the root `toctree` directive.
5 |
6 | Welcome to django semanticui form's documentation!
7 | =================================================
8 |
9 | .. toctree::
10 | :maxdepth: 2
11 |
12 |
13 | .. include:: install.rst
14 |
15 |
16 | Indices and tables
17 | ==================
18 |
19 | * :ref:`genindex`
20 | * :ref:`modindex`
21 | * :ref:`search`
22 |
23 |
--------------------------------------------------------------------------------
/docs/install.rst:
--------------------------------------------------------------------------------
1 | ======================
2 | Django semanticui form
3 | ======================
4 |
5 | Generate `Semantic UI `_ form output for Django form
6 |
7 |
8 |
9 | Screenshot
10 | -----------
11 |
12 | .. image:: _static/example.png
13 |
14 |
15 | Installation
16 | ------------
17 |
18 | Install ``django-semanticui-form`` with pip
19 |
20 | .. code-block:: sh
21 |
22 | $ pip install django-semanticui-form
23 |
24 |
25 |
26 |
27 | Configuration
28 | -------------
29 |
30 | Add ``semanticuiform`` to ``INSTALLED_APPS``.
31 |
32 | .. code-block:: python
33 |
34 | INSTALLED_APPS = (
35 | ...
36 | 'semanticuiform',
37 | ...
38 | )
39 |
40 |
41 | Usage
42 | ------
43 |
44 | .. code-block:: none
45 |
46 | {% load semanticui %}
47 |
48 | {{ form|semanticui }}
49 |
50 | # or use with individual field
51 | {{ form.|semanticui }} - To output individual fields
52 |
53 | # For inline forms
54 | {{ form|semanticui_inline }}
55 |
--------------------------------------------------------------------------------
/docs/make.bat:
--------------------------------------------------------------------------------
1 | @ECHO OFF
2 |
3 | REM Command file for Sphinx documentation
4 |
5 | if "%SPHINXBUILD%" == "" (
6 | set SPHINXBUILD=sphinx-build
7 | )
8 | set BUILDDIR=_build
9 | set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
10 | set I18NSPHINXOPTS=%SPHINXOPTS% .
11 | if NOT "%PAPER%" == "" (
12 | set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
13 | set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
14 | )
15 |
16 | if "%1" == "" goto help
17 |
18 | if "%1" == "help" (
19 | :help
20 | echo.Please use `make ^` where ^ is one of
21 | echo. html to make standalone HTML files
22 | echo. dirhtml to make HTML files named index.html in directories
23 | echo. singlehtml to make a single large HTML file
24 | echo. pickle to make pickle files
25 | echo. json to make JSON files
26 | echo. htmlhelp to make HTML files and a HTML help project
27 | echo. qthelp to make HTML files and a qthelp project
28 | echo. devhelp to make HTML files and a Devhelp project
29 | echo. epub to make an epub
30 | echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
31 | echo. text to make text files
32 | echo. man to make manual pages
33 | echo. texinfo to make Texinfo files
34 | echo. gettext to make PO message catalogs
35 | echo. changes to make an overview over all changed/added/deprecated items
36 | echo. linkcheck to check all external links for integrity
37 | echo. doctest to run all doctests embedded in the documentation if enabled
38 | goto end
39 | )
40 |
41 | if "%1" == "clean" (
42 | for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
43 | del /q /s %BUILDDIR%\*
44 | goto end
45 | )
46 |
47 | if "%1" == "html" (
48 | %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
49 | if errorlevel 1 exit /b 1
50 | echo.
51 | echo.Build finished. The HTML pages are in %BUILDDIR%/html.
52 | goto end
53 | )
54 |
55 | if "%1" == "dirhtml" (
56 | %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
57 | if errorlevel 1 exit /b 1
58 | echo.
59 | echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
60 | goto end
61 | )
62 |
63 | if "%1" == "singlehtml" (
64 | %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
65 | if errorlevel 1 exit /b 1
66 | echo.
67 | echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
68 | goto end
69 | )
70 |
71 | if "%1" == "pickle" (
72 | %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
73 | if errorlevel 1 exit /b 1
74 | echo.
75 | echo.Build finished; now you can process the pickle files.
76 | goto end
77 | )
78 |
79 | if "%1" == "json" (
80 | %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
81 | if errorlevel 1 exit /b 1
82 | echo.
83 | echo.Build finished; now you can process the JSON files.
84 | goto end
85 | )
86 |
87 | if "%1" == "htmlhelp" (
88 | %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
89 | if errorlevel 1 exit /b 1
90 | echo.
91 | echo.Build finished; now you can run HTML Help Workshop with the ^
92 | .hhp project file in %BUILDDIR%/htmlhelp.
93 | goto end
94 | )
95 |
96 | if "%1" == "qthelp" (
97 | %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
98 | if errorlevel 1 exit /b 1
99 | echo.
100 | echo.Build finished; now you can run "qcollectiongenerator" with the ^
101 | .qhcp project file in %BUILDDIR%/qthelp, like this:
102 | echo.^> qcollectiongenerator %BUILDDIR%\qthelp\djangosemanticuiform.qhcp
103 | echo.To view the help file:
104 | echo.^> assistant -collectionFile %BUILDDIR%\qthelp\djangosemanticuiform.ghc
105 | goto end
106 | )
107 |
108 | if "%1" == "devhelp" (
109 | %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
110 | if errorlevel 1 exit /b 1
111 | echo.
112 | echo.Build finished.
113 | goto end
114 | )
115 |
116 | if "%1" == "epub" (
117 | %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
118 | if errorlevel 1 exit /b 1
119 | echo.
120 | echo.Build finished. The epub file is in %BUILDDIR%/epub.
121 | goto end
122 | )
123 |
124 | if "%1" == "latex" (
125 | %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
126 | if errorlevel 1 exit /b 1
127 | echo.
128 | echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
129 | goto end
130 | )
131 |
132 | if "%1" == "text" (
133 | %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
134 | if errorlevel 1 exit /b 1
135 | echo.
136 | echo.Build finished. The text files are in %BUILDDIR%/text.
137 | goto end
138 | )
139 |
140 | if "%1" == "man" (
141 | %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
142 | if errorlevel 1 exit /b 1
143 | echo.
144 | echo.Build finished. The manual pages are in %BUILDDIR%/man.
145 | goto end
146 | )
147 |
148 | if "%1" == "texinfo" (
149 | %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
150 | if errorlevel 1 exit /b 1
151 | echo.
152 | echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
153 | goto end
154 | )
155 |
156 | if "%1" == "gettext" (
157 | %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
158 | if errorlevel 1 exit /b 1
159 | echo.
160 | echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
161 | goto end
162 | )
163 |
164 | if "%1" == "changes" (
165 | %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
166 | if errorlevel 1 exit /b 1
167 | echo.
168 | echo.The overview file is in %BUILDDIR%/changes.
169 | goto end
170 | )
171 |
172 | if "%1" == "linkcheck" (
173 | %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
174 | if errorlevel 1 exit /b 1
175 | echo.
176 | echo.Link check complete; look for any errors in the above output ^
177 | or in %BUILDDIR%/linkcheck/output.txt.
178 | goto end
179 | )
180 |
181 | if "%1" == "doctest" (
182 | %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
183 | if errorlevel 1 exit /b 1
184 | echo.
185 | echo.Testing of doctests in the sources finished, look at the ^
186 | results in %BUILDDIR%/doctest/output.txt.
187 | goto end
188 | )
189 |
190 | :end
191 |
--------------------------------------------------------------------------------
/example/app/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/django-semanticui-form/0087156d12cb04d70d6bb54de20f5b322532d0ed/example/app/__init__.py
--------------------------------------------------------------------------------
/example/app/forms.py:
--------------------------------------------------------------------------------
1 | from django import forms
2 |
3 | CHOICES = (
4 | (0, 'Zero'),
5 | (1, 'One'),
6 | (2, 'Two'),
7 | )
8 |
9 | class ExampleForm(forms.Form):
10 | char_field = forms.CharField()
11 | optional_char_field = forms.CharField(required=False)
12 | choice_field = forms.ChoiceField(choices=CHOICES)
13 | radio_choice = forms.ChoiceField(choices=CHOICES, widget=forms.RadioSelect)
14 | multiple_choice = forms.MultipleChoiceField(choices=CHOICES)
15 | multiple_checkbox = forms.MultipleChoiceField(
16 | choices=CHOICES, widget=forms.CheckboxSelectMultiple)
17 | file_fied = forms.FileField()
18 | password_field = forms.CharField(widget=forms.PasswordInput)
19 | textarea = forms.CharField(widget=forms.Textarea)
20 | boolean_field = forms.BooleanField()
21 | optional_boolean_field = forms.BooleanField(required=False)
22 |
--------------------------------------------------------------------------------
/example/app/models.py:
--------------------------------------------------------------------------------
1 | from django.db import models
2 |
3 | # Create your models here.
4 |
--------------------------------------------------------------------------------
/example/app/templates/index.html:
--------------------------------------------------------------------------------
1 | {% load semanticui %}
2 |
3 |
4 |
5 |
6 |
7 |
8 | SemanticUI form example
9 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
SemanticUI form example
22 |
23 |
below demostate how the form looks with SemanticUI
24 |
25 |
26 |
27 |
28 |
29 |
30 |
Basic example
31 |
32 |
33 |
34 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
Inline form
46 |
47 |
48 |
49 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/example/app/tests.py:
--------------------------------------------------------------------------------
1 | """
2 | This file demonstrates writing tests using the unittest module. These will pass
3 | when you run "manage.py test".
4 |
5 | Replace this with more appropriate tests for your application.
6 | """
7 |
8 | from django.test import TestCase
9 |
10 |
11 | class SimpleTest(TestCase):
12 | def test_basic_addition(self):
13 | """
14 | Tests that 1 + 1 always equals 2.
15 | """
16 | self.assertEqual(1 + 1, 2)
17 |
--------------------------------------------------------------------------------
/example/app/views.py:
--------------------------------------------------------------------------------
1 | from django.shortcuts import render
2 | from app.forms import ExampleForm
3 |
4 | def index(request):
5 | form = ExampleForm()
6 |
7 | return render(request, 'index.html', {'form': form})
8 |
--------------------------------------------------------------------------------
/example/example/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/peterbe/django-semanticui-form/0087156d12cb04d70d6bb54de20f5b322532d0ed/example/example/__init__.py
--------------------------------------------------------------------------------
/example/example/settings.py:
--------------------------------------------------------------------------------
1 | # Django settings for example project.
2 |
3 | DEBUG = True
4 | TEMPLATE_DEBUG = DEBUG
5 |
6 | ADMINS = (
7 | # ('Your Name', 'your_email@example.com'),
8 | )
9 |
10 | MANAGERS = ADMINS
11 |
12 | DATABASES = {
13 | 'default': {
14 | 'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
15 | 'NAME': '', # Or path to database file if using sqlite3.
16 | 'USER': '', # Not used with sqlite3.
17 | 'PASSWORD': '', # Not used with sqlite3.
18 | 'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
19 | 'PORT': '', # Set to empty string for default. Not used with sqlite3.
20 | }
21 | }
22 |
23 | # Local time zone for this installation. Choices can be found here:
24 | # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
25 | # although not all choices may be available on all operating systems.
26 | # In a Windows environment this must be set to your system time zone.
27 | TIME_ZONE = 'America/Chicago'
28 |
29 | # Language code for this installation. All choices can be found here:
30 | # http://www.i18nguy.com/unicode/language-identifiers.html
31 | LANGUAGE_CODE = 'en-us'
32 |
33 | SITE_ID = 1
34 |
35 | # If you set this to False, Django will make some optimizations so as not
36 | # to load the internationalization machinery.
37 | USE_I18N = True
38 |
39 | # If you set this to False, Django will not format dates, numbers and
40 | # calendars according to the current locale.
41 | USE_L10N = True
42 |
43 | # If you set this to False, Django will not use timezone-aware datetimes.
44 | USE_TZ = True
45 |
46 | # Absolute filesystem path to the directory that will hold user-uploaded files.
47 | # Example: "/home/media/media.lawrence.com/media/"
48 | MEDIA_ROOT = ''
49 |
50 | # URL that handles the media served from MEDIA_ROOT. Make sure to use a
51 | # trailing slash.
52 | # Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
53 | MEDIA_URL = ''
54 |
55 | # Absolute path to the directory static files should be collected to.
56 | # Don't put anything in this directory yourself; store your static files
57 | # in apps' "static/" subdirectories and in STATICFILES_DIRS.
58 | # Example: "/home/media/media.lawrence.com/static/"
59 | STATIC_ROOT = ''
60 |
61 | # URL prefix for static files.
62 | # Example: "http://media.lawrence.com/static/"
63 | STATIC_URL = '/static/'
64 |
65 | # Additional locations of static files
66 | STATICFILES_DIRS = (
67 | # Put strings here, like "/home/html/static" or "C:/www/django/static".
68 | # Always use forward slashes, even on Windows.
69 | # Don't forget to use absolute paths, not relative paths.
70 | )
71 |
72 | # List of finder classes that know how to find static files in
73 | # various locations.
74 | STATICFILES_FINDERS = (
75 | 'django.contrib.staticfiles.finders.FileSystemFinder',
76 | 'django.contrib.staticfiles.finders.AppDirectoriesFinder',
77 | # 'django.contrib.staticfiles.finders.DefaultStorageFinder',
78 | )
79 |
80 | # Make this unique, and don't share it with anybody.
81 | SECRET_KEY = 'iixsk9ic0h&zgpvnie&o!%fl6f&j-xnfm!j#6zialnxqsw%21p'
82 |
83 | # List of callables that know how to import templates from various sources.
84 | TEMPLATE_LOADERS = (
85 | 'django.template.loaders.filesystem.Loader',
86 | 'django.template.loaders.app_directories.Loader',
87 | # 'django.template.loaders.eggs.Loader',
88 | )
89 |
90 | MIDDLEWARE_CLASSES = (
91 | 'django.middleware.common.CommonMiddleware',
92 | 'django.contrib.sessions.middleware.SessionMiddleware',
93 | 'django.middleware.csrf.CsrfViewMiddleware',
94 | 'django.contrib.auth.middleware.AuthenticationMiddleware',
95 | 'django.contrib.messages.middleware.MessageMiddleware',
96 | # Uncomment the next line for simple clickjacking protection:
97 | # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
98 | )
99 |
100 | ROOT_URLCONF = 'example.urls'
101 |
102 | # Python dotted path to the WSGI application used by Django's runserver.
103 | WSGI_APPLICATION = 'example.wsgi.application'
104 |
105 | TEMPLATE_DIRS = (
106 | # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
107 | # Always use forward slashes, even on Windows.
108 | # Don't forget to use absolute paths, not relative paths.
109 | )
110 |
111 | INSTALLED_APPS = (
112 | 'django.contrib.auth',
113 | 'django.contrib.contenttypes',
114 | 'django.contrib.sessions',
115 | 'django.contrib.sites',
116 | 'django.contrib.messages',
117 | 'django.contrib.staticfiles',
118 | 'semanticuiform',
119 | 'app',
120 | # Uncomment the next line to enable the admin:
121 | # 'django.contrib.admin',
122 | # Uncomment the next line to enable admin documentation:
123 | # 'django.contrib.admindocs',
124 | )
125 |
126 | # A sample logging configuration. The only tangible logging
127 | # performed by this configuration is to send an email to
128 | # the site admins on every HTTP 500 error when DEBUG=False.
129 | # See http://docs.djangoproject.com/en/dev/topics/logging for
130 | # more details on how to customize your logging configuration.
131 | LOGGING = {
132 | 'version': 1,
133 | 'disable_existing_loggers': False,
134 | 'filters': {
135 | 'require_debug_false': {
136 | '()': 'django.utils.log.RequireDebugFalse'
137 | }
138 | },
139 | 'handlers': {
140 | 'mail_admins': {
141 | 'level': 'ERROR',
142 | 'filters': ['require_debug_false'],
143 | 'class': 'django.utils.log.AdminEmailHandler'
144 | }
145 | },
146 | 'loggers': {
147 | 'django.request': {
148 | 'handlers': ['mail_admins'],
149 | 'level': 'ERROR',
150 | 'propagate': True,
151 | },
152 | }
153 | }
154 |
--------------------------------------------------------------------------------
/example/example/urls.py:
--------------------------------------------------------------------------------
1 | from django.conf.urls import patterns, include, url
2 |
3 | # Uncomment the next two lines to enable the admin:
4 | # from django.contrib import admin
5 | # admin.autodiscover()
6 |
7 | urlpatterns = patterns('',
8 | # Examples:
9 | (r'^$', 'app.views.index'),
10 | # url(r'^$', 'example.views.home', name='home'),
11 | # url(r'^example/', include('example.foo.urls')),
12 |
13 | # Uncomment the admin/doc line below to enable admin documentation:
14 | # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
15 |
16 | # Uncomment the next line to enable the admin:
17 | # url(r'^admin/', include(admin.site.urls)),
18 | )
19 |
--------------------------------------------------------------------------------
/example/example/wsgi.py:
--------------------------------------------------------------------------------
1 | """
2 | WSGI config for example project.
3 |
4 | This module contains the WSGI application used by Django's development server
5 | and any production WSGI deployments. It should expose a module-level variable
6 | named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover
7 | this application via the ``WSGI_APPLICATION`` setting.
8 |
9 | Usually you will have the standard Django WSGI application here, but it also
10 | might make sense to replace the whole Django WSGI application with a custom one
11 | that later delegates to the Django one. For example, you could introduce WSGI
12 | middleware here, or combine a Django application with an application of another
13 | framework.
14 |
15 | """
16 | import os
17 |
18 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "example.settings")
19 |
20 | # This application object is used by any WSGI server configured to use this
21 | # file. This includes Django's development server, if the WSGI_APPLICATION
22 | # setting points here.
23 | from django.core.wsgi import get_wsgi_application
24 | application = get_wsgi_application()
25 |
26 | # Apply WSGI middleware here.
27 | # from helloworld.wsgi import HelloWorldApplication
28 | # application = HelloWorldApplication(application)
29 |
--------------------------------------------------------------------------------
/example/manage.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | import os
3 | import sys
4 |
5 | sys.path.append('..')
6 |
7 | if __name__ == "__main__":
8 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "example.settings")
9 |
10 | from django.core.management import execute_from_command_line
11 |
12 | execute_from_command_line(sys.argv)
13 |
--------------------------------------------------------------------------------
/example/requirements.txt:
--------------------------------------------------------------------------------
1 | Django>=1.4
2 |
--------------------------------------------------------------------------------
/runtests.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | import sys
4 | import django
5 | from os.path import dirname, abspath
6 |
7 | from django.conf import settings
8 |
9 |
10 |
11 | settings.configure(
12 | DATABASES = {
13 | 'default': {
14 | 'ENGINE': 'django.db.backends.sqlite3',
15 | 'NAME': ':memory:'
16 | }
17 | },
18 | INSTALLED_APPS=[
19 | 'django.contrib.admin',
20 | 'django.contrib.auth',
21 | 'django.contrib.contenttypes',
22 | 'django.contrib.sessions',
23 | 'django.contrib.sites',
24 | 'semanticuiform',
25 | ],
26 | MIDDLEWARE_CLASSES = (
27 | 'django.contrib.sessions.middleware.SessionMiddleware',
28 | 'django.middleware.common.CommonMiddleware',
29 | 'django.middleware.csrf.CsrfViewMiddleware',
30 | 'django.contrib.auth.middleware.AuthenticationMiddleware',
31 | 'django.contrib.messages.middleware.MessageMiddleware',
32 | 'django.middleware.clickjacking.XFrameOptionsMiddleware',
33 | ),
34 | SITE_ID=1,
35 | DEBUG=False,
36 | ROOT_URLCONF='',
37 | )
38 |
39 |
40 |
41 | def runtests(**test_args):
42 | from django.test.utils import get_runner
43 |
44 | parent = dirname(abspath(__file__))
45 | sys.path.insert(0, parent)
46 |
47 | try:
48 | django.setup()
49 | except:
50 | pass
51 |
52 | TestRunner = get_runner(settings)
53 | test_runner = TestRunner(verbosity=1, interactive=True)
54 | failures = test_runner.run_tests(['semanticuiform'], test_args)
55 | sys.exit(failures)
56 |
57 |
58 | if __name__ == '__main__':
59 | runtests(*sys.argv[1:])
60 |
--------------------------------------------------------------------------------
/semanticuiform/__init__.py:
--------------------------------------------------------------------------------
1 | from .meta import VERSION
2 |
3 |
4 | __version__ = str(VERSION)
5 |
6 |
--------------------------------------------------------------------------------
/semanticuiform/config.py:
--------------------------------------------------------------------------------
1 | from django.conf import settings
2 |
3 |
4 | # BOOTSTRAP_COLUMN_COUNT = getattr(settings, 'BOOTSTRAP_COLUMN_COUNT', 12)
5 |
--------------------------------------------------------------------------------
/semanticuiform/fixtures/basic.html:
--------------------------------------------------------------------------------
1 |