Add project campaigning

This commit is contained in:
2021-12-27 20:59:55 +02:00
parent d590ae0179
commit 4458d22576
3 changed files with 94 additions and 7 deletions

View File

@@ -274,5 +274,86 @@ module.exports = function (options) {
next(error)
})
})
router.route('/:id/campaign')
.get(function(request, response, next) {
db.Project.findByPk(request.params.id, {
include: [
{
association: db.Project.Campaign,
required: true
},
{
association: db.Project.ProjectEntryVersions,
include: [
{
association: db.ProjectEntryVersion.EntryVersion,
include: [
{
association: db.EntryVersion.Entry
}
]
}
]
},
{
association: db.Project.ProjectTranslationEntryVersions,
include: [
{
association: db.ProjectTranslationEntryVersion.TranslationEntryVersion,
include: [
{
association: db.TranslationEntryVersion.EntryVersion,
include: [
{
association: db.EntryVersion.Entry
}
]
}
]
}
]
}
]
}).then(project => {
if (project) {
response.redirect(`/campaigns/${project.campaign.id}`)
} else {
response.redirect(`/projects/${request.params.id}/campaign/create`)
}
})
})
router.route('/:id/campaign/create')
.get(function(request, response, next) {
db.Project.findByPk(request.params.id, {
include: [
{
association: db.Project.Campaign,
}
]
}).then(project => {
if (project) {
if (project.campaign) {
response.redirect(`/campaigns/${project.campaign.id}`)
} else {
response.display("campaign-form", {
user: request.user,
pageTitle: "Campaign - Mantra",
campaign: {
name: `Campaign for ${project.name} project`
},
project: project,
})
}
} else {
next()
}
}).catch(error => {
next(error)
})
})
return router;
};

View File

@@ -12,12 +12,15 @@ block content
input#name(type="text", name="name", value=campaign.name)
label(for="name") Campaign Name
if project
.col.s12
span project...
each translationEntryVersion in translationEntryVersions
input(type="hidden", name="translationEntryVersions", value=translationEntryVersion.id)
.col.s12.input-field
input(id=translationEntryVersion.id+"-satoshis",type="number", name="satoshis", placeholder="100000 satoshis", step=1, min=1, max=2100000000000000, required)
label(for=translationEntryVersion.id+"-satoshis") Satoshi's required for the #{translationEntryVersion.name} translation
input(type="hidden", name="projectId", value=project.id)
.col.s12.input-field
input(id=project.id+"-satoshis",type="number", name="satoshis", placeholder="100000 satoshis", step=1, min=1, max=2100000000000000, required)
label(for=project.id+"-satoshis") Default satoshi's goal for the #{project.name} translations
if translationEntryVersions
each translationEntryVersion in translationEntryVersions
input(type="hidden", name="translationEntryVersions", value=translationEntryVersion.id)
.col.s12.input-field
input(id=translationEntryVersion.id+"-satoshis",type="number", name="satoshis", placeholder="100000 satoshis", step=1, min=1, max=2100000000000000, required)
label(for=translationEntryVersion.id+"-satoshis") Satoshi's required for the #{translationEntryVersion.name} translation
.col.s12
button.btn.black(type="submit") create campaign

View File

@@ -7,6 +7,9 @@ block content
p.flow-text= project.description
.row
.col.s12
a.btn.black(href=`/projects/${project.id}/campaign`) funding campaign
.divider
h2 Entries
each projectEntryVersion in project.projectEntryVersions