class PageCreateForm(BaseForm): label = "Create Page" fields = [ StringField('url', "URL", REQUIRED), StringField('title', "title", REQUIRED), CheckboxPostField('active', "Enabled"), StringField('metaKeywords', "Meta Keywords"), StringField('metaDescription', "Meta Description"), TextareaField('content', "Content", input_classes='x-high') ] @classmethod def on_success(cls, request, values): values['Need'] = [{'name': n} for n in values.pop('Need', [])] try: need = AdminPageCreateProc(request, values) except DBNotification, e: if e.message in ('Page_Already_Exists', 'Url already exists'): return { 'success': False, 'errors': { 'url': "This Page already exists, please change the url." } } else: raise e request.session.flash( GenericSuccessMessage("Page created successfully!"), "generic_messages") return { 'success': True, 'redirect': request.resource_url(request.context) }
class CompanyEditForm(BaseForm): id = "CompanyEdit" label = "" fields = [ PictureUploadField('logo', _('CompanyCreate.Form.Label:Logo'), REQUIRED, picWidth=250, picHeight=170), StringField('name', _('CompanyCreate.Form.Label:Name'), REQUIRED), URLField("companyUrl", _('CompanyCreate.Form.Label:Project Website')), CleanHtmlField('pitch', _('CompanyCreate.Form.Label:Slogan'), REQUIRED, max=90), SanitizedHtmlField("description", _('CompanyCreate.Form.Label:Description'), REQUIRED, input_classes='x-high'), PictureGalleryUploadField( 'Pictures', _('CompanyCreate.Form.Label:Drag multiple images into your gallery' )), StringField( "video", _('CompanyCreate.Form.Label:Paste a Vimeo or Youtube Url')), StringField("slideShare", _('CompanyCreate.Form.Label:Paste a Slideshare Url')), URLField("socialMediaUrl", _('CompanyCreate.Form.Label:Project Blog Url')) ] @classmethod def on_success(cls, request, values): company = request.context.company if isinstance(values.get('Pictures'), basestring): values['Pictures'] = [values['Pictures']] values['Pictures'] = [{'url': url} for url in values['Pictures']] values['token'] = company.token try: company = EditCompanyProc(request, values) except DBNotification, e: if e.message == 'Company_Already_Exists': return { 'success': False, 'errors': { 'name': _('CompanyCreate.Form.Error:Already exists') } } else: return { 'success': False, 'message': 'Something went wrong: {}'.format(e.message) } else:
class ServiceCreateForm(BaseForm): label = "Create Service" fields = [ StringField('name', "Name", REQUIRED), URLField('url', "Website", REQUIRED), PictureUploadField("logo", "Logo", picWidth=100, picHeight=100) ] @classmethod def on_success(cls, request, values): try: need = AdminServiceCreateProc(request, values) except DBNotification, e: if e.message == 'Service_Already_Exists': return { 'success': False, 'errors': { 'name': "This service already exists, please change the name to a unique name." } } else: raise e request.session.flash( GenericSuccessMessage("Service created successfully!"), "generic_messages") return { 'success': True, 'redirect': request.resource_url(request.context) }
class BaseInviteForm(BaseForm): id = "InviteCompany" fields = [ StringField("name", "Name", REQUIRED), EmailField("email", "Email address", REQUIRED) ] @classmethod def on_success(cls, request, values): user = request.root.user company = request.context.company values['invitorToken'] = user.token values['invitorName'] = user.name values['companySlug'] = company.slug InviteToCompanyProc(request, {'Invite': [values]}) request.session.flash( GenericSuccessMessage( u"You successfully invited {name} to your company!".format( **values)), "generic_messages") return { 'success': True, 'redirect': request.resource_url(request.context) }
class ApplicationForm(BaseForm): id = "Application" label = "" grid = HORIZONTAL_GRID fields = [ StringField('message', _("TaskDetailsPage.Apply.FormLabel:Message"), REQUIRED) ] @classmethod def on_success(cls, request, values): _ = request._ ApplyForNeedProc( request, { 'token': request.context.need.token, 'Application': { 'User': { 'token': request.root.user.token }, 'message': values['message'] } }) request.session.flash( GenericSuccessMessage( _("TaskDetailsPage.Apply.Success:You have successfully applied for this task. One of the team members will contact you shortly." )), "generic_messages") return { 'success': True, 'redirect': request.resource_url(request.context) }
class TemplateCreateForm(BaseForm): label = "Create Template" fields = [ BS3_NCOL( Sequence( StringField('name', "Name", REQUIRED), TextareaField('description', "Description", REQUIRED, input_classes='x-high'), PictureUploadField("picture", "Picture", picWidth=277, picHeight=230), CheckboxPostField('active', "Active?")), NeedSelector('Need', "Task List")) ] @classmethod def on_success(cls, request, values): needs = values.pop('Need', []) if not isinstance(needs, list): needs = [needs] values['Need'] = [{'name': n} for n in needs] try: need = AdminTemplatesCreateProc(request, values) except DBNotification, e: if e.message == 'Template_Already_Exists': return { 'success': False, 'errors': { 'name': "This template already exists, please change the name to a unique name." } } else: raise e request.session.flash( GenericSuccessMessage("Template created successfully!"), "generic_messages") return { 'success': True, 'redirect': request.resource_url(request.context) }
class TaskCreateForm(BaseForm): label = "Create Task" fields = [ StringField('name', "Title", REQUIRED), ChoiceField("category", "Category", lambda s: TASK_CATEGORIES), TextareaField("summary", "Summary", REQUIRED, input_classes='x-high'), TagSearchField("Tags", "Related Tags", '/web/tag/search', 'Tags', attrs=HtmlAttrs(required=True, data_required_min=3, placeholder="Add Tags")), TagSearchField("Services", "Related Web Services", '/web/service/search', 'Services', attrs=HtmlAttrs(required=True, data_required_min=3, placeholder="Add Services")) ] @classmethod def on_success(cls, request, values): try: need = AdminNeedCreateProc(request, values) except DBNotification, e: if e.message == 'Need_Already_Exists': return { 'success': False, 'errors': { 'name': "This task already exists, please change the name to a unique name." } } else: return {'success': False, 'message': e.message} except DBException, e: return {'success': False, 'message': e.message}
class ProductCreateForm(BaseForm): id = "ProductCreate" label = "" fields = [ StringField('name', "Name", REQUIRED), SanitizedHtmlField("description", "Description", REQUIRED, input_classes='x-high'), OfferField("Offers", "Add Offers"), PictureGalleryUploadField('Pictures', 'Drag multiple images into your gallery'), VideoUrlField("video", "Vimeo/YouTube") ] @classmethod def on_success(cls, request, values): if isinstance(values.get('pictures'), basestring): values['Pictures'] = [values['Pictures']] values['Pictures'] = [{'url': url} for url in values['Pictures']] offers = values.pop('Offers') data = {'token': request.context.round.token, 'Product': values} round = CreateProductProc(request, data) try: SetProductOffersProc( request, {'Product': { 'token': round.Product.token, 'Offers': offers }}) except DBNotification, e: return {'errors': {'name': e.message}, 'success': False} return { 'success': True, 'redirect': request.resource_url(request.context) }
class RecommendNeedForm(BaseForm): id = "need_recommend_form" label = "" fields = [ StringField("name", _("TaskDetailsPage.Invite.FormLabel.Name"), REQUIRED), EmailField("email", _("TaskDetailsPage.Invite.FormLabel.EmailAddress"), REQUIRED) ] @classmethod def on_success(cls, request, values): _ = request._ user = request.root.user company = request.context.company need = request.context.need params = { 'name': values['name'], 'email': values['email'], 'invitorToken': user.token, 'invitorName': user.name, 'companySlug': company.slug, 'companyName': company.name, 'Need': { "slug": need.slug, "name": need.name } } RecommendNeedProc(request, {'Invite': params}) request.session.flash( GenericSuccessMessage( _(u"TaskDetailsPage.Message:You successfully recommended this task to {name}!" ).format(**values)), "generic_messages") return { 'success': True, 'redirect': request.resource_url(request.context) }
class InviteAdvisorToNeedForm(BaseForm): id = "need_invite_form" label = "" fields = [ StringField("name", _("TaskDetailsPage.Invite.FormLabel.Name"), REQUIRED), EmailField("email", _("TaskDetailsPage.Invite.FormLabel.EmailAddress"), REQUIRED) ] @classmethod def on_success(cls, request, values): _ = request._ need = request.context.need advisor = unpack_advisor(request, values) invite_advisor_to_need(request, need, advisor) request.session.flash( GenericSuccessMessage( _(u"TaskDetailsPage.Message:You successfully invited {name} to advise you with this task!" ).format(**values)), "generic_messages") return { 'success': True, 'redirect': request.resource_url(request.context) }
def add_content_impl(event): request = event.request request._ = StaticContentLoader(request, cache, request.globals.is_debug) request.pluralize = request._.pluralize return add_content_impl #=================================================== VIEWS ============================================================= CONTENT_FIELDS = [ MultipleFormField('values', fields=[ BS3_NCOL( StringField('key', "Key", REQUIRED), TextareaField('value', "Full HTML", attrs=HtmlAttrs(important=True, rows=8))) ], add_more_link_label='Add More Fields') ] def ContentCreationViewFactory(SetStaticContentProc, fwd_url): class ContentCreateForm(BaseForm): label = "Create Content" width_class = "col-lg-12" grid = GRID_BS3 fields = CONTENT_FIELDS
class CompanyCreateForm(BaseForm): id = "CompanyCreate" label = "" fields = [ PictureUploadField('logo', _('CompanyCreate.Form.Label:Logo'), REQUIRED, picWidth=250, picHeight=170), StringField('name', _('CompanyCreate.Form.Label:Name'), REQUIRED), UniqueNameField("slug", _('CompanyCreate.Form.Label:UFOstart Url'), thing_name='company name'), URLField("companyUrl", _('CompanyCreate.Form.Label:Project Website')), CleanHtmlField('pitch', _('CompanyCreate.Form.Label:Slogan'), REQUIRED, max=90), SanitizedHtmlField("description", _('CompanyCreate.Form.Label:Description'), REQUIRED, input_classes='x-high'), PictureGalleryUploadField( 'Pictures', _('CompanyCreate.Form.Label:Drag multiple images into your gallery' )), StringField( "video", _('CompanyCreate.Form.Label:Paste a Vimeo or Youtube Url')), StringField("slideShare", _('CompanyCreate.Form.Label:Paste a Slideshare Url')), ChoiceField("currency", _('CompanyCreate.Form.Label:Project Currency'), optionGetter=lambda s: [NamedModel(name='EUR'), NamedModel(name='USD')]), URLField("socialMediaUrl", _('CompanyCreate.Form.Label:Project Blog Url')) ] @classmethod def on_success(cls, request, values): templateKey = request.context.__name__ if isinstance(values.get('pictures'), basestring): values['Pictures'] = [values['Pictures']] values['Pictures'] = [{'url': url} for url in values['Pictures']] values['Template'] = {'key': templateKey} al_company = request.session.get(SESSION_SAVE_TOKEN) if al_company: values['angelListId'] = al_company.id values['angelListToken'] = al_company.token del request.session[SESSION_SAVE_TOKEN] try: company = CreateCompanyProc(request, { 'token': request.root.user.token, 'Company': values }) except DBNotification, e: if e.message == 'Company_Already_Exists': return { 'success': False, 'errors': { 'name': _('CompanyCreate.Form.Error:Already exists') } } else: return { 'success': False, 'message': 'Something went wrong: {}'.format(e.message) } else:
class Field(MultipleFormField): fields = [ StringField("enrolled", "Enrolled"), StringField("graduated", "Graduated") ]
class NeedCreateForm(BaseForm): id = "NeedCreate" label = "" fields = [ PictureUploadField("picture", _("TaskSetup.FormLabel.Picture"), group_classes='file-upload-control'), TypeAheadField('name', _("TaskSetup.FormLabel.Title"), '/web/need/name', 'Needs', attrs=REQUIRED, js_module="views/company/need_switch", api_allow_new=True), CheckboxPostField('parttime', _("TaskSetup.FormLabel.is part time")), CurrencyIntField( 'cash', _("TaskSetup.FormLabel.Cash Value"), HtmlAttrs( required=True, data_control_help=_("TaskSetup.FormLabel.Cash Value.Help")), input_classes='data-input cash', maxlength=8), CurrencyIntField( 'equity', _("TaskSetup.FormLabel.Equity Value"), HtmlAttrs( required=True, data_control_help=_("TaskSetup.FormLabel.Equity Value.Help")), input_classes='data-input equity', maxlength=8), SanitizedHtmlField("customText", _("TaskSetup.FormLabel.Description"), REQUIRED, input_classes='x-high'), TagSearchField("Tags", _("TaskSetup.FormLabel.Related Tags"), '/web/tag/search', 'Tags', attrs=HtmlAttrs(required=True, data_required_min=3, placeholder="Add Tags")), ServiceSearchField("Services", _("TaskSetup.FormLabel.Related Services"), '/web/service/search', 'Services', attrs=HtmlAttrs(placeholder="Add Services")), StringField("advisor.name", _("TaskSetup.FormLabel.Advisor.Name"), input_classes="ignore"), EmailField("advisor.email", _("TaskSetup.FormLabel.Advisor.EmailAddress"), input_classes="ignore") ] @classmethod def on_success(cls, request, values): _ = request._ try: advisor = unpack_advisor(request, values.pop('advisor', {})) need = CreateNeedProc(request, { 'Needs': [values], 'token': request.context.round.token }) except DBNotification, e: if e.message == 'Need_Already_Exists': return { 'success': False, 'errors': { 'name': _("TaskSetup.ErrorMessage.This task already exists, if you intend to create this task, please change its name to something less ambiguous!" ) } } else: raise e if advisor: invite_advisor_to_need(request, need, advisor) request.session.flash( GenericSuccessMessage( _("TaskSetup.SuccessMessage.Task created successfully!")), "generic_messages") return { 'success': True, 'redirect': request.resource_url(request.context) }