Exemplo n.º 1
0
class UserListing(admin_views.Listing):
    """Listing view for Users."""
    title = "All users"

    table = listing.Table(columns=[
        listing.Column(
            "id",
            "Id",
        ),
        listing.Column("friendly_name", "Friendly name"),
        listing.Column("email", "Email"),
        listing.ControlsColumn()
    ])

    # Include our CSV export button in the user interface
    resource_buttons = admin_views.Listing.resource_buttons + [
        TraverseLinkButton(id="csv-export",
                           name="CSV Export",
                           view_name="csv-export",
                           permission="view")
    ]

    def order_query(self, query):
        return query.order_by(self.get_model().created_at.desc())

    @view_config(context=UserAdmin,
                 route_name="admin",
                 name="listing",
                 renderer="crud/listing.html",
                 permission='view')
    def listing(self):
        return super(UserListing, self).listing()
Exemplo n.º 2
0
class PostListing(DefaultListing):
    """Show all blog posts."""
    table = listing.Table(
        columns=[
            listing.Column("title", "Title"),
            listing.Column("created_at", "Created"),
            listing.Column("published_at", "Published"),
            listing.ControlsColumn()
        ]
    )
Exemplo n.º 3
0
class UserCSVListing(CSVListing):
    """CSV export of the site users."""

    title = "users-export"

    table = listing.Table(
        columns=[
            listing.Column("id"),
            listing.Column("uuid"),
            listing.Column("link", getter=_get_user_navigate_target),
            listing.Column("enabled"),
            listing.Column("created_at"),
            listing.Column("last_login_at"),
            listing.Column("username"),
            listing.Column("email"),
            listing.Column("friendly_name"),
        ]
    )

    def order_query(self, query: Query) -> Query:
        """Add ordering to an existing SQLAlchemy query.

        :param query: Base query.
        :return: Query ordered by created_at.
        """
        return query.order_by(self.get_model().created_at.desc())
Exemplo n.º 4
0
class AssetNetworkListing(DefaultListing):
    """List all crypto addresses on the site."""

    table = listing.Table(columns=[
        listing.Column(
            "id",
            "Id",
        ),
        listing.Column(
            "name", "Name", getter=lambda v, c, network: network.name),
        listing.ControlsColumn()
    ])
Exemplo n.º 5
0
class GroupListing(admin_views.Listing):
    """Listing view for Groups."""

    table = listing.Table(
        columns = [
            listing.Column("id", "Id",),
            listing.Column("name", "Name"),
            listing.Column("description", "Description"),
            listing.ControlsColumn()
        ]
    )

    def order_query(self, query):
        return query.order_by(self.get_model().id.desc())
Exemplo n.º 6
0
class CryptoAddressListing(DefaultListing):
    """List all crypto addresses on the site."""

    table = listing.Table(columns=[
        listing.Column("user", "User", getter=find_user_for_address),
        listing.Column("network",
                       "Network",
                       getter=lambda v, c, address: address.network.name),
        listing.Column(
            "address",
            "Address",
            getter=lambda v, c, address: bin_to_eth_address(address.address)),
        listing.Column("eth", "ETH balance", getter=find_eth_balance),
        listing.ControlsColumn()
    ])
Exemplo n.º 7
0
class Listing(crud_views.Listing):
    """Base listing view for all admin models.

    """
    base_template = "admin/base.html"

    table = listing.Table(columns=[
        listing.Column(
            id="id",
            name="Id",
        ),
        listing.StringPresentationColumn(id="value", name="Value"),
        listing.ControlsColumn()
    ])

    @property
    def title(self):
        return "All {}".format(self.context.title)

    @view_config(context=ModelAdmin,
                 name="listing",
                 renderer="crud/listing.html",
                 route_name="admin",
                 permission='view')
    def listing(self):
        # We override this method just to define admin route_name traversing
        return super(Listing, self).listing()
Exemplo n.º 8
0
class CryptoAccountListing(DefaultListing):
    """User listing modified to show the user hometown based on geoip of last login IP."""

    table = listing.Table(columns=[
        listing.Column(
            "id",
            "Id",
        ),
        listing.Column("user", "User", getter=find_user_for_account),
        listing.Column(
            "asset", "Asset", getter=lambda v, c, account: account.asset.name),
        listing.Column("amount",
                       "Amount",
                       getter=lambda v, c, account: account.get_balance()),
        listing.ControlsColumn()
    ])
Exemplo n.º 9
0
class TagListing(DefaultListing):
    """Show blog tags."""

    table = listing.Table(
        columns=[
            listing.Column("title", "Title", navigate_url_getter=tag_navigate_url_getter),
            listing.ControlsColumn(name="Admin Actions"),
        ]
    )
Exemplo n.º 10
0
class UserListing(admin_views.Listing):
    """Listing view for Users."""
    title = "All users"

    table = listing.Table(
        columns = [
            listing.Column("id", "Id",),
            listing.Column("friendly_name", "Friendly name"),
            listing.Column("email", "Email"),
            listing.ControlsColumn()
        ]
    )

    def order_query(self, query):
        return query.order_by(self.get_model().created_at.desc())

    @view_config(context=UserAdmin, route_name="admin", name="listing", renderer="crud/listing.html", permission='view')
    def listing(self):
        return super(UserListing, self).listing()
Exemplo n.º 11
0
class GroupListing(admin_views.Listing):
    """Listing view for Groups."""

    table = listing.Table(
        columns=[
            listing.Column("id", "Id",),
            listing.Column("name", "Name"),
            listing.Column("description", "Description"),
            listing.ControlsColumn()
        ]
    )

    def order_query(self, query: Query) -> Query:
        """Add ordering to an existing SQLAlchemy query.

        :param query: Base query.
        :return: Query ordered by id descending.
        """
        return query.order_by(self.get_model().id.desc())
Exemplo n.º 12
0
class AssetListing(adminbaseviews.Listing):

    table = listing.Table(columns=[
        # listing.Column("id", "Id",),
        listing.Column("name", "Name", getter=lambda v, c, asset: asset.name),
        listing.Column("description",
                       "Description",
                       getter=lambda v, c, asset: asset.name),

        # Convert between binary storage and human readable hex presentation
        listing.Column("address",
                       "Address",
                       getter=lambda v, c, asset: asset.external_id and
                       bin_to_eth_address(asset.external_id or "")),
        listing.ControlsColumn()
    ])

    def order_query(self, query: Query):
        """Sort the query."""
        return query.order_by(Asset.name)
Exemplo n.º 13
0
class UserCSVListing(CSVListing):
    """CSV export of the site users."""

    title = "users-export"

    table = listing.Table(columns=[
        listing.Column("id"),
        listing.Column("uuid"),
        listing.Column("link", getter=_get_user_navigate_target),
        listing.Column("enabled"),
        listing.Column("created_at"),
        listing.Column("last_login_at"),
        listing.Column("username"),
        listing.Column("email"),
        listing.Column("friendly_name"),
    ])

    def order_query(self, query):
        return query.order_by(self.get_model().created_at.desc())
Exemplo n.º 14
0
class UserAccountListing(DefaultListing):
    """User listing modified to show the user hometown based on geoip of last login IP."""
    table = listing.Table(columns=[
        listing.Column(
            "id",
            "Id",
        ),
        listing.Column("user",
                       "Owner",
                       getter=get_user_for_account,
                       navigate_url_getter=get_user_admin_link),
        listing.Column("asset", "Asset", getter=get_asset_for_account),
        listing.Column("amount", "Amount", getter=get_amount_for_account),
        listing.ControlsColumn()
    ])

    @view_config(context=admins.UserAccountAdmin,
                 name="listing",
                 renderer="admin/account_listing.html",
                 route_name="admin",
                 permission='view')
    def listing(self):
        return super().listing()