Start work on models and ui

Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
This commit is contained in:
Adam Stokes 2015-06-08 23:40:41 -04:00
parent d812ff23b8
commit 9f78c2a775
6 changed files with 124 additions and 0 deletions

View File

@ -0,0 +1,36 @@
# Copyright 2015 Canonical, Ltd.
""" Model Classes
Model's represent the stateful data bound from
input from the user.
"""
class Model:
"""Base model"""
def to_json(self):
"""Marshals the model to json"""
return NotImplementedError
def create(self):
"""Creates model instance with validation"""
return NotImplementedError
class Field:
"""Base field class
New field types inherit this class, provides access to
validation checks and type definitions.
"""
default_error_messages = {
'invalid_choice': ('Value %(value)r is not a valid choice.'),
'null': ('This field cannot be null.'),
'blank': ('This field cannot be blank.')
}
def __init__(self, name=None, blank=False, null=False):
self.name = name
self.blank, self.null = blank, null

View File

@ -0,0 +1,18 @@
# Copyright 2015 Canonical, Ltd.
""" Identity Model
Represents information related to identification, for example,
User's first and last name, timezone, country, language preferences.
"""
from subiquity import models
class UserModel(models.Model):
""" User class to support personal information
"""
username = None
language = None
keyboard = None
timezone = None

View File

@ -0,0 +1,16 @@
# Copyright 2015 Canonical, Ltd.
""" Welcome Model
Welcome model provides user with installation options
"""
from subiquity import models
class WelcomeModel(models.Model):
""" Model representing installation type
"""
install_type = None

5
subiquity/ui/__init__.py Normal file
View File

@ -0,0 +1,5 @@
# Copyright 2015 Canonical, Ltd.
""" Subiquity UI Components """
__version__ = "0.0.1"

36
subiquity/ui/anchors.py Normal file
View File

@ -0,0 +1,36 @@
# Copyright 2015 Canonical, Ltd.
from urwid import WidgetWrap, AttrWrap, Pile, Text, Columns
class Header(WidgetWrap):
""" Header Widget
This widget uses the style key `frame_header`
:param str title: Title of Header
:returns: Header()
"""
def __init__(self, title="Ubuntu Server Installer"):
title = title
title_widget = AttrWrap(Text(title), "frame_header")
pile = Pile([title_widget])
super().__init__(Columns(pile))
class Footer(WidgetWrap):
""" Footer widget
Style key: `frame_footer`
"""
def __init__(self):
status = Pile([Text("")])
super().__init__(Columns(status))
class Body(WidgetWrap):
""" Body widget
"""
def __init__(self):
super().__init__(Text("Welcome to the Server Installation"))

13
subiquity/ui/frame.py Normal file
View File

@ -0,0 +1,13 @@
# Copyright 2015 Canonical, Ltd.
""" Base Frame Widget """
from urwid import Frame, WidgetWrap
class Base(WidgetWrap):
def __init__(self, header, body, footer):
self.frame = Frame(body,
header,
footer)
super().__init__(self.frame)