# Path: screenchop/util/custom_fields.py
# class TagListField(Field):                                          
#     widget = TextInput()
#         
#     def _value(self):            
#         if self.data:                                               
#             return u', '.join(self.data)
#         else:
#             return u''                                              
#         
#     def process_formdata(self, valuelist):                          
#         if valuelist:
#             self.data = [x.strip() for x in valuelist[0].split(',')]
#         else: 
#             self.data = []                                          
# 
# Path: screenchop/config.py
# HOST = config.get('app', 'HOST')
# PORT = int(config.get('app', 'PORT'))
# DEBUG = config.getboolean('app', 'DEBUG')
# TEMP_FILE_DIR = config.get('app', 'TEMP_FILE_DIR')
# SESSION_KEY = config.get('app', 'SESSION_KEY')
# DOMAIN_URL = config.get('app', 'DOMAIN_URL')
# SHORT_DOMAIN_URL = config.get('app', 'SHORT_DOMAIN_URL')
# ADMIN_EMAIL = config.get('app', 'ADMIN_EMAIL')
# EXCEPTION_EMAIL = config.get('app', 'EXCEPTION_EMAIL').split(',')
# CACHE_TYPE = config.get('caching', 'CACHE_TYPE')
# CACHE_SERVER_ADDRESS = config.get('caching', 'CACHE_SERVER_ADDRESS').split()
# CACHE_DEFAULT_TIMEOUT = config.getint('caching', 'CACHE_DEFAULT_TIMEOUT')
# MONGO_DATABASE = config.get('mongodb', 'DATABASE')
# MONGO_HOST = config.get('mongodb', 'HOST')
# MONGO_PORT = int(config.get('mongodb', 'PORT'))
# MONGO_USER = config.get('mongodb', 'USER')
# MONGO_PASS = config.get('mongodb', 'PASS')
# BUCKET_NAME = config.get('s3', 'BUCKET_NAME')
# AWS_ACCESS_KEY_ID = config.get('s3', 'AWS_ACCESS_KEY_ID')
# AWS_SECRET_ACCESS_KEY = config.get('s3', 'AWS_SECRET_ACCESS_KEY')
# S3_THUMBS_URL = config.get('s3', 'S3_THUMBS_URL')
# S3_MEDIUM_URL = config.get('s3', 'S3_MEDIUM_URL')
# S3_FULL_URL = config.get('s3', 'S3_FULL_URL')
# S3_AVATAR_URL = config.get('s3', 'S3_AVATAR_URL')
# REGISTRATION_LEVEL = config.get('registration', 'REGISTRATION_LEVEL')
# MAX_IMAGES_PER_ROW = int(config.get('gallery', 'MAX_IMAGES_PER_ROW'))
# HOME_MAX_IMAGES = int(config.get('gallery', 'HOME_MAX_IMAGES'))
# TAGGING_ENABLED = config.getboolean('gallery', 'TAGGING_ENABLED')
# ALLOWED_FILE_TYPES = config.get('upload', 'ALLOWED_FILE_TYPES').split(',')
# THUMB_MAX_WIDTH = int(config.get('upload', 'THUMB_MAX_WIDTH'))
# THUMB_MAX_HEIGHT = int(config.get('upload', 'THUMB_MAX_HEIGHT'))
# MEDIUM_MAX_WIDTH = int(config.get('upload', 'MEDIUM_MAX_WIDTH'))
# MEDIUM_MAX_HEIGHT = int(config.get('upload', 'MEDIUM_MAX_HEIGHT'))
# GOOGLE_ANALYTICS_ACCOUNT = config.get('marketing', 'GOOGLE_ANALYTICS_ACCOUNT')


from wtforms import Form, BooleanField, TextField, PasswordField
from wtforms import TextAreaField, FileField, validators
from flask.ext.wtf import url
from screenchop.util.custom_fields import TagListField 
from screenchop import config
    password = PasswordField('Password')
    
class AccountForm(Form):
    newpass = PasswordField('New Password', [
        validators.Required(message='Password required'),
        validators.EqualTo('confirm', message='Passwords must match')
    ])
    confirm = PasswordField('Repeat Password')
    currentpass = PasswordField('Current Password', [
        validators.Required(message='Current password required')
    ])

class ProfileForm(Form):
    description = TextAreaField('Profile Description', [
        validators.Length(max=300, message='Max 300 characters'),
        ])

class EditPost(Form):
    caption = TextAreaField('Caption', [
        validators.Length(max=100, message='Max 100 characters')
            ])
    tags = TagListField('Tags')

class ReportPost(Form):
    reason = TextAreaField('Reason', [
        validators.Length(max=1000, message='Max 1000 characters')
            ])

class AddFromURLForm(Form):
    caption = TextField()

