Skip to content
Snippets Groups Projects
Commit 20d9397f authored by Gallenkamp, Fabian's avatar Gallenkamp, Fabian
Browse files

Added first tools

parent cdd3ba67
No related branches found
No related tags found
No related merge requests found
......@@ -6,7 +6,9 @@ import pathlib
from flask import Flask, flash, send_file
from flask_sqlalchemy import SQLAlchemy
from jinja2 import Template
from markupsafe import Markup
from sqlalchemy.ext.hybrid import hybrid_property
from sqlalchemy.sql import expression, functions
from wtforms import validators
......@@ -94,22 +96,35 @@ class Matterofexpense(db.Model):
return "{}".format(self.name)
class SoftwareCategory(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(120))
short_description = db.Column(db.Text)
def __str__(self):
return "{}".format(self.name)
class Software(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(120))
short_description = db.Column(db.Text, nullable=False)
short_description = db.Column(db.String(120))
developer = db.Column(db.String(120))
lastchanged = db.Column(db.Date)
license_id = db.Column(db.Integer(), db.ForeignKey(License.id))
license = db.relationship(License, backref='softwares')
softwarecategory_id = db.Column(db.Integer(), db.ForeignKey(SoftwareCategory.id))
softwarecategory = db.relationship(SoftwareCategory, backref='software')
matterofexpense_id = db.Column(db.Integer(), db.ForeignKey(Matterofexpense.id))
matterofexpense = db.relationship(Matterofexpense, backref='softwares')
features = db.relationship('Feature', secondary=software_features_table)
languages = db.relationship('Language', secondary=software_languages_table)
programminglanguages = db.relationship('Programminglanguage', secondary=software_programminglanguages_table)
def __str__(self):
......@@ -123,10 +138,12 @@ class Link(db.Model):
url = db.Column(db.String(120))
software_id = db.Column(db.Integer(), db.ForeignKey(Software.id))
software = db.relationship(Software, backref='Links')
software = db.relationship(Software, backref='links')
comment = db.Column(db.String(120))
def __str__(self):
return "{}:{}".format(self.type,self.url)
return "<a href='#'>{}</a>:{}".format(self.type,self.url)
# Flask views
......@@ -156,7 +173,17 @@ inline_form_options = {
}'''
class AdvancedSoftwareView(sqla.ModelView):
column_sortable_list = ('name', ('license', ("license.name", "license.version")), 'lastchanged' , ('softwarecategory', 'softwarecategory.name'),)
column_list = ('name', 'license', 'softwarecategory', 'links', )
inline_models = (Link,)
column_hide_backrefs = False
#def _user_formatter(view, context, model, name):
# return Markup(for link in model.links)
#column_formatters = {
# 'links': _user_formatter
#}
@action('advancedexport', 'AdvancedExport')
def action_advancedexport(self, ids):
......@@ -310,6 +337,7 @@ admin.add_view(AdvancedSoftwareView(Software, db.session))
admin.add_view(sqla.ModelView(Feature, db.session))
admin.add_view(sqla.ModelView(License, db.session, category="Other"))
admin.add_view(sqla.ModelView(Link, db.session, category="Other"))
admin.add_view(sqla.ModelView(SoftwareCategory, db.session, category="Other"))
admin.add_sub_category(name="Links", parent_name="Other")
admin.add_link(MenuLink(name='Back Home', url='/', category='Links'))
......@@ -324,8 +352,24 @@ def build_sample_db():
db.drop_all()
db.create_all()
db.session.add(License(name="GPL", version="3.0"))
db.session.add(License(name="MIT"))
lic_gpl = License(name="GPL", version="3.0")
lic_apache = License(name="Apache", version="2.0")
lic_mit = License(name="MIT")
db.session.add(lic_gpl)
db.session.add(lic_apache)
db.session.add(lic_mit)
cat_tracking = SoftwareCategory(name="Tracking", short_description="")
db.session.add(cat_tracking)
aware = Software(name="AWARE", softwarecategory=cat_tracking, license=lic_apache)
db.session.add(aware)
db.session.add(Link(software=aware, type="website", url="http://www.awareframework.com/", comment=""))
db.session.add(Link(software=aware, type="repository", url="https://github.com/denzilferreira/aware-client", comment="android"))
db.session.add(Link(software=aware, type="repository", url="https://github.com/tetujin/aware-client-ios", comment="iOS"))
db.session.add(Link(software=aware, type="repository", url="https://github.com/tetujin/aware-client-osx", comment="OSX"))
db.session.add(Link(software=aware, type="repository", url="https://github.com/denzilferreira/aware-server", comment="server"))
db.session.commit()
return
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment