示例#1
0
    def post(self):
        data = self.application.data
        lattice_ids = self.get_arguments("lattice")
        if len(lattice_ids) < 2:
            self.send_error(400, message="Must select two lattice for comparison")
            return

        lattice1 = yield data.find_lattice_by_id(lattice_ids[0])
        if not lattice1:
            self.send_error(400, message="Lattice (1) not found: " + lattice_ids[0])
            return
        lattice_elements1 = yield data.find_lattice_elements_by_lattice_id(lattice_ids[0])

        lattice2 = yield data.find_lattice_by_id(lattice_ids[1])
        if not lattice2:
            self.send_error(400, message="Lattice (2) not found: " + lattice_ids[1])
            return
        lattice_elements2 = yield data.find_lattice_elements_by_lattice_id(lattice_ids[1])

        ctx = ObjectDict()
        ctx.lattice = (lattice1, lattice2)

        n1 = len(lattice_elements1)
        n2 = len(lattice_elements2)
        ctx.lattice_elements = []
        for idx in range(max(n1, n2)):
            if idx < n1 and idx < n2:
                ctx.lattice_elements.append((lattice_elements1[idx], lattice_elements2[idx]))
            elif idx < n1:
                ctx.lattice_elements.append((lattice_elements1[idx], None))
            elif idx < n2:
                ctx.lattice_elements.append((None, lattice_elements2[idx]))

        ctx.particle_types = yield data.find_particle_types()
        self.render("latticemodel/lattice_compare.html", **ctx)
示例#2
0
    def get(self, model_id):
        ctx = ObjectDict()
        data = self.application.data
        ctx.model, ctx.model_elements = yield [
            data.find_model_by_id(model_id),
            data.find_model_elements_by_model_id(model_id)
        ]
        #data.find_lattice_elements_by_lattice_id(lattice_id)
        if not ctx.model:
            self.render_error(404)
            return

        ctx.lattice, lattice_elements = yield [
            data.find_lattice_by_id(ctx.model.lattice_id),
            data.find_lattice_elements_by_lattice_id(ctx.model.lattice_id)
        ]

        ctx.lattice_elements = {}
        for lattice_element in lattice_elements:
            ctx.lattice_elements[lattice_element._id] = lattice_element

        self.render("latticemodel/model_details.html", ctx)