# Path: screenchop/util/custom_fields.py
# class TagListField(Field):                                          
#     widget = TextInput()
#         
#     def _value(self):            
#         if self.data:                                               
#             return u', '.join(self.data)
#         else:
#             return u''                                              
#         
#     def process_formdata(self, valuelist):                          
#         if valuelist:
#             self.data = [x.strip() for x in valuelist[0].split(',')]
#         else: 
#             self.data = []                                          
# 
# Path: screenchop/config.py
# HOST = config.get('app', 'HOST')
# PORT = int(config.get('app', 'PORT'))
# DEBUG = config.getboolean('app', 'DEBUG')
# TEMP_FILE_DIR = config.get('app', 'TEMP_FILE_DIR')
# SESSION_KEY = config.get('app', 'SESSION_KEY')
# DOMAIN_URL = config.get('app', 'DOMAIN_URL')
# SHORT_DOMAIN_URL = config.get('app', 'SHORT_DOMAIN_URL')
# ADMIN_EMAIL = config.get('app', 'ADMIN_EMAIL')
# EXCEPTION_EMAIL = config.get('app', 'EXCEPTION_EMAIL').split(',')
# CACHE_TYPE = config.get('caching', 'CACHE_TYPE')
# CACHE_SERVER_ADDRESS = config.get('caching', 'CACHE_SERVER_ADDRESS').split()
# CACHE_DEFAULT_TIMEOUT = config.getint('caching', 'CACHE_DEFAULT_TIMEOUT')
# MONGO_DATABASE = config.get('mongodb', 'DATABASE')
# MONGO_HOST = config.get('mongodb', 'HOST')
# MONGO_PORT = int(config.get('mongodb', 'PORT'))
# MONGO_USER = config.get('mongodb', 'USER')
# MONGO_PASS = config.get('mongodb', 'PASS')
# BUCKET_NAME = config.get('s3', 'BUCKET_NAME')
# AWS_ACCESS_KEY_ID = config.get('s3', 'AWS_ACCESS_KEY_ID')
# AWS_SECRET_ACCESS_KEY = config.get('s3', 'AWS_SECRET_ACCESS_KEY')
# S3_THUMBS_URL = config.get('s3', 'S3_THUMBS_URL')
# S3_MEDIUM_URL = config.get('s3', 'S3_MEDIUM_URL')
# S3_FULL_URL = config.get('s3', 'S3_FULL_URL')
# S3_AVATAR_URL = config.get('s3', 'S3_AVATAR_URL')
# REGISTRATION_LEVEL = config.get('registration', 'REGISTRATION_LEVEL')
# MAX_IMAGES_PER_ROW = int(config.get('gallery', 'MAX_IMAGES_PER_ROW'))
# HOME_MAX_IMAGES = int(config.get('gallery', 'HOME_MAX_IMAGES'))
# TAGGING_ENABLED = config.getboolean('gallery', 'TAGGING_ENABLED')
# ALLOWED_FILE_TYPES = config.get('upload', 'ALLOWED_FILE_TYPES').split(',')
# THUMB_MAX_WIDTH = int(config.get('upload', 'THUMB_MAX_WIDTH'))
# THUMB_MAX_HEIGHT = int(config.get('upload', 'THUMB_MAX_HEIGHT'))
# MEDIUM_MAX_WIDTH = int(config.get('upload', 'MEDIUM_MAX_WIDTH'))
# MEDIUM_MAX_HEIGHT = int(config.get('upload', 'MEDIUM_MAX_HEIGHT'))
# GOOGLE_ANALYTICS_ACCOUNT = config.get('marketing', 'GOOGLE_ANALYTICS_ACCOUNT')


# Path: screenchop/forms.py
from wtforms import Form, BooleanField, TextField, PasswordField
from wtforms import TextAreaField, FileField, validators
from flask.ext.wtf import url
from screenchop.util.custom_fields import TagListField 
from screenchop import config

    password = PasswordField('Password')
    
class AccountForm(Form):
    newpass = PasswordField('New Password', [
        validators.Required(message='Password required'),
        validators.EqualTo('confirm', message='Passwords must match')
    ])
    confirm = PasswordField('Repeat Password')
    currentpass = PasswordField('Current Password', [
        validators.Required(message='Current password required')
    ])

class ProfileForm(Form):
    description = TextAreaField('Profile Description', [
        validators.Length(max=300, message='Max 300 characters'),
        ])

class EditPost(Form):
    caption = TextAreaField('Caption', [
        validators.Length(max=100, message='Max 100 characters')
            ])
    tags = TagListField('Tags')

class ReportPost(Form):
    reason = TextAreaField('Reason', [
        validators.Length(max=1000, message='Max 1000 characters')
            ])

class AddFromURLForm(Form):
    caption = TextField()

    tags = TagListField